├── .nojekyll ├── src ├── half.c ├── hello.c ├── half_main.c ├── enum.c ├── goto.c ├── pointer.c ├── block_scope.c ├── triple.c ├── prefix_postfix.c ├── readwrite.c ├── open_file.c ├── counter.c ├── ones.c ├── fib.c ├── little_endian.c ├── print_array.c ├── case.c ├── string_copy.c ├── pointer_and_array.c ├── function_pointer.c ├── typedef_cat.c ├── pointer_cat.c ├── factorial.c ├── cat.c └── malloc_cat.c ├── revealjs ├── _static │ ├── revealjs │ │ ├── lib │ │ │ ├── font │ │ │ │ └── source-sans-pro │ │ │ │ │ └── source-sans-pro.css │ │ │ └── js │ │ │ │ └── head.min.js │ │ ├── plugin │ │ │ └── notes │ │ │ │ ├── notes.js │ │ │ │ └── notes.html │ │ ├── css │ │ │ ├── theme │ │ │ │ └── white.css │ │ │ └── reveal.css │ │ └── js │ │ │ └── reveal.js │ ├── footer-logo.png │ ├── revealjs-hackbright.css │ ├── pygments.css │ └── revealjs-sphinx.css └── .buildinfo ├── _static ├── hb-logo.png ├── pygments.css └── handouts-sphinx.css ├── README.md └── .buildinfo /.nojekyll: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/half.c: -------------------------------------------------------------------------------- 1 | double half(double x) { return x / 2; } 2 | -------------------------------------------------------------------------------- /revealjs/_static/revealjs/lib/font/source-sans-pro/source-sans-pro.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_static/hb-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scotchka/c-course/HEAD/_static/hb-logo.png -------------------------------------------------------------------------------- /src/hello.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | printf("Hello World\n"); 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /revealjs/_static/footer-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scotchka/c-course/HEAD/revealjs/_static/footer-logo.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # c-course 2 | 3 | [handouts](https://scotchka.github.io/c-course) 4 | 5 | [slides](https://scotchka.github.io/c-course/revealjs) 6 | -------------------------------------------------------------------------------- /src/half_main.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | 5 | double half(double); 6 | 7 | printf("%f\n", half(5)); 8 | return 0; 9 | } -------------------------------------------------------------------------------- /src/enum.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | enum fruits { APPLE, BERRY, CHERRY }; 5 | printf("%d %d %d\n", APPLE, BERRY, CHERRY); 6 | return 0; 7 | } -------------------------------------------------------------------------------- /src/goto.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | 5 | goto yay; 6 | 7 | printf("hello\n"); 8 | 9 | yay: 10 | printf("world\n"); 11 | 12 | return 0; 13 | } -------------------------------------------------------------------------------- /.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: 4 | tags: 5 | -------------------------------------------------------------------------------- /revealjs/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: 4 | tags: 5 | -------------------------------------------------------------------------------- /src/pointer.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | int x; 5 | int *p; 6 | 7 | p = &x; 8 | x = 42; 9 | 10 | printf("address %p contains %d\n", p, *p); 11 | return 0; 12 | } -------------------------------------------------------------------------------- /src/block_scope.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | int x = 2; 5 | 6 | if (1) { 7 | int x = 3; 8 | printf("%d\n", x); 9 | } 10 | 11 | printf("%d\n", x); 12 | return 0; 13 | } -------------------------------------------------------------------------------- /src/triple.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void triple(int *p) { 4 | *p = *p * 3; 5 | } 6 | 7 | int main(void) { 8 | int x = 5; 9 | triple(&x); 10 | printf("%d\n", x); 11 | 12 | return 0; 13 | } -------------------------------------------------------------------------------- /src/prefix_postfix.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | char x = 'a'; 5 | 6 | printf("%c\n", ++x); 7 | printf("%c\n", x); 8 | 9 | printf("%c\n", x++); 10 | printf("%c\n", x); 11 | 12 | return 0; 13 | } 14 | -------------------------------------------------------------------------------- /src/readwrite.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(void) { 5 | char buffer[BUFSIZ]; 6 | int n; 7 | 8 | while ((n = read(0, buffer, BUFSIZ)) > 0) 9 | write(1, buffer, n); 10 | 11 | return 0; 12 | } -------------------------------------------------------------------------------- /src/open_file.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | FILE *fp = fopen("open_file.c", "r"); 5 | 6 | int c; 7 | while ((c = getc(fp)) != EOF) { 8 | putc(c, stdout); 9 | } 10 | printf("\n"); 11 | fclose(fp); 12 | return 0; 13 | } -------------------------------------------------------------------------------- /src/counter.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int counter() { 4 | static int n = 0; 5 | ++n; 6 | return n; 7 | } 8 | 9 | int main(void) { 10 | printf("%d\n", counter()); 11 | printf("%d\n", counter()); 12 | printf("%d\n", counter()); 13 | 14 | return 0; 15 | } -------------------------------------------------------------------------------- /src/ones.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | int i = 0, ones[3]; 5 | 6 | while (i < 3) { 7 | ones[i++] = 1; // ++i does not work 8 | } 9 | 10 | for (i = 0; i < 3; i++) { 11 | printf("%d: %d\n", i, ones[i]); 12 | } 13 | 14 | return 0; 15 | } -------------------------------------------------------------------------------- /src/fib.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int fib(int n) { 4 | if (n <= 2) 5 | return 1; 6 | 7 | return fib(n - 1) + fib(n - 2); 8 | } 9 | 10 | int main(void) { 11 | int n = 1; 12 | 13 | while (n <= 10) { 14 | printf("%d ", fib(n)); 15 | n++; 16 | } 17 | printf("\n"); 18 | } -------------------------------------------------------------------------------- /src/little_endian.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | 5 | unsigned long n = 256 * 256; 6 | unsigned char *p = (unsigned char *)&n; 7 | 8 | int i; 9 | for (i = 0; i < sizeof n; i++) { 10 | printf("%d ", *(p + i)); 11 | } 12 | 13 | printf("\n"); 14 | return 0; 15 | } -------------------------------------------------------------------------------- /src/print_array.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void print_array(int *p, int len) { 4 | int i; 5 | for (i = 0; i < len; ++i) 6 | printf("%d ", p[i]); 7 | printf("\n"); 8 | } 9 | 10 | int main(void) { 11 | int arr[] = {5, 4, 3, 2, 1}; 12 | print_array(arr, 5); 13 | 14 | return 0; 15 | } -------------------------------------------------------------------------------- /src/case.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | int n = 2; 5 | 6 | switch (n) { 7 | case 1: 8 | printf("one\n"); 9 | case 2: 10 | printf("two\n"); 11 | case 3: 12 | printf("three\n"); 13 | break; 14 | case 4: 15 | printf("four\n"); 16 | } 17 | 18 | return 0; 19 | } -------------------------------------------------------------------------------- /src/string_copy.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void string_copy(char *source, char *target) { 4 | while ((*source++ = *target++)) 5 | ; 6 | } 7 | 8 | int main(void) { 9 | char original[] = "hello"; 10 | char copy[6]; 11 | string_copy(copy, original); 12 | printf("%s\n", copy); 13 | return 0; 14 | } -------------------------------------------------------------------------------- /revealjs/_static/revealjs-hackbright.css: -------------------------------------------------------------------------------- 1 | @import url("revealjs-sphinx.css"); 2 | 3 | #slide-footer { 4 | background-size: 5vw 5vw; 5 | background-image: url("footer-logo.png"); 6 | background-repeat: no-repeat; 7 | height: 5vw; 8 | position: absolute; 9 | bottom: 2vw; 10 | left: 2vw; 11 | } -------------------------------------------------------------------------------- /src/pointer_and_array.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | int arr[] = {5, 4, 3, 2, 1}; 5 | int *p; 6 | 7 | p = &arr[0]; 8 | printf("%d\n", *(p + 2)); 9 | 10 | p = arr; 11 | printf("%d\n", *(p + 2)); 12 | printf("%d\n", *(arr + 2)); 13 | printf("%d\n", p[2]); 14 | 15 | return 0; 16 | } -------------------------------------------------------------------------------- /src/function_pointer.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int add_two(int n) { return n + 2; } 4 | 5 | int triple(int n) { return n * 3; } 6 | 7 | int main(void) { 8 | 9 | int (*fp)(int); 10 | 11 | fp = &add_two; 12 | printf("%d\n", (*fp)(42)); 13 | 14 | fp = triple; 15 | printf("%d\n", fp(42)); 16 | 17 | return 0; 18 | } -------------------------------------------------------------------------------- /src/typedef_cat.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | typedef struct cat { 4 | char *name; 5 | char *greeting; 6 | int hunger; 7 | } Cat; 8 | 9 | void speak(Cat *cp) { 10 | printf("%s, I am %s. My hunger is %d.\n", 11 | (*cp).greeting, cp->name, cp->hunger); 12 | } 13 | 14 | int main(void) { 15 | Cat grumpy = {"Grumpy", "Meh", 80}; 16 | Cat *cp = &grumpy; 17 | 18 | speak(cp); 19 | 20 | return 0; 21 | } 22 | -------------------------------------------------------------------------------- /src/pointer_cat.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | struct cat { 4 | char *name; 5 | char *greeting; 6 | int hunger; 7 | }; 8 | 9 | void speak(struct cat *cp) { 10 | printf("%s, I am %s. My hunger is %d.\n", 11 | (*cp).greeting, cp->name, cp->hunger); 12 | } 13 | 14 | int main(void) { 15 | struct cat grumpy = {"Grumpy", "Meh", 80}; 16 | struct cat *cp = &grumpy; 17 | 18 | speak(cp); 19 | 20 | return 0; 21 | } 22 | -------------------------------------------------------------------------------- /src/factorial.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char *argv[]) { 5 | 6 | static int acc = 1; 7 | 8 | if (argc < 2) { 9 | printf("error: need argument\n"); 10 | return 0; 11 | } 12 | 13 | int n = atoi(argv[1]); 14 | 15 | if (n <= 1) { 16 | printf("%d\n", acc); 17 | return 1; 18 | } else { 19 | acc = n * acc; 20 | sprintf(argv[1], "%d", --n); 21 | return main(argc, argv); 22 | } 23 | } -------------------------------------------------------------------------------- /src/cat.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | 5 | struct cat { 6 | char *name; 7 | char *greeting; 8 | int hunger; 9 | } grumpy; 10 | 11 | grumpy.name = "Grumpy"; 12 | grumpy.greeting = "Meh"; 13 | grumpy.hunger = 80; 14 | 15 | printf("%s, I am %s. My hunger is %d.\n", 16 | grumpy.greeting, grumpy.name, grumpy.hunger); 17 | 18 | struct cat bub = {"Lil Bub", "Meow", 50}; 19 | printf("%s, I am %s. My hunger is %d.\n", 20 | bub.greeting, bub.name, bub.hunger); 21 | 22 | return 0; 23 | } -------------------------------------------------------------------------------- /src/malloc_cat.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | typedef struct cat { 5 | char *name; 6 | char *greeting; 7 | int hunger; 8 | } Cat; 9 | 10 | void speak(Cat *cp) { 11 | printf("%s, I am %s. My hunger is %d.\n", 12 | cp->greeting, cp->name, cp->hunger); 13 | } 14 | int main(void) { 15 | int i; for (i = 0; i < 3; i++) { 16 | Cat *cp; 17 | cp = (Cat *)malloc(sizeof(Cat)); 18 | cp->name = "Grumpy"; cp->greeting = "Meh"; 19 | cp->hunger = 15; 20 | 21 | speak(cp); 22 | free(cp); 23 | } 24 | return 0; 25 | } 26 | -------------------------------------------------------------------------------- /revealjs/_static/revealjs/plugin/notes/notes.js: -------------------------------------------------------------------------------- 1 | var RevealNotes=(function(){function a(g){if(!g){var f=document.querySelector('script[src$="notes.js"]').src;f=f.replace(/notes\.js(\?.*)?$/,"");g=f+"notes.html"}var e=window.open(g,"reveal.js - Notes","width=1100,height=700");if(!e){alert("Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.");return}e.Reveal=window.Reveal;function b(){var h=setInterval(function(){e.postMessage(JSON.stringify({namespace:"reveal-notes",type:"connect",url:window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,state:Reveal.getState()}),"*")},500);window.addEventListener("message",function(i){var j=JSON.parse(i.data);if(j&&j.namespace==="reveal-notes"&&j.type==="connected"){clearInterval(h);c()}})}function d(k){var m=Reveal.getCurrentSlide(),h=m.querySelector("aside.notes"),i=m.querySelector(".current-fragment");var j={namespace:"reveal-notes",type:"state",notes:"",markdown:false,whitespace:"normal",state:Reveal.getState()};if(m.hasAttribute("data-notes")){j.notes=m.getAttribute("data-notes");j.whitespace="pre-wrap"}if(i){var l=i.querySelector("aside.notes");if(l){h=l}else{if(i.hasAttribute("data-notes")){j.notes=i.getAttribute("data-notes");j.whitespace="pre-wrap";h=null}}}if(h){j.notes=h.innerHTML;j.markdown=typeof h.getAttribute("data-markdown")==="string"}e.postMessage(JSON.stringify(j),"*")}function c(){Reveal.addEventListener("slidechanged",d);Reveal.addEventListener("fragmentshown",d);Reveal.addEventListener("fragmenthidden",d);Reveal.addEventListener("overviewhidden",d);Reveal.addEventListener("overviewshown",d);Reveal.addEventListener("paused",d);Reveal.addEventListener("resumed",d);d()}b()}if(!/receiver/i.test(window.location.search)){if(window.location.search.match(/(\?|\&)notes/gi)!==null){a()}Reveal.addKeyBinding({keyCode:83,key:"S",description:"Speaker notes view"},function(){a()})}return{open:a}})(); -------------------------------------------------------------------------------- /revealjs/_static/revealjs/css/theme/white.css: -------------------------------------------------------------------------------- 1 | @import url(../../lib/font/source-sans-pro/source-sans-pro.css);section.has-dark-background,section.has-dark-background h1,section.has-dark-background h2,section.has-dark-background h3,section.has-dark-background h4,section.has-dark-background h5,section.has-dark-background h6{color:#fff}body{background:#fff;background-color:#fff}.reveal{font-family:"Source Sans Pro",Helvetica,sans-serif;font-size:42px;font-weight:normal;color:#222}::selection{color:#fff;background:#98bdef;text-shadow:none}::-moz-selection{color:#fff;background:#98bdef;text-shadow:none}.reveal .slides section,.reveal .slides section>section{line-height:1.3;font-weight:inherit}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{margin:0 0 20px 0;color:#222;font-family:"Source Sans Pro",Helvetica,sans-serif;font-weight:600;line-height:1.2;letter-spacing:normal;text-transform:uppercase;text-shadow:none;word-wrap:break-word}.reveal h1{font-size:2.5em}.reveal h2{font-size:1.6em}.reveal h3{font-size:1.3em}.reveal h4{font-size:1em}.reveal h1{text-shadow:none}.reveal p{margin:20px 0;line-height:1.3}.reveal img,.reveal video,.reveal iframe{max-width:95%;max-height:95%}.reveal strong,.reveal b{font-weight:bold}.reveal em{font-style:italic}.reveal ol,.reveal dl,.reveal ul{display:inline-block;text-align:left;margin:0 0 0 1em}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ul ul,.reveal ul ol,.reveal ol ol,.reveal ol ul{display:block;margin-left:40px}.reveal dt{font-weight:bold}.reveal dd{margin-left:40px}.reveal blockquote{display:block;position:relative;width:70%;margin:20px auto;padding:5px;font-style:italic;background:rgba(255,255,255,0.05);box-shadow:0 0 2px rgba(0,0,0,0.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{display:block;position:relative;width:90%;margin:20px auto;text-align:left;font-size:.55em;font-family:monospace;line-height:1.2em;word-wrap:break-word;box-shadow:0 0 6px rgba(0,0,0,0.3)}.reveal code{font-family:monospace;text-transform:none}.reveal pre code{display:block;padding:5px;overflow:auto;max-height:400px;word-wrap:normal}.reveal table{margin:auto;border-collapse:collapse;border-spacing:0}.reveal table th{font-weight:bold}.reveal table th,.reveal table td{text-align:left;padding:.2em .5em .2em .5em;border-bottom:1px solid}.reveal table th[align="center"],.reveal table td[align="center"]{text-align:center}.reveal table th[align="right"],.reveal table td[align="right"]{text-align:right}.reveal table tbody tr:last-child th,.reveal table tbody tr:last-child td{border-bottom:0}.reveal sup{vertical-align:super;font-size:smaller}.reveal sub{vertical-align:sub;font-size:smaller}.reveal small{display:inline-block;font-size:.6em;line-height:1.2em;vertical-align:top}.reveal small *{vertical-align:top}.reveal a{color:#2a76dd;text-decoration:none;-webkit-transition:color .15s ease;-moz-transition:color .15s ease;transition:color .15s ease}.reveal a:hover{color:#6ca0e8;text-shadow:none;border:0}.reveal .roll span:after{color:#fff;background:#1a53a1}.reveal section img{margin:15px 0;background:rgba(255,255,255,0.12);border:4px solid #222;box-shadow:0 0 10px rgba(0,0,0,0.15)}.reveal section img.plain{border:0;box-shadow:none}.reveal a img{-webkit-transition:all .15s linear;-moz-transition:all .15s linear;transition:all .15s linear}.reveal a:hover img{background:rgba(255,255,255,0.2);border-color:#2a76dd;box-shadow:0 0 20px rgba(0,0,0,0.55)}.reveal .controls{color:#2a76dd}.reveal .progress{background:rgba(0,0,0,0.2);color:#2a76dd}.reveal .progress span{-webkit-transition:width 800ms cubic-bezier(0.26,0.86,0.44,0.985);-moz-transition:width 800ms cubic-bezier(0.26,0.86,0.44,0.985);transition:width 800ms cubic-bezier(0.26,0.86,0.44,0.985)}@media print{.backgrounds{background-color:#fff}} -------------------------------------------------------------------------------- /_static/pygments.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #eeffcc; } 3 | .highlight .c { color: #408090; font-style: italic } /* Comment */ 4 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 5 | .highlight .k { color: #007020; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #666666 } /* Operator */ 7 | .highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ 8 | .highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ 9 | .highlight .cp { color: #007020 } /* Comment.Preproc */ 10 | .highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ 11 | .highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ 12 | .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ 13 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 14 | .highlight .ge { font-style: italic } /* Generic.Emph */ 15 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 16 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 17 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 18 | .highlight .go { color: #333333 } /* Generic.Output */ 19 | .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ 20 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 21 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 22 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 23 | .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ 24 | .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ 25 | .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ 26 | .highlight .kp { color: #007020 } /* Keyword.Pseudo */ 27 | .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ 28 | .highlight .kt { color: #902000 } /* Keyword.Type */ 29 | .highlight .m { color: #208050 } /* Literal.Number */ 30 | .highlight .s { color: #4070a0 } /* Literal.String */ 31 | .highlight .na { color: #4070a0 } /* Name.Attribute */ 32 | .highlight .nb { color: #007020 } /* Name.Builtin */ 33 | .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ 34 | .highlight .no { color: #60add5 } /* Name.Constant */ 35 | .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ 36 | .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ 37 | .highlight .ne { color: #007020 } /* Name.Exception */ 38 | .highlight .nf { color: #06287e } /* Name.Function */ 39 | .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ 40 | .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ 41 | .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ 42 | .highlight .nv { color: #bb60d5 } /* Name.Variable */ 43 | .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ 44 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 45 | .highlight .mb { color: #208050 } /* Literal.Number.Bin */ 46 | .highlight .mf { color: #208050 } /* Literal.Number.Float */ 47 | .highlight .mh { color: #208050 } /* Literal.Number.Hex */ 48 | .highlight .mi { color: #208050 } /* Literal.Number.Integer */ 49 | .highlight .mo { color: #208050 } /* Literal.Number.Oct */ 50 | .highlight .sa { color: #4070a0 } /* Literal.String.Affix */ 51 | .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ 52 | .highlight .sc { color: #4070a0 } /* Literal.String.Char */ 53 | .highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ 54 | .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ 55 | .highlight .s2 { color: #4070a0 } /* Literal.String.Double */ 56 | .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ 57 | .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ 58 | .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ 59 | .highlight .sx { color: #c65d09 } /* Literal.String.Other */ 60 | .highlight .sr { color: #235388 } /* Literal.String.Regex */ 61 | .highlight .s1 { color: #4070a0 } /* Literal.String.Single */ 62 | .highlight .ss { color: #517918 } /* Literal.String.Symbol */ 63 | .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ 64 | .highlight .fm { color: #06287e } /* Name.Function.Magic */ 65 | .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ 66 | .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ 67 | .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ 68 | .highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ 69 | .highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ -------------------------------------------------------------------------------- /revealjs/_static/pygments.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #eeffcc; } 3 | .highlight .c { color: #408090; font-style: italic } /* Comment */ 4 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 5 | .highlight .k { color: #007020; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #666666 } /* Operator */ 7 | .highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ 8 | .highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ 9 | .highlight .cp { color: #007020 } /* Comment.Preproc */ 10 | .highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ 11 | .highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ 12 | .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ 13 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 14 | .highlight .ge { font-style: italic } /* Generic.Emph */ 15 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 16 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 17 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 18 | .highlight .go { color: #333333 } /* Generic.Output */ 19 | .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ 20 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 21 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 22 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 23 | .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ 24 | .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ 25 | .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ 26 | .highlight .kp { color: #007020 } /* Keyword.Pseudo */ 27 | .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ 28 | .highlight .kt { color: #902000 } /* Keyword.Type */ 29 | .highlight .m { color: #208050 } /* Literal.Number */ 30 | .highlight .s { color: #4070a0 } /* Literal.String */ 31 | .highlight .na { color: #4070a0 } /* Name.Attribute */ 32 | .highlight .nb { color: #007020 } /* Name.Builtin */ 33 | .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ 34 | .highlight .no { color: #60add5 } /* Name.Constant */ 35 | .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ 36 | .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ 37 | .highlight .ne { color: #007020 } /* Name.Exception */ 38 | .highlight .nf { color: #06287e } /* Name.Function */ 39 | .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ 40 | .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ 41 | .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ 42 | .highlight .nv { color: #bb60d5 } /* Name.Variable */ 43 | .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ 44 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 45 | .highlight .mb { color: #208050 } /* Literal.Number.Bin */ 46 | .highlight .mf { color: #208050 } /* Literal.Number.Float */ 47 | .highlight .mh { color: #208050 } /* Literal.Number.Hex */ 48 | .highlight .mi { color: #208050 } /* Literal.Number.Integer */ 49 | .highlight .mo { color: #208050 } /* Literal.Number.Oct */ 50 | .highlight .sa { color: #4070a0 } /* Literal.String.Affix */ 51 | .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ 52 | .highlight .sc { color: #4070a0 } /* Literal.String.Char */ 53 | .highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ 54 | .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ 55 | .highlight .s2 { color: #4070a0 } /* Literal.String.Double */ 56 | .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ 57 | .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ 58 | .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ 59 | .highlight .sx { color: #c65d09 } /* Literal.String.Other */ 60 | .highlight .sr { color: #235388 } /* Literal.String.Regex */ 61 | .highlight .s1 { color: #4070a0 } /* Literal.String.Single */ 62 | .highlight .ss { color: #517918 } /* Literal.String.Symbol */ 63 | .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ 64 | .highlight .fm { color: #06287e } /* Name.Function.Magic */ 65 | .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ 66 | .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ 67 | .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ 68 | .highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ 69 | .highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ -------------------------------------------------------------------------------- /revealjs/_static/revealjs-sphinx.css: -------------------------------------------------------------------------------- 1 | .reveal{font-size:38px}#slide-footer{background-size:6vw 4vw;background-image:url("footer-logo.png");background-repeat:no-repeat;height:4vw;width:6vw;position:absolute;bottom:2vw;left:2vw}.reveal h2{padding:.3em .4em;border-radius:.5em;text-transform:none;color:#EE1431;border:solid 1px#EE1431}.reveal h3{margin-bottom:.5em;text-transform:none;color:#EE1431}.reveal h4{margin-top:1em;margin-bottom:.5em;text-transform:none;color:#EE1431}.reveal h1{display:none}.reveal div.event{display:none}.reveal>.slides>section:first-of-type h2{background-color:#EE1431;color:white}div.highlight{background-color:transparent}div[class *= "highlight-"]{margin:1.75rem 0 2.25rem 0}.code-block-caption+div[class *= "highlight-"]{margin-top:-0.4rem}.literal-block-wrapper{margin-top:1.75rem}.reveal .code-block-caption{font-style:italic;font-size:80%}div.highlight pre,pre.literal-block{padding:.5em;max-width:50rem;min-width:30rem;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace}pre.literal-block{margin-top:1.75rem;margin-bottom:2.25rem}.reveal pre.big,.big pre{font-size:100%}.reveal pre.small,.small pre{font-size:50%}.reveal .red{color:#d00;font-weight:bold}.reveal .green{color:#3b3;font-weight:bold}.reveal .orange{color:#f80;font-weight:bold}.reveal .tan{color:#a85;font-weight:bold}.reveal .blue{color:#28c;font-weight:bold}.reveal .purple{color:#a08;font-weight:bold}.reveal .yellow{color:#bb0;font-weight:bold}.reveal .white{color:#fff;font-weight:bold}.reveal .gray,.reveal .grey{color:#666;font-weight:bold}.reveal .comment{color:#666;font-weight:bold;font-style:italic}.reveal .gone{color:#666;text-decoration:line-through;font-weight:bold}.reveal .inv-red{background-color:#d00;color:#fff;font-weight:bold}.reveal .slides section .fragment.highlight-red.visible{color:#d00}.reveal .slides section .fragment.highlight-green.visible{color:#3b3}.reveal .slides section .fragment.highlight-blue.visible{color:#28c}.reveal .slides section .fragment.highlight-current-red.current-fragment{color:#d00}.reveal .slides section .fragment.highlight-current-green.current-fragment{color:#3b3}.reveal .slides section .fragment.highlight-current-blue.current-fragment{color:#28c}.reveal .console{background-color:black;color:#ddd;padding:1em;border-radius:.4em;max-width:40em}.reveal .console .cmd{font-weight:bold;color:yellow}.reveal .console a{color:inherit !important}.reveal .console .red{color:#f77}.reveal .console .green{color:#7f7}.reveal .console .orange{color:#fc3}.reveal .console .tan{color:#db8}.reveal .console .blue{color:#4af}.reveal .console .purple{color:#a08}.reveal .console .yellow{color:#bb0}.reveal .console .white{color:#fff}.reveal .console .gray,.reveal .console .grey{color:#999}.reveal .console .comment{color:#999}.reveal .console .gone{color:#999}.reveal .console .inv-red{background-color:#f33}.reveal .slides section .console .fragment.highlight-red.visible{font-weight:bold;color:#f77}.reveal .slides section .console .fragment.highlight-green.visible{font-weight:bold;color:#7f7}.reveal .slides section .console .fragment.highlight-blue.visible{font-weight:bold;color:#4af}.reveal .slides section .console .fragment.highlight-current-red.current-fragment{font-weight:bold;color:#f77}.reveal .slides section .console .fragment.highlight-current-green.current-fragment{font-weight:bold;color:#7f7}.reveal .slides section .console .fragment.highlight-current-blue.current-fragment{font-weight:bold;color:#4af}.reveal ul ul,.reveal ul ul ul{list-style-type:disc}.reveal ul.simple>li{margin-bottom:.4em}.reveal ul.simple>li>ul{margin-top:.4em;font-size:90%}.reveal ul.simple>li>ul>li>ul{font-size:90%}.reveal dd{margin-bottom:.5em !important}.docutils.literal{border:solid 1px#FF400F;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;padding:0 .1em}.reveal cite{font-style:italic;font-weight:bold}table.docutils{font-size:75%;margin-top:1em 0;margin-bottom:1em}.reveal table.docutils th,.reveal table.docutils td{border-color:#999;padding:.1em .3em}.reveal .td-center th:not(:first-child),.reveal .td-center td:not(:first-child){text-align:center}.reveal .td-right th:not(:first-child),.reveal .td-right td:not(:first-child){text-align:right}table.hlist td{padding-left:1.5em;padding-right:1.5em;vertical-align:top}.reveal section img{box-shadow:none;display:block;margin-left:auto;margin-right:auto;border:0}.reveal section img.math{display:inline;vertical-align:baseline;margin:0 .3em}.reveal div.math{margin:1em 0}.reveal img.image-border{border:solid 1px #333}.reveal blockquote{box-shadow:0 0 2px#EE1431}.reveal blockquote p.attribution{display:block;text-align:right;font-style:normal;font-size:80%;margin-top:1em;padding-top:0;padding-right:1em}.reveal .text-heavy{font-size:200%;font-weight:bold !important}.reveal dd p.first{margin-top:0}.compare>div{width:49%;display:inline-block;vertical-align:top}.compare23>div:first-child{width:39%}.compare23>div:last-child{width:59%}.compare32>div:first-child{width:59%}.compare32>div:last-child{width:39%}.compare12>div:first-child{width:32%}.compare12>div:last-child{width:65%}.compare21>div:first-child{width:65%}.compare21>div:last-child{width:32%}.reveal .compare>div>*:first-child{margin-top:0 !important}.reveal h3+.compare>div>*:first-child{margin-top:.75em !important}.reveal sup,.reveal sub{font-size:70%}.reveal a{color:#EE1431}.reveal a:hover{color:#FF400F}.reveal .controls .navigate-left,.reveal .controls .navigate-left.enabled{border-right-color:#EE1431}.reveal .controls .navigate-right,.reveal .controls .navigate-right.enabled{border-left-color:#EE1431}.reveal .controls .navigate-up,.reveal .controls .navigate-up.enabled{border-bottom-color:#EE1431}.reveal .controls .navigate-down,.reveal .controls .navigate-down.enabled{border-top-color:#EE1431}.reveal .controls .navigate-left.enabled:hover{border-right-color:#FF400F}.reveal .controls .navigate-right.enabled:hover{border-left-color:#FF400F}.reveal .controls .navigate-up.enabled:hover{border-bottom-color:#FF400F}.reveal .controls .navigate-down.enabled:hover{border-top-color:#FF400F}.reveal .progress span{background:#EE1431}::selection{color:#386d7f} -------------------------------------------------------------------------------- /revealjs/_static/revealjs/lib/js/head.min.js: -------------------------------------------------------------------------------- 1 | /*! head.core - v1.0.2 */ 2 | (function(I,D){function F(a){T[T.length]=a}function K(b){var a=new RegExp(" ?\\b"+b+"\\b");R.className=R.className.replace(a,"")}function G(d,b){for(var a=0,c=d.length;ae?(L.screensCss.gt&&F("gt-"+e),L.screensCss.gte&&F("gte-"+e)):aa);C.feature("landscape",bP?(L.browserCss.gt&&F("gt-"+O+P),L.browserCss.gte&&F("gte-"+O+P)):M2&&this[a+1]!==D){a&&F(this.slice(a,a+1).join("-").toLowerCase()+L.section)}else{var b=d||"index",c=b.indexOf(".");c>0&&(b=b.substring(0,c));R.id=b.toLowerCase()+L.page;a||F("root"+L.section)}});C.screen={height:I.screen.height,width:I.screen.width};j();S=0;I.addEventListener?I.addEventListener("resize",m,!1):I.attachEvent("onresize",m)})(window); 3 | /*! head.css3 - v1.0.0 */ 4 | (function(g,y){function w(c){for(var a in c){if(k[c[a]]!==y){return !0}}return !1}function b(e){var c=e.charAt(0).toUpperCase()+e.substr(1),a=(e+" "+v.join(c+" ")+c).split(" ");return !!w(a)}var m=g.document,d=m.createElement("i"),k=d.style,z=" -o- -moz- -ms- -webkit- -khtml- ".split(" "),v="Webkit Moz O ms Khtml".split(" "),j=g.head_conf&&g.head_conf.head||"head",x=g[j],p={gradient:function(){var a="background-image:";return k.cssText=(a+z.join("gradient(linear,left top,right bottom,from(#9f9),to(#fff));"+a)+z.join("linear-gradient(left top,#eee,#fff);"+a)).slice(0,-a.length),!!k.backgroundImage},rgba:function(){return k.cssText="background-color:rgba(0,0,0,0.5)",!!k.backgroundColor},opacity:function(){return d.style.opacity===""},textshadow:function(){return k.textShadow===""},multiplebgs:function(){k.cssText="background:url(https://),url(https://),red url(https://)";var a=(k.background||"").match(/url/g);return Object.prototype.toString.call(a)==="[object Array]"&&a.length===3},boxshadow:function(){return b("boxShadow")},borderimage:function(){return b("borderImage")},borderradius:function(){return b("borderRadius")},cssreflections:function(){return b("boxReflect")},csstransforms:function(){return b("transform")},csstransitions:function(){return b("transition")},touch:function(){return"ontouchstart" in g},retina:function(){return g.devicePixelRatio>1},fontface:function(){var a=x.browser.name,c=x.browser.version;switch(a){case"ie":return c>=9;case"chrome":return c>=13;case"ff":return c>=6;case"ios":return c>=5;case"android":return !1;case"webkit":return c>=5.1;case"opera":return c>=10;default:return !1}}};for(var q in p){p[q]&&x.feature(q,p[q].call(),!0)}x.feature()})(window); 5 | /*! head.load - v1.0.3 */ 6 | (function(S,L){function I(){}function K(d,b){if(d){typeof d=="object"&&(d=[].slice.call(d));for(var a=0,c=d.length;a header { 42 | padding: 1em; 43 | text-align: center; 44 | color: white; 45 | background-color: #EE1431; 46 | } 47 | 48 | #page-sidebar a { 49 | color: inherit; 50 | text-decoration: none; 51 | } 52 | 53 | #page-sidebar .project { 54 | font-size: 90%; 55 | } 56 | 57 | #page-sidebar .title { 58 | font-size: 110%; 59 | } 60 | 61 | #page-sidebar .backlink { 62 | font-size: 70%; 63 | } 64 | 65 | #toc { 66 | padding: 1em; 67 | } 68 | 69 | #toc ul { 70 | list-style: none; 71 | margin-left: 0; 72 | padding-left: 0; 73 | } 74 | 75 | #toc > ul > li > a { 76 | display: none; 77 | } 78 | 79 | #toc > ul > li > ul > li { 80 | margin-bottom: 1em; 81 | } 82 | 83 | #toc > ul > li > ul > li > ul { 84 | padding-left: 1em; 85 | font-size: 80%; 86 | } 87 | 88 | #toc > ul > li > ul > li > ul li { 89 | margin-top: 0.5em; 90 | } 91 | 92 | #page-content { 93 | /* fit nicely on ipad portrait */ 94 | margin-left: 3%; 95 | margin-right: 3%; 96 | max-width: 800px; 97 | margin-top: 2em; 98 | margin-bottom: 4em; 99 | min-height: 100vh; 100 | } 101 | 102 | @media (min-width: 768px) { 103 | #page-content { 104 | margin-left: 7%; 105 | margin-right: 7%; 106 | } 107 | } 108 | 109 | @media (min-width: 1200px) { 110 | #page-content { 111 | margin-left: 100px; 112 | margin-right: auto; 113 | width: 800px; 114 | } 115 | } 116 | 117 | 118 | @media print { 119 | #page-sidebar { 120 | display: none; 121 | } 122 | 123 | #page-content { 124 | margin-top: 0; 125 | margin-left: 0; 126 | margin-bottom: 0; 127 | width: 100%; 128 | } 129 | } 130 | 131 | .field-name { 132 | text-align: left; 133 | } 134 | 135 | .section a { 136 | text-decoration: none; 137 | } 138 | 139 | @media print { 140 | .section a::after { 141 | content: " <" attr(href) ">"; 142 | } 143 | } 144 | 145 | .clear { 146 | clear: both; 147 | } 148 | 149 | .function table { 150 | border-bottom: none; 151 | } 152 | 153 | .function dd { 154 | margin-left: 1em; 155 | } 156 | 157 | .function .field-body { 158 | padding-left: 0 !important; 159 | padding-right: 0 !important; 160 | margin-bottom: 0 !important; 161 | padding-bottom: 0 !important; 162 | border: none; 163 | } 164 | 165 | .function .field-body p.last { 166 | margin-bottom: 0; 167 | } 168 | 169 | .function .field-name { 170 | padding-left: 0 !important; 171 | border: none; 172 | text-align: right; 173 | } 174 | 175 | .function .field-body ul { 176 | margin-top: 0; 177 | padding: 0 0 0 0; 178 | list-style: none; 179 | } 180 | 181 | .function .field-body ul li { 182 | margin-bottom: 0.5em; 183 | } 184 | 185 | .function .field-body .first { 186 | margin-top: 0; 187 | } 188 | 189 | .function code { 190 | font-weight: bold; 191 | color: inherit !important; 192 | border: none !important; 193 | padding: 0 !important; 194 | } 195 | 196 | /*.wy-side-nav-search,*/ 197 | /*.wy-nav-top {*/ 198 | /*background-color: #e64f3a;*/ 199 | /*}*/ 200 | 201 | /*.wy-side-nav-search .project {*/ 202 | /*margin-bottom: 0.5em;*/ 203 | /*font-size: 80%;*/ 204 | /*}*/ 205 | 206 | /*.wy-side-nav-search .extlink {*/ 207 | /*margin-bottom: 0.5em;*/ 208 | /*font-size: 70%;*/ 209 | /*}*/ 210 | 211 | /*!* don't show title in the TOC on the sidebar; it's duplicative *!*/ 212 | /*.local-toc > ul > li > a {*/ 213 | /*display: none;*/ 214 | /*}*/ 215 | 216 | /*!* Indent 3rd level items in sidebar *!*/ 217 | /*.local-toc ul li ul li ul {*/ 218 | /*margin-left: 1em;*/ 219 | /*}*/ 220 | 221 | table { 222 | border: none; 223 | border-collapse: collapse; 224 | border-spacing: 0px; 225 | empty-cells: show; 226 | } 227 | 228 | table.hlist td { 229 | vertical-align: top; 230 | } 231 | 232 | table.hlist ul { 233 | margin-top: 0; 234 | margin-bottom: 0; 235 | } 236 | 237 | table.docutils { 238 | border-bottom: solid 1px #ccc; 239 | } 240 | 241 | table.docutils td, th { 242 | /*border: solid 1px #eee;*/ 243 | border: none; 244 | border-top: solid 1px #ccc; 245 | padding: 0.3em; 246 | margin: 0; 247 | 248 | } 249 | 250 | .raw-reveal { 251 | display: none; 252 | } 253 | 254 | img.image-border { 255 | border: solid 1px black; 256 | } 257 | 258 | .line-block { 259 | margin: 0.5em 0; 260 | } 261 | 262 | blockquote { 263 | font-style: italic; 264 | } 265 | 266 | body { 267 | font-family: "Source Sans Pro", sans-serif; 268 | } 269 | 270 | /*@media screen {*/ 271 | /*body {*/ 272 | /*margin-left: 350px;*/ 273 | /*margin-right: 50px;*/ 274 | /*}*/ 275 | /*}*/ 276 | 277 | 278 | h1, h2, h3, h4, h5, h6 { 279 | font-weight: 600; 280 | } 281 | 282 | dt { 283 | font-weight: 600; 284 | } 285 | 286 | pre { 287 | font-family: Inconsolata, monospace; 288 | font-size: 90%; 289 | } 290 | 291 | .highlight { 292 | background-color: white; 293 | border: solid 1px #ddd; 294 | margin: 0.2em 0 0.4em 0; 295 | } 296 | 297 | .highlight pre { 298 | /*margin: 1em;*/ 299 | margin: 0.6em; 300 | } 301 | 302 | code { 303 | color: #E74C3C; 304 | font-family: Inconsolata, monospace; 305 | border: solid 1px #eee; 306 | padding: 0 5px; 307 | font-size: 90%; 308 | } 309 | 310 | pre.literal-block { 311 | background-color: white; 312 | border: solid 1px #ddd; 313 | margin: 0.2em 0 0.4em 0; 314 | /*padding: 1em;*/ 315 | padding: 0.6em; 316 | } 317 | 318 | @media print { 319 | body { 320 | /*margin-left: 60px;*/ 321 | } 322 | 323 | code { 324 | color: #500; 325 | border: solid 1px #ccc; 326 | font-weight: bold; 327 | } 328 | 329 | .highlight, pre.literal-block { 330 | border: solid 1px #ddd; 331 | } 332 | } 333 | 334 | .sidebar { 335 | margin-left: 1.5em; 336 | float: right; 337 | width: 15em; 338 | font-size: 90%; 339 | } 340 | 341 | .sidebar15x { 342 | width: 18em; 343 | } 344 | 345 | .admonition, 346 | .sidebar { 347 | padding: 0 1em 0.35em 1em; 348 | background-color: #eaf2f7; 349 | } 350 | 351 | @media print { 352 | .admonition, 353 | .sidebar { 354 | border: solid 1px #ccc; 355 | border-left: solid 5px #ccc; 356 | } 357 | } 358 | 359 | .admonition.warning { 360 | background-color: #faeddc; 361 | } 362 | 363 | .admonition > p:nth-child(1), 364 | .sidebar-title { 365 | font-weight: bold; 366 | margin: 0 -1em -0.25em -1em; 367 | padding: 0.25em 1em; 368 | background-color: #7ab0ce; 369 | color: white; 370 | } 371 | 372 | .admonition.warning > p:nth-child(1) { 373 | background-color: #dba376; 374 | } 375 | 376 | /* add note: before title if not already there */ 377 | .admonition.note > p:nth-child(1)::before { 378 | content: "Note: "; 379 | } 380 | 381 | .admonition.warning > p:nth-child(1)::before { 382 | content: "Warning: "; 383 | } 384 | 385 | cite { 386 | font-weight: 600; 387 | } 388 | 389 | img.align-right { 390 | float: right; 391 | } 392 | 393 | .code-block-caption { 394 | font-style: italic; 395 | font-size: 90%; 396 | margin-bottom: 0.5em; 397 | } 398 | 399 | div.highlight, 400 | pre.literal-block { 401 | max-width: 38em; 402 | min-width: 39em; 403 | } 404 | 405 | .compare div.highlight, 406 | .compare pre.literal-block { 407 | min-width: 20em; 408 | max-width: 21em; 409 | } 410 | 411 | .compare23 > div:first-child div.highlight, 412 | .compare23 > div:first-child div.literal-block, 413 | .compare32 > div:last-child div.highlight, 414 | .compare32 > div:last-child div.literal-block 415 | { min-width: 14em; max-width: 15em; } 416 | 417 | .compare23 > div:last-child div.highlight, 418 | .compare23 > div:last-child div.literal-block, 419 | .compare32 > div:first-child div.highlight, 420 | .compare32 > div:first-child div.literal-block 421 | { min-width: 26em; max-width: 27em } 422 | 423 | .compare12 > div:first-child div.highlight, 424 | .compare12 > div:first-child div.literal-block, 425 | .compare21 > div:last-child div.highlight, 426 | .compare21 > div:last-child div.literal-block 427 | { min-width: 12em; max-width: 13em; } 428 | 429 | .compare12 > div:last-child div.highlight, 430 | .compare12 > div:last-child div.literal-block, 431 | .compare21 > div:first-child div.highlight, 432 | .compare21 > div:first-child div.literal-block 433 | { min-width: 28em; max-width: 29em } 434 | 435 | /*p.first.last {*/ 436 | /*margin: 0;*/ 437 | /*}*/ 438 | 439 | /*li p {*/ 440 | /*margin: 0;*/ 441 | /*}*/ 442 | 443 | h1 { 444 | background-image: url('hb-logo.png'); 445 | background-repeat: no-repeat; 446 | background-position: right; 447 | background-size: 1em 1em; 448 | } 449 | 450 | /* Add spacing for code challenges, where h1 is followed by info block about challenge */ 451 | h1 + table.field-list { 452 | margin-top: 2em; 453 | } 454 | 455 | h2 { 456 | margin-top: 2em; 457 | } 458 | 459 | .red { 460 | color: #c00; 461 | font-weight: bold; 462 | } 463 | 464 | .blue { 465 | color: #28c; 466 | font-weight: bold; 467 | } 468 | 469 | .purple { 470 | color: #a08 471 | font-weight: bold; 472 | } 473 | 474 | .yellow { 475 | color: #bb0; 476 | font-weight: bold; 477 | } 478 | 479 | .inv-red { 480 | background-color: #c00; 481 | color: #fff; 482 | font-weight: bold; 483 | } 484 | 485 | .orange { 486 | color: #f80; 487 | font-weight: bold; 488 | } 489 | 490 | .green { 491 | color: #3b3; 492 | font-weight: bold; 493 | } 494 | 495 | .tan { 496 | color: #daa520; 497 | font-weight: bold; 498 | } 499 | 500 | .cyan { 501 | color: #0cc; 502 | font-weight: bold; 503 | } 504 | 505 | .gone { 506 | color: #666; 507 | text-decoration: line-through; 508 | } 509 | 510 | .console .highlight { 511 | max-width: 45em; 512 | border: none; 513 | } 514 | 515 | pre.literal-block.console, .console .highlight pre { 516 | border: solid 1px #ddd; 517 | background-color: #333; 518 | color: #ddd; 519 | padding: 1em; 520 | border-radius: 0.4em; 521 | margin: 1.5em 0; 522 | max-width: 45em; 523 | 524 | font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; 525 | font-size: 12px; 526 | line-height: 1.5; 527 | 528 | } 529 | 530 | /* command-lne switches */ 531 | kbd { 532 | 533 | font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; 534 | 535 | } 536 | 537 | .console .cmd { 538 | font-weight: bold; 539 | color: yellow; 540 | } 541 | 542 | .console a { 543 | color: inherit !important; 544 | } 545 | 546 | /* Make these darker than usual so they show up better */ 547 | 548 | .console .red { 549 | color: #f33; 550 | } 551 | 552 | .console .blue { 553 | color: #4af; 554 | } 555 | 556 | .console .purple { 557 | color: #a08; 558 | } 559 | 560 | .console .yellow { 561 | color: #bb0 562 | } 563 | 564 | .console .orange { 565 | color: #fc3; 566 | } 567 | 568 | .console .green { 569 | color: #3f3; 570 | } 571 | 572 | .console .tan { 573 | color: #daa520; 574 | } 575 | 576 | .console .cyan { 577 | color: #0ff; 578 | } 579 | 580 | .console .gone { 581 | color: #666; 582 | text-decoration: line-through; 583 | } 584 | 585 | .left { 586 | text-align: left; 587 | } 588 | 589 | /*ul.simple > li {*/ 590 | /*margin-bottom: 0.4em;*/ 591 | /*}*/ 592 | 593 | /*ul.simple > li > ul {*/ 594 | /*margin-top: 0.4em;*/ 595 | /*!*font-size: 90%;*!*/ 596 | /*}*/ 597 | 598 | dd { 599 | margin-bottom: 0.5em !important; 600 | } 601 | 602 | cite { 603 | font-style: italic !important; 604 | font-weight: bold; 605 | } 606 | 607 | .compare > div { 608 | width: 49%; 609 | display: inline-block; 610 | vertical-align: top; 611 | } 612 | 613 | .compare23 > div:first-child { width: 39%; } 614 | .compare23 > div:last-child { width: 59%; } 615 | 616 | .compare32 > div:first-child { width: 59%; } 617 | .compare32 > div:last-child { width: 39%; } 618 | 619 | .compare12 > div:first-child { width: 32%; } 620 | .compare12 > div:last-child { width: 65%; } 621 | 622 | .compare21 > div:first-child { width: 65%; } 623 | .compare21 > div:last-child { width: 32%; } 624 | 625 | .hover-reveal:before { 626 | content: "Hover to reveal"; 627 | position: absolute; 628 | } 629 | 630 | .hover-reveal:hover:before { 631 | content: ""; 632 | } 633 | 634 | .hover-reveal > * { 635 | visibility: hidden; 636 | } 637 | 638 | .topic-title { 639 | margin-top: 0; 640 | } 641 | 642 | .hover-reveal { 643 | border: dashed 1px #999; 644 | background-color: #eee; 645 | padding: 1em; 646 | margin-bottom: 1em; 647 | } 648 | 649 | .hover-reveal:hover > * { 650 | visibility: visible; 651 | } 652 | 653 | .hover-reveal:hover { 654 | background-color: transparent; 655 | } 656 | 657 | @media print { 658 | .hover-reveal > * { 659 | visibility: visible;; 660 | } 661 | 662 | .hover-reveal:before { 663 | content: ""; 664 | } 665 | 666 | .hover-reveal { 667 | border: none; 668 | background-color: transparent; 669 | padding: 0; 670 | margin-bottom: 1em; 671 | } 672 | 673 | .noprint { 674 | display: none !important; 675 | } 676 | 677 | .simple { 678 | /* this seems to keep any list from breaking; yuck */ 679 | /* page-break-inside: avoid; */ 680 | } 681 | 682 | .simple li, 683 | .simple ol { 684 | page-break-inside: avoid; 685 | } 686 | 687 | .console { 688 | background-color: #F5F5F5 !important; 689 | color: #8C8C8C !important; 690 | } 691 | 692 | .console .cmd { 693 | color: black; 694 | } 695 | 696 | } 697 | 698 | /* meant for print */ 699 | /* no space for top h2 */ 700 | #page-content > .section > .section:first-of-type h2 { 701 | margin-top: 1em; 702 | } 703 | 704 | h1 { 705 | margin: 0; 706 | padding: 0; 707 | } 708 | 709 | ul { 710 | padding-left: 1.5em; 711 | list-style: disc; 712 | } 713 | 714 | ul.simple li { 715 | margin: 0.5em 0; 716 | } 717 | 718 | .hlist ul { 719 | margin-right: 5em; 720 | } 721 | 722 | dt { 723 | margin-bottom: 0.25em; 724 | } 725 | 726 | dd { 727 | margin-left: 1.5em; 728 | } 729 | 730 | dd > p.first { 731 | margin-top: 0; 732 | } 733 | 734 | .td-center th:not(:first-child), 735 | .td-center td:not(:first-child) { 736 | text-align: center; 737 | } 738 | 739 | .td-right th:not(:first-child), 740 | .td-right td:not(:first-child) { 741 | text-align: right; 742 | } -------------------------------------------------------------------------------- /revealjs/_static/revealjs/plugin/notes/notes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | reveal.js - Slide Notes 7 | 8 | 303 | 304 | 305 | 306 | 307 |
Loading speaker view...
308 | 309 |
310 |
Upcoming
311 |
312 |
313 |

Time Click to Reset

314 |
315 | 0:00 AM 316 |
317 |
318 | 00:00:00 319 |
320 |
321 | 322 | 323 | 326 |
327 | 328 | 332 |
333 |
334 | 335 | 336 |
337 | 338 | 339 | 791 | 792 | 793 | -------------------------------------------------------------------------------- /revealjs/_static/revealjs/css/reveal.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * reveal.js 3 | * http://revealjs.com 4 | * MIT licensed 5 | * 6 | * Copyright (C) 2018 Hakim El Hattab, http://hakim.se 7 | */html,body,.reveal div,.reveal span,.reveal applet,.reveal object,.reveal iframe,.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6,.reveal p,.reveal blockquote,.reveal pre,.reveal a,.reveal abbr,.reveal acronym,.reveal address,.reveal big,.reveal cite,.reveal code,.reveal del,.reveal dfn,.reveal em,.reveal img,.reveal ins,.reveal kbd,.reveal q,.reveal s,.reveal samp,.reveal small,.reveal strike,.reveal strong,.reveal sub,.reveal sup,.reveal tt,.reveal var,.reveal b,.reveal u,.reveal center,.reveal dl,.reveal dt,.reveal dd,.reveal ol,.reveal ul,.reveal li,.reveal fieldset,.reveal form,.reveal label,.reveal legend,.reveal table,.reveal caption,.reveal tbody,.reveal tfoot,.reveal thead,.reveal tr,.reveal th,.reveal td,.reveal article,.reveal aside,.reveal canvas,.reveal details,.reveal embed,.reveal figure,.reveal figcaption,.reveal footer,.reveal header,.reveal hgroup,.reveal menu,.reveal nav,.reveal output,.reveal ruby,.reveal section,.reveal summary,.reveal time,.reveal mark,.reveal audio,.reveal video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.reveal article,.reveal aside,.reveal details,.reveal figcaption,.reveal figure,.reveal footer,.reveal header,.reveal hgroup,.reveal menu,.reveal nav,.reveal section{display:block}html,body{width:100%;height:100%;overflow:hidden}body{position:relative;line-height:1;background-color:#fff;color:#000}.reveal .slides section .fragment{opacity:0;visibility:hidden;transition:all .2s ease}.reveal .slides section .fragment.visible{opacity:1;visibility:inherit}.reveal .slides section .fragment.grow{opacity:1;visibility:inherit}.reveal .slides section .fragment.grow.visible{-webkit-transform:scale(1.3);transform:scale(1.3)}.reveal .slides section .fragment.shrink{opacity:1;visibility:inherit}.reveal .slides section .fragment.shrink.visible{-webkit-transform:scale(0.7);transform:scale(0.7)}.reveal .slides section .fragment.zoom-in{-webkit-transform:scale(0.1);transform:scale(0.1)}.reveal .slides section .fragment.zoom-in.visible{-webkit-transform:none;transform:none}.reveal .slides section .fragment.fade-out{opacity:1;visibility:inherit}.reveal .slides section .fragment.fade-out.visible{opacity:0;visibility:hidden}.reveal .slides section .fragment.semi-fade-out{opacity:1;visibility:inherit}.reveal .slides section .fragment.semi-fade-out.visible{opacity:.5;visibility:inherit}.reveal .slides section .fragment.strike{opacity:1;visibility:inherit}.reveal .slides section .fragment.strike.visible{text-decoration:line-through}.reveal .slides section .fragment.fade-up{-webkit-transform:translate(0,20%);transform:translate(0,20%)}.reveal .slides section .fragment.fade-up.visible{-webkit-transform:translate(0,0);transform:translate(0,0)}.reveal .slides section .fragment.fade-down{-webkit-transform:translate(0,-20%);transform:translate(0,-20%)}.reveal .slides section .fragment.fade-down.visible{-webkit-transform:translate(0,0);transform:translate(0,0)}.reveal .slides section .fragment.fade-right{-webkit-transform:translate(-20%,0);transform:translate(-20%,0)}.reveal .slides section .fragment.fade-right.visible{-webkit-transform:translate(0,0);transform:translate(0,0)}.reveal .slides section .fragment.fade-left{-webkit-transform:translate(20%,0);transform:translate(20%,0)}.reveal .slides section .fragment.fade-left.visible{-webkit-transform:translate(0,0);transform:translate(0,0)}.reveal .slides section .fragment.fade-in-then-out,.reveal .slides section .fragment.current-visible{opacity:0;visibility:hidden}.reveal .slides section .fragment.fade-in-then-out.current-fragment,.reveal .slides section .fragment.current-visible.current-fragment{opacity:1;visibility:inherit}.reveal .slides section .fragment.fade-in-then-semi-out{opacity:0;visibility:hidden}.reveal .slides section .fragment.fade-in-then-semi-out.visible{opacity:.5;visibility:inherit}.reveal .slides section .fragment.fade-in-then-semi-out.current-fragment{opacity:1;visibility:inherit}.reveal .slides section .fragment.highlight-red,.reveal .slides section .fragment.highlight-current-red,.reveal .slides section .fragment.highlight-green,.reveal .slides section .fragment.highlight-current-green,.reveal .slides section .fragment.highlight-blue,.reveal .slides section .fragment.highlight-current-blue{opacity:1;visibility:inherit}.reveal .slides section .fragment.highlight-red.visible{color:#ff2c2d}.reveal .slides section .fragment.highlight-green.visible{color:#17ff2e}.reveal .slides section .fragment.highlight-blue.visible{color:#1b91ff}.reveal .slides section .fragment.highlight-current-red.current-fragment{color:#ff2c2d}.reveal .slides section .fragment.highlight-current-green.current-fragment{color:#17ff2e}.reveal .slides section .fragment.highlight-current-blue.current-fragment{color:#1b91ff}.reveal:after{content:'';font-style:italic}.reveal iframe{z-index:1}.reveal a{position:relative}.reveal .stretch{max-width:none;max-height:none}.reveal pre.stretch code{height:100%;max-height:100%;box-sizing:border-box}@-webkit-keyframes bounce-right{0,10%,25%,40%,50%{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(10px);transform:translateX(10px)}30%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}}@keyframes bounce-right{0,10%,25%,40%,50%{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(10px);transform:translateX(10px)}30%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}}@-webkit-keyframes bounce-down{0,10%,25%,40%,50%{-webkit-transform:translateY(0);transform:translateY(0)}20%{-webkit-transform:translateY(10px);transform:translateY(10px)}30%{-webkit-transform:translateY(-5px);transform:translateY(-5px)}}@keyframes bounce-down{0,10%,25%,40%,50%{-webkit-transform:translateY(0);transform:translateY(0)}20%{-webkit-transform:translateY(10px);transform:translateY(10px)}30%{-webkit-transform:translateY(-5px);transform:translateY(-5px)}}.reveal .controls{display:none;position:absolute;top:auto;bottom:12px;right:12px;left:auto;z-index:1;color:#000;pointer-events:none;font-size:10px}.reveal .controls button{position:absolute;padding:0;background-color:transparent;border:0;outline:0;cursor:pointer;color:currentColor;-webkit-transform:scale(0.9999);transform:scale(0.9999);transition:color .2s ease,opacity .2s ease,-webkit-transform .2s ease;transition:color .2s ease,opacity .2s ease,transform .2s ease;z-index:2;pointer-events:auto;font-size:inherit;visibility:hidden;opacity:0;-webkit-appearance:none;-webkit-tap-highlight-color:transparent}.reveal .controls .controls-arrow:before,.reveal .controls .controls-arrow:after{content:'';position:absolute;top:0;left:0;width:2.6em;height:.5em;border-radius:.25em;background-color:currentColor;transition:all .15s ease,background-color .8s ease;-webkit-transform-origin:.2em 50%;transform-origin:.2em 50%;will-change:transform}.reveal .controls .controls-arrow{position:relative;width:3.6em;height:3.6em}.reveal .controls .controls-arrow:before{-webkit-transform:translateX(0.5em) translateY(1.55em) rotate(45deg);transform:translateX(0.5em) translateY(1.55em) rotate(45deg)}.reveal .controls .controls-arrow:after{-webkit-transform:translateX(0.5em) translateY(1.55em) rotate(-45deg);transform:translateX(0.5em) translateY(1.55em) rotate(-45deg)}.reveal .controls .controls-arrow:hover:before{-webkit-transform:translateX(0.5em) translateY(1.55em) rotate(40deg);transform:translateX(0.5em) translateY(1.55em) rotate(40deg)}.reveal .controls .controls-arrow:hover:after{-webkit-transform:translateX(0.5em) translateY(1.55em) rotate(-40deg);transform:translateX(0.5em) translateY(1.55em) rotate(-40deg)}.reveal .controls .controls-arrow:active:before{-webkit-transform:translateX(0.5em) translateY(1.55em) rotate(36deg);transform:translateX(0.5em) translateY(1.55em) rotate(36deg)}.reveal .controls .controls-arrow:active:after{-webkit-transform:translateX(0.5em) translateY(1.55em) rotate(-36deg);transform:translateX(0.5em) translateY(1.55em) rotate(-36deg)}.reveal .controls .navigate-left{right:6.4em;bottom:3.2em;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.reveal .controls .navigate-right{right:0;bottom:3.2em;-webkit-transform:translateX(10px);transform:translateX(10px)}.reveal .controls .navigate-right .controls-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.reveal .controls .navigate-right.highlight{-webkit-animation:bounce-right 2s 50 both ease-out;animation:bounce-right 2s 50 both ease-out}.reveal .controls .navigate-up{right:3.2em;bottom:6.4em;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.reveal .controls .navigate-up .controls-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.reveal .controls .navigate-down{right:3.2em;bottom:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.reveal .controls .navigate-down .controls-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.reveal .controls .navigate-down.highlight{-webkit-animation:bounce-down 2s 50 both ease-out;animation:bounce-down 2s 50 both ease-out}.reveal .controls[data-controls-back-arrows="faded"] .navigate-left.enabled,.reveal .controls[data-controls-back-arrows="faded"] .navigate-up.enabled{opacity:.3}.reveal .controls[data-controls-back-arrows="faded"] .navigate-left.enabled:hover,.reveal .controls[data-controls-back-arrows="faded"] .navigate-up.enabled:hover{opacity:1}.reveal .controls[data-controls-back-arrows="hidden"] .navigate-left.enabled,.reveal .controls[data-controls-back-arrows="hidden"] .navigate-up.enabled{opacity:0;visibility:hidden}.reveal .controls .enabled{visibility:visible;opacity:.9;cursor:pointer;-webkit-transform:none;transform:none}.reveal .controls .enabled.fragmented{opacity:.5}.reveal .controls .enabled:hover,.reveal .controls .enabled.fragmented:hover{opacity:1}.reveal:not(.has-vertical-slides) .controls .navigate-left{bottom:1.4em;right:5.5em}.reveal:not(.has-vertical-slides) .controls .navigate-right{bottom:1.4em;right:.5em}.reveal:not(.has-horizontal-slides) .controls .navigate-up{right:1.4em;bottom:5em}.reveal:not(.has-horizontal-slides) .controls .navigate-down{right:1.4em;bottom:.5em}.reveal.has-dark-background .controls{color:#fff}.reveal.has-light-background .controls{color:#000}.reveal.no-hover .controls .controls-arrow:hover:before,.reveal.no-hover .controls .controls-arrow:active:before{-webkit-transform:translateX(0.5em) translateY(1.55em) rotate(45deg);transform:translateX(0.5em) translateY(1.55em) rotate(45deg)}.reveal.no-hover .controls .controls-arrow:hover:after,.reveal.no-hover .controls .controls-arrow:active:after{-webkit-transform:translateX(0.5em) translateY(1.55em) rotate(-45deg);transform:translateX(0.5em) translateY(1.55em) rotate(-45deg)}@media screen and (min-width:500px){.reveal .controls[data-controls-layout="edges"]{top:0;right:0;bottom:0;left:0}.reveal .controls[data-controls-layout="edges"] .navigate-left,.reveal .controls[data-controls-layout="edges"] .navigate-right,.reveal .controls[data-controls-layout="edges"] .navigate-up,.reveal .controls[data-controls-layout="edges"] .navigate-down{bottom:auto;right:auto}.reveal .controls[data-controls-layout="edges"] .navigate-left{top:50%;left:8px;margin-top:-1.8em}.reveal .controls[data-controls-layout="edges"] .navigate-right{top:50%;right:8px;margin-top:-1.8em}.reveal .controls[data-controls-layout="edges"] .navigate-up{top:8px;left:50%;margin-left:-1.8em}.reveal .controls[data-controls-layout="edges"] .navigate-down{bottom:8px;left:50%;margin-left:-1.8em}}.reveal .progress{position:absolute;display:none;height:3px;width:100%;bottom:0;left:0;z-index:10;background-color:rgba(0,0,0,0.2);color:#fff}.reveal .progress:after{content:'';display:block;position:absolute;height:10px;width:100%;top:-10px}.reveal .progress span{display:block;height:100%;width:0;background-color:currentColor;transition:width 800ms cubic-bezier(0.26,0.86,0.44,0.985)}.reveal .slide-number{position:absolute;display:block;right:8px;bottom:8px;z-index:31;font-family:Helvetica,sans-serif;font-size:12px;line-height:1;color:#fff;background-color:rgba(0,0,0,0.4);padding:5px}.reveal .slide-number a{color:currentColor}.reveal .slide-number-delimiter{margin:0 3px}.reveal{position:relative;width:100%;height:100%;overflow:hidden;-ms-touch-action:none;touch-action:none}@media only screen and (orientation:landscape){.reveal.ua-iphone{position:fixed}}.reveal .slides{position:absolute;width:100%;height:100%;top:0;right:0;bottom:0;left:0;margin:auto;pointer-events:none;overflow:visible;z-index:1;text-align:center;-webkit-perspective:600px;perspective:600px;-webkit-perspective-origin:50% 40%;perspective-origin:50% 40%}.reveal .slides>section{-ms-perspective:600px}.reveal .slides>section,.reveal .slides>section>section{display:none;position:absolute;width:100%;padding:20px 0;pointer-events:auto;z-index:10;-webkit-transform-style:flat;transform-style:flat;transition:-webkit-transform-origin 800ms cubic-bezier(0.26,0.86,0.44,0.985),-webkit-transform 800ms cubic-bezier(0.26,0.86,0.44,0.985),visibility 800ms cubic-bezier(0.26,0.86,0.44,0.985),opacity 800ms cubic-bezier(0.26,0.86,0.44,0.985);transition:transform-origin 800ms cubic-bezier(0.26,0.86,0.44,0.985),transform 800ms cubic-bezier(0.26,0.86,0.44,0.985),visibility 800ms cubic-bezier(0.26,0.86,0.44,0.985),opacity 800ms cubic-bezier(0.26,0.86,0.44,0.985)}.reveal[data-transition-speed="fast"] .slides section{transition-duration:400ms}.reveal[data-transition-speed="slow"] .slides section{transition-duration:1200ms}.reveal .slides section[data-transition-speed="fast"]{transition-duration:400ms}.reveal .slides section[data-transition-speed="slow"]{transition-duration:1200ms}.reveal .slides>section.stack{padding-top:0;padding-bottom:0;pointer-events:none}.reveal .slides>section.present,.reveal .slides>section>section.present{display:block;z-index:11;opacity:1}.reveal .slides>section:empty,.reveal .slides>section>section:empty,.reveal .slides>section[data-background-interactive],.reveal .slides>section>section[data-background-interactive]{pointer-events:none}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:0 !important}.reveal .slides>section.future,.reveal .slides>section>section.future,.reveal .slides>section.past,.reveal .slides>section>section.past{pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section.past,.reveal .slides>section.future,.reveal .slides>section>section.past,.reveal .slides>section>section.future{opacity:0}.reveal.slide section{-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=slide].past,.reveal .slides>section[data-transition~=slide-out].past,.reveal.slide .slides>section:not([data-transition]).past{-webkit-transform:translate(-150%,0);transform:translate(-150%,0)}.reveal .slides>section[data-transition=slide].future,.reveal .slides>section[data-transition~=slide-in].future,.reveal.slide .slides>section:not([data-transition]).future{-webkit-transform:translate(150%,0);transform:translate(150%,0)}.reveal .slides>section>section[data-transition=slide].past,.reveal .slides>section>section[data-transition~=slide-out].past,.reveal.slide .slides>section>section:not([data-transition]).past{-webkit-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=slide].future,.reveal .slides>section>section[data-transition~=slide-in].future,.reveal.slide .slides>section>section:not([data-transition]).future{-webkit-transform:translate(0,150%);transform:translate(0,150%)}.reveal.linear section{-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=linear].past,.reveal .slides>section[data-transition~=linear-out].past,.reveal.linear .slides>section:not([data-transition]).past{-webkit-transform:translate(-150%,0);transform:translate(-150%,0)}.reveal .slides>section[data-transition=linear].future,.reveal .slides>section[data-transition~=linear-in].future,.reveal.linear .slides>section:not([data-transition]).future{-webkit-transform:translate(150%,0);transform:translate(150%,0)}.reveal .slides>section>section[data-transition=linear].past,.reveal .slides>section>section[data-transition~=linear-out].past,.reveal.linear .slides>section>section:not([data-transition]).past{-webkit-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal .slides>section>section[data-transition~=linear-in].future,.reveal.linear .slides>section>section:not([data-transition]).future{-webkit-transform:translate(0,150%);transform:translate(0,150%)}.reveal .slides section[data-transition=default].stack,.reveal.default .slides section.stack{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.reveal .slides>section[data-transition=default].past,.reveal .slides>section[data-transition~=default-out].past,.reveal.default .slides>section:not([data-transition]).past{-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section[data-transition~=default-in].future,.reveal.default .slides>section:not([data-transition]).future{-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section[data-transition~=default-out].past,.reveal.default .slides>section>section:not([data-transition]).past{-webkit-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section[data-transition~=default-in].future,.reveal.default .slides>section>section:not([data-transition]).future{-webkit-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=convex].stack,.reveal.convex .slides section.stack{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.reveal .slides>section[data-transition=convex].past,.reveal .slides>section[data-transition~=convex-out].past,.reveal.convex .slides>section:not([data-transition]).past{-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=convex].future,.reveal .slides>section[data-transition~=convex-in].future,.reveal.convex .slides>section:not([data-transition]).future{-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=convex].past,.reveal .slides>section>section[data-transition~=convex-out].past,.reveal.convex .slides>section>section:not([data-transition]).past{-webkit-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=convex].future,.reveal .slides>section>section[data-transition~=convex-in].future,.reveal.convex .slides>section>section:not([data-transition]).future{-webkit-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=concave].stack,.reveal.concave .slides section.stack{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.reveal .slides>section[data-transition=concave].past,.reveal .slides>section[data-transition~=concave-out].past,.reveal.concave .slides>section:not([data-transition]).past{-webkit-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=concave].future,.reveal .slides>section[data-transition~=concave-in].future,.reveal.concave .slides>section:not([data-transition]).future{-webkit-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=concave].past,.reveal .slides>section>section[data-transition~=concave-out].past,.reveal.concave .slides>section>section:not([data-transition]).past{-webkit-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0)}.reveal .slides>section>section[data-transition=concave].future,.reveal .slides>section>section[data-transition~=concave-in].future,.reveal.concave .slides>section>section:not([data-transition]).future{-webkit-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0)}.reveal .slides section[data-transition=zoom],.reveal.zoom .slides section:not([data-transition]){transition-timing-function:ease}.reveal .slides>section[data-transition=zoom].past,.reveal .slides>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section:not([data-transition]).past{visibility:hidden;-webkit-transform:scale(16);transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal .slides>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section:not([data-transition]).future{visibility:hidden;-webkit-transform:scale(0.2);transform:scale(0.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal .slides>section>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section>section:not([data-transition]).past{-webkit-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=zoom].future,.reveal .slides>section>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section>section:not([data-transition]).future{-webkit-transform:translate(0,150%);transform:translate(0,150%)}.reveal.cube .slides{-webkit-perspective:1300px;perspective:1300px}.reveal.cube .slides section{padding:30px;min-height:700px;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.reveal.center.cube .slides section{min-height:0}.reveal.cube .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,0.1);border-radius:4px;-webkit-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,0.2);-webkit-transform:translateZ(-90px) rotateX(65deg);transform:translateZ(-90px) rotateX(65deg)}.reveal.cube .slides>section.stack{padding:0;background:0}.reveal.cube .slides>section.past{-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg);transform:translate3d(-100%,0,0) rotateY(-90deg)}.reveal.cube .slides>section.future{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg);transform:translate3d(100%,0,0) rotateY(90deg)}.reveal.cube .slides>section>section.past{-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,-100%,0) rotateX(90deg);transform:translate3d(0,-100%,0) rotateX(90deg)}.reveal.cube .slides>section>section.future{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,100%,0) rotateX(-90deg);transform:translate3d(0,100%,0) rotateX(-90deg)}.reveal.page .slides{-webkit-perspective-origin:0 50%;perspective-origin:0 50%;-webkit-perspective:3000px;perspective:3000px}.reveal.page .slides section{padding:30px;min-height:700px;box-sizing:border-box;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,0.1);-webkit-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,0.2);-webkit-transform:translateZ(-90px) rotateX(65deg)}.reveal.page .slides>section.stack{padding:0;background:0}.reveal.page .slides>section.past{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(-40%,0,0) rotateY(-80deg);transform:translate3d(-40%,0,0) rotateY(-80deg)}.reveal.page .slides>section.future{-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal.page .slides>section>section.past{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,-40%,0) rotateX(80deg);transform:translate3d(0,-40%,0) rotateX(80deg)}.reveal.page .slides>section>section.future{-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section:not([data-transition]),.reveal.fade .slides>section>section:not([data-transition]){-webkit-transform:none;transform:none;transition:opacity .5s}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section{transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section:not([data-transition]){-webkit-transform:none;transform:none;transition:none}.reveal .pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:black;visibility:hidden;opacity:0;z-index:100;transition:all 1s ease}.reveal .pause-overlay .resume-button{position:absolute;bottom:20px;right:20px;color:#ccc;border-radius:2px;padding:6px 14px;border:2px solid #ccc;font-size:16px;background:transparent;cursor:pointer}.reveal .pause-overlay .resume-button:hover{color:#fff;border-color:#fff}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.no-transforms{overflow-y:auto}.no-transforms .reveal .slides{position:relative;width:80%;height:auto !important;top:0;left:50%;margin:0;text-align:center}.no-transforms .reveal .controls,.no-transforms .reveal .progress{display:none !important}.no-transforms .reveal .slides section{display:block !important;opacity:1 !important;position:relative !important;height:auto;min-height:0;top:0;left:-50%;margin:70px 0;-webkit-transform:none;transform:none}.no-transforms .reveal .slides section section{left:0}.reveal .no-transition,.reveal .no-transition *{transition:none !important}.reveal .backgrounds{position:absolute;width:100%;height:100%;top:0;left:0;-webkit-perspective:600px;perspective:600px}.reveal .slide-background{display:none;position:absolute;width:100%;height:100%;opacity:0;visibility:hidden;overflow:hidden;background-color:transparent;transition:all 800ms cubic-bezier(0.26,0.86,0.44,0.985)}.reveal .slide-background-content{position:absolute;width:100%;height:100%;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.reveal .slide-background.stack{display:block}.reveal .slide-background.present{opacity:1;visibility:visible;z-index:2}.print-pdf .reveal .slide-background{opacity:1 !important;visibility:visible !important}.reveal .slide-background video{position:absolute;width:100%;height:100%;max-width:none;max-height:none;top:0;left:0;-o-object-fit:cover;object-fit:cover}.reveal .slide-background[data-background-size="contain"] video{-o-object-fit:contain;object-fit:contain}.reveal[data-background-transition=none]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=none]{transition:none}.reveal[data-background-transition=slide]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=slide]{opacity:1;-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal[data-background-transition=slide]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=slide]{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}.reveal[data-background-transition=slide]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=slide]{-webkit-transform:translate(100%,0);transform:translate(100%,0)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide]{-webkit-transform:translate(0,-100%);transform:translate(0,-100%)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide]{-webkit-transform:translate(0,100%);transform:translate(0,100%)}.reveal[data-background-transition=convex]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0);transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0);transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0);transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0);transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=zoom]{transition-timing-function:ease}.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(16);transform:scale(16)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);transform:scale(0.2)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(16);transform:scale(16)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);transform:scale(0.2)}.reveal[data-transition-speed="fast"]>.backgrounds .slide-background{transition-duration:400ms}.reveal[data-transition-speed="slow"]>.backgrounds .slide-background{transition-duration:1200ms}.reveal.overview{-webkit-perspective-origin:50% 50%;perspective-origin:50% 50%;-webkit-perspective:700px;perspective:700px}.reveal.overview .slides{-moz-transform-style:preserve-3d}.reveal.overview .slides section{height:100%;top:0 !important;opacity:1 !important;overflow:hidden;visibility:visible !important;cursor:pointer;box-sizing:border-box}.reveal.overview .slides section:hover,.reveal.overview .slides section.present{outline:10px solid rgba(150,150,150,0.4);outline-offset:10px}.reveal.overview .slides section .fragment{opacity:1;transition:none}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none !important}.reveal.overview .slides>section.stack{padding:0;top:0 !important;background:0;outline:0;overflow:visible}.reveal.overview .backgrounds{-webkit-perspective:inherit;perspective:inherit;-moz-transform-style:preserve-3d}.reveal.overview .backgrounds .slide-background{opacity:1;visibility:visible;outline:10px solid rgba(150,150,150,0.1);outline-offset:10px}.reveal.overview .backgrounds .slide-background.stack{overflow:visible}.reveal.overview .slides section,.reveal.overview-deactivating .slides section{transition:none}.reveal.overview .backgrounds .slide-background,.reveal.overview-deactivating .backgrounds .slide-background{transition:none}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl pre,.reveal.rtl code{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{float:right}.reveal.has-parallax-background .backgrounds{transition:all .8s ease}.reveal.has-parallax-background[data-transition-speed="fast"] .backgrounds{transition-duration:400ms}.reveal.has-parallax-background[data-transition-speed="slow"] .backgrounds{transition-duration:1200ms}.reveal .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(0,0,0,0.9);opacity:0;visibility:hidden;transition:all .3s ease}.reveal .overlay.visible{opacity:1;visibility:visible}.reveal .overlay .spinner{position:absolute;display:block;top:50%;left:50%;width:32px;height:32px;margin:-16px 0 0 -16px;z-index:10;background-image:url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);visibility:visible;opacity:.6;transition:all .3s ease}.reveal .overlay header{position:absolute;left:0;top:0;width:100%;height:40px;z-index:2;border-bottom:1px solid #222}.reveal .overlay header a{display:inline-block;width:40px;height:40px;line-height:36px;padding:0 10px;float:right;opacity:.6;box-sizing:border-box}.reveal .overlay header a:hover{opacity:1}.reveal .overlay header a .icon{display:inline-block;width:20px;height:20px;background-position:50% 50%;background-size:100%;background-repeat:no-repeat}.reveal .overlay header a.close .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC)}.reveal .overlay header a.external .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==)}.reveal .overlay .viewport{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;top:40px;right:0;bottom:0;left:0}.reveal .overlay.overlay-preview .viewport iframe{width:100%;height:100%;max-width:100%;max-height:100%;border:0;opacity:0;visibility:hidden;transition:all .3s ease}.reveal .overlay.overlay-preview.loaded .viewport iframe{opacity:1;visibility:visible}.reveal .overlay.overlay-preview.loaded .viewport-inner{position:absolute;z-index:-1;left:0;top:45%;width:100%;text-align:center;letter-spacing:normal}.reveal .overlay.overlay-preview .x-frame-error{opacity:0;transition:opacity .3s ease .3s}.reveal .overlay.overlay-preview.loaded .x-frame-error{opacity:1}.reveal .overlay.overlay-preview.loaded .spinner{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);transform:scale(0.2)}.reveal .overlay.overlay-help .viewport{overflow:auto;color:#fff}.reveal .overlay.overlay-help .viewport .viewport-inner{width:600px;margin:auto;padding:20px 20px 80px 20px;text-align:center;letter-spacing:normal}.reveal .overlay.overlay-help .viewport .viewport-inner .title{font-size:20px}.reveal .overlay.overlay-help .viewport .viewport-inner table{border:1px solid #fff;border-collapse:collapse;font-size:16px}.reveal .overlay.overlay-help .viewport .viewport-inner table th,.reveal .overlay.overlay-help .viewport .viewport-inner table td{width:200px;padding:14px;border:1px solid #fff;vertical-align:middle}.reveal .overlay.overlay-help .viewport .viewport-inner table th{padding-top:20px;padding-bottom:20px}.reveal .playback{position:absolute;left:15px;bottom:20px;z-index:30;cursor:pointer;transition:all 400ms ease;-webkit-tap-highlight-color:transparent}.reveal.overview .playback{opacity:0;visibility:hidden}.reveal .roll{display:inline-block;line-height:1.2;overflow:hidden;vertical-align:top;-webkit-perspective:400px;perspective:400px;-webkit-perspective-origin:50% 50%;perspective-origin:50% 50%}.reveal .roll:hover{background:0;text-shadow:none}.reveal .roll span{display:block;position:relative;padding:0 2px;pointer-events:none;transition:all 400ms ease;-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .roll:hover span{background:rgba(0,0,0,0.5);-webkit-transform:translate3d(0,0,-45px) rotateX(90deg);transform:translate3d(0,0,-45px) rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);display:block;position:absolute;left:0;top:0;padding:0 2px;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:translate3d(0,110%,0) rotateX(-90deg);transform:translate3d(0,110%,0) rotateX(-90deg)}.reveal aside.notes{display:none}.reveal .speaker-notes{display:none;position:absolute;width:25vw;height:100%;top:0;left:100%;padding:14px 18px 14px 18px;z-index:1;font-size:18px;line-height:1.4;border:1px solid rgba(0,0,0,0.05);color:#222;background-color:#f5f5f5;overflow:auto;box-sizing:border-box;text-align:left;font-family:Helvetica,sans-serif;-webkit-overflow-scrolling:touch}.reveal .speaker-notes .notes-placeholder{color:#ccc;font-style:italic}.reveal .speaker-notes:focus{outline:0}.reveal .speaker-notes:before{content:'Speaker notes';display:block;margin-bottom:10px;opacity:.5}.reveal.show-notes{max-width:75vw;overflow:visible}.reveal.show-notes .speaker-notes{display:block}@media screen and (min-width:1600px){.reveal .speaker-notes{font-size:20px}}@media screen and (max-width:1024px){.reveal.show-notes{border-left:0;max-width:none;max-height:70%;overflow:visible}.reveal.show-notes .speaker-notes{top:100%;left:0;width:100%;height:42.8571428571%}}@media screen and (max-width:600px){.reveal.show-notes{max-height:60%}.reveal.show-notes .speaker-notes{top:100%;height:66.6666666667%}.reveal .speaker-notes{font-size:14px}}.zoomed .reveal *,.zoomed .reveal *:before,.zoomed .reveal *:after{-webkit-backface-visibility:visible !important;backface-visibility:visible !important}.zoomed .reveal .progress,.zoomed .reveal .controls{opacity:0}.zoomed .reveal .roll span{background:0}.zoomed .reveal .roll span:after{visibility:hidden} -------------------------------------------------------------------------------- /revealjs/_static/revealjs/js/reveal.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * reveal.js 3 | * http://revealjs.com 4 | * MIT licensed 5 | * 6 | * Copyright (C) 2018 Hakim El Hattab, http://hakim.se 7 | */ 8 | (function(a,b){if(typeof define==="function"&&define.amd){define(function(){a.Reveal=b();return a.Reveal})}else{if(typeof exports==="object"){module.exports=b()}else{a.Reveal=b()}}}(this,function(){var bj;var b8="3.7.0";var ce=".slides section",ak=".slides>section",b9=".slides>section.present>section",aN=".slides>section:first-of-type",b7=navigator.userAgent,al={width:960,height:700,margin:0.04,minScale:0.2,maxScale:2,controls:true,controlsTutorial:true,controlsLayout:"bottom-right",controlsBackArrows:"faded",progress:true,slideNumber:false,hashOneBasedIndex:false,showSlideNumber:"all",history:false,keyboard:true,keyboardCondition:null,overview:true,disableLayout:false,center:true,touch:true,loop:false,rtl:false,shuffle:false,fragments:true,fragmentInURL:false,embedded:false,help:true,pause:true,showNotes:false,autoPlayMedia:null,autoSlide:0,autoSlideStoppable:true,autoSlideMethod:null,defaultTiming:null,mouseWheel:false,rollingLinks:false,hideAddressBar:true,previewLinks:false,postMessage:true,postMessageEvents:false,focusBodyOnPageVisibilityChange:true,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:true,pdfPageHeightOffset:-1,viewDistance:3,display:"block",dependencies:[]},aR=false,G=false,J=false,s=null,v=null,Z,V,bk,bJ,bi,f=false,bd=false,br=[],bg=1,aE={layout:"",overview:""},bQ={},aV={},ae,h,E=0,b5=0,bt=false,cb=0,a1,N=0,ad=-1,p=false,aK={startX:0,startY:0,startSpan:0,startCount:0,captured:false,threshold:40},bB={"N , SPACE":"Next slide",P:"Previous slide","← , H":"Navigate left","→ , L":"Navigate right","↑ , K":"Navigate up","↓ , J":"Navigate down",Home:"First slide",End:"Last slide","B , .":"Pause",F:"Fullscreen","ESC, O":"Slide overview"},i={};function bA(ch){if(aR===true){return}aR=true;bP();if(!aV.transforms2d&&!aV.transforms3d){document.body.setAttribute("class","no-transforms");var cg=w(document.getElementsByTagName("img")),cm=w(document.getElementsByTagName("iframe"));var ck=cg.concat(cm);for(var cj=0,cf=ck.length;cj");bQ.progressbar=bQ.progress.querySelector("span");bQ.controls=aj(bQ.wrapper,"aside","controls",'');bQ.slideNumber=aj(bQ.wrapper,"div","slide-number","");bQ.speakerNotes=aj(bQ.wrapper,"div","speaker-notes",null);bQ.speakerNotes.setAttribute("data-prevent-swipe","");bQ.speakerNotes.setAttribute("tabindex","0");bQ.pauseOverlay=aj(bQ.wrapper,"div","pause-overlay",'');bQ.resumeButton=bQ.pauseOverlay.querySelector(".resume-button");bQ.wrapper.setAttribute("role","application");bQ.controlsLeft=w(document.querySelectorAll(".navigate-left"));bQ.controlsRight=w(document.querySelectorAll(".navigate-right"));bQ.controlsUp=w(document.querySelectorAll(".navigate-up"));bQ.controlsDown=w(document.querySelectorAll(".navigate-down"));bQ.controlsPrev=w(document.querySelectorAll(".navigate-prev"));bQ.controlsNext=w(document.querySelectorAll(".navigate-next"));bQ.controlsRightArrow=bQ.controls.querySelector(".navigate-right");bQ.controlsDownArrow=bQ.controls.querySelector(".navigate-down");bQ.statusDiv=bv()}function bv(){var cf=document.getElementById("aria-status-div");if(!cf){cf=document.createElement("div");cf.style.position="absolute";cf.style.height="1px";cf.style.width="1px";cf.style.overflow="hidden";cf.style.clip="rect( 1px, 1px, 1px, 1px )";cf.setAttribute("id","aria-status-div");cf.setAttribute("aria-live","polite");cf.setAttribute("aria-atomic","true");bQ.wrapper.appendChild(cf)}return cf}function aP(cg){var ci="";if(cg.nodeType===3){ci+=cg.textContent}else{if(cg.nodeType===1){var ch=cg.getAttribute("aria-hidden");var cf=window.getComputedStyle(cg)["display"]==="none";if(ch!=="true"&&!cf){w(cg.childNodes).forEach(function(cj){ci+=aP(cj)})}}}return ci}function j(){var cg=a3(window.innerWidth,window.innerHeight);var cf=Math.floor(cg.width*(1+al.margin)),ch=Math.floor(cg.height*(1+al.margin));var cj=cg.width,ci=cg.height;bD("@page{size:"+cf+"px "+ch+"px; margin: 0px;}");bD(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+cj+"px; max-height:"+ci+"px}");document.body.classList.add("print-pdf");document.body.style.width=cf+"px";document.body.style.height=ch+"px";a0(cj,ci);w(bQ.wrapper.querySelectorAll(ak)).forEach(function(cl,ck){cl.setAttribute("data-index-h",ck);if(cl.classList.contains("stack")){w(cl.querySelectorAll("section")).forEach(function(cn,cm){cn.setAttribute("data-index-h",ck);cn.setAttribute("data-index-v",cm)})}});w(bQ.wrapper.querySelectorAll(ce)).forEach(function(cs){if(cs.classList.contains("stack")===false){var co=(cf-cj)/2,cw=(ch-ci)/2;var cx=cs.scrollHeight;var cr=Math.max(Math.ceil(cx/ch),1);cr=Math.min(cr,al.pdfMaxPagesPerSlide);if(cr===1&&al.center||cs.classList.contains("center")){cw=Math.max((ch-cx)/2,0)}var cv=document.createElement("div");cv.className="pdf-page";cv.style.height=((ch+al.pdfPageHeightOffset)*cr)+"px";cs.parentNode.insertBefore(cv,cs);cv.appendChild(cs);cs.style.left=co+"px";cs.style.top=cw+"px";cs.style.width=cj+"px";if(cs.slideBackgroundElement){cv.insertBefore(cs.slideBackgroundElement,cs)}if(al.showNotes){var cu=bu(cs);if(cu){var cp=8;var cy=typeof al.showNotes==="string"?al.showNotes:"inline";var ck=document.createElement("div");ck.classList.add("speaker-notes");ck.classList.add("speaker-notes-pdf");ck.setAttribute("data-layout",cy);ck.innerHTML=cu;if(cy==="separate-page"){cv.parentNode.insertBefore(ck,cv.nextSibling)}else{ck.style.left=cp+"px";ck.style.bottom=cp+"px";ck.style.width=(cf-cp*2)+"px";cv.appendChild(ck)}}}if(al.slideNumber&&/all|print/i.test(al.showSlideNumber)){var cm=parseInt(cs.getAttribute("data-index-h"),10)+1,ct=parseInt(cs.getAttribute("data-index-v"),10)+1;var cn=document.createElement("div");cn.classList.add("slide-number");cn.classList.add("slide-number-pdf");cn.innerHTML=aG(cm,".",ct);cv.appendChild(cn)}if(al.pdfSeparateFragments){var cz=R(cv.querySelectorAll(".fragment"),true);var cq;var cl;cz.forEach(function(cA){if(cq){cq.forEach(function(cC){cC.classList.remove("current-fragment")})}cA.forEach(function(cC){cC.classList.add("visible","current-fragment")});var cB=cv.cloneNode(true);cv.parentNode.insertBefore(cB,(cl||cv).nextSibling);cq=cA;cl=cB});cz.forEach(function(cA){cA.forEach(function(cB){cB.classList.remove("visible","current-fragment")})})}else{w(cv.querySelectorAll(".fragment:not(.fade-out)")).forEach(function(cA){cA.classList.add("visible")})}}});a9("pdf-ready")}function m(){setInterval(function(){if(bQ.wrapper.scrollTop!==0||bQ.wrapper.scrollLeft!==0){bQ.wrapper.scrollTop=0;bQ.wrapper.scrollLeft=0}},1000)}function aj(cf,ck,cl,cm){var cg=cf.querySelectorAll("."+cl);for(var ci=0;ci1&&al.autoSlide&&al.autoSlideStoppable&&aV.canvas&&aV.requestAnimationFrame){a1=new n(bQ.wrapper,function(){return Math.min(Math.max((Date.now()-ad)/cb,0),1)});a1.on("click",d);p=false}if(al.fragments===false){w(bQ.slides.querySelectorAll(".fragment")).forEach(function(cj){cj.classList.add("visible");cj.classList.remove("current-fragment")})}var cf="none";if(al.slideNumber&&!bw()){if(al.showSlideNumber==="all"){cf="block"}else{if(al.showSlideNumber==="speaker"&&A()){cf="block"}}}bQ.slideNumber.style.display=cf;x()}function aX(){bt=true;window.addEventListener("hashchange",b4,false);window.addEventListener("resize",b,false);if(al.touch){if("onpointerdown" in window){bQ.wrapper.addEventListener("pointerdown",aO,false);bQ.wrapper.addEventListener("pointermove",aU,false);bQ.wrapper.addEventListener("pointerup",b1,false)}else{if(window.navigator.msPointerEnabled){bQ.wrapper.addEventListener("MSPointerDown",aO,false);bQ.wrapper.addEventListener("MSPointerMove",aU,false);bQ.wrapper.addEventListener("MSPointerUp",b1,false)}else{bQ.wrapper.addEventListener("touchstart",bs,false);bQ.wrapper.addEventListener("touchmove",u,false);bQ.wrapper.addEventListener("touchend",r,false)}}}if(al.keyboard){document.addEventListener("keydown",ca,false);document.addEventListener("keypress",c,false)}if(al.progress&&bQ.progress){bQ.progress.addEventListener("click",bR,false)}bQ.resumeButton.addEventListener("click",C,false);if(al.focusBodyOnPageVisibilityChange){var cf;if("hidden" in document){cf="visibilitychange"}else{if("msHidden" in document){cf="msvisibilitychange"}else{if("webkitHidden" in document){cf="webkitvisibilitychange"}}}if(cf){document.addEventListener(cf,e,false)}}var cg=["touchstart","click"];if(b7.match(/android/gi)){cg=["touchstart"]}cg.forEach(function(ch){bQ.controlsLeft.forEach(function(ci){ci.addEventListener(ch,I,false)});bQ.controlsRight.forEach(function(ci){ci.addEventListener(ch,bb,false)});bQ.controlsUp.forEach(function(ci){ci.addEventListener(ch,ba,false)});bQ.controlsDown.forEach(function(ci){ci.addEventListener(ch,X,false)});bQ.controlsPrev.forEach(function(ci){ci.addEventListener(ch,k,false)});bQ.controlsNext.forEach(function(ci){ci.addEventListener(ch,B,false)})})}function a(){bt=false;document.removeEventListener("keydown",ca,false);document.removeEventListener("keypress",c,false);window.removeEventListener("hashchange",b4,false);window.removeEventListener("resize",b,false);bQ.wrapper.removeEventListener("pointerdown",aO,false);bQ.wrapper.removeEventListener("pointermove",aU,false);bQ.wrapper.removeEventListener("pointerup",b1,false);bQ.wrapper.removeEventListener("MSPointerDown",aO,false);bQ.wrapper.removeEventListener("MSPointerMove",aU,false);bQ.wrapper.removeEventListener("MSPointerUp",b1,false);bQ.wrapper.removeEventListener("touchstart",bs,false);bQ.wrapper.removeEventListener("touchmove",u,false);bQ.wrapper.removeEventListener("touchend",r,false);bQ.resumeButton.removeEventListener("click",C,false);if(al.progress&&bQ.progress){bQ.progress.removeEventListener("click",bR,false)}["touchstart","click"].forEach(function(cf){bQ.controlsLeft.forEach(function(cg){cg.removeEventListener(cf,I,false)});bQ.controlsRight.forEach(function(cg){cg.removeEventListener(cf,bb,false)});bQ.controlsUp.forEach(function(cg){cg.removeEventListener(cf,ba,false)});bQ.controlsDown.forEach(function(cg){cg.removeEventListener(cf,X,false)});bQ.controlsPrev.forEach(function(cg){cg.removeEventListener(cf,k,false)});bQ.controlsNext.forEach(function(cg){cg.removeEventListener(cf,B,false)})})}function O(cf,cg){if(typeof cf==="object"&&cf.keyCode){i[cf.keyCode]={callback:cg,key:cf.key,description:cf.description}}else{i[cf]={callback:cg,key:null,description:null}}}function aw(cf){delete i[cf]}function bz(cg,cf){for(var ch in cf){cg[ch]=cf[ch]}return cg}function w(cf){return Array.prototype.slice.call(cf)}function aY(cf){if(typeof cf==="string"){if(cf==="null"){return null}else{if(cf==="true"){return true}else{if(cf==="false"){return false}else{if(cf.match(/^-?[\d\.]+$/)){return parseFloat(cf)}}}}}return cf}function bl(ch,cf){var ci=ch.x-cf.x,cg=ch.y-cf.y;return Math.sqrt(ci*ci+cg*cg)}function aD(cg,cf){cg.style.WebkitTransform=cf;cg.style.MozTransform=cf;cg.style.msTransform=cf;cg.style.transform=cf}function aW(cf){if(typeof cf.layout==="string"){aE.layout=cf.layout}if(typeof cf.overview==="string"){aE.overview=cf.overview}if(aE.layout){aD(bQ.slides,aE.layout+" "+aE.overview)}else{aD(bQ.slides,aE.overview)}}function bD(cg){var cf=document.createElement("style");cf.type="text/css";if(cf.styleSheet){cf.styleSheet.cssText=cg}else{cf.appendChild(document.createTextNode(cg))}document.getElementsByTagName("head")[0].appendChild(cf)}function T(ci,cf){var cg=ci.parentNode;while(cg){var ch=cg.matches||cg.matchesSelector||cg.msMatchesSelector;if(ch&&ch.call(cg,cf)){return cg}cg=cg.parentNode}return null}function at(cg){var cf=cg.match(/^#([0-9a-f]{3})$/i);if(cf&&cf[1]){cf=cf[1];return{r:parseInt(cf.charAt(0),16)*17,g:parseInt(cf.charAt(1),16)*17,b:parseInt(cf.charAt(2),16)*17}}var cj=cg.match(/^#([0-9a-f]{6})$/i);if(cj&&cj[1]){cj=cj[1];return{r:parseInt(cj.substr(0,2),16),g:parseInt(cj.substr(2,2),16),b:parseInt(cj.substr(4,2),16)}}var ch=cg.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(ch){return{r:parseInt(ch[1],10),g:parseInt(ch[2],10),b:parseInt(ch[3],10)}}var ci=cg.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);if(ci){return{r:parseInt(ci[1],10),g:parseInt(ci[2],10),b:parseInt(ci[3],10),a:parseFloat(ci[4])}}return null}function a5(cf){if(typeof cf==="string"){cf=at(cf)}if(cf){return(cf.r*299+cf.g*587+cf.b*114)/1000}return null}function bM(ch,cf){cf=cf||0;if(ch){var cg,ci=ch.style.height;ch.style.height="0px";cg=cf-ch.parentNode.offsetHeight;ch.style.height=ci+"px";return cg}return cf}function bw(){return(/print-pdf/gi).test(window.location.search)}function bE(){return(/print-pdf-fragments/gi).test(window.location.search)}function aI(){if(al.hideAddressBar&&ae){window.addEventListener("load",af,false);window.addEventListener("orientationchange",af,false)}}function af(){setTimeout(function(){window.scrollTo(0,1)},10)}function a9(cg,cf){var ch=document.createEvent("HTMLEvents",1,2);ch.initEvent(cg,true,true);bz(ch,cf);bQ.wrapper.dispatchEvent(ch);if(al.postMessageEvents&&window.parent!==window.self){window.parent.postMessage(JSON.stringify({namespace:"reveal",eventName:cg,state:ai()}),"*")}}function a8(){if(aV.transforms3d&&!("msPerspective" in document.body.style)){var cj=bQ.wrapper.querySelectorAll(ce+" a");for(var ch=0,cf=cj.length;ch",'','',"",'
','
','','','Unable to load iframe. This is likely due to the site\'s policy (x-frame-options).',"","
"].join("");bQ.overlay.querySelector("iframe").addEventListener("load",function(cg){bQ.overlay.classList.add("loaded")},false);bQ.overlay.querySelector(".close").addEventListener("click",function(cg){M();cg.preventDefault()},false);bQ.overlay.querySelector(".external").addEventListener("click",function(cg){M()},false);setTimeout(function(){bQ.overlay.classList.add("visible")},1)}function bU(cf){if(typeof cf==="boolean"){cf?aH():M()}else{if(bQ.overlay){M()}else{aH()}}}function aH(){if(al.help){M();bQ.overlay=document.createElement("div");bQ.overlay.classList.add("overlay");bQ.overlay.classList.add("overlay-help");bQ.wrapper.appendChild(bQ.overlay);var cg='

Keyboard Shortcuts


';cg+="";for(var cf in bB){cg+=""}for(var ch in i){if(i[ch].key&&i[ch].description){cg+=""}}cg+="
KEYACTION
"+cf+""+bB[cf]+"
"+i[ch].key+""+i[ch].description+"
";bQ.overlay.innerHTML=["
",'',"
",'
','
'+cg+"
","
"].join("");bQ.overlay.querySelector(".close").addEventListener("click",function(ci){M();ci.preventDefault()},false);setTimeout(function(){bQ.overlay.classList.add("visible")},1)}}function M(){if(bQ.overlay){bQ.overlay.parentNode.removeChild(bQ.overlay);bQ.overlay=null}}function ay(){if(bQ.wrapper&&!bw()){if(!al.disableLayout){var ci=a3();a0(al.width,al.height);bQ.slides.style.width=ci.width+"px";bQ.slides.style.height=ci.height+"px";bg=Math.min(ci.presentationWidth/ci.width,ci.presentationHeight/ci.height);bg=Math.max(bg,al.minScale);bg=Math.min(bg,al.maxScale);if(bg===1){bQ.slides.style.zoom="";bQ.slides.style.left="";bQ.slides.style.top="";bQ.slides.style.bottom="";bQ.slides.style.right="";aW({layout:""})}else{if(bg>1&&aV.zoom){bQ.slides.style.zoom=bg;bQ.slides.style.left="";bQ.slides.style.top="";bQ.slides.style.bottom="";bQ.slides.style.right="";aW({layout:""})}else{bQ.slides.style.zoom="";bQ.slides.style.left="50%";bQ.slides.style.top="50%";bQ.slides.style.bottom="auto";bQ.slides.style.right="auto";aW({layout:"translate(-50%, -50%) scale("+bg+")"})}}var cj=w(bQ.wrapper.querySelectorAll(ce));for(var ch=0,cg=cj.length;ch .stretch")).forEach(function(cj){var ci=bM(cj,cf);if(/(img|video)/gi.test(cj.nodeName)){var ch=cj.naturalWidth||cj.videoWidth,ck=cj.naturalHeight||cj.videoHeight;var cl=Math.min(cg/ch,ci/ck);cj.style.width=(ch*cl)+"px";cj.style.height=(ck*cl)+"px"}else{cj.style.width=cg+"px";cj.style.height=ci+"px"}})}function a3(cf,ch){var cg={width:al.width,height:al.height,presentationWidth:cf||bQ.wrapper.offsetWidth,presentationHeight:ch||bQ.wrapper.offsetHeight};cg.presentationWidth-=(cg.presentationWidth*al.margin);cg.presentationHeight-=(cg.presentationHeight*al.margin);if(typeof cg.width==="string"&&/%$/.test(cg.width)){cg.width=parseInt(cg.width,10)/100*cg.presentationWidth}if(typeof cg.height==="string"&&/%$/.test(cg.height)){cg.height=parseInt(cg.height,10)/100*cg.presentationHeight}return cg}function ar(cf,cg){if(typeof cf==="object"&&typeof cf.setAttribute==="function"){cf.setAttribute("data-previous-indexv",cg||0)}}function l(cf){if(typeof cf==="object"&&typeof cf.setAttribute==="function"&&cf.classList.contains("stack")){var cg=cf.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(cf.getAttribute(cg)||0,10)}return 0}function cd(){if(al.overview&&!aS()){J=true;bQ.wrapper.classList.add("overview");bQ.wrapper.classList.remove("overview-deactivating");if(aV.overviewTransitions){setTimeout(function(){bQ.wrapper.classList.add("overview-animated")},1)}bX();bQ.slides.appendChild(bQ.background);w(bQ.wrapper.querySelectorAll(ce)).forEach(function(ch){if(!ch.classList.contains("stack")){ch.addEventListener("click",am,true)}});var cg=70;var cf=a3();s=cf.width+cg;v=cf.height+cg;if(al.rtl){s=-s}bx();a7();bh();ay();a9("overviewshown",{indexh:Z,indexv:V,currentSlide:bJ})}}function a7(){w(bQ.wrapper.querySelectorAll(ak)).forEach(function(cg,cf){cg.setAttribute("data-index-h",cf);aD(cg,"translate3d("+(cf*s)+"px, 0, 0)");if(cg.classList.contains("stack")){w(cg.querySelectorAll("section")).forEach(function(ci,ch){ci.setAttribute("data-index-h",cf);ci.setAttribute("data-index-v",ch);aD(ci,"translate3d(0, "+(ch*v)+"px, 0)")})}});w(bQ.background.childNodes).forEach(function(cg,cf){aD(cg,"translate3d("+(cf*s)+"px, 0, 0)");w(cg.querySelectorAll(".slide-background")).forEach(function(ch,ci){aD(ch,"translate3d(0, "+(ci*v)+"px, 0)")})})}function bh(){var cf=Math.min(window.innerWidth,window.innerHeight);var cg=Math.max(cf/5,150)/cf;aW({overview:["scale("+cg+")","translateX("+(-Z*s)+"px)","translateY("+(-V*v)+"px)"].join(" ")})}function aL(){if(al.overview){J=false;bQ.wrapper.classList.remove("overview");bQ.wrapper.classList.remove("overview-animated");bQ.wrapper.classList.add("overview-deactivating");setTimeout(function(){bQ.wrapper.classList.remove("overview-deactivating")},1);bQ.wrapper.appendChild(bQ.background);w(bQ.wrapper.querySelectorAll(ce)).forEach(function(cf){aD(cf,"");cf.removeEventListener("click",am,true)});w(bQ.background.querySelectorAll(".slide-background")).forEach(function(cf){aD(cf,"")});aW({overview:""});z(Z,V);ay();bZ();a9("overviewhidden",{indexh:Z,indexv:V,currentSlide:bJ})}}function bK(cf){if(typeof cf==="boolean"){cf?cd():aL()}else{aS()?aL():cd()}}function aS(){return J}function bq(){var cg="/";var ci=bJ?bJ.getAttribute("id"):null;if(ci){ci=encodeURIComponent(ci)}var cf;if(al.fragmentInURL){cf=au().f}if(typeof ci==="string"&&ci.length&&cf===undefined){cg="/"+ci}else{var ch=al.hashOneBasedIndex?1:0;if(Z>0||V>0||cf!==undefined){cg+=Z+ch}if(V>0||cf!==undefined){cg+="/"+(V+ch)}if(cf!==undefined){cg+="/"+cf}}return cg}function F(cf){cf=cf?cf:bJ;return cf&&cf.parentNode&&!!cf.parentNode.nodeName.match(/section/i)}function D(){var cf=document.documentElement;var cg=cf.requestFullscreen||cf.webkitRequestFullscreen||cf.webkitRequestFullScreen||cf.mozRequestFullScreen||cf.msRequestFullscreen;if(cg){cg.apply(cf)}}function Y(){if(al.pause){var cf=bQ.wrapper.classList.contains("paused");bX();bQ.wrapper.classList.add("paused");if(cf===false){a9("paused")}}}function C(){var cf=bQ.wrapper.classList.contains("paused");bQ.wrapper.classList.remove("paused");bZ();if(cf){a9("resumed")}}function aF(cf){if(typeof cf==="boolean"){cf?Y():C()}else{bp()?C():Y()}}function bp(){return bQ.wrapper.classList.contains("paused")}function bY(cf){if(typeof cf==="boolean"){cf?Q():a6()}else{p?Q():a6()}}function bN(){return !!(cb&&!p)}function z(cm,cs,co,cf){bk=bJ;var cg=bQ.wrapper.querySelectorAll(ak);if(cg.length===0){return}if(cs===undefined&&!aS()){cs=l(cg[cm])}if(bk&&bk.parentNode&&bk.parentNode.classList.contains("stack")){ar(bk.parentNode,V)}var ck=br.concat();br.length=0;var cr=Z||0,ci=V||0;Z=aT(ak,cm===undefined?Z:cm);V=aT(b9,cs===undefined?V:cs);bx();ay();stateLoop:for(var cj=0,cn=br.length;cj0){ci.classList.remove("present");ci.classList.remove("past");ci.classList.add("future");ci.setAttribute("aria-hidden","true")}})})}function bn(){var cf=w(bQ.wrapper.querySelectorAll(ak));cf.forEach(function(cg){var ch=w(cg.querySelectorAll("section"));ch.forEach(function(ci,cj){R(ci.querySelectorAll(".fragment"))});if(ch.length===0){R(cg.querySelectorAll(".fragment"))}})}function aC(){var cf=w(bQ.wrapper.querySelectorAll(ak));cf.forEach(function(cg){bQ.slides.insertBefore(cg,cf[Math.floor(Math.random()*cf.length)])})}function aT(cj,co){var cg=w(bQ.wrapper.querySelectorAll(cj)),cn=cg.length;var cp=bw();if(cn){if(al.loop){co%=cn;if(co<0){co=cn+co}}co=Math.max(Math.min(co,cn-1),0);for(var cl=0;clco){cm.classList.add(cq?"past":"future");if(al.fragments){var cf=w(cm.querySelectorAll(".fragment.visible"));while(cf.length){var ch=cf.pop();ch.classList.remove("visible");ch.classList.remove("current-fragment")}}}}}cg[co].classList.add("present");cg[co].removeAttribute("hidden");cg[co].removeAttribute("aria-hidden");var ci=cg[co].getAttribute("data-state");if(ci){br=br.concat(ci.split(" "))}}else{co=0}return co}function bx(){var ci=w(bQ.wrapper.querySelectorAll(ak)),ck=ci.length,cq,cp;if(ck&&typeof Z!=="undefined"){var cl=aS()?10:al.viewDistance;if(ae){cl=aS()?6:2}if(bw()){cl=Number.MAX_VALUE}for(var co=0;cosection>section").length){bQ.wrapper.classList.add("has-vertical-slides")}else{bQ.wrapper.classList.remove("has-vertical-slides")}if(bQ.wrapper.querySelectorAll(".slides>section").length>1){bQ.wrapper.classList.add("has-horizontal-slides")}else{bQ.wrapper.classList.remove("has-horizontal-slides")}}}function bW(){if(al.showNotes&&bQ.speakerNotes&&bJ&&!bw()){bQ.speakerNotes.innerHTML=bu()||'No notes on this slide.'}}function an(){if(al.showNotes&&K()){bQ.wrapper.classList.add("show-notes")}else{bQ.wrapper.classList.remove("show-notes")}}function K(){return bQ.slides.querySelectorAll("[data-notes], aside.notes").length>0}function bH(){if(al.progress&&bQ.progressbar){bQ.progressbar.style.width=aQ()*bQ.wrapper.offsetWidth+"px"}}function bS(){if(al.slideNumber&&bQ.slideNumber){var cf=[];var cg="h.v";if(typeof al.slideNumber==="string"){cg=al.slideNumber}if(!/c/.test(cg)&&bQ.wrapper.querySelectorAll(ak).length===1){cg="c"}switch(cg){case"c":cf.push(t()+1);break;case"c/t":cf.push(t()+1,"/",aB());break;case"h/v":cf.push(Z+1);if(F()){cf.push("/",V+1)}break;default:cf.push(Z+1);if(F()){cf.push(".",V+1)}}bQ.slideNumber.innerHTML=aG(cf[0],cf[1],cf[2])}}function aG(cg,ch,cf){var ci="#"+bq();if(typeof cf==="number"&&!isNaN(cf)){return''+cg+''+ch+''+cf+""}else{return''+cg+""}}function aA(){var cg=ag();var cf=aZ();bQ.controlsLeft.concat(bQ.controlsRight).concat(bQ.controlsUp).concat(bQ.controlsDown).concat(bQ.controlsPrev).concat(bQ.controlsNext).forEach(function(ch){ch.classList.remove("enabled");ch.classList.remove("fragmented");ch.setAttribute("disabled","disabled")});if(cg.left){bQ.controlsLeft.forEach(function(ch){ch.classList.add("enabled");ch.removeAttribute("disabled")})}if(cg.right){bQ.controlsRight.forEach(function(ch){ch.classList.add("enabled");ch.removeAttribute("disabled")})}if(cg.up){bQ.controlsUp.forEach(function(ch){ch.classList.add("enabled");ch.removeAttribute("disabled")})}if(cg.down){bQ.controlsDown.forEach(function(ch){ch.classList.add("enabled");ch.removeAttribute("disabled")})}if(cg.left||cg.up){bQ.controlsPrev.forEach(function(ch){ch.classList.add("enabled");ch.removeAttribute("disabled")})}if(cg.right||cg.down){bQ.controlsNext.forEach(function(ch){ch.classList.add("enabled");ch.removeAttribute("disabled")})}if(bJ){if(cf.prev){bQ.controlsPrev.forEach(function(ch){ch.classList.add("fragmented","enabled");ch.removeAttribute("disabled")})}if(cf.next){bQ.controlsNext.forEach(function(ch){ch.classList.add("fragmented","enabled");ch.removeAttribute("disabled")})}if(F(bJ)){if(cf.prev){bQ.controlsUp.forEach(function(ch){ch.classList.add("fragmented","enabled");ch.removeAttribute("disabled")})}if(cf.next){bQ.controlsDown.forEach(function(ch){ch.classList.add("fragmented","enabled");ch.removeAttribute("disabled")})}}else{if(cf.prev){bQ.controlsLeft.forEach(function(ch){ch.classList.add("fragmented","enabled");ch.removeAttribute("disabled")})}if(cf.next){bQ.controlsRight.forEach(function(ch){ch.classList.add("fragmented","enabled");ch.removeAttribute("disabled")})}}}if(al.controlsTutorial){if(!bd&&cg.down){bQ.controlsDownArrow.classList.add("highlight")}else{bQ.controlsDownArrow.classList.remove("highlight");if(!f&&cg.right&&V===0){bQ.controlsRightArrow.classList.add("highlight")}else{bQ.controlsRightArrow.classList.remove("highlight")}}}}function aq(cf){var cg=null;var ci=al.rtl?"future":"past",ck=al.rtl?"past":"future";w(bQ.background.childNodes).forEach(function(co,cn){co.classList.remove("past");co.classList.remove("present");co.classList.remove("future");if(cnZ){co.classList.add(ck)}else{co.classList.add("present");cg=co}}if(cf||cn===Z){w(co.querySelectorAll(".slide-background")).forEach(function(cq,cp){cq.classList.remove("past");cq.classList.remove("present");cq.classList.remove("future");if(cpV){cq.classList.add("future")}else{cq.classList.add("present");if(cn===Z){cg=cq}}}})}});if(bi){b3(bi)}if(cg){bI(cg);var cm=cg.querySelector(".slide-background-content");if(cm){var cj=cm.style.backgroundImage||"";if(/\.gif/i.test(cj)){cm.style.backgroundImage="";window.getComputedStyle(cm).opacity;cm.style.backgroundImage=cj}}var ch=bi?bi.getAttribute("data-background-hash"):null;var cl=cg.getAttribute("data-background-hash");if(cl&&cl===ch&&cg!==bi){bQ.background.classList.add("no-transition")}bi=cg}if(bJ){["has-light-background","has-dark-background"].forEach(function(cn){if(bJ.classList.contains(cn)){bQ.wrapper.classList.add(cn)}else{bQ.wrapper.classList.remove(cn)}})}setTimeout(function(){bQ.background.classList.remove("no-transition")},1)}function H(){if(al.parallaxBackgroundImage){var ci=bQ.wrapper.querySelectorAll(ak),co=bQ.wrapper.querySelectorAll(b9);var cp=bQ.background.style.backgroundSize.split(" "),cm,cf;if(cp.length===1){cm=cf=parseInt(cp[0],10)}else{cm=parseInt(cp[0],10);cf=parseInt(cp[1],10)}var ch=bQ.background.offsetWidth,cn=ci.length,cq,ck;if(typeof al.parallaxBackgroundHorizontal==="number"){cq=al.parallaxBackgroundHorizontal}else{cq=cn>1?(cm-ch)/(cn-1):0}ck=cq*Z*-1;var cl=bQ.background.offsetHeight,cj=co.length,cg,cr;if(typeof al.parallaxBackgroundVertical==="number"){cg=al.parallaxBackgroundVertical}else{cg=(cf-cl)/(cj-1)}cr=cj>0?cg*V:0;bQ.background.style.backgroundPosition=ck+"px "+-cr+"px"}}function ao(cj,cp){cp=cp||{};cj.style.display=al.display;w(cj.querySelectorAll("img[data-src], video[data-src], audio[data-src]")).forEach(function(cq){cq.setAttribute("src",cq.getAttribute("data-src"));cq.setAttribute("data-lazy-loaded","");cq.removeAttribute("data-src")});w(cj.querySelectorAll("video, audio")).forEach(function(cr){var cq=0;w(cr.querySelectorAll("source[data-src]")).forEach(function(cs){cs.setAttribute("src",cs.getAttribute("data-src"));cs.removeAttribute("data-src");cs.setAttribute("data-lazy-loaded","");cq+=1});if(cq>0){cr.load()}});var cf=cj.slideBackgroundElement;if(cf){cf.style.display="block";var ch=cj.slideBackgroundContentElement;if(cf.hasAttribute("data-loaded")===false){cf.setAttribute("data-loaded","true");var co=cj.getAttribute("data-background-image"),cl=cj.getAttribute("data-background-video"),ck=cj.hasAttribute("data-background-video-loop"),cm=cj.hasAttribute("data-background-video-muted"),cn=cj.getAttribute("data-background-iframe");if(co){ch.style.backgroundImage="url("+encodeURI(co)+")"}else{if(cl&&!A()){var cg=document.createElement("video");if(ck){cg.setAttribute("loop","")}if(cm){cg.muted=true}if(ae){cg.muted=true;cg.autoplay=true;cg.setAttribute("playsinline","")}cl.split(",").forEach(function(cq){cg.innerHTML+=''});ch.appendChild(cg)}else{if(cn&&cp.excludeIframes!==true){var ci=document.createElement("iframe");ci.setAttribute("allowfullscreen","");ci.setAttribute("mozallowfullscreen","");ci.setAttribute("webkitallowfullscreen","");if(/autoplay=(1|true|yes)/gi.test(cn)){ci.setAttribute("data-src",cn)}else{ci.setAttribute("src",cn)}ci.style.width="100%";ci.style.height="100%";ci.style.maxHeight="100%";ci.style.maxWidth="100%";ch.appendChild(ci)}}}}}}function ah(cf){cf.style.display="none";var cg=aM(cf);if(cg){cg.style.display="none"}w(cf.querySelectorAll("video[data-lazy-loaded][src], audio[data-lazy-loaded][src]")).forEach(function(ch){ch.setAttribute("data-src",ch.getAttribute("src"));ch.removeAttribute("src")});w(cf.querySelectorAll("video[data-lazy-loaded] source[src], audio source[src]")).forEach(function(ch){ch.setAttribute("data-src",ch.getAttribute("src"));ch.removeAttribute("src")})}function ag(){var cg=bQ.wrapper.querySelectorAll(ak),ci=bQ.wrapper.querySelectorAll(b9);var cf={left:Z>0,right:Z0,down:V1){cf.left=true;cf.right=true}if(ci.length>1){cf.up=true;cf.down=true}}if(al.rtl){var ch=cf.left;cf.left=cf.right;cf.right=ch}return cf}function aZ(){if(bJ&&al.fragments){var cf=bJ.querySelectorAll(".fragment");var cg=bJ.querySelectorAll(".fragment:not(.visible)");return{prev:cf.length-cg.length>0,next:!!cg.length}}else{return{prev:false,next:false}}}function cc(){var cf=function(ci,cg,ch){w(bQ.slides.querySelectorAll("iframe["+ci+'*="'+cg+'"]')).forEach(function(cj){var ck=cj.getAttribute(ci);if(ck&&ck.indexOf(ch)===-1){cj.setAttribute(ci,ck+(!/\?/.test(ck)?"?":"&")+ch)}})};cf("src","youtube.com/embed/","enablejsapi=1");cf("data-src","youtube.com/embed/","enablejsapi=1");cf("src","player.vimeo.com/","api=1");cf("data-src","player.vimeo.com/","api=1");if(ae){w(bQ.slides.querySelectorAll("video, audio")).forEach(function(cg){cg.controls=true})}}function bI(cf){if(cf&&!A()){w(cf.querySelectorAll('img[src$=".gif"]')).forEach(function(cg){cg.setAttribute("src",cg.getAttribute("src"))});w(cf.querySelectorAll("video, audio")).forEach(function(cg){if(T(cg,".fragment")&&!T(cg,".fragment.visible")){return}var ch=al.autoPlayMedia;if(typeof ch!=="boolean"){ch=cg.hasAttribute("data-autoplay")||!!T(cg,".slide-background")}if(ch&&typeof cg.play==="function"){if(cg.readyState>1){ab({target:cg})}else{if(ae){cg.play()}else{cg.removeEventListener("loadeddata",ab);cg.addEventListener("loadeddata",ab)}}}});w(cf.querySelectorAll("iframe[src]")).forEach(function(cg){if(T(cg,".fragment")&&!T(cg,".fragment.visible")){return}ax({target:cg})});w(cf.querySelectorAll("iframe[data-src]")).forEach(function(cg){if(T(cg,".fragment")&&!T(cg,".fragment.visible")){return}if(cg.getAttribute("src")!==cg.getAttribute("data-src")){cg.removeEventListener("load",ax);cg.addEventListener("load",ax);cg.setAttribute("src",cg.getAttribute("data-src"))}})}}function ab(ch){var cg=!!T(ch.target,"html"),cf=!!T(ch.target,".present");if(cg&&cf){ch.target.currentTime=0;ch.target.play()}ch.target.removeEventListener("loadeddata",ab)}function ax(ci){var cg=ci.target;if(cg&&cg.contentWindow){var ch=!!T(ci.target,"html"),cf=!!T(ci.target,".present");if(ch&&cf){var cj=al.autoPlayMedia;if(typeof cj!=="boolean"){cj=cg.hasAttribute("data-autoplay")||!!T(cg,".slide-background")}if(/youtube\.com\/embed\//.test(cg.getAttribute("src"))&&cj){cg.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")}else{if(/player\.vimeo\.com\//.test(cg.getAttribute("src"))&&cj){cg.contentWindow.postMessage('{"method":"play"}',"*")}else{cg.contentWindow.postMessage("slide:start","*")}}}}}function b3(cg,cf){cf=bz({unloadIframes:true},cf||{});if(cg&&cg.parentNode){w(cg.querySelectorAll("video, audio")).forEach(function(ch){if(!ch.hasAttribute("data-ignore")&&typeof ch.pause==="function"){ch.setAttribute("data-paused-by-reveal","");ch.pause()}});w(cg.querySelectorAll("iframe")).forEach(function(ch){if(ch.contentWindow){ch.contentWindow.postMessage("slide:stop","*")}ch.removeEventListener("load",ax)});w(cg.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(ch){if(!ch.hasAttribute("data-ignore")&&ch.contentWindow&&typeof ch.contentWindow.postMessage==="function"){ch.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}});w(cg.querySelectorAll('iframe[src*="player.vimeo.com/"]')).forEach(function(ch){if(!ch.hasAttribute("data-ignore")&&ch.contentWindow&&typeof ch.contentWindow.postMessage==="function"){ch.contentWindow.postMessage('{"method":"pause"}',"*")}});if(cf.unloadIframes===true){w(cg.querySelectorAll("iframe[data-src]")).forEach(function(ch){ch.setAttribute("src","about:blank");ch.removeAttribute("src")})}}}function t(){var cg=w(bQ.wrapper.querySelectorAll(ak));var cf=0;mainLoop:for(var ci=0;ci0){var ci=bJ.querySelectorAll(".fragment.visible");var ch=0.9;cf+=(ci.length/cj.length)*ch}}return cf/(cg-1)}function A(){return !!window.location.search.match(/receiver/gi)}function bo(){var cg=window.location.hash;var cp=cg.slice(2).split("/"),cf=cg.replace(/#|\//gi,"");if(isNaN(parseInt(cp[0],10))&&cf.length){var ch;try{ch=document.getElementById(decodeURIComponent(cf))}catch(cl){}var cm=bJ?bJ.getAttribute("id")===cf:false;if(ch&&!cm){var co=bj.getIndices(ch);z(co.h,co.v)}else{z(Z||0,V||0)}}else{var ck=al.hashOneBasedIndex?1:0;var ci=(parseInt(cp[0],10)-ck)||0,cn=(parseInt(cp[1],10)-ck)||0,cj;if(al.fragmentInURL){cj=parseInt(cp[2],10);if(isNaN(cj)){cj=undefined}}if(ci!==Z||cn!==V||cj!==undefined){z(ci,cn,cj)}}}function ac(cf){if(al.history){clearTimeout(b5);if(typeof cf==="number"){b5=setTimeout(ac,cf)}else{if(bJ){window.location.hash=bq()}}}}function au(ci){var ch=Z,cn=V,cj;if(ci){var cm=F(ci);var ck=cm?ci.parentNode:ci;var cf=w(bQ.wrapper.querySelectorAll(ak));ch=Math.max(cf.indexOf(ck),0);cn=undefined;if(cm){cn=Math.max(w(ci.parentNode.querySelectorAll("section")).indexOf(ci),0)}}if(!ci&&bJ){var cl=bJ.querySelectorAll(".fragment").length>0;if(cl){var cg=bJ.querySelector(".current-fragment");if(cg&&cg.hasAttribute("data-fragment-index")){cj=parseInt(cg.getAttribute("data-fragment-index"),10)}else{cj=bJ.querySelectorAll(".fragment.visible").length-1}}}return{h:ch,v:cn,f:cj}}function bc(){return w(bQ.wrapper.querySelectorAll(ce+":not(.stack)"))}function aB(){return bc().length}function bO(cf,ci){var cg=bQ.wrapper.querySelectorAll(ak)[cf];var ch=cg&&cg.querySelectorAll("section");if(ch&&ch.length&&typeof ci==="number"){return ch?ch[ci]:undefined}return cg}function aM(cg,ch){var cf=typeof cg==="number"?bO(cg,ch):cg;if(cf){return cf.slideBackgroundElement}return undefined}function bu(cf){cf=cf||bJ;if(cf.hasAttribute("data-notes")){return cf.getAttribute("data-notes")}var cg=cf.querySelector("aside.notes");if(cg){return cg.innerHTML}return null}function ai(){var cf=au();return{indexh:cf.h,indexv:cf.v,indexf:cf.f,paused:bp(),overview:aS()}}function b2(ch){if(typeof ch==="object"){z(aY(ch.indexh),aY(ch.indexv),aY(ch.indexf));var cf=aY(ch.paused),cg=aY(ch.overview);if(typeof cf==="boolean"&&cf!==bp()){aF(cf)}if(typeof cg==="boolean"&&cg!==aS()){bK(cg)}}}function R(cf,ck){cf=w(cf);var ch=[],cg=[],ci=[];cf.forEach(function(cm,cn){if(cm.hasAttribute("data-fragment-index")){var cl=parseInt(cm.getAttribute("data-fragment-index"),10);if(!ch[cl]){ch[cl]=[]}ch[cl].push(cm)}else{cg.push([cm])}});ch=ch.concat(cg);var cj=0;ch.forEach(function(cl){cl.forEach(function(cm){ci.push(cm);cm.setAttribute("data-fragment-index",cj)});cj++});return ck===true?ch:ci}function be(cg,ck){if(bJ&&al.fragments){var cf=R(bJ.querySelectorAll(".fragment"));if(cf.length){if(typeof cg!=="number"){var cj=R(bJ.querySelectorAll(".fragment.visible")).pop();if(cj){cg=parseInt(cj.getAttribute("data-fragment-index")||0,10)}else{cg=-1}}if(typeof ck==="number"){cg+=ck}var ci=[],ch=[];w(cf).forEach(function(cm,cl){if(cm.hasAttribute("data-fragment-index")){cl=parseInt(cm.getAttribute("data-fragment-index"),10)}if(cl<=cg){if(!cm.classList.contains("visible")){ci.push(cm)}cm.classList.add("visible");cm.classList.remove("current-fragment");bQ.statusDiv.textContent=aP(cm);if(cl===cg){cm.classList.add("current-fragment");bI(cm)}}else{if(cm.classList.contains("visible")){ch.push(cm)}cm.classList.remove("visible");cm.classList.remove("current-fragment")}});if(ch.length){a9("fragmenthidden",{fragment:ch[0],fragments:ch})}if(ci.length){a9("fragmentshown",{fragment:ci[0],fragments:ci})}aA();bH();if(al.fragmentInURL){ac()}return !!(ci.length||ch.length)}}return false}function bf(){return be(null,1)}function av(){return be(null,-1)}function bZ(){bX();if(bJ&&al.autoSlide!==false){var ch=bJ.querySelector(".current-fragment");if(!ch){ch=bJ.querySelector(".fragment")}var cg=ch?ch.getAttribute("data-autoslide"):null;var cf=bJ.parentNode?bJ.parentNode.getAttribute("data-autoslide"):null;var ci=bJ.getAttribute("data-autoslide");if(cg){cb=parseInt(cg,10)}else{if(ci){cb=parseInt(ci,10)}else{if(cf){cb=parseInt(cf,10)}else{cb=al.autoSlide}}}if(bJ.querySelectorAll(".fragment").length===0){w(bJ.querySelectorAll("video, audio")).forEach(function(cj){if(cj.hasAttribute("data-autoplay")){if(cb&&(cj.duration*1000/cj.playbackRate)>cb){cb=(cj.duration*1000/cj.playbackRate)+1000}}})}if(cb&&!p&&!bp()&&!aS()&&(!bj.isLastSlide()||aZ().next||al.loop===true)){N=setTimeout(function(){typeof al.autoSlideMethod==="function"?al.autoSlideMethod():bC();bZ()},cb);ad=Date.now()}if(a1){a1.setPlaying(N!==-1)}}}function bX(){clearTimeout(N);N=-1}function a6(){if(cb&&!p){p=true;a9("autoslidepaused");clearTimeout(N);if(a1){a1.setPlaying(false)}}}function Q(){if(cb&&p){p=false;a9("autoslideresumed");bZ()}}function bG(){if(al.rtl){if((aS()||bf()===false)&&ag().left){z(Z+1)}}else{if((aS()||av()===false)&&ag().left){z(Z-1)}}}function y(){f=true;if(al.rtl){if((aS()||av()===false)&&ag().right){z(Z-1)}}else{if((aS()||bf()===false)&&ag().right){z(Z+1)}}}function az(){if((aS()||av()===false)&&ag().up){z(Z,V-1)}}function a2(){bd=true;if((aS()||bf()===false)&&ag().down){z(Z,V+1)}}function o(){if(av()===false){if(ag().up){az()}else{var ch;if(al.rtl){ch=w(bQ.wrapper.querySelectorAll(ak+".future")).pop()}else{ch=w(bQ.wrapper.querySelectorAll(ak+".past")).pop()}if(ch){var cf=(ch.querySelectorAll("section").length-1)||undefined;var cg=Z-1;z(cg,cf)}}}}function bC(){f=true;bd=true;if(bf()===false){var cf=ag();if(cf.down&&cf.right&&al.loop&&bj.isLastVerticalSlide(bJ)){cf.down=false}if(cf.down){a2()}else{if(al.rtl){bG()}else{y()}}}}function S(cf){while(cf&&typeof cf.hasAttribute==="function"){if(cf.hasAttribute("data-prevent-swipe")){return true}cf=cf.parentNode}return false}function aa(cf){if(al.autoSlideStoppable){a6()}}function c(cf){if(cf.shiftKey&&cf.charCode===63){bU()}}function ca(cf){if(typeof al.keyboardCondition==="function"&&al.keyboardCondition(cf)===false){return true}var co=p;aa(cf);var cm=document.activeElement&&document.activeElement.contentEditable!=="inherit";var cj=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName);var cg=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className);if(cm||cj||cg||(cf.shiftKey&&cf.keyCode!==32)||cf.altKey||cf.ctrlKey||cf.metaKey){return}var cl=[66,86,190,191];var cn;if(typeof al.keyboard==="object"){for(cn in al.keyboard){if(al.keyboard[cn]==="togglePause"){cl.push(parseInt(cn,10))}}}if(bp()&&cl.indexOf(cf.keyCode)===-1){return false}var ch=false;if(typeof al.keyboard==="object"){for(cn in al.keyboard){if(parseInt(cn,10)===cf.keyCode){var ck=al.keyboard[cn];if(typeof ck==="function"){ck.apply(null,[cf])}else{if(typeof ck==="string"&&typeof bj[ck]==="function"){bj[ck].call()}}ch=true}}}if(ch===false){for(cn in i){if(parseInt(cn,10)===cf.keyCode){var ci=i[cn].callback;if(typeof ci==="function"){ci.apply(null,[cf])}else{if(typeof ci==="string"&&typeof bj[ci]==="function"){bj[ci].call()}}ch=true}}}if(ch===false){ch=true;switch(cf.keyCode){case 80:case 33:o();break;case 78:case 34:bC();break;case 72:case 37:bG();break;case 76:case 39:y();break;case 75:case 38:az();break;case 74:case 40:a2();break;case 36:z(0);break;case 35:z(Number.MAX_VALUE);break;case 32:aS()?aL():cf.shiftKey?o():bC();break;case 13:aS()?aL():ch=false;break;case 58:case 59:case 66:case 86:case 190:case 191:aF();break;case 70:D();break;case 65:if(al.autoSlideStoppable){bY(co)}break;default:ch=false}}if(ch){cf.preventDefault&&cf.preventDefault()}else{if((cf.keyCode===27||cf.keyCode===79)&&aV.transforms3d){if(bQ.overlay){M()}else{bK()}cf.preventDefault&&cf.preventDefault()}}bZ()}function bs(cf){if(S(cf.target)){return true}aK.startX=cf.touches[0].clientX;aK.startY=cf.touches[0].clientY;aK.startCount=cf.touches.length;if(cf.touches.length===2&&al.overview){aK.startSpan=bl({x:cf.touches[1].clientX,y:cf.touches[1].clientY},{x:aK.startX,y:aK.startY})}}function u(ck){if(S(ck.target)){return true}if(!aK.captured){aa(ck);var ci=ck.touches[0].clientX;var ch=ck.touches[0].clientY;if(ck.touches.length===2&&aK.startCount===2&&al.overview){var cj=bl({x:ck.touches[1].clientX,y:ck.touches[1].clientY},{x:aK.startX,y:aK.startY});if(Math.abs(aK.startSpan-cj)>aK.threshold){aK.captured=true;if(cjaK.threshold&&Math.abs(cg)>Math.abs(cf)){aK.captured=true;bG()}else{if(cg<-aK.threshold&&Math.abs(cg)>Math.abs(cf)){aK.captured=true;y()}else{if(cf>aK.threshold){aK.captured=true;az()}else{if(cf<-aK.threshold){aK.captured=true;a2()}}}}if(al.embedded){if(aK.captured||F(bJ)){ck.preventDefault()}}else{ck.preventDefault()}}}}else{if(b7.match(/android/gi)){ck.preventDefault()}}}function r(cf){aK.captured=false}function aO(cf){if(cf.pointerType===cf.MSPOINTER_TYPE_TOUCH||cf.pointerType==="touch"){cf.touches=[{clientX:cf.clientX,clientY:cf.clientY}];bs(cf)}}function aU(cf){if(cf.pointerType===cf.MSPOINTER_TYPE_TOUCH||cf.pointerType==="touch"){cf.touches=[{clientX:cf.clientX,clientY:cf.clientY}];u(cf)}}function b1(cf){if(cf.pointerType===cf.MSPOINTER_TYPE_TOUCH||cf.pointerType==="touch"){cf.touches=[{clientX:cf.clientX,clientY:cf.clientY}];r(cf)}}function L(cf){if(Date.now()-E>600){E=Date.now();var cg=cf.detail||-cf.wheelDelta;if(cg>0){bC()}else{if(cg<0){o()}}}}function bR(cg){aa(cg);cg.preventDefault();var cf=w(bQ.wrapper.querySelectorAll(ak)).length;var ch=Math.floor((cg.clientX/bQ.wrapper.offsetWidth)*cf);if(al.rtl){ch=cf-ch}z(ch)}function I(cf){cf.preventDefault();aa();bG()}function bb(cf){cf.preventDefault();aa();y()}function ba(cf){cf.preventDefault();aa();az()}function X(cf){cf.preventDefault();aa();a2()}function k(cf){cf.preventDefault();aa();o()}function B(cf){cf.preventDefault();aa();bC()}function b4(cf){bo()}function b(cf){ay()}function e(cg){var cf=document.webkitHidden||document.msHidden||document.hidden;if(cf===false&&document.activeElement!==document.body){if(typeof document.activeElement.blur==="function"){document.activeElement.blur()}document.body.focus()}}function am(ci){if(bt&&aS()){ci.preventDefault();var cg=ci.target;while(cg&&!cg.nodeName.match(/section/gi)){cg=cg.parentNode}if(cg&&!cg.classList.contains("disabled")){aL();if(cg.nodeName.match(/section/gi)){var ch=parseInt(cg.getAttribute("data-index-h"),10),cf=parseInt(cg.getAttribute("data-index-v"),10);z(ch,cf)}}}}function ap(cg){if(cg.currentTarget&&cg.currentTarget.hasAttribute("href")){var cf=cg.currentTarget.getAttribute("href");if(cf){bV(cf);cg.preventDefault()}}}function d(cf){if(bj.isLastSlide()&&al.loop===false){z(0,0);Q()}else{if(p){Q()}else{a6()}}}function n(cf,cg){this.diameter=100;this.diameter2=this.diameter/2;this.thickness=6;this.playing=false;this.progress=0;this.progressOffset=1;this.container=cf;this.progressCheck=cg;this.canvas=document.createElement("canvas");this.canvas.className="playback";this.canvas.width=this.diameter;this.canvas.height=this.diameter;this.canvas.style.width=this.diameter2+"px";this.canvas.style.height=this.diameter2+"px";this.context=this.canvas.getContext("2d");this.container.appendChild(this.canvas);this.render()}n.prototype.setPlaying=function(cg){var cf=this.playing;this.playing=cg;if(!cf&&this.playing){this.animate()}else{this.render()}};n.prototype.animate=function(){var cf=this.progress;this.progress=this.progressCheck();if(cf>0.8&&this.progress<0.2){this.progressOffset=this.progress}this.render();if(this.playing){aV.requestAnimationFrameMethod.call(window,this.animate.bind(this))}};n.prototype.render=function(){var cj=this.playing?this.progress:0,ch=(this.diameter2)-this.thickness,cg=this.diameter2,cl=this.diameter2,cf=28;this.progressOffset+=(1-this.progressOffset)*0.1;var ci=(-Math.PI/2)+(cj*(Math.PI*2));var ck=(-Math.PI/2)+(this.progressOffset*(Math.PI*2));this.context.save();this.context.clearRect(0,0,this.diameter,this.diameter);this.context.beginPath();this.context.arc(cg,cl,ch+4,0,Math.PI*2,false);this.context.fillStyle="rgba( 0, 0, 0, 0.4 )";this.context.fill();this.context.beginPath();this.context.arc(cg,cl,ch,0,Math.PI*2,false);this.context.lineWidth=this.thickness;this.context.strokeStyle="rgba( 255, 255, 255, 0.2 )";this.context.stroke();if(this.playing){this.context.beginPath();this.context.arc(cg,cl,ch,ck,ci,false);this.context.lineWidth=this.thickness;this.context.strokeStyle="#fff";this.context.stroke()}this.context.translate(cg-(cf/2),cl-(cf/2));if(this.playing){this.context.fillStyle="#fff";this.context.fillRect(0,0,cf/2-4,cf);this.context.fillRect(cf/2+4,0,cf/2-4,cf)}else{this.context.beginPath();this.context.translate(4,0);this.context.moveTo(0,0);this.context.lineTo(cf-4,cf/2);this.context.lineTo(0,cf);this.context.fillStyle="#fff";this.context.fill()}this.context.restore()};n.prototype.on=function(cf,cg){this.canvas.addEventListener(cf,cg,false)};n.prototype.off=function(cf,cg){this.canvas.removeEventListener(cf,cg,false)};n.prototype.destroy=function(){this.playing=false;if(this.canvas.parentNode){this.container.removeChild(this.canvas)}};bj={VERSION:b8,initialize:bA,configure:q,sync:x,syncSlide:g,syncFragments:U,slide:z,left:bG,right:y,up:az,down:a2,prev:o,next:bC,navigateFragment:be,prevFragment:av,nextFragment:bf,navigateTo:z,navigateLeft:bG,navigateRight:y,navigateUp:az,navigateDown:a2,navigatePrev:o,navigateNext:bC,layout:ay,shuffle:aC,availableRoutes:ag,availableFragments:aZ,toggleHelp:bU,toggleOverview:bK,togglePause:aF,toggleAutoSlide:bY,isOverview:aS,isPaused:bp,isAutoSliding:bN,isSpeakerNotes:A,loadSlide:ao,unloadSlide:ah,addEventListeners:aX,removeEventListeners:a,getState:ai,setState:b2,getSlidePastCount:t,getProgress:aQ,getIndices:au,getSlides:bc,getTotalSlides:aB,getSlide:bO,getSlideBackground:aM,getSlideNotes:bu,getPreviousSlide:function(){return bk},getCurrentSlide:function(){return bJ},getScale:function(){return bg},getConfig:function(){return al},getQueryHash:function(){var ch={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,function(ci){ch[ci.split("=").shift()]=ci.split("=").pop()});for(var cf in ch){var cg=ch[cf];ch[cf]=aY(unescape(cg))}return ch},isFirstSlide:function(){return(Z===0&&V===0)},isLastSlide:function(){if(bJ){if(bJ.nextElementSibling){return false}if(F(bJ)&&bJ.parentNode.nextElementSibling){return false}return true}return false},isLastVerticalSlide:function(){if(bJ&&F(bJ)){if(bJ.nextElementSibling){return false}return true}return false},isReady:function(){return G},addEventListener:function(cg,ch,cf){if("addEventListener" in window){(bQ.wrapper||document.querySelector(".reveal")).addEventListener(cg,ch,cf)}},removeEventListener:function(cg,ch,cf){if("addEventListener" in window){(bQ.wrapper||document.querySelector(".reveal")).removeEventListener(cg,ch,cf)}},addKeyBinding:O,removeKeyBinding:aw,triggerKey:function(cf){ca({keyCode:cf})},registerKeyboardShortcut:function(cf,cg){bB[cf]=cg}};return bj})); --------------------------------------------------------------------------------