1 Opções de chunks

A opção echo=FALSE tira o código e só mostra o resultado;
A opção message=FALSE tira os avisos que aparecem no código;
A opção eval=FALSE tira os resultados do código;
A opção include=FALSE tira o chunk do output;
A opção warning=FALSE tira os avisos do outpu;
A opção results=‘hide’ tira os resultados;
A opção results=‘markup’ e results=‘hold’ mostra os resultados igual no R
A opção results=‘asis’ coloca os resultados com texto escrito;
A opção fig.align alinha a figura a esquerda com ‘left’ ou ‘default’, a direita com ‘right’ e centraliza com ‘center’;
A opção fig.alt=‘nome da figura’ permite nomear uma figura;
A opção fig.cap=‘Legenda da figura’ permite colocar uma legenda para a figura;
A opção fig.width permite determinar a largura da figura;
A opção fig.height permite determinar a altura da figura;
A opção out.width=‘300px’ou out.width=’80%’ permite redimensionar a largura de saída;
A opção collapse=TRUE permite “juntar” todas as saídas de uma chun em um único bloco;
A opção comment=‘:D’ permite alterar o símbolo que inicia os comentários dos resultados;
A opção error=TRUE renderiza o arquivo mesmo tendo erros e mostra quais erros ocorreram no doucumento;

2 Citações

Para adicionar citações basta colocar no cabeçalho YAML o comando bibliography: arquivo.bib. O arquivo .bib pode ser feito atravez de um bloco de notas. Recomendo utilizar o Google Acadêmico para pegar os códigos de citação BibTex. Lembre de, ao salvar o arquivo de texto, colocar o nome do arquivo com .bib no final.

---
title: "Guia Markdown"
author: "Jonas"
date: "2024-01-24"
output: html_document
bibliography: bib_teste.bib
link-citations: TRUE
---

Para citar alguma coisa basta colocar @nomeantesdotítulonoarquivoBibTex.
Olha essa citação: Morettin and Bussab (2017)
Olha essa outra: Xie, Allaire, and Grolemund (2018)
Olha esse :D vrau: Khan et al. (2023)

Olha essa citação: @morettin2017estatistica\
Olha essa outra: @xie2018r\
Olha esse :D vrau: @khan2023sql

Observe que no final do arquivo fica uma citação automática que facilita de mais nossa vida.

3 Notas de rodapé

Quem falou isso foi o tal de joninhas[^.]

[^.]: Esse cabra esquisito sabe fazer um churrasco maneiro

Quem falou isso foi o tal de joninhas1

4 Tabelas

Observe o seguinte código e o que ele gera. É uma forma legal de fazer uma tabela através de um banco de dados já pronto.

library(palmerpenguins)

knitr::kable(head(penguins, 10), # Pega as 10 primeiras linhas
             col.names = c('Espécies', 'Ilha', 'Comprimento do bico', "Profundidade do bico", "Comprimento da nadadeira", 
                           "Massa corporal", "Sexo", "Ano"), caption = "Tabela com kable") |> # Aqui é um vetor com o nome das colunas
  kableExtra::kable_styling(full_width = TRUE, # Essa opção faz a tabela pegar toda a extensão do relatório
                            bootstrap_options = c("striped", "hover", "condensed", "responsive") 
                            # striped: deixa as cores das linhas alternadas
                            # hover: destaca a linha quando passa o mouse
                            # condensed: deixa a tabela mais condensada
                            # responsive: quando diminui muito a tela ele adapta a tabela
                            )
Tabela com kable
Espécies Ilha Comprimento do bico Profundidade do bico Comprimento da nadadeira Massa corporal Sexo Ano
Adelie Torgersen 39.1 18.7 181 3750 male 2007
Adelie Torgersen 39.5 17.4 186 3800 female 2007
Adelie Torgersen 40.3 18.0 195 3250 female 2007
Adelie Torgersen NA NA NA NA NA 2007
Adelie Torgersen 36.7 19.3 193 3450 female 2007
Adelie Torgersen 39.3 20.6 190 3650 male 2007
Adelie Torgersen 38.9 17.8 181 3625 female 2007
Adelie Torgersen 39.2 19.6 195 4675 male 2007
Adelie Torgersen 34.1 18.1 193 3475 NA 2007
Adelie Torgersen 42.0 20.2 190 4250 NA 2007

Olha essa outra forma de tabela :D. Ótimo para mostrar todos os dados de foma bonita e sem ocupar muito espaço.

library(palmerpenguins)

rmarkdown::paged_table(penguins)

Observe isso: O número de linhas é 344
Observe isso: O número de linhas é \r nrow(penguins)

Tabela feita na mão

|direita|esquerda|padrão|centralizado|
|---:|:---|---|:---:|
|12|12|12|12|
|123|123|123|123|
|2|2|2|2|
direita esquerda padrão centralizado
12 12 12 12
123 123 123 123
2 2 2 2

5 Escrevendo com Markdown

Texto normal.
Finalize uma linha com dois espaços para começar um novo parágrafo.
Também é possível iniciar um novo parágrafo com um \ no final.


*itálico* itálico
**negrito** negrito
sobrescrito^2^ sobrescrito2
subscrito~2~ subscrito2
~~sublinhado~~ sublinhado
traço: – traço: –
Travessão: — Travessão: —


# Cabeçalho1:

6 Cabeçalho1

## Cabeçalho2:

6.1 Cabeçalho2

### Cabeçalho3:

6.1.1 Cabeçalho3

#### Cabeçalho4:

6.1.1.1 Cabeçalho4

##### Cabeçalho5:

6.1.1.1.1 Cabeçalho5

###### Cabeçalho6:

6.1.1.1.1.1 Cabeçalho6
- Lista não ordenada
  - Item interno
    - Item mais interno :D
      - Cada vez mais interno
  • Lista não ordenada
    • Item interno
      • Item mais interno :D
        • Cada vez mais interno
* Lista não ordenada
  * Item interno
    * Item mais interno :D
      * Cada vez mais interno
  • Lista não ordenada
    • Item interno
      • Item mais interno :D
        • Cada vez mais interno
1. Lista Ordenada
    - Item 1
      - Item 2
  1. Lista Ordenada
    • Item 1
      • Item 2

8 Imagens

Abaixo estão dois jeitos interessantes de colocar imagens.

![Gato Charmoso](https://t.ctcdn.com.br/lnBDAcPSZSpqbDs27om24F50uTo=/1200x675/smart/i764852.png 'Um gato de respeito'){ width=93% }
Gato Charmoso
Gato Charmoso
![Pobre gatito ;-;][linkzada]

[linkzada]:https://museudememes.com.br/wp-content/uploads/2022/05/48bafcbe592190a9998cc12f66b0b953.jpg 'Tadinho 'o''
Pobre gatito ;-;
Pobre gatito ;-;

9 Alguns negocim massa

`oia isso` oia isso

```
Várias linhas de
oia isso
```

Várias linhas de
oia isso

>Bloco de citação

Bloco de citação

Equação: $e^{i \pi} + 1 = 0$ : \(e^{i \pi} + 1 = 0\)

Bloco de equação:

$$E = mc^{2}$$

\[E = mc^{2}\]

Linha horizontal:
***




10 Olha que massa, HTML Tabsets

## Resultados{.tabset}
### Gráficos
Código pro gráfico :D

### Tabelas
Mais código pra tabela :D

11 Resultados

11.1 Gráficos

library(tidyverse)
library(palmerpenguins)
library(ggthemes)

ggplot(data = penguins,
       mapping = aes(x = flipper_length_mm, y = body_mass_g)
) +
  geom_point(mapping = aes(color = species)) +
  geom_smooth(method = 'lm')
Body mass x flipper length

Body mass x flipper length

11.2 Tabelas

Tabela dos Pinguin
species flipper_length_mm body_mass_g
Adelie 181 3750
Adelie 186 3800
Adelie 195 3250
Adelie NA NA
Adelie 193 3450
Adelie 190 3650
Adelie 181 3625
Adelie 195 4675

12 Tipos de output no cabeçalho YAML

Em seu código YAML(o que tem provavelmente no início do seu arquivo, com seu nome, data e tals), escreva algum dos seguintes outputs que você deseja renderizar o arquivo.

  • html_document
  • pdf_document*
  • word_document
  • powerpoint_presentation
  • odt_document
  • rtf_document
  • md_document
  • github_document
  • ioslides_presentation
  • slidy_presentation
  • beamer_presentation*
  • flexdashboard
  • bookdown
  • distill
  • blogdown

Khan, Wisal, Teerath Kumar, Cheng Zhang, Kislay Raj, Arunabha M Roy, and Bin Luo. 2023. “SQL and NoSQL Database Software Architecture Performance Analysis and Assessments—a Systematic Literature Review.” Big Data and Cognitive Computing 7 (2): 97.
Morettin, Pedro A, and Wilton O Bussab. 2017. Estatı́stica básica. Saraiva Educação SA.
Xie, Yihui, Joseph J Allaire, and Garrett Grolemund. 2018. R Markdown: The Definitive Guide. CRC Press.

  1. Esse cabra esquisito sabe fazer um churrasco maneiro↩︎

LS0tDQp0aXRsZTogfA0KICAhW10oaHR0cHM6Ly9pLmltZ3VyLmNvbS9VaUJDSE0yLmpwZyAiQ2FwaXZhcmEgbXVpdG8gZm9kYSIpe3dpZHRoPTIwMHB4IHN0eWxlPSJkaXNwbGF5OiBibG9jazsgbWFyZ2luOjAgYXV0bzsifQ0KICAiR3VpYSBNYXJrZG93biINCmF1dGhvcjogIkpvbmFzIiAjIEF1dG9yLg0KZGF0ZTogImByIGZvcm1hdChTeXMuRGF0ZSgpLCAnJWQgZGUgJUIgZGUgJVknKWAiICMgRXNzYSBvcMOnw6NvIGVzdMOhIGNvbG9jYW5kbyBhIGRhdGEgYXV0b21hdGljYW1lbnRlLg0KYmlibGlvZ3JhcGh5OiBiaWJfdGVzdGUuYmliICMgRWxlIHBlZ2EgYXMgY2l0YcOnw7VlcyBkbyBhcnF1aXZvIGJpYi4gT2JzZXJ2ZSBxdWUgbyBhcnF1aXZvIGJpYiBkZXZlIGVzdGFyIG5vIHNldSBkaXJldMOzcmlvIGRlIHRyYWJhbGhvLiANCmxpbmstY2l0YXRpb25zOiBUUlVFICMgU2Ugdm9jw6ogY2l0YXIgYWxndW1hIHZleiBhbGd1bSBsaXZybyBvdSBjb2lzYSBkbyB0aXBvLCBhcyByZWZlcsOqbmNpYXMgdsOjbyBzZXIgZmVpdGFzIGF1dG9tYXRpY2FtZW50ZSBubyBmaW5hbCBkbyBhcnF1aXZvLg0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDogDQogICAgdGhlbWU6DQogICAgICBib290c3dhdGNoOiBtaW50eSAgIyBFc3NhIG9ww6fDo28gbXVkYW8gdGVtYSB1dGlsaXphZG8gbm8gb3V0cHV0DQogICAgYW5jaG9yX3NlY3Rpb25zOiBUUlVFICMgRWxlIHBlcm1pdGUgbW9zdHJhciDDom5jb3JhcyBkZSBzZcOnw6NvIGFvIHBhc3NhciBvIG1vdXNlDQogICAgY2l0YXRpb25fcGFja2FnZTogImJpYmxhdGV4IiAjIEVTU0Egb3DDp8OjbyBmYWxhIGNvbW8gdmFpIHNlciBhIGZvcm1hdGHDp8OjbyBkZSByZWZlcsOqbmNpYSBuYXMgY2l0YcOnw7Vlcy4NCiAgICBkZXY6ICJwbmciICMgRm9ybWF0byBkYXMgaW1hZ2Vucw0KICAgIGZpZ19jYXB0aW9uOiBUUlVFICMgU2UgYXMgZmlndXJhcyB2w6NvIHNlciByZW5kZXJpemFkYXMgY29tIGxlZ2VuZGENCiAgICBoaWdobGlnaHQ6IHRhbmdvICMgTXVkYSBhIGFwYXLDqm5jaWEgZGUgY8OzZGlnb3MNCiAgICB0b2M6IFRSVUUgIyBBZGljaW9uYSB1bSDDrW5kaWNlDQogICAgdG9jX2RlcHRoOiAzICMgTyBuw612ZWwgbWFpcyBiYWl4byBkZSB0w610dWxvcyBwYXJhIGFkaWNpb25hciBhbyDDrW5kaWNlDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KICAgIGNvZGVfZm9sZGluZzogInNob3ciICMgRGVpeGUgb3MgbGVpdG9yZXMgYWx0ZXJuYXJlbSBhIGV4aWJpw6fDo28gZG8gY8OzZGlnbyBSDQogICAgdG9jX2Zsb2F0OiBUUlVFICMgRmx1dHVlIG8gw61uZGljZSDDoCBlc3F1ZXJkYSBkbyBjb250ZcO6ZG8gZG8gZG9jdW1lbnRvIHByaW5jaXBhbA0KICAgIG51bWJlcl9zZWN0aW9uczogVFJVRSAjIGNvbG9jYSBudW1lcmHDp8OjbyBhdXRvbcOhdGljYSBubyBjYWJlw6dhbGhvDQogICAga2VlcF9tZDogVFJVRSAjIE1hbnRlbmhhIG8gYXJxdWl2byBNYXJrZG93biAubWQgZ2VyYWRvIHBlbG8gdHJpY8O0DQogICAgc2NzczogX2Jvb3Rzd2F0Y2guc2Nzcw0KLS0tDQoNCjwhLS0jIElzc28gw6kgdW0gY29tZW50w6FyaW8gLS0+DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIE9ww6fDtWVzIGRlIGNodW5rcw0KDQpBIG9ww6fDo28gZWNobz1GQUxTRSB0aXJhIG8gY8OzZGlnbyBlIHPDsyBtb3N0cmEgbyByZXN1bHRhZG87XA0KQSBvcMOnw6NvIG1lc3NhZ2U9RkFMU0UgdGlyYSBvcyBhdmlzb3MgcXVlIGFwYXJlY2VtIG5vIGPDs2RpZ287XA0KQSBvcMOnw6NvIGV2YWw9RkFMU0UgdGlyYSBvcyByZXN1bHRhZG9zIGRvIGPDs2RpZ287XA0KQSBvcMOnw6NvIGluY2x1ZGU9RkFMU0UgdGlyYSBvIGNodW5rIGRvIG91dHB1dDtcDQpBIG9ww6fDo28gd2FybmluZz1GQUxTRSB0aXJhIG9zIGF2aXNvcyBkbyBvdXRwdTtcDQpBIG9ww6fDo28gcmVzdWx0cz0naGlkZScgdGlyYSBvcyByZXN1bHRhZG9zO1wNCkEgb3DDp8OjbyByZXN1bHRzPSdtYXJrdXAnIGUgcmVzdWx0cz0naG9sZCcgbW9zdHJhIG9zIHJlc3VsdGFkb3MgaWd1YWwgbm8gUlwNCkEgb3DDp8OjbyByZXN1bHRzPSdhc2lzJyBjb2xvY2Egb3MgcmVzdWx0YWRvcyBjb20gdGV4dG8gZXNjcml0bztcDQpBIG9ww6fDo28gZmlnLmFsaWduIGFsaW5oYSBhIGZpZ3VyYSBhIGVzcXVlcmRhIGNvbSAnbGVmdCcgb3UgJ2RlZmF1bHQnLCBhIGRpcmVpdGEgY29tICdyaWdodCcgZSBjZW50cmFsaXphIGNvbSAnY2VudGVyJztcDQpBIG9ww6fDo28gZmlnLmFsdD0nbm9tZSBkYSBmaWd1cmEnIHBlcm1pdGUgbm9tZWFyIHVtYSBmaWd1cmE7XA0KQSBvcMOnw6NvIGZpZy5jYXA9J0xlZ2VuZGEgZGEgZmlndXJhJyBwZXJtaXRlIGNvbG9jYXIgdW1hIGxlZ2VuZGEgcGFyYSBhIGZpZ3VyYTtcDQpBIG9ww6fDo28gZmlnLndpZHRoIHBlcm1pdGUgZGV0ZXJtaW5hciBhIGxhcmd1cmEgZGEgZmlndXJhO1wNCkEgb3DDp8OjbyBmaWcuaGVpZ2h0IHBlcm1pdGUgZGV0ZXJtaW5hciBhIGFsdHVyYSBkYSBmaWd1cmE7XA0KQSBvcMOnw6NvIG91dC53aWR0aD0nMzAwcHgnb3Ugb3V0LndpZHRoPSc4MCUnIHBlcm1pdGUgcmVkaW1lbnNpb25hciBhIGxhcmd1cmEgZGUgc2HDrWRhO1wNCkEgb3DDp8OjbyBjb2xsYXBzZT1UUlVFIHBlcm1pdGUgImp1bnRhciIgdG9kYXMgYXMgc2HDrWRhcyBkZSB1bWEgY2h1biBlbSB1bSDDum5pY28gYmxvY287XA0KQSBvcMOnw6NvIGNvbW1lbnQ9JzpEJyBwZXJtaXRlIGFsdGVyYXIgbyBzw61tYm9sbyBxdWUgaW5pY2lhIG9zIGNvbWVudMOhcmlvcyBkb3MgcmVzdWx0YWRvcztcDQpBIG9ww6fDo28gZXJyb3I9VFJVRSByZW5kZXJpemEgbyBhcnF1aXZvIG1lc21vIHRlbmRvIGVycm9zIGUgbW9zdHJhIHF1YWlzIGVycm9zIG9jb3JyZXJhbSBubyBkb3VjdW1lbnRvOw0KDQojIENpdGHDp8O1ZXMNCg0KUGFyYSBhZGljaW9uYXIgY2l0YcOnw7VlcyBiYXN0YSBjb2xvY2FyIG5vIGNhYmXDp2FsaG8gWUFNTCBvIGNvbWFuZG8gYmlibGlvZ3JhcGh5OiBhcnF1aXZvLmJpYi4gTyBhcnF1aXZvIC5iaWIgcG9kZSBzZXIgZmVpdG8gYXRyYXZleiBkZSB1bSBibG9jbyBkZSBub3Rhcy4gUmVjb21lbmRvIHV0aWxpemFyIG8gW0dvb2dsZSBBY2Fkw6ptaWNvXShodHRwczovL3NjaG9sYXIuZ29vZ2xlLmNvbS5ici9zY2hocD9obD1wdC1CUiZhc19zZHQ9MCw1ICJQZXJmZWl0byBwYXJhIHBlZ2FyIGNpdGHDp8O1ZXMgLmJpYiA6RCIpIHBhcmEgcGVnYXIgb3MgY8OzZGlnb3MgZGUgY2l0YcOnw6NvIEJpYlRleC4gTGVtYnJlIGRlLCBhbyBzYWx2YXIgbyBhcnF1aXZvIGRlIHRleHRvLCBjb2xvY2FyIG8gbm9tZSBkbyBhcnF1aXZvIGNvbSAuYmliIG5vIGZpbmFsLg0KDQpgYGAgbWFya2Rvd24NCi0tLQ0KdGl0bGU6ICJHdWlhIE1hcmtkb3duIg0KYXV0aG9yOiAiSm9uYXMiDQpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiDQpvdXRwdXQ6IGh0bWxfZG9jdW1lbnQNCmJpYmxpb2dyYXBoeTogYmliX3Rlc3RlLmJpYg0KbGluay1jaXRhdGlvbnM6IFRSVUUNCi0tLQ0KYGBgDQoNClBhcmEgY2l0YXIgYWxndW1hIGNvaXNhIGJhc3RhIGNvbG9jYXIgXEBub21lYW50ZXNkb3TDrXR1bG9ub2FycXVpdm9CaWJUZXguXA0KT2xoYSBlc3NhIGNpdGHDp8OjbzogQG1vcmV0dGluMjAxN2VzdGF0aXN0aWNhXA0KT2xoYSBlc3NhIG91dHJhOiBAeGllMjAxOHJcDQpPbGhhIGVzc2UgOkQgdnJhdTogQGtoYW4yMDIzc3FsXA0KDQpgYGAgbWFya2Rvd24NCk9saGEgZXNzYSBjaXRhw6fDo286IEBtb3JldHRpbjIwMTdlc3RhdGlzdGljYVwNCk9saGEgZXNzYSBvdXRyYTogQHhpZTIwMThyXA0KT2xoYSBlc3NlIDpEIHZyYXU6IEBraGFuMjAyM3NxbA0KYGBgDQoNCk9ic2VydmUgcXVlIG5vIGZpbmFsIGRvIGFycXVpdm8gZmljYSB1bWEgY2l0YcOnw6NvIGF1dG9tw6F0aWNhIHF1ZSBmYWNpbGl0YSBkZSBtYWlzIG5vc3NhIHZpZGEuXA0KDQojIE5vdGFzIGRlIHJvZGFww6kNCg0KYGBgIG1hcmtkb3duDQpRdWVtIGZhbG91IGlzc28gZm9pIG8gdGFsIGRlIGpvbmluaGFzW14uXQ0KDQpbXi5dOiBFc3NlIGNhYnJhIGVzcXVpc2l0byBzYWJlIGZhemVyIHVtIGNodXJyYXNjbyBtYW5laXJvDQpgYGANCg0KUXVlbSBmYWxvdSBpc3NvIGZvaSBvIHRhbCBkZSBqb25pbmhhc1teMV0NCg0KW14xXTogRXNzZSBjYWJyYSBlc3F1aXNpdG8gc2FiZSBmYXplciB1bSBjaHVycmFzY28gbWFuZWlybw0KDQojIFRhYmVsYXMNCg0KT2JzZXJ2ZSBvIHNlZ3VpbnRlIGPDs2RpZ28gZSBvIHF1ZSBlbGUgZ2VyYS4gw4kgdW1hIGZvcm1hIGxlZ2FsIGRlIGZhemVyIHVtYSB0YWJlbGEgYXRyYXbDqXMgZGUgdW0gYmFuY28gZGUgZGFkb3MgasOhIHByb250by4NCg0KYGBge3J9DQpsaWJyYXJ5KHBhbG1lcnBlbmd1aW5zKQ0KDQprbml0cjo6a2FibGUoaGVhZChwZW5ndWlucywgMTApLCAjIFBlZ2EgYXMgMTAgcHJpbWVpcmFzIGxpbmhhcw0KICAgICAgICAgICAgIGNvbC5uYW1lcyA9IGMoJ0VzcMOpY2llcycsICdJbGhhJywgJ0NvbXByaW1lbnRvIGRvIGJpY28nLCAiUHJvZnVuZGlkYWRlIGRvIGJpY28iLCAiQ29tcHJpbWVudG8gZGEgbmFkYWRlaXJhIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAiTWFzc2EgY29ycG9yYWwiLCAiU2V4byIsICJBbm8iKSwgY2FwdGlvbiA9ICJUYWJlbGEgY29tIGthYmxlIikgfD4gIyBBcXVpIMOpIHVtIHZldG9yIGNvbSBvIG5vbWUgZGFzIGNvbHVuYXMNCiAga2FibGVFeHRyYTo6a2FibGVfc3R5bGluZyhmdWxsX3dpZHRoID0gVFJVRSwgIyBFc3NhIG9ww6fDo28gZmF6IGEgdGFiZWxhIHBlZ2FyIHRvZGEgYSBleHRlbnPDo28gZG8gcmVsYXTDs3Jpbw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb3RzdHJhcF9vcHRpb25zID0gYygic3RyaXBlZCIsICJob3ZlciIsICJjb25kZW5zZWQiLCAicmVzcG9uc2l2ZSIpIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc3RyaXBlZDogZGVpeGEgYXMgY29yZXMgZGFzIGxpbmhhcyBhbHRlcm5hZGFzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBob3ZlcjogZGVzdGFjYSBhIGxpbmhhIHF1YW5kbyBwYXNzYSBvIG1vdXNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjb25kZW5zZWQ6IGRlaXhhIGEgdGFiZWxhIG1haXMgY29uZGVuc2FkYQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVzcG9uc2l2ZTogcXVhbmRvIGRpbWludWkgbXVpdG8gYSB0ZWxhIGVsZSBhZGFwdGEgYSB0YWJlbGENCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQpgYGANCg0KT2xoYSBlc3NhIG91dHJhIGZvcm1hIGRlIHRhYmVsYSA6RC4gw5N0aW1vIHBhcmEgbW9zdHJhciB0b2RvcyBvcyBkYWRvcyBkZSBmb21hIGJvbml0YSBlIHNlbSBvY3VwYXIgbXVpdG8gZXNwYcOnby4NCg0KYGBge3J9DQpsaWJyYXJ5KHBhbG1lcnBlbmd1aW5zKQ0KDQpybWFya2Rvd246OnBhZ2VkX3RhYmxlKHBlbmd1aW5zKQ0KYGBgDQoNCk9ic2VydmUgaXNzbzogTyBuw7ptZXJvIGRlIGxpbmhhcyDDqSBgciBucm93KHBlbmd1aW5zKWBcDQpPYnNlcnZlIGlzc286IE8gbsO6bWVybyBkZSBsaW5oYXMgw6kgYFxyIG5yb3cocGVuZ3VpbnMpYFwNCg0KVGFiZWxhIGZlaXRhIG5hIG3Do29cDQoNCmBgYCBtYXJrZG93bg0KfGRpcmVpdGF8ZXNxdWVyZGF8cGFkcsOjb3xjZW50cmFsaXphZG98DQp8LS0tOnw6LS0tfC0tLXw6LS0tOnwNCnwxMnwxMnwxMnwxMnwNCnwxMjN8MTIzfDEyM3wxMjN8DQp8MnwyfDJ8MnwNCmBgYA0KDQp8IGRpcmVpdGEgfCBlc3F1ZXJkYSB8IHBhZHLDo28gfCBjZW50cmFsaXphZG8gfA0KfC0tLS0tLS0tOnw6LS0tLS0tLS0tfC0tLS0tLS0tfDotLS0tLS0tLS0tLS06fA0KfCAgICAgIDEyIHwgMTIgICAgICAgfCAxMiAgICAgfCAgICAgIDEyICAgICAgfA0KfCAgICAgMTIzIHwgMTIzICAgICAgfCAxMjMgICAgfCAgICAgMTIzICAgICAgfA0KfCAgICAgICAyIHwgMiAgICAgICAgfCAyICAgICAgfCAgICAgIDIgICAgICAgfA0KDQojIEVzY3JldmVuZG8gY29tIE1hcmtkb3duDQoNClRleHRvIG5vcm1hbC5cDQpGaW5hbGl6ZSB1bWEgbGluaGEgY29tIGRvaXMgZXNwYcOnb3MgcGFyYSBjb21lw6dhciB1bSBub3ZvIHBhcsOhZ3JhZm8uXA0KVGFtYsOpbSDDqSBwb3Nzw612ZWwgaW5pY2lhciB1bSBub3ZvIHBhcsOhZ3JhZm8gY29tIHVtIFxcIG5vIGZpbmFsLlwNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNClwqaXTDoWxpY29cKiAqaXTDoWxpY28qXA0KXCpcKm5lZ3JpdG9cKlwqICoqbmVncml0byoqXA0Kc29icmVzY3JpdG9cXjJcXiBzb2JyZXNjcml0b14yXlwNCnN1YnNjcml0b1x+Mlx+IHN1YnNjcml0b34yflwNClx+XH5zdWJsaW5oYWRvXH5cfiB+fnN1YmxpbmhhZG9+flwNCnRyYcOnbzogLS0gdHJhw6dvOiAtLVwNClRyYXZlc3PDo286IC0tLSBUcmF2ZXNzw6NvOiAtLS1cDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpcIyBDYWJlw6dhbGhvMTpcDQoNCiMgQ2FiZcOnYWxobzENCg0KXCMjIENhYmXDp2FsaG8yOlwNCg0KIyMgQ2FiZcOnYWxobzINCg0KXCMjIyBDYWJlw6dhbGhvMzpcDQoNCiMjIyBDYWJlw6dhbGhvMw0KDQpcIyMjIyBDYWJlw6dhbGhvNDpcDQoNCiMjIyMgQ2FiZcOnYWxobzQNCg0KXCMjIyMjIENhYmXDp2FsaG81OlwNCg0KIyMjIyMgQ2FiZcOnYWxobzUNCg0KXCMjIyMjIyBDYWJlw6dhbGhvNjpcDQoNCiMjIyMjIyBDYWJlw6dhbGhvNg0KDQpgYGAgbWFya2Rvd24NCi0gTGlzdGEgbsOjbyBvcmRlbmFkYQ0KICAtIEl0ZW0gaW50ZXJubw0KICAgIC0gSXRlbSBtYWlzIGludGVybm8gOkQNCiAgICAgIC0gQ2FkYSB2ZXogbWFpcyBpbnRlcm5vDQpgYGANCg0KLSAgIExpc3RhIG7Do28gb3JkZW5hZGENCiAgICAtICAgSXRlbSBpbnRlcm5vDQogICAgICAgIC0gICBJdGVtIG1haXMgaW50ZXJubyA6RA0KICAgICAgICAgICAgLSAgIENhZGEgdmV6IG1haXMgaW50ZXJubw0KDQpgYGAgbWFya2Rvd24NCiogTGlzdGEgbsOjbyBvcmRlbmFkYQ0KICAqIEl0ZW0gaW50ZXJubw0KICAgICogSXRlbSBtYWlzIGludGVybm8gOkQNCiAgICAgICogQ2FkYSB2ZXogbWFpcyBpbnRlcm5vDQpgYGANCg0KLSAgIExpc3RhIG7Do28gb3JkZW5hZGENCiAgICAtICAgSXRlbSBpbnRlcm5vDQogICAgICAgIC0gICBJdGVtIG1haXMgaW50ZXJubyA6RA0KICAgICAgICAgICAgLSAgIENhZGEgdmV6IG1haXMgaW50ZXJubw0KDQpgYGAgbWFya2Rvd24NCjEuIExpc3RhIE9yZGVuYWRhDQogICAgLSBJdGVtIDENCiAgICAgIC0gSXRlbSAyDQpgYGANCg0KMS4gIExpc3RhIE9yZGVuYWRhDQogICAgLSAgIEl0ZW0gMQ0KICAgICAgICAtICAgSXRlbSAyDQoNCiMgTGlua3MNCg0KUHJpbWVpcm8gZXN0aWxvIGRlIGxpbms6IDxodHRwczovL211c2ljLnlvdXR1YmUuY29tL3dhdGNoP3Y9a0s0dnVNUF9BN0UmbGlzdD1MTT5cDQoNCmBgYCBtYXJrZG93bg0KaHR0cHM6Ly9tdXNpYy55b3V0dWJlLmNvbS93YXRjaD92PWtLNHZ1TVBfQTdFJmxpc3Q9TE0NCmBgYA0KDQpTZWd1bmRvIGVzdGlsbyBkZSBsaW5rOiBbTcO6c2ljYSBkYSBDb2NhIGNvbGFdKGh0dHBzOi8vbXVzaWMueW91dHViZS5jb20vd2F0Y2g/dj1rSzR2dU1QX0E3RSZsaXN0PUxNICJWb2PDqiB2YWkgYW1hciA6RCIpXA0KDQpgYGAgbWFya2Rvd24NCltNw7pzaWNhIGRhIENvY2EgY29sYV0oaHR0cHM6Ly9tdXNpYy55b3V0dWJlLmNvbS93YXRjaD92PWtLNHZ1TVBfQTdFJmxpc3Q9TE0gJ1ZvY8OqIHZhaSBhbWFyIDpEJykNCmBgYA0KDQpUZXJjZWlybyBlc3RpbG8gZGUgbGluazogW08gcXVlIHZlciBuYXMgc3VhcyDDumx0aW1hcyBkZXogaG9yYXMgZGUgdmlkYV0oaHR0cHM6Ly9tdXNpYy55b3V0dWJlLmNvbS93YXRjaD92PWtLNHZ1TVBfQTdFJmxpc3Q9TE0gIlZvY8OqIHZhaSBhbWFyIDpEIilcDQoNCmBgYCBtYXJrZG93bg0KW08gcXVlIHZlciBuYXMgc3VhcyDDumx0aW1hcyBkZXogaG9yYXMgZGUgdmlkYV1bTGlua19NYXJvdG9dIFwNCg0KW0xpbmtfTWFyb3RvXTpodHRwczovL211c2ljLnlvdXR1YmUuY29tL3dhdGNoP3Y9a0s0dnVNUF9BN0UmbGlzdD1MTSAnVm9jw6ogdmFpIGFtYXIgOkQnDQpgYGANCg0KIyBJbWFnZW5zDQoNCkFiYWl4byBlc3TDo28gZG9pcyBqZWl0b3MgaW50ZXJlc3NhbnRlcyBkZSBjb2xvY2FyIGltYWdlbnMuXA0KDQpgYGAgbWFya2Rvd24NCiFbR2F0byBDaGFybW9zb10oaHR0cHM6Ly90LmN0Y2RuLmNvbS5ici9sbkJEQWNQU1pTcHFiRHMyN29tMjRGNTB1VG89LzEyMDB4Njc1L3NtYXJ0L2k3NjQ4NTIucG5nICdVbSBnYXRvIGRlIHJlc3BlaXRvJyl7IHdpZHRoPTkzJSB9DQpgYGANCg0KIVtHYXRvIENoYXJtb3NvXShodHRwczovL3QuY3RjZG4uY29tLmJyL2xuQkRBY1BTWlNwcWJEczI3b20yNEY1MHVUbz0vMTIwMHg2NzUvc21hcnQvaTc2NDg1Mi5wbmcgIlVtIGdhdG8gZGUgcmVzcGVpdG8iKXt3aWR0aD0iOTMlIn0NCg0KYGBgIG1hcmtkb3duDQohW1BvYnJlIGdhdGl0byA7LTtdW2xpbmt6YWRhXQ0KDQpbbGlua3phZGFdOmh0dHBzOi8vbXVzZXVkZW1lbWVzLmNvbS5ici93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wNS80OGJhZmNiZTU5MjE5MGE5OTk4Y2MxMmY2NmIwYjk1My5qcGcgJ1RhZGluaG8gJ28nJw0KYGBgDQoNCiFbUG9icmUgZ2F0aXRvIDstO10oaHR0cHM6Ly9tdXNldWRlbWVtZXMuY29tLmJyL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA1LzQ4YmFmY2JlNTkyMTkwYTk5OThjYzEyZjY2YjBiOTUzLmpwZyAiVGFkaW5obyAnbyciKQ0KDQojIEFsZ3VucyBuZWdvY2ltIG1hc3NhDQoNClxgb2lhIGlzc29cYCBgb2lhIGlzc29gXA0KDQpcYFxgXGBcDQpWw6FyaWFzIGxpbmhhcyBkZVwNCm9pYSBpc3NvXA0KXGBcYFxgXA0KDQpgYGAgICAgICAgICANClbDoXJpYXMgbGluaGFzIGRlDQpvaWEgaXNzbw0KYGBgDQoNClw+QmxvY28gZGUgY2l0YcOnw6NvXA0KDQo+IEJsb2NvIGRlIGNpdGHDp8Ojb1wNCg0KRXF1YcOnw6NvOiBcJGVcXntpIFxccGl9ICsgMSA9IDBcJCA6ICRlXntpIFxwaX0gKyAxID0gMCRcDQoNCkJsb2NvIGRlIGVxdWHDp8OjbzoNCg0KYGBgIG1hcmtkb3duDQokJEUgPSBtY157Mn0kJA0KYGBgDQoNCiQkRSA9IG1jXnsyfSQkDQoNCkxpbmhhIGhvcml6b250YWw6XA0KXCpcKlwqXA0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLS0tXA0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KIyBPbGhhIHF1ZSBtYXNzYSwgSFRNTCBUYWJzZXRzDQoNCmBgYCBtYXJrZG93bg0KIyMgUmVzdWx0YWRvc3sudGFic2V0fQ0KIyMjIEdyw6FmaWNvcw0KQ8OzZGlnbyBwcm8gZ3LDoWZpY28gOkQNCg0KIyMjIFRhYmVsYXMNCk1haXMgY8OzZGlnbyBwcmEgdGFiZWxhIDpEDQpgYGANCg0KIyBSZXN1bHRhZG9zIHsudGFic2V0IC50YWJzZXQtZmFkZX0NCg0KIyMgR3LDoWZpY29zDQoNCmBgYHtyIGNodW5rLWxhYmVsLCBlY2hvPVRSVUUsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGZpZy5hbGlnbj0nY2VudGVyJywgZmlnLmNhcD0iQm9keSBtYXNzIHggZmxpcHBlciBsZW5ndGgifQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHBhbG1lcnBlbmd1aW5zKQ0KbGlicmFyeShnZ3RoZW1lcykNCg0KZ2dwbG90KGRhdGEgPSBwZW5ndWlucywNCiAgICAgICBtYXBwaW5nID0gYWVzKHggPSBmbGlwcGVyX2xlbmd0aF9tbSwgeSA9IGJvZHlfbWFzc19nKQ0KKSArDQogIGdlb21fcG9pbnQobWFwcGluZyA9IGFlcyhjb2xvciA9IHNwZWNpZXMpKSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9ICdsbScpDQpgYGANCg0KIyMgVGFiZWxhcw0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCmxpYnJhcnkocGFsbWVycGVuZ3VpbnMpDQoNCmRhdGEgPC0gcGVuZ3VpbnNbMTo4LGMoMSw1LDYpXQ0KDQprbml0cjo6a2FibGUoZGF0YSwgYWxpZ24gPSAnYycsIGNhcHRpb24gPSAiVGFiZWxhIGRvcyBQaW5ndWluIikNCmBgYA0KDQojIFRpcG9zIGRlIG91dHB1dCBubyBjYWJlw6dhbGhvIFlBTUwNCg0KRW0gc2V1IGPDs2RpZ28gWUFNTChvIHF1ZSB0ZW0gcHJvdmF2ZWxtZW50ZSBubyBpbsOtY2lvIGRvIHNldSBhcnF1aXZvLCBjb20gc2V1IG5vbWUsIGRhdGEgZSB0YWxzKSwgZXNjcmV2YSBhbGd1bSBkb3Mgc2VndWludGVzIG91dHB1dHMgcXVlIHZvY8OqIGRlc2VqYSByZW5kZXJpemFyIG8gYXJxdWl2by5cDQoNCi0gICBodG1sX2RvY3VtZW50DQotICAgcGRmX2RvY3VtZW50XCoNCi0gICB3b3JkX2RvY3VtZW50DQotICAgcG93ZXJwb2ludF9wcmVzZW50YXRpb24NCi0gICBvZHRfZG9jdW1lbnQNCi0gICBydGZfZG9jdW1lbnQNCi0gICBtZF9kb2N1bWVudA0KLSAgIGdpdGh1Yl9kb2N1bWVudA0KLSAgIGlvc2xpZGVzX3ByZXNlbnRhdGlvbg0KLSAgIHNsaWR5X3ByZXNlbnRhdGlvbg0KLSAgIGJlYW1lcl9wcmVzZW50YXRpb25cKg0KLSAgIGZsZXhkYXNoYm9hcmQNCi0gICBib29rZG93bg0KLSAgIGRpc3RpbGwNCi0gICBibG9nZG93bg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg==