<?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. Using Guacamole</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><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="noauth.html" title="Chapter 8. Disabling authentication" /><link rel="next" href="administration.html" title="Chapter 10. 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 9. Using Guacamole</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="noauth.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 9. 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#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="idm139795231942624" 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 list of connections on the home screen contains all connections for which you have
            been granted access. If you have used Guacamole in this specific web browser before, you
            will also see thumbnails of recently used connections.</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 10. Administration">Chapter 10, <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>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="idm139795231020704" 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="file-transfer"></a>Transferring files</h2></div></div></div><a id="idm139795231100048" 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 transfers can be observed within the notification dialog
                that appears once a download or upload begins, and completed file transfers can be
                cleared by clicking the "Clear" button within the notification dialog.</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="idm139795231076336" class="indexterm"></a><a id="idm139795231075472" class="indexterm"></a><a id="idm139795231074608" class="indexterm"></a><a id="idm139795231073296" 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/glyptodon/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="idm139795231053760" 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="idm139795231047568" 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="idm139795231030656" 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="noauth.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 8. Disabling 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. 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>
<!-- End Google Analytics -->
        </body></html>