diff options
author | Yves Fischer <yvesf-git@xapek.org> | 2011-10-23 21:14:40 +0200 |
---|---|---|
committer | Yves Fischer <yvesf-git@xapek.org> | 2011-10-30 11:33:54 +0100 |
commit | 770ba5201f5c60b2bb36602ff9d359f641e33125 (patch) | |
tree | 2200757f04efbc281c4b3714bfe2e4fe911193b6 /schall/static/RGraph/docs/gantt.html | |
parent | 77f5e686612898974e13f2a5df57c20e4e529363 (diff) | |
download | mini-octopus-770ba5201f5c60b2bb36602ff9d359f641e33125.tar.gz mini-octopus-770ba5201f5c60b2bb36602ff9d359f641e33125.zip |
Charting with flask, rgraph and custom "timeseries database"
Diffstat (limited to 'schall/static/RGraph/docs/gantt.html')
-rw-r--r-- | schall/static/RGraph/docs/gantt.html | 471 |
1 files changed, 471 insertions, 0 deletions
diff --git a/schall/static/RGraph/docs/gantt.html b/schall/static/RGraph/docs/gantt.html new file mode 100644 index 0000000..b10b91e --- /dev/null +++ b/schall/static/RGraph/docs/gantt.html @@ -0,0 +1,471 @@ +<!DOCTYPE html> +<html> +<head> + <meta http-equiv="X-UA-Compatible" content="chrome=1"> + <!-- + /** + * o------------------------------------------------------------------------------o + * | This file is part of the RGraph package - you can learn more at: | + * | | + * | http://www.rgraph.net | + * | | + * | This package is licensed under the RGraph license. For all kinds of business | + * | purposes there is a small one-time licensing fee to pay and for non | + * | commercial purposes it is free to use. You can read the full license here: | + * | | + * | http://www.rgraph.net/LICENSE.txt | + * o------------------------------------------------------------------------------o + */ + --> + <title>RGraph: HTML5 Javascript charts library - gantt charts documentation</title> + + <meta name="keywords" content="rgraph html5 canvas charts docs gantt charts" /> + <meta name="description" content="RGraph: HTML5 Javascript charts library - Documentation about Gantt charts" /> + + <meta property="og:title" content="RGraph: HTML5 Javascript charts library" /> + <meta property="og:description" content="A charts library based on the HTML5 canvas tag" /> + <meta property="og:image" content="http://www.rgraph.net/images/logo.jpg"/> + + <link rel="stylesheet" href="../css/website.css" type="text/css" media="screen" /> + <link rel="icon" type="image/png" href="../images/favicon.png"> + + <!-- Place this tag in your head or just before your close body tag --> + <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> + + <script> + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-54706-2']); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); + </script> + +</head> +<body> + + + <!-- Social networking buttons --> + <div id="social_icons" class="warning" style="border-radius: 10px; top: 1px; position: fixed; width: 120px; height: 20px"> + <!-- <a title="Bookmark with delicious" href="http://delicious.com/save?jump=close&v=4&noui&jump=close&url=http://www.rgraph.net¬es=RGraph%20is%20a%20HTML5%20based%20javascript%20charts%20library%20supporting%20a%20wide%20range%20of%20different%20chart%20types&title=RGraph:%20Javascript%20charts%20%26%20graph%20library" target="_blank"><img src="../images/delicious.png" alt="Bookmark with delicious" width="22" height="22" border="0" style="position: relative; top: 1px" /></a> --> + <a href="http://twitter.com/home/?status=RGraph%3A%20Javascript+charts+library+http%3A%2F%2Fwww.rgraph.net+%23rgraph+%23html5+%23canvas+%23javascript+%23charts+@_rgraph" target="_blank" title="Mention RGraph on Twitter"><img src="../images/twitter.png" alt="Mention RGraph on Twitter"/></a> + <iframe src="http://www.facebook.com/plugins/like.php?app_id=253862424642173&href=http%3A%2F%2Fwww.rgraph.net&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=arial&height=21" scrolling="no" frameborder="0" style="width: 80px; height:21px; position: relative; top: 1px"></iframe> + </div> + + <script> + // Opera fix + if (navigator.userAgent.indexOf('Opera') == -1) { + document.getElementById("social_icons").style.position = 'fixed'; + } + </script> + + <div id="google_plusone"> + <!-- Place this tag where you want the +1 button to render --> + <g:plusone href="http://www.rgraph.net"></g:plusone> + </div> + <!-- Social networking buttons --> + + <div id="breadcrumb"> + <a href="../index.html">RGraph: HTML5 Javascript charts library</a> + > + <a href="index.html">Documentation</a> + > + Gantt charts + </div> + + <h1>RGraph: <span>HTML5 Javascript charts library</span> - Gantt charts documentation</h1> + + <script> + if (RGraph.isIE8()) { + document.write('<div style="background-color: #fee; border: 2px dashed red; padding: 5px"><b>Important</b><br /><br /> Internet Explorer 8 does not natively support the HTML5 canvas tag, so if you want to see the charts, you can either:<ul><li>Install <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a></li><li>Use ExCanvas. This is provided in the RGraph Archive.</li><li>Use another browser entirely. Your choices are Firefox 3.5+, Chrome 2+, Safari 4+ or Opera 10.5+. </li></ul> <b>Note:</b> Internet Explorer 9 fully supports the canvas tag.</div>'); + } + </script> + + <p> + Gantt charts can be used to easily represent schedule information, making visualising this information far more straightfoward. + </p> + + <ul> + <li><a href="#events">Adding events to your Gantt charts</a></li> + <li><a href="#vbars">Adding vertical bars to your Gantt charts</a></li> + </ul> + + <h2>Example</h2> + + <p> + The example file is <a href="../examples/gantt.html">here</a>. + </p> + + <pre class="code"> +<script> + window.onload = function () + { + var gantt = new RGraph.Gantt('gantt'); + gantt.Set('chart.xmax', 365); + gantt.Set('chart.gutter.left', 75); + gantt.Set('chart.labels', ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']); + gantt.Set('chart.title', 'Holiday schedule for Xyz Ltd'); + gantt.Set('chart.defaultcolor', 'rgba(255,0,0,1)'); + gantt.Set('chart.tooltips', ["<b>Richard</b><br />Richard is going on holiday to Malta.<br />He'll be away for 28 days.", + "<b>Fred</b><br />Fred is also going away for 28 days", + "<b>Barney</b><br />Barney is off work for two weeks", + "<b>Gloria</b><br />Gloria is off for 3 weeks", + "<b>Paul</b><br /> Away for 31 days", + "<b>Harry</b><br />Away for three weeks", + "<b>Shane</b><br />Away for one week", + "<b>Barry</b><br />Away for two weeks", + "<b>Cynthia</b><br />Away for two weeks", + "<b>Graham</b><br />Away for August and September", + "<b>Paul</b><br />Away for 31 days"]); + gantt.Set('chart.events', [ + [31, 28, null, 'Richard'], + [31, 28, null, 'Fred'], + [59, 14, null, 'Barney'], + [59, 21, null, 'Gloria'], + [59, 31, null, 'Paul'], + [80, 21, null, 'Harry'], + [94, 7, null, 'Shane'], + [120, 14, null, 'Barry'], + [130, 14, null, 'Cynthia'], + [211, 61, null, 'Graham'], + [334, 31, null, 'Paul'] + ]); + gantt.Set('chart.vbars', [ + [0, 31, 'rgba(192,255,192,0.5)'], + [59, 31, 'rgba(192,255,192,0.5)'], + [120, 31, 'rgba(192,255,192,0.5)'], + [181, 31, 'rgba(192,255,192,0.5)'], + [243, 30, 'rgba(192,255,192,0.5)'], + [304, 30, 'rgba(192,255,192,0.5)'] + ]); + + gantt.Draw(); + } +</script> +</pre> + + <h2>Properties</h2> + + <p> + You can use these properties to control how the bar chart apears. + </p> + + <ul> + <li><a href="#chart configuration">Chart configuration</a></li> + <li><a href="#background">Background</a></li> + <li><a href="#margins">Margins</a></li> + <li><a href="#labels and text">Labels and text</a></li> + <li><a href="#titles">Titles</a></li> + <li><a href="#interactive features">Interactive features</a></li> + <li><a href="#zoom">Zoom</a></li> + <li><a href="#miscellaneous">Miscellaneous</a></li> + </ul> + + + + <a name="chart configuration"></a> + <h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Chart configuration</h3> + <a name="chart.xmax"></a> + <b>chart.xmax</b><br /> + Required. This determines how many "units" wide the Gantt chart is. For example to represent a year, you would use 365, giving + a granularity of one day.<br /> + <i>Default: none</i><br /><br /> + + <a name="chart.xmin"></a> + <b>chart.xmin</b><br /> + This option can sometimes make using a Gantt chart spread over several pages easier.<br /> + <i>Default: 0</i><br /><br /> + + +<a name="background"></a> +<h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Background</h3> <a name="chart.background.barcolor1"></a> +<b>chart.background.barcolor1</b><br /> + Color of the background bars<br /><i>Default: white</i><br /><br /> + <a name="chart.background.barcolor2"></a> +<b>chart.background.barcolor2</b><br /> + Color of the background bars<br /><i>Default: white</i><br /><br /> + <a name="chart.background.grid"></a> +<b>chart.background.grid</b><br /> + Whether a grid is shown as part of the background<br /><i>Default: true</i><br /><br /> + <a name="chart.background.grid.color"></a> +<b>chart.background.grid.color</b><br /> + The color of the background grid.<br /><i>Default: #eee</i><br /><br /> + <a name="chart.background.grid.hsize"></a> +<b>chart.background.grid.hsize</b><br /> + The size of the horizontal grid.<br /><i>Default: 20</i><br /><br /> + <a name="chart.background.grid.vsize"></a> +<b>chart.background.grid.vsize</b><br /> + The size of the vertical grid.<br /><i>Default: 20</i><br /><br /> + <a name="chart.background.grid.width"></a> +<b>chart.background.grid.width</b><br /> + The line width of the background grid.<br /><i>Default: 1</i><br /><br /> + <a name="chart.background.grid.autofit"></a> +<b>chart.background.grid.autofit</b><br /> + Instead of specifying a pixel width/height for the background grid, you can use autofit and specify how many horizontal and vertical lines you want.<br /><i>Default: false</i><br /><br /> + <a name="chart.background.grid.autofit.numhlines"></a> +<b>chart.background.grid.autofit.numhlines</b><br /> + When using autofit this allows you to specify how many horizontal grid lines you want. <br /><i>Default: 7</i><br /><br /> + <a name="chart.background.grid.autofit.numvlines"></a> +<b>chart.background.grid.autofit.numvlines</b><br /> + When using autofit this allows you to specify how many vertical grid lines you want. <br /><i>Default: 20</i><br /><br /> +<a name="margins"></a> +<h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Margins</h3> + + + + <a name="chart.gutter.left"></a> + <b>chart.gutter.left</b><br /> + The left gutter of the chart, (the gutter is where the labels and title are)).<br /> + <i>Default: 75</i><br /><br /> + + <a name="chart.gutter.right"></a> + <b>chart.gutter.right</b><br /> + The right gutter of the chart, (the gutter is where the labels and title are).<br /> + <i>Default: 25</i><br /><br /> + + <a name="chart.gutter.top"></a> + <b>chart.gutter.top</b><br /> + The top gutter of the chart, (the gutter is where the labels and title are).<br /> + <i>Default: 25</i><br /><br /> + + <a name="chart.gutter.bottom"></a> + <b>chart.gutter.bottom</b><br /> + The bottom gutter of the chart, (the gutter is where the labels and title are).<br /> + <i>Default: 25</i><br /><br /> + +<a name="labels and text"></a> +<h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Labels and text</h3> <a name="chart.text.size"></a> +<b>chart.text.size</b><br /> + The size of the text (in points).<br /><i>Default: 10</i><br /><br /> + <a name="chart.text.font"></a> +<b>chart.text.font</b><br /> + The font used to render the text.<br /><i>Default: Verdana</i><br /><br /> + <a name="chart.text.color"></a> +<b>chart.text.color</b><br /> + The color of the labels. <br /><i>Default: black</i><br /><br /> + <a name="chart.labels"></a> +<b>chart.labels</b><br /> + An array of the labels which are applied to the chart.<br /><i>Default: [] (An empty array)</i><br /><br /> +<a name="titles"></a> +<h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Titles</h3> + +<a name="chart.title"></a> +<b>chart.title</b><br /> + The title of the chart.<br /><i>Default: not set</i><br /><br /> + + + +<a name="chart.title.font"></a> +<b>chart.title.font</b><br /> +The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)<br /> +<i>Default: null</i><br /><br /> + +<a name="chart.title.size"></a> +<b>chart.title.size</b><br /> +The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.<br /> +<i>Default: null</i><br /><br /> + +<a name="chart.title.bold"></a> +<b>chart.title.bold</b><br /> +Whather the title is bold or not.<br /> +<i>Default: true</i><br /><br /> + +<a name="chart.title.background"></a> +<b>chart.title.background</b><br /> +The background color (if any) for the title.<br /> +<i>Default: null</i><br /><br /> + + <a name="chart.title.color"></a> +<b>chart.title.color</b><br /> + The color of the title.<br /> <i>Default: black</i><br /><br /> + <a name="chart.title.hpos"></a> +<b>chart.title.hpos</b><br /> + This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position. <br /><i>Default: null</i><br /><br /> + <a name="chart.title.vpos"></a> +<b>chart.title.vpos</b><br /> + This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.<br /><i>Default: null</i><br /><br /> +<a name="interactive features"></a> +<h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Interactive features</h3> <a name="chart.tooltips"></a> +<b>chart.tooltips</b><br /> + An array of tooltips that are shown when the bars are clicked. They can contain HTML.<br /><i>Default: [] (An empty array)</i><br /><br /> + <a name="chart.tooltips.effect"></a> +<b>chart.tooltips.effect</b><br /> + The animated effect used for showing tooltips. Can be either <i>fade</i> or <i>expand</i>.<br /><i>Default: fade</i><br /><br /> + <a name="chart.tooltips.css.class"></a> +<b>chart.tooltips.css.class</b><br /> + This is the name of the CSS class the chart uses.<br /><i>Default: RGraph_tooltip</i><br /><br /> + <a name="chart.tooltips.override"></a> +<b>chart.tooltips.override</b><br /> + If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more information on the <a href="tooltips.html">tooltips documentation page</a><br /><i>Default: null</i><br /><br /> + <a name="chart.contextmenu"></a> +<b>chart.contextmenu</b><br /> + An array of context menu items. Cannot be used in conjunction with tooltips.<br /><i>Default: [] (An empty array)</i><br /><br /> + <a name="chart.annotatable"></a> +<b>chart.annotatable</b><br /> + Whether annotations are enabled for the chart (ie you can draw on the chart interactively.<br /><i>Default: false</i><br /><br /> + <a name="chart.annotate.color"></a> +<b>chart.annotate.color</b><br /> + If you do not allow the use of the palette, then this will be the only colour allowed for annotations.<br /><i>Default: black</i><br /><br /> + + + <a name="chart.resizable"></a> + <b>chart.resizable</b><br /> + Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).<br /> + <i>Default: false</i><br /><br /> + + <a name="chart.resize.handle.background"></a> + <b>chart.resize.handle.background</b><br /> + With this you can specify the background color for the resize handle. If you're adjusting the position of the + handle then you may need this to make the handle stand out more.<br /> + <i>Default: null</i><br /><br /> + + +<a name="zoom"></a> +<h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Zoom</h3> <a name="chart.zoom.mode"></a> +<b>chart.zoom.mode</b><br /> + Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: <i>thumbnail</i> and <i>canvas</i>.<br /><i>Default: canvas</i><br /><br /> + <a name="chart.zoom.factor"></a> +<b>chart.zoom.factor</b><br /> + This is the factor that the chart will be zoomed by (bigger values means more zoom)<br /><i>Default: 1.5</i><br /><br /> + <a name="chart.zoom.fade.in"></a> +<b>chart.zoom.fade.in</b><br /> + Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.<br /><i>Default: true</i><br /><br /> + <a name="chart.zoom.fade.out"></a> +<b>chart.zoom.fade.out</b><br /> + Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.<br /><i>Default: true</i><br /><br /> + <a name="chart.zoom.hdir"></a> +<b>chart.zoom.hdir</b><br /> + The horizontal direction of the zoom. Possible values are: <i>left</i>, <i>center</i>, <i>right</i><br /><i>Default: right</i><br /><br /> + <a name="chart.zoom.vdir"></a> +<b>chart.zoom.vdir</b><br /> + The vertical direction of the zoom. Possible values are: <i>up</i>, <i>center</i>, <i>down</i><br /><i>Default: down</i><br /><br /> + <a name="chart.zoom.delay"></a> +<b>chart.zoom.delay</b><br /> + The delay (in milliseconds) between frames.<br /><i>Default: 50</i><br /><br /> + <a name="chart.zoom.frames"></a> +<b>chart.zoom.frames</b><br /> + The number of frames in the zoom animation.<br /><i>Default: 10</i><br /><br /> + <a name="chart.zoom.shadow"></a> +<b>chart.zoom.shadow</b><br /> + Whether or not the zoomed canvas has a shadow or not.<br /><i>Default: true</i><br /><br /> + <a name="chart.zoom.thumbnail.width"></a> +<b>chart.zoom.thumbnail.width</b><br /> + When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.<br /><i>Default: 75</i><br /><br /> + <a name="chart.zoom.thumbnail.height"></a> +<b>chart.zoom.thumbnail.height</b><br /> + When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.<br /><i>Default: 75</i><br /><br /> + <a name="chart.zoom.background"></a> +<b>chart.zoom.background</b><br /> + Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.<br /><i>Default: true</i><br /><br /> + + <a name="miscellaneous"></a> + <h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Miscellaneous</h3> + + <a name="chart.highlight.stroke"></a> + <b>chart.highlight.stroke</b><br /> + If you use tooltips, this controls the colour of the highlight stroke. + <br /><i>Default: black</i><br /><br /> + + <a name="chart.highlight.fill"></a> + <b>chart.highlight.fill</b><br /> + If you use tooltips, this controls the colour of the highlight fill. + <br /><i>Default: rgba(255,255,255,0.5)</i><br /><br /> + +<a name="chart.borders"></a> +<b>chart.borders</b><br /> + Whether a border is shown on the event bars<br /><i>Default: true</i><br /><br /> + <a name="chart.defaultcolor"></a> +<b>chart.defaultcolor</b><br /> + The default color of bars. If you don't specify a color for the event, this will be used.<br /><i>Default: white</i><br /><br /> + <a name="chart.events"></a> +<b>chart.events</b><br /> + An array of event information that is displayed on the gantt. See below for further information.<br /><i>Default: [] (An empty array)</i><br /><br /> + <a name="chart.vbars"></a> +<b>chart.vbars</b><br /> + Vertical bars used for decorative purposes, or for marking something on the chart (an event for example). See below for further information.<br /><i>Default: [] (An empty array)</i><br /><br /> +</div><!-- /DOCS --><br /><br /> + + <a name="events"></a> + <h2>Adding events to your Gantt chart</h2> + + <p> + To add events, you specify them using the <i>chart.events</i> property. You could use the following to set some events on your gantt chart: + </p> + + <pre class="code">gantt.Set('chart.events', [ + [31, 28, 75, 'Richard'], + [12, 28, 67, 'Fred'], + [59, 14, 0, 'Barney'], + [59, 21, 5, 'Gloria'], + [46, 31, 94, 'Paul'], + [80, 21, 46, 'Harry'], + [94, 17, 84, 'Shane'], + [34, 14, 32, 'Barry'], + [64, 14, 28, 'Cynthia', 'red', 'yellow'], + [13, 61, 74, 'Graham'], + [84, 31, 16, 'Paul'] + ]); +</pre> + + <p> + The first value is the (zero indexed) start number relative to your <i>chart.xmax</i>. So if you have set your <i>chart.xmax</i> to 62, (to represent + two months), and this value is 31, the start will be the start of the second month. In this case you could give two labels - + <i>['July', 'August']</i>. + </p> + + <p> + The second value is the duration. So using the previous example, if you set this to 7, you would have an event lasting a week. + </p> + + <p> + The third value is the "percentage complete" indicator. This is shown to the right of the event, and is optional - you can + specify <i>null</i> if you wish. + </p> + + <p> + The fourth value is the label that is used on the left hand side. + </p> + + <p> + The optional fifth value stipulates the background colour that the bar is. Default is white. + </p> + + <p> + The optional sixth value is the foreground color of the bar. Defaulting to #0c0. + </p> + + <p> + The optional seventh value is the border color, defaulting to black + </p> + + <p> + And the optional eigth value is the numerical linewidth of the border. The default is 1. + </p> + + <a name="vbars"></a> + <h2>Adding vertical bars to your Gantt chart</h2> + + <p> + You can add decorative vertical bars like so: + </p> + + <pre class="code">gantt.Set('chart.vbars', [ + [0, 31, 'rgba(192,255,192,0.5)'], + [59, 31, 'rgba(192,255,192,0.5)'], + [120, 31, 'rgba(192,255,192,0.5)'], + [181, 31, 'rgba(192,255,192,0.5)'], + [243, 30, 'rgba(192,255,192,0.5)'], + [304, 30, 'rgba(192,255,192,0.5)'], + ]); +</pre> + + <p> + You can use these for decorative purposes, or to mark events/limits. The first value is the start index, as above. + The second value is the unit length, again as above. The third value is the color of the vertical bar. + </p> + +</body> +</html>
\ No newline at end of file |