R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document.

Parts of an RMD File

  1. The YAML (surprisingly, the hardest part to get right)
  2. The text
  3. The code

The YAML

This is where you “set the scene” for your document. You create a title, name the author, the date, and write directions for the aesthetics of the document. The YAML, unlike most of R, is very particular about spacing. Everything in the YAML must be separated wither by 2 or 4 spaces - not tabs.

In the YAML you can set your theme, font specifications, and the output for what kind of document you’re making. This is an html document, and I have set the theme to “spacelab”, which is one of the base themes you can choose. There are many more though that you can look up and find in various packages.

My YAML also includes directions for a table of contents, which exists as an item you can access floating to the left. I have also put a code download option, so you can download all the code within this file. This is helpful because as we will see below, you will likely want to keep most of your code hidden in your finished product.

The Text

Most of what you see in a rmd file is likely going to be plain text. Unlike in an r file where a “#” will hide your text as notes, in an rmd file this will be used to create headers that can appear in our table of contents. A single # followed by a space creates your first header, and every additional # will create subsequent headers. You can also include directions in your text to changes things like italics, or making a word bold. Or making a word bold and italic You can also include things like photos and hyperlinks in the text.

R Markdown Fast Cheat Sheet

The photo above is something I saved to my desktop. In order to add photos locally you will want to keep them in the same working directory as your rmd file. This way you only have to type the file name in the appropriate syntax to add it, you don’t need to worry about about specifying the path.

I can also add photos from the web using hyperlinks.

Happy spooky season!

Add a hyperlink

R Markdown Reference Guide

How to Write a Thesis in One Day

The Code

The code in an rmd file works exactly the same as it does in an r file. However, you need to embed it inside “chunks”. To do this you type ctrl+alt+i, and then code as you usually would.

data(iris)
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
plot(iris$Sepal.Length, iris$Sepal.Width)

Code Options

In the above examples, you see the code I wrote and you see the output. But you can alter this using various chunk options.

Chunk code options in RMD files

With echo= FALSE, you can hide the code but include the output.

With include = FALSE, you can write code where you do not want either the code or the output to be shown. You might want to use this in files where the code is downloadable, and you want it as a directional tool or for instruction, or to hold onto in case you need it later, but don’t want it to appear in this final product.

In my script, I have code for a histogram, but you can’t see it or the plot in this rmd file In your code, you might also want to include notes just as you would in an r file. To do this you write them directly after the r in the top of the code chunk:

{r write your notes or title your code cunk directly after the r and don’t include commas anywhere because that begins the instructions for the chunk output}

Below, I have created a histogram of the Iris data. You can’t see the code, but if you were to download the code with the option in the top right of the file you would be able to see my codes and my notes.

Adding Tables

There are various ways you can edit tables and make them appear how you’d like. Here is a very simple example.

The format - Table Format

The output-

Cookies Received Monthly Self Reported Happiness Score
0 0
1 2
20 300

Finalize Your Document: Knit

Once you are done with your script, click the Knit button on the top of the screen. knit

Sharing the document

Once you have knitted and you’re happy with what you made, you can share the document in a few ways.

  1. Find the html document in whatever place you’ve saved it. This particular file I have saved to my desktop.

Desktop Access

  1. In the knitted document, there is an option to “publish”.

Publish

If you publish with RPubs, which is a free online platform, it will store all of your html files in one place and you can either direct people to your library, or share via hyperlink.

Resources

Here are a couple online sources I think are a good place to get started learning r markdown specifics.

cheat sheet

Authoring publication in R Markdown - this one is really good and all encompassing

Here is a screenshot of what it goes over, and estimated times it will take to read the sections. Authoring publication in R Markdown contents

themes

bookdown

LS0tDQp0aXRsZTogIkxlYXJuaW5nIHRvIFVzZSBSIE1hcmtkb3duIg0KYXV0aG9yOiAiRW1pbHkgUnVubmlvbiINCmRhdGU6ICcxMC82LzIwMjInDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIHRoZW1lOiBzcGFjZWxhYg0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQojIFIgTWFya2Rvd24NCg0KVGhpcyBpcyBhbiBSIE1hcmtkb3duIGRvY3VtZW50LiBNYXJrZG93biBpcyBhIHNpbXBsZSBmb3JtYXR0aW5nIHN5bnRheCBmb3IgYXV0aG9yaW5nIEhUTUwsIFBERiwgYW5kIE1TIFdvcmQgZG9jdW1lbnRzLiBGb3IgbW9yZSBkZXRhaWxzIG9uIHVzaW5nIFIgTWFya2Rvd24gc2VlIDxodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tPi4NCg0KV2hlbiB5b3UgY2xpY2sgdGhlICoqS25pdCoqIGJ1dHRvbiBhIGRvY3VtZW50IHdpbGwgYmUgZ2VuZXJhdGVkIHRoYXQgaW5jbHVkZXMgYm90aCBjb250ZW50IGFzIHdlbGwgYXMgdGhlIG91dHB1dCBvZiBhbnkgZW1iZWRkZWQgUiBjb2RlIGNodW5rcyB3aXRoaW4gdGhlIGRvY3VtZW50Lg0KDQoNCiMgUGFydHMgb2YgYW4gUk1EIEZpbGUgDQoNCjEuIFRoZSBZQU1MIChzdXJwcmlzaW5nbHksIHRoZSBoYXJkZXN0IHBhcnQgdG8gZ2V0IHJpZ2h0KQ0KMi4gVGhlIHRleHQNCjMuIFRoZSBjb2RlIA0KDQojIFRoZSBZQU1MDQoNClRoaXMgaXMgd2hlcmUgeW91ICJzZXQgdGhlIHNjZW5lIiBmb3IgeW91ciBkb2N1bWVudC4gWW91IGNyZWF0ZSBhIHRpdGxlLCBuYW1lIHRoZSBhdXRob3IsIHRoZSBkYXRlLCBhbmQgd3JpdGUgZGlyZWN0aW9ucyBmb3IgdGhlIGFlc3RoZXRpY3Mgb2YgdGhlIGRvY3VtZW50LiBUaGUgWUFNTCwgdW5saWtlIG1vc3Qgb2YgUiwgaXMgdmVyeSBwYXJ0aWN1bGFyIGFib3V0IHNwYWNpbmcuIEV2ZXJ5dGhpbmcgaW4gdGhlIFlBTUwgbXVzdCBiZSBzZXBhcmF0ZWQgd2l0aGVyIGJ5IDIgb3IgNCBzcGFjZXMgLSBub3QgdGFicy4NCg0KSW4gdGhlIFlBTUwgeW91IGNhbiBzZXQgeW91ciB0aGVtZSwgZm9udCBzcGVjaWZpY2F0aW9ucywgYW5kIHRoZSBvdXRwdXQgZm9yIHdoYXQga2luZCBvZiBkb2N1bWVudCB5b3UncmUgbWFraW5nLiBUaGlzIGlzIGFuIGh0bWwgZG9jdW1lbnQsIGFuZCBJIGhhdmUgc2V0IHRoZSB0aGVtZSB0byAic3BhY2VsYWIiLCB3aGljaCBpcyBvbmUgb2YgdGhlIGJhc2UgdGhlbWVzIHlvdSBjYW4gY2hvb3NlLiBUaGVyZSBhcmUgbWFueSBtb3JlIHRob3VnaCB0aGF0IHlvdSBjYW4gbG9vayB1cCBhbmQgZmluZCBpbiB2YXJpb3VzIHBhY2thZ2VzLiANCg0KTXkgWUFNTCBhbHNvIGluY2x1ZGVzIGRpcmVjdGlvbnMgZm9yIGEgdGFibGUgb2YgY29udGVudHMsIHdoaWNoIGV4aXN0cyBhcyBhbiBpdGVtIHlvdSBjYW4gYWNjZXNzIGZsb2F0aW5nIHRvIHRoZSBsZWZ0LiBJIGhhdmUgYWxzbyBwdXQgYSBjb2RlIGRvd25sb2FkIG9wdGlvbiwgc28geW91IGNhbiBkb3dubG9hZCBhbGwgdGhlIGNvZGUgd2l0aGluIHRoaXMgZmlsZS4gVGhpcyBpcyBoZWxwZnVsIGJlY2F1c2UgYXMgd2Ugd2lsbCBzZWUgYmVsb3csIHlvdSB3aWxsIGxpa2VseSB3YW50IHRvIGtlZXAgbW9zdCBvZiB5b3VyIGNvZGUgaGlkZGVuIGluIHlvdXIgZmluaXNoZWQgcHJvZHVjdC4NCg0KIyBUaGUgVGV4dA0KDQpNb3N0IG9mIHdoYXQgeW91IHNlZSBpbiBhIHJtZCBmaWxlIGlzIGxpa2VseSBnb2luZyB0byBiZSBwbGFpbiB0ZXh0LiBVbmxpa2UgaW4gYW4gciBmaWxlIHdoZXJlIGEgIiMiIHdpbGwgaGlkZSB5b3VyIHRleHQgYXMgbm90ZXMsIGluIGFuIHJtZCBmaWxlIHRoaXMgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBoZWFkZXJzIHRoYXQgY2FuIGFwcGVhciBpbiBvdXIgdGFibGUgb2YgY29udGVudHMuIEEgc2luZ2xlICMgZm9sbG93ZWQgYnkgYSBzcGFjZSBjcmVhdGVzIHlvdXIgZmlyc3QgaGVhZGVyLCBhbmQgZXZlcnkgYWRkaXRpb25hbCAjIHdpbGwgY3JlYXRlIHN1YnNlcXVlbnQgaGVhZGVycy4gWW91IGNhbiBhbHNvIGluY2x1ZGUgZGlyZWN0aW9ucyBpbiB5b3VyIHRleHQgdG8gY2hhbmdlcyB0aGluZ3MgbGlrZSAqaXRhbGljcyosIG9yIG1ha2luZyBhIHdvcmQgKipib2xkKiouIE9yIG1ha2luZyBhIHdvcmQgKipfYm9sZCBhbmQgaXRhbGljXyoqDQpZb3UgY2FuIGFsc28gaW5jbHVkZSB0aGluZ3MgbGlrZSBwaG90b3MgYW5kIGh5cGVybGlua3MgaW4gdGhlIHRleHQuIA0KDQohW1IgTWFya2Rvd24gRmFzdCBDaGVhdCBTaGVldF0obWFya2Rvd25zaGVldC5qcGcpDQoNClRoZSBwaG90byBhYm92ZSBpcyBzb21ldGhpbmcgSSBzYXZlZCB0byBteSBkZXNrdG9wLiBJbiBvcmRlciB0byBhZGQgcGhvdG9zIGxvY2FsbHkgeW91IHdpbGwgd2FudCB0byBrZWVwIHRoZW0gaW4gdGhlIHNhbWUgd29ya2luZyBkaXJlY3RvcnkgYXMgeW91ciBybWQgZmlsZS4gVGhpcyB3YXkgeW91IG9ubHkgaGF2ZSB0byB0eXBlIHRoZSBmaWxlIG5hbWUgaW4gdGhlIGFwcHJvcHJpYXRlIHN5bnRheCB0byBhZGQgaXQsIHlvdSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGFib3V0IHNwZWNpZnlpbmcgdGhlIHBhdGguIA0KDQpJIGNhbiBhbHNvIGFkZCBwaG90b3MgZnJvbSB0aGUgd2ViIHVzaW5nIGh5cGVybGlua3MuIA0KDQohW0hhcHB5IHNwb29reSBzZWFzb24hXShodHRwczovL2ltYWdlcy5wcm9jb24ub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy9oYWxsb3dlZW4tMjg3MDYwN18xOTIwLmpwZykNCg0KQWRkIGEgaHlwZXJsaW5rDQoNCltSIE1hcmtkb3duIFJlZmVyZW5jZSBHdWlkZV0oaHR0cHM6Ly93d3cucnN0dWRpby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMvcm1hcmtkb3duLXJlZmVyZW5jZS5wZGY/X2dhPTIuMTg4MDg5NTMuMTM0MjUyNzc3My4xNjUyMTEwNjM4LTE1NzczNzYxMjEuMTYzODQ3ODEyNSkNCg0KW0hvdyB0byBXcml0ZSBhIFRoZXNpcyBpbiBPbmUgRGF5XShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWRRdzR3OVdnWGNRKQ0KDQoNCiMgVGhlIENvZGUgDQoNClRoZSBjb2RlIGluIGFuIHJtZCBmaWxlIHdvcmtzIGV4YWN0bHkgdGhlIHNhbWUgYXMgaXQgZG9lcyBpbiBhbiByIGZpbGUuIEhvd2V2ZXIsIHlvdSBuZWVkIHRvIGVtYmVkIGl0IGluc2lkZSAiY2h1bmtzIi4gVG8gZG8gdGhpcyB5b3UgdHlwZSBjdHJsK2FsdCtpLCBhbmQgdGhlbiBjb2RlIGFzIHlvdSB1c3VhbGx5IHdvdWxkLiANCg0KDQpgYGB7cn0NCmRhdGEoaXJpcykNCmhlYWQoaXJpcykNCmBgYA0KDQpgYGB7cn0NCnBsb3QoaXJpcyRTZXBhbC5MZW5ndGgsIGlyaXMkU2VwYWwuV2lkdGgpDQpgYGANCg0KIyMgQ29kZSBPcHRpb25zDQoNCkluIHRoZSBhYm92ZSBleGFtcGxlcywgeW91IHNlZSB0aGUgY29kZSBJIHdyb3RlIGFuZCB5b3Ugc2VlIHRoZSBvdXRwdXQuIEJ1dCB5b3UgY2FuIGFsdGVyIHRoaXMgdXNpbmcgdmFyaW91cyBjaHVuayBvcHRpb25zLiANCg0KIVtDaHVuayBjb2RlIG9wdGlvbnMgaW4gUk1EIGZpbGVzXShjaHVua29wdGlvbnMuanBnKQ0KDQpXaXRoIGVjaG89IEZBTFNFLCB5b3UgY2FuIGhpZGUgdGhlIGNvZGUgYnV0IGluY2x1ZGUgdGhlIG91dHB1dC4gDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KYm94IDwtIGdncGxvdChkYXRhPWlyaXMsIGFlcyh4PVNwZWNpZXMsIHk9U2VwYWwuTGVuZ3RoKSkNCmJveCArIGdlb21fYm94cGxvdChhZXMoZmlsbD1TcGVjaWVzKSkgKyANCiAgZ2d0aXRsZSgiSXJpcyBCb3hwbG90IikNCg0KYGBgDQoNCldpdGggaW5jbHVkZSA9IEZBTFNFLCB5b3UgY2FuIHdyaXRlIGNvZGUgd2hlcmUgeW91IGRvIG5vdCB3YW50IGVpdGhlciB0aGUgY29kZSBvciB0aGUgb3V0cHV0IHRvIGJlIHNob3duLiBZb3UgbWlnaHQgd2FudCB0byB1c2UgdGhpcyBpbiBmaWxlcyB3aGVyZSB0aGUgY29kZSBpcyBkb3dubG9hZGFibGUsIGFuZCB5b3Ugd2FudCBpdCBhcyBhIGRpcmVjdGlvbmFsIHRvb2wgb3IgZm9yIGluc3RydWN0aW9uLCBvciB0byBob2xkIG9udG8gaW4gY2FzZSB5b3UgbmVlZCBpdCBsYXRlciwgYnV0IGRvbid0IHdhbnQgaXQgdG8gYXBwZWFyIGluIHRoaXMgZmluYWwgcHJvZHVjdC4gDQoNCmBgYHtyLCBpbmNsdWRlID0gRkFMU0V9DQpoaXN0KGlyaXMkU2VwYWwuV2lkdGgsIGZyZXE9TlVMTCwgZGVuc2l0eT1OVUxMLCBicmVha3M9MTIsDQogICAgIHhsYWI9IlNlcGFsIFdpZHRoIiwgeWxhYj0iRnJlcXVlbmN5IiwgbWFpbj0iSGlzdG9ncmFtIG9mIFNlcGFsIFdpZHRoIikNCmBgYA0KDQohW0luIG15IHNjcmlwdCwgSSBoYXZlIGNvZGUgZm9yIGEgaGlzdG9ncmFtLCBidXQgeW91IGNhbid0IHNlZSBpdCBvciB0aGUgcGxvdCBpbiB0aGlzIHJtZCBmaWxlXShpbmNsdWRlZmFsc2UuanBnKQ0KSW4geW91ciBjb2RlLCB5b3UgbWlnaHQgYWxzbyB3YW50IHRvIGluY2x1ZGUgbm90ZXMganVzdCBhcyB5b3Ugd291bGQgaW4gYW4gciBmaWxlLiANClRvIGRvIHRoaXMgeW91IHdyaXRlIHRoZW0gZGlyZWN0bHkgYWZ0ZXIgdGhlIHIgaW4gdGhlIHRvcCBvZiB0aGUgY29kZSBjaHVuazogDQoNCntyIHdyaXRlIHlvdXIgbm90ZXMgb3IgdGl0bGUgeW91ciBjb2RlIGN1bmsgZGlyZWN0bHkgYWZ0ZXIgdGhlIHIgYW5kIGRvbid0IGluY2x1ZGUgY29tbWFzIGFueXdoZXJlIGJlY2F1c2UgdGhhdCBiZWdpbnMgdGhlIGluc3RydWN0aW9ucyBmb3IgdGhlIGNodW5rIG91dHB1dH0NCg0KQmVsb3csIEkgaGF2ZSBjcmVhdGVkIGEgaGlzdG9ncmFtIG9mIHRoZSBJcmlzIGRhdGEuIFlvdSBjYW4ndCBzZWUgdGhlIGNvZGUsIGJ1dCBpZiB5b3Ugd2VyZSB0byBkb3dubG9hZCB0aGUgY29kZSB3aXRoIHRoZSBvcHRpb24gaW4gdGhlIHRvcCByaWdodCBvZiB0aGUgZmlsZSB5b3Ugd291bGQgYmUgYWJsZSB0byBzZWUgbXkgY29kZXMgYW5kIG15IG5vdGVzLiAgDQoNCmBgYHtyIHdyaXRlIHlvdXIgbm90ZXMgb3IgdGl0bGUgeW91ciBjb2RlIGN1bmsgZGlyZWN0bHkgYWZ0ZXIgdGhlIHIsIGVjaG89RkFMU0V9DQoNCmhpc3RvZ3JhbSA8LSBnZ3Bsb3QoZGF0YT1pcmlzLCBhZXMoeD1TZXBhbC5XaWR0aCkpDQpoaXN0b2dyYW0gKyBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0wLjIsIGNvbG9yPSJibGFjayIsIGFlcyhmaWxsPVNwZWNpZXMpKSArIA0KICB4bGFiKCJTZXBhbCBXaWR0aCIpICsgIHlsYWIoIkZyZXF1ZW5jeSIpICsgZ2d0aXRsZSgiSGlzdG9ncmFtIG9mIFNlcGFsIFdpZHRoIikNCg0KYGBgDQoNCiMgQWRkaW5nIFRhYmxlcw0KDQpUaGVyZSBhcmUgdmFyaW91cyB3YXlzIHlvdSBjYW4gZWRpdCB0YWJsZXMgYW5kIG1ha2UgdGhlbSBhcHBlYXIgaG93IHlvdSdkIGxpa2UuIEhlcmUgaXMgYSB2ZXJ5IHNpbXBsZSBleGFtcGxlLiANCg0KVGhlIGZvcm1hdCAtIA0KIVtUYWJsZSBGb3JtYXRdKGZvcm1hdHRhYmxlLmpwZykNCg0KVGhlIG91dHB1dC0gDQoNCioqQ29va2llcyBSZWNlaXZlZCBNb250aGx5KiogfCAqKlNlbGYgUmVwb3J0ZWQgSGFwcGluZXNzIFNjb3JlKioNCiAtLS0gICAgICAgICAgICAgICAgICAgICAgICAgfCAtLS0gICAgICAgIA0KIDAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAwIA0KIDEgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICAgIA0KIDIwICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzMDANCg0KDQoNCiMgRmluYWxpemUgWW91ciBEb2N1bWVudDogS25pdA0KDQpPbmNlIHlvdSBhcmUgZG9uZSB3aXRoIHlvdXIgc2NyaXB0LCBjbGljayB0aGUgS25pdCBidXR0b24gb24gdGhlIHRvcCBvZiB0aGUgc2NyZWVuLg0KIVtrbml0XShrbml0LmpwZykNCg0KIyMgU2hhcmluZyB0aGUgZG9jdW1lbnQgDQoNCk9uY2UgeW91IGhhdmUga25pdHRlZCBhbmQgeW91J3JlIGhhcHB5IHdpdGggd2hhdCB5b3UgbWFkZSwgeW91IGNhbiBzaGFyZSB0aGUgZG9jdW1lbnQgaW4gYSBmZXcgd2F5cy4gDQoNCjEuIEZpbmQgdGhlIGh0bWwgZG9jdW1lbnQgaW4gd2hhdGV2ZXIgcGxhY2UgeW91J3ZlIHNhdmVkIGl0LiBUaGlzIHBhcnRpY3VsYXIgZmlsZSBJIGhhdmUgc2F2ZWQgdG8gbXkgZGVza3RvcC4gDQoNCiFbRGVza3RvcCBBY2Nlc3NdKGRlc2t0b3AuanBnKQ0KDQoNCjIuIEluIHRoZSBrbml0dGVkIGRvY3VtZW50LCB0aGVyZSBpcyBhbiBvcHRpb24gdG8gInB1Ymxpc2giLiANCiANCiFbUHVibGlzaF0ocHVibGlzaC5qcGcpDQoNCklmIHlvdSBwdWJsaXNoIHdpdGggUlB1YnMsIHdoaWNoIGlzIGEgZnJlZSBvbmxpbmUgcGxhdGZvcm0sIGl0IHdpbGwgc3RvcmUgYWxsIG9mIHlvdXIgaHRtbCBmaWxlcyBpbiBvbmUgcGxhY2UgYW5kIHlvdSBjYW4gZWl0aGVyIGRpcmVjdCBwZW9wbGUgdG8geW91ciBsaWJyYXJ5LCBvciBzaGFyZSB2aWEgaHlwZXJsaW5rLiANCg0KIyBSZXNvdXJjZXMgDQoNCkhlcmUgYXJlIGEgY291cGxlIG9ubGluZSBzb3VyY2VzIEkgdGhpbmsgYXJlIGEgZ29vZCBwbGFjZSB0byBnZXQgc3RhcnRlZCBsZWFybmluZyByIG1hcmtkb3duIHNwZWNpZmljcy4gDQoNCltjaGVhdCBzaGVldF0oaHR0cHM6Ly93d3cucnN0dWRpby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMvcm1hcmtkb3duLXJlZmVyZW5jZS5wZGY/X2dhPTIuMTg4MDg5NTMuMTM0MjUyNzc3My4xNjUyMTEwNjM4LTE1NzczNzYxMjEuMTYzODQ3ODEyNSkNCg0KW0F1dGhvcmluZyBwdWJsaWNhdGlvbiBpbiBSIE1hcmtkb3duIC0gdGhpcyBvbmUgaXMgcmVhbGx5IGdvb2QgYW5kIGFsbCBlbmNvbXBhc3NpbmddKGh0dHBzOi8vdWNzYmNhcnBlbnRyeS5naXRodWIuaW8vUi1tYXJrZG93bi8pDQoNCkhlcmUgaXMgYSBzY3JlZW5zaG90IG9mIHdoYXQgaXQgZ29lcyBvdmVyLCBhbmQgZXN0aW1hdGVkIHRpbWVzIGl0IHdpbGwgdGFrZSB0byByZWFkIHRoZSBzZWN0aW9ucy4gIVtBdXRob3JpbmcgcHVibGljYXRpb24gaW4gUiBNYXJrZG93biBjb250ZW50c10oYXV0aG9yLmpwZykgDQoNClt0aGVtZXNdKGh0dHBzOi8vd3d3LmRhdGFkcmVhbWluZy5vcmcvcG9zdC9yLW1hcmtkb3duLXRoZW1lLWdhbGxlcnkvKQ0KDQpbYm9va2Rvd25dKGh0dHBzOi8vYm9va2Rvd24ub3JnL3lpaHVpL3JtYXJrZG93bi9wa2dkb3duLmh0bWwpDQo=