diff --git a/inst/reveal.js-3.3.0/lib/css/zenburn.css b/inst/reveal.js-3.3.0/lib/css/zenburn.css
new file mode 100644
index 0000000..07be502
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/css/zenburn.css
@@ -0,0 +1,80 @@
+/*
+
+Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
+based on dark.css by Ivan Sagalaev
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #3f3f3f;
+  color: #dcdcdc;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-tag {
+  color: #e3ceab;
+}
+
+.hljs-template-tag {
+  color: #dcdcdc;
+}
+
+.hljs-number {
+  color: #8cd0d3;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute {
+  color: #efdcbc;
+}
+
+.hljs-literal {
+  color: #efefaf;
+}
+
+.hljs-subst {
+  color: #8f8f8f;
+}
+
+.hljs-title,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-section,
+.hljs-type {
+  color: #efef8f;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link {
+  color: #dca3a3;
+}
+
+.hljs-deletion,
+.hljs-string,
+.hljs-built_in,
+.hljs-builtin-name {
+  color: #cc9393;
+}
+
+.hljs-addition,
+.hljs-comment,
+.hljs-quote,
+.hljs-meta {
+  color: #7f9f7f;
+}
+
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/inst/reveal.js-3.3.0/lib/font/league-gothic/LICENSE b/inst/reveal.js-3.3.0/lib/font/league-gothic/LICENSE
new file mode 100644
index 0000000..29513e9
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/league-gothic/LICENSE
@@ -0,0 +1,2 @@
+SIL Open Font License (OFL)
+http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
diff --git a/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.css b/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.css
new file mode 100644
index 0000000..44a33a1
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.css
@@ -0,0 +1,10 @@
+@font-face {
+    font-family: 'League Gothic';
+    src: url('league-gothic.eot');
+    src: url('league-gothic.eot?#iefix') format('embedded-opentype'),
+         url('league-gothic.woff') format('woff'),
+         url('league-gothic.ttf') format('truetype');
+
+    font-weight: normal;
+    font-style: normal;
+}
\ No newline at end of file
diff --git a/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.eot b/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.eot
new file mode 100644
index 0000000..f62619a
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.eot
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.ttf b/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.ttf
new file mode 100644
index 0000000..baa9a95
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.ttf
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.woff b/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.woff
new file mode 100644
index 0000000..8c1227b
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/league-gothic/league-gothic.woff
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/LICENSE b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/LICENSE
new file mode 100644
index 0000000..71b7a02
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/LICENSE
@@ -0,0 +1,45 @@
+SIL Open Font License
+
+Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+—————————————————————————————-
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+—————————————————————————————-
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+“Font Software” refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+“Reserved Font Name” refers to any names specified as such after the copyright statement(s).
+
+“Original Version” refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+“Modified Version” refers to any derivative made by adding to, deleting, or substituting—in part or in whole—any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+“Author” refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
\ No newline at end of file
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-italic.eot b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-italic.eot
new file mode 100644
index 0000000..32fe466
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-italic.eot
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-italic.ttf b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-italic.ttf
new file mode 100644
index 0000000..f9ac13f
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-italic.ttf
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-italic.woff b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-italic.woff
new file mode 100644
index 0000000..ceecbf1
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-italic.woff
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-regular.eot b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-regular.eot
new file mode 100644
index 0000000..4d29dda
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-regular.eot
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-regular.ttf b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-regular.ttf
new file mode 100644
index 0000000..00c833c
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-regular.ttf
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-regular.woff b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-regular.woff
new file mode 100644
index 0000000..630754a
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-regular.woff
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibold.eot b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibold.eot
new file mode 100644
index 0000000..1104e07
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibold.eot
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibold.ttf b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibold.ttf
new file mode 100644
index 0000000..6d0253d
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibold.ttf
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibold.woff b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibold.woff
new file mode 100644
index 0000000..8888cf8
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibold.woff
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot
new file mode 100644
index 0000000..cdf7334
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf
new file mode 100644
index 0000000..5644299
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff
new file mode 100644
index 0000000..7c2d3c7
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff
Binary files differ
diff --git a/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro.css b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro.css
new file mode 100644
index 0000000..0707a4f
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/font/source-sans-pro/source-sans-pro.css
@@ -0,0 +1,39 @@
+@font-face {
+    font-family: 'Source Sans Pro';
+    src: url('source-sans-pro-regular.eot');
+    src: url('source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
+         url('source-sans-pro-regular.woff') format('woff'),
+         url('source-sans-pro-regular.ttf') format('truetype');
+    font-weight: normal;
+    font-style: normal;
+}
+
+@font-face {
+    font-family: 'Source Sans Pro';
+    src: url('source-sans-pro-italic.eot');
+    src: url('source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
+         url('source-sans-pro-italic.woff') format('woff'),
+         url('source-sans-pro-italic.ttf') format('truetype');
+    font-weight: normal;
+    font-style: italic;
+}
+
+@font-face {
+    font-family: 'Source Sans Pro';
+    src: url('source-sans-pro-semibold.eot');
+    src: url('source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
+         url('source-sans-pro-semibold.woff') format('woff'),
+         url('source-sans-pro-semibold.ttf') format('truetype');
+    font-weight: 600;
+    font-style: normal;
+}
+
+@font-face {
+    font-family: 'Source Sans Pro';
+    src: url('source-sans-pro-semibolditalic.eot');
+    src: url('source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
+         url('source-sans-pro-semibolditalic.woff') format('woff'),
+         url('source-sans-pro-semibolditalic.ttf') format('truetype');
+    font-weight: 600;
+    font-style: italic;
+}
\ No newline at end of file
diff --git a/inst/reveal.js-3.3.0/lib/js/classList.js b/inst/reveal.js-3.3.0/lib/js/classList.js
new file mode 100644
index 0000000..44f2b4c
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/js/classList.js
@@ -0,0 +1,2 @@
+/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/
+if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(j){var a="classList",f="prototype",m=(j.HTMLElement||j.Element)[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.className),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.className=this.toString()}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(o){o+="";if(g(this,o)===-1){this.push(o);this._updateClassName()}};e.remove=function(p){p+="";var o=g(this,p);if(o!==-1){this.splice(o,1);this._updateClassName()}};e.toggle=function(o){o+="";if(g(this,o)===-1){this.add(o)}else{this.remove(o)}};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))};
\ No newline at end of file
diff --git a/inst/reveal.js-3.3.0/lib/js/head.min.js b/inst/reveal.js-3.3.0/lib/js/head.min.js
new file mode 100644
index 0000000..d9f87ba
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/js/head.min.js
@@ -0,0 +1,9 @@
+﻿/*! head.core - v1.0.2 */
+(function(n,t){"use strict";function r(n){a[a.length]=n}function k(n){var t=new RegExp(" ?\\b"+n+"\\b");c.className=c.className.replace(t,"")}function p(n,t){for(var i=0,r=n.length;i<r;i++)t.call(n,n[i],i)}function tt(){var t,e,f,o;c.className=c.className.replace(/ (w-|eq-|gt-|gte-|lt-|lte-|portrait|no-portrait|landscape|no-landscape)\d+/g,"");t=n.innerWidth||c.clientWidth;e=n.outerWidth||n.screen.width;u.screen.innerWidth=t;u.screen.outerWidth=e;r("w-"+t);p(i.screens,function(n){t>n?(i.screensCss.gt&&r("gt-"+n),i.screensCss.gte&&r("gte-"+n)):t<n?(i.screensCss.lt&&r("lt-"+n),i.screensCss.lte&&r("lte-"+n)):t===n&&(i.screensCss.lte&&r("lte-"+n),i.screensCss.eq&&r("e-q"+n),i.screensCss.gte&&r("gte-"+n))});f=n.innerHeight||c.clientHeight;o=n.outerHeight||n.screen.height;u.screen.innerHeight=f;u.screen.outerHeight=o;u.feature("portrait",f>t);u.feature("landscape",f<t)}function it(){n.clearTimeout(b);b=n.setTimeout(tt,50)}var y=n.document,rt=n.navigator,ut=n.location,c=y.documentElement,a=[],i={screens:[240,320,480,640,768,800,1024,1280,1440,1680,1920],screensCss:{gt:!0,gte:!1,lt:!0,lte:!1,eq:!1},browsers:[{ie:{min:6,max:11}}],browserCss:{gt:!0,gte:!1,lt:!0,lte:!1,eq:!0},html5:!0,page:"-page",section:"-section",head:"head"},v,u,s,w,o,h,l,d,f,g,nt,e,b;if(n.head_conf)for(v in n.head_conf)n.head_conf[v]!==t&&(i[v]=n.head_conf[v]);u=n[i.head]=function(){u.ready.apply(null,arguments)};u.feature=function(n,t,i){return n?(Object.prototype.toString.call(t)==="[object Function]"&&(t=t.call()),r((t?"":"no-")+n),u[n]=!!t,i||(k("no-"+n),k(n),u.feature()),u):(c.className+=" "+a.join(" "),a=[],u)};u.feature("js",!0);s=rt.userAgent.toLowerCase();w=/mobile|android|kindle|silk|midp|phone|(windows .+arm|touch)/.test(s);u.feature("mobile",w,!0);u.feature("desktop",!w,!0);s=/(chrome|firefox)[ \/]([\w.]+)/.exec(s)||/(iphone|ipad|ipod)(?:.*version)?[ \/]([\w.]+)/.exec(s)||/(android)(?:.*version)?[ \/]([\w.]+)/.exec(s)||/(webkit|opera)(?:.*version)?[ \/]([\w.]+)/.exec(s)||/(msie) ([\w.]+)/.exec(s)||/(trident).+rv:(\w.)+/.exec(s)||[];o=s[1];h=parseFloat(s[2]);switch(o){case"msie":case"trident":o="ie";h=y.documentMode||h;break;case"firefox":o="ff";break;case"ipod":case"ipad":case"iphone":o="ios";break;case"webkit":o="safari"}for(u.browser={name:o,version:h},u.browser[o]=!0,l=0,d=i.browsers.length;l<d;l++)for(f in i.browsers[l])if(o===f)for(r(f),g=i.browsers[l][f].min,nt=i.browsers[l][f].max,e=g;e<=nt;e++)h>e?(i.browserCss.gt&&r("gt-"+f+e),i.browserCss.gte&&r("gte-"+f+e)):h<e?(i.browserCss.lt&&r("lt-"+f+e),i.browserCss.lte&&r("lte-"+f+e)):h===e&&(i.browserCss.lte&&r("lte-"+f+e),i.browserCss.eq&&r("eq-"+f+e),i.browserCss.gte&&r("gte-"+f+e));else r("no-"+f);r(o);r(o+parseInt(h,10));i.html5&&o==="ie"&&h<9&&p("abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|progress|section|summary|time|video".split("|"),function(n){y.createElement(n)});p(ut.pathname.split("/"),function(n,u){if(this.length>2&&this[u+1]!==t)u&&r(this.slice(u,u+1).join("-").toLowerCase()+i.section);else{var f=n||"index",e=f.indexOf(".");e>0&&(f=f.substring(0,e));c.id=f.toLowerCase()+i.page;u||r("root"+i.section)}});u.screen={height:n.screen.height,width:n.screen.width};tt();b=0;n.addEventListener?n.addEventListener("resize",it,!1):n.attachEvent("onresize",it)})(window);
+/*! head.css3 - v1.0.0 */
+(function(n,t){"use strict";function a(n){for(var r in n)if(i[n[r]]!==t)return!0;return!1}function r(n){var t=n.charAt(0).toUpperCase()+n.substr(1),i=(n+" "+c.join(t+" ")+t).split(" ");return!!a(i)}var h=n.document,o=h.createElement("i"),i=o.style,s=" -o- -moz- -ms- -webkit- -khtml- ".split(" "),c="Webkit Moz O ms Khtml".split(" "),l=n.head_conf&&n.head_conf.head||"head",u=n[l],f={gradient:function(){var n="background-image:";return i.cssText=(n+s.join("gradient(linear,left top,right bottom,from(#9f9),to(#fff));"+n)+s.join("linear-gradient(left top,#eee,#fff);"+n)).slice(0,-n.length),!!i.backgroundImage},rgba:function(){return i.cssText="background-color:rgba(0,0,0,0.5)",!!i.backgroundColor},opacity:function(){return o.style.opacity===""},textshadow:function(){return i.textShadow===""},multiplebgs:function(){i.cssText="background:url(https://),url(https://),red url(https://)";var n=(i.background||"").match(/url/g);return Object.prototype.toString.call(n)==="[object Array]"&&n.length===3},boxshadow:function(){return r("boxShadow")},borderimage:function(){return r("borderImage")},borderradius:function(){return r("borderRadius")},cssreflections:function(){return r("boxReflect")},csstransforms:function(){return r("transform")},csstransitions:function(){return r("transition")},touch:function(){return"ontouchstart"in n},retina:function(){return n.devicePixelRatio>1},fontface:function(){var t=u.browser.name,n=u.browser.version;switch(t){case"ie":return n>=9;case"chrome":return n>=13;case"ff":return n>=6;case"ios":return n>=5;case"android":return!1;case"webkit":return n>=5.1;case"opera":return n>=10;default:return!1}}};for(var e in f)f[e]&&u.feature(e,f[e].call(),!0);u.feature()})(window);
+/*! head.load - v1.0.3 */
+(function(n,t){"use strict";function w(){}function u(n,t){if(n){typeof n=="object"&&(n=[].slice.call(n));for(var i=0,r=n.length;i<r;i++)t.call(n,n[i],i)}}function it(n,i){var r=Object.prototype.toString.call(i).slice(8,-1);return i!==t&&i!==null&&r===n}function s(n){return it("Function",n)}function a(n){return it("Array",n)}function et(n){var i=n.split("/"),t=i[i.length-1],r=t.indexOf("?");return r!==-1?t.substring(0,r):t}function f(n){(n=n||w,n._done)||(n(),n._done=1)}function ot(n,t,r,u){var f=typeof n=="object"?n:{test:n,success:!t?!1:a(t)?t:[t],failure:!r?!1:a(r)?r:[r],callback:u||w},e=!!f.test;return e&&!!f.success?(f.success.push(f.callback),i.load.apply(null,f.success)):e||!f.failure?u():(f.failure.push(f.callback),i.load.apply(null,f.failure)),i}function v(n){var t={},i,r;if(typeof n=="object")for(i in n)!n[i]||(t={name:i,url:n[i]});else t={name:et(n),url:n};return(r=c[t.name],r&&r.url===t.url)?r:(c[t.name]=t,t)}function y(n){n=n||c;for(var t in n)if(n.hasOwnProperty(t)&&n[t].state!==l)return!1;return!0}function st(n){n.state=ft;u(n.onpreload,function(n){n.call()})}function ht(n){n.state===t&&(n.state=nt,n.onpreload=[],rt({url:n.url,type:"cache"},function(){st(n)}))}function ct(){var n=arguments,t=n[n.length-1],r=[].slice.call(n,1),f=r[0];return(s(t)||(t=null),a(n[0]))?(n[0].push(t),i.load.apply(null,n[0]),i):(f?(u(r,function(n){s(n)||!n||ht(v(n))}),b(v(n[0]),s(f)?f:function(){i.load.apply(null,r)})):b(v(n[0])),i)}function lt(){var n=arguments,t=n[n.length-1],r={};return(s(t)||(t=null),a(n[0]))?(n[0].push(t),i.load.apply(null,n[0]),i):(u(n,function(n){n!==t&&(n=v(n),r[n.name]=n)}),u(n,function(n){n!==t&&(n=v(n),b(n,function(){y(r)&&f(t)}))}),i)}function b(n,t){if(t=t||w,n.state===l){t();return}if(n.state===tt){i.ready(n.name,t);return}if(n.state===nt){n.onpreload.push(function(){b(n,t)});return}n.state=tt;rt(n,function(){n.state=l;t();u(h[n.name],function(n){f(n)});o&&y()&&u(h.ALL,function(n){f(n)})})}function at(n){n=n||"";var t=n.split("?")[0].split(".");return t[t.length-1].toLowerCase()}function rt(t,i){function e(t){t=t||n.event;u.onload=u.onreadystatechange=u.onerror=null;i()}function o(f){f=f||n.event;(f.type==="load"||/loaded|complete/.test(u.readyState)&&(!r.documentMode||r.documentMode<9))&&(n.clearTimeout(t.errorTimeout),n.clearTimeout(t.cssTimeout),u.onload=u.onreadystatechange=u.onerror=null,i())}function s(){if(t.state!==l&&t.cssRetries<=20){for(var i=0,f=r.styleSheets.length;i<f;i++)if(r.styleSheets[i].href===u.href){o({type:"load"});return}t.cssRetries++;t.cssTimeout=n.setTimeout(s,250)}}var u,h,f;i=i||w;h=at(t.url);h==="css"?(u=r.createElement("link"),u.type="text/"+(t.type||"css"),u.rel="stylesheet",u.href=t.url,t.cssRetries=0,t.cssTimeout=n.setTimeout(s,500)):(u=r.createElement("script"),u.type="text/"+(t.type||"javascript"),u.src=t.url);u.onload=u.onreadystatechange=o;u.onerror=e;u.async=!1;u.defer=!1;t.errorTimeout=n.setTimeout(function(){e({type:"timeout"})},7e3);f=r.head||r.getElementsByTagName("head")[0];f.insertBefore(u,f.lastChild)}function vt(){for(var t,u=r.getElementsByTagName("script"),n=0,f=u.length;n<f;n++)if(t=u[n].getAttribute("data-headjs-load"),!!t){i.load(t);return}}function yt(n,t){var v,p,e;return n===r?(o?f(t):d.push(t),i):(s(n)&&(t=n,n="ALL"),a(n))?(v={},u(n,function(n){v[n]=c[n];i.ready(n,function(){y(v)&&f(t)})}),i):typeof n!="string"||!s(t)?i:(p=c[n],p&&p.state===l||n==="ALL"&&y()&&o)?(f(t),i):(e=h[n],e?e.push(t):e=h[n]=[t],i)}function e(){if(!r.body){n.clearTimeout(i.readyTimeout);i.readyTimeout=n.setTimeout(e,50);return}o||(o=!0,vt(),u(d,function(n){f(n)}))}function k(){r.addEventListener?(r.removeEventListener("DOMContentLoaded",k,!1),e()):r.readyState==="complete"&&(r.detachEvent("onreadystatechange",k),e())}var r=n.document,d=[],h={},c={},ut="async"in r.createElement("script")||"MozAppearance"in r.documentElement.style||n.opera,o,g=n.head_conf&&n.head_conf.head||"head",i=n[g]=n[g]||function(){i.ready.apply(null,arguments)},nt=1,ft=2,tt=3,l=4,p;if(r.readyState==="complete")e();else if(r.addEventListener)r.addEventListener("DOMContentLoaded",k,!1),n.addEventListener("load",e,!1);else{r.attachEvent("onreadystatechange",k);n.attachEvent("onload",e);p=!1;try{p=!n.frameElement&&r.documentElement}catch(wt){}p&&p.doScroll&&function pt(){if(!o){try{p.doScroll("left")}catch(t){n.clearTimeout(i.readyTimeout);i.readyTimeout=n.setTimeout(pt,50);return}e()}}()}i.load=i.js=ut?lt:ct;i.test=ot;i.ready=yt;i.ready(r,function(){y()&&u(h.ALL,function(n){f(n)});i.feature&&i.feature("domloaded",!0)})})(window);
+/*
+//# sourceMappingURL=head.min.js.map
+*/
\ No newline at end of file
diff --git a/inst/reveal.js-3.3.0/lib/js/html5shiv.js b/inst/reveal.js-3.3.0/lib/js/html5shiv.js
new file mode 100644
index 0000000..50649b9
--- /dev/null
+++ b/inst/reveal.js-3.3.0/lib/js/html5shiv.js
@@ -0,0 +1,7 @@
+document.createElement('header');
+document.createElement('nav');
+document.createElement('section');
+document.createElement('article');
+document.createElement('aside');
+document.createElement('footer');
+document.createElement('hgroup');
\ No newline at end of file
