Sintaxis Básica Markdown

Markdown es un lenguaje de marcado ligero (Lightweight Markup Language); siendo RMarkdown1 uno de sus dialectos, una de sus variantes, uno de sus sabores (Markdown Flavours).

Encabezados - Títulos

Título 1

Título 2

Título 3

Título 4

Título 5
Título 6

Título 1

Título 2

Separaciones - Líneas Horizontales





Citas - Añadir citas a nuestro documento Markdown

“La tecnología no es nada. Lo importante es que tengas fe en la gente, que sean básicamente buenas e inteligentes, y si les das herramientas, harán cosas maravillosas con ellas”

Steve Jobs

Negrita - Cursiva - Tachado - Subrayado

Texto formateado como Negrita

Texto formateado como Cursiva

Texto formateado como Negrita y Cursiva

Texto tachado

Texto subrayado

Listas

Lista Viñetas - Lista Anidada

  • Lista 1
  • Lista 2
  • Lista 3
  • Lista 4
  • Lista 5
    • Lista 5.1
    • Lista 5.2
    • Lista 5.3
  • Lista 6
  • Lista 7
  • Lista 8

Lista Numerada

  1. Lista 1
  2. Lista 2
  3. Lista 3
  4. Lista 4
  5. Lista 5
  6. Lista 6
  7. Lista 7

Lista Ordenada Alfabéticamente

  1. Lista A
  2. Lista B
  3. Lista C
  4. Lista D
  5. Lista E
  6. Lista F

Lista Tareas

  • TAREA A
  • TAREA B
  • TAREA C
  • TAREA D
  • TAREA E
  • TAREA F
  • TAREA G

Casos - Ejemplos

  • Lista 1
  • Lista 2
  • Lista 3
  • Lista 4
  • Lista 5
  • Lista 6
  • Lista 7
  • Lista 8
  • Lista 9

Imágenes - Añadir imágenes a nuestro documento Markdown

Tablas - Añadir tablas a nuestro documento Markdown

TABLA A TABLA B TABLA C
A B C
A B C
A B C
A B C
A B C
A B C
A B C
A B C
A B C
A B C

Vídeos - Añadir vídeos a nuestro documento Markdown

Mapas - Añadir Mapas (Google Maps) a nuestro documento Markdown

Código - Añadir código de distintos lenguajes de programación (R - Python - SQL)

summary(mtcars)

La función barplot() nos permite crear diagramas de barras (Bar Charts) en el lenguaje de programación R.

x <- table(mtcars$cyl)

colores <- c("orange","blue","purple")

barplot(x,xlab="Cilindros",ylab="Frecuencias",main="Número de Cilindros",col=colores)
x <- table(mtcars$cyl)

colores <- c("orange","blue","purple")

barplot(x,xlab="Cilindros",ylab="Frecuencias",main="Número de Cilindros",col=colores)
y <- table(mtcars$gear)

barplot(y,xlab="Engranajes",ylab="Frecuencias",main="Número de Engranajes",col=rainbow(3))
import matplotlib.pyplot as plt

eje_x=[4,6,8]

eje_y=[11,7,14]

colores=['orange','blue','purple']

plt.bar(eje_x,eje_y,color=colores)

plt.xlabel('Cilindros')

plt.ylabel('Frecuencias')

plt.title('Número de Cilindros')

plt.show()
SELECT id_usuario,usuario_nombre,usuario_apellido FROM usuario;
USE Northwind;

SELECT * FROM Products;

Anular sintaxis Markdown

# Esto debería ser un título tipo 1

**Esto debería ser texto formateado como Negrita**

*Esto debería ser texto formateado como Cursiva*

Pie de página

Ecuaciones - Fórmulas - Sintaxis y comandos LaTeX

Superíndice - Potencia

\[ E=mc^2 \]


\[ a^2 + b^2 = c^2 \]


Subíndice

\[ H_2O \]


\[ NH_3 \]

Fracciones - Casos - Ejemplos

\[ \frac{5}{2} \]

\[ \frac{5}{2} + \frac{4}{6} \]

\[ \frac{8}{9} - \frac{2}{3} \]

\[ \frac{7}{8} \cdot \frac{3}{4} \]

\[ \frac{9}{8} \times \frac{3}{7} \]

\[ \frac{2}{3} \div \frac{4}{5} \]

\[ (\frac{3}{4}) \]

\[ \left(\frac{4}{5}\right)^3 \]

Dada la fracción \(\tfrac{4}{5}\), podemos determinar el valor de la variable…

Dada la fracción \(\frac{4}{5}\), podemos determinar el valor de la variable…

Dada la fracción \(\dfrac{4}{5}\), podemos determinar el valor de la variable…

Sumatoria

\[ \sum_{i=1}^5 i \]

\[ \sum_{i=1}^5 2i \]

\[ \sum_{i=3}^6 2i-1 \]

\[ \sum_{i=2}^6 \frac{i+1}{i} \]

Raíces

\[ \sqrt{2}= 1.41421356 \]

\[ \sqrt{3} = 1.7320508 \]

\[ \sqrt[3]{\frac{250}{25}} \]

Logaritmos

\[ log_3{49}= 2 \]

\[ \log_6{216}=3 \]

\[ \log_3{81}=4 \]

Matrices

\[ \begin{matrix} 10 & 7 & 12 \\ 7 & 8 & 11 \\ 3 & 9 & 6 \end{matrix} \]

\[ \begin{pmatrix} 10 & 7 & 12 \\ 7 & 8 & 11 \\ 3 & 9 & 6 \end{pmatrix} \]

\[ \begin{bmatrix} 10 & 7 & 12 \\ 7 & 8 & 11 \\ 3 & 9 & 6 \end{bmatrix} \]

\[ \begin{Bmatrix} 10 & 7 & 12 \\ 7 & 8 & 11 \\ 3 & 9 & 6 \end{Bmatrix} \]

\[ \begin{vmatrix} 10 & 7 & 12 \\ 7 & 8 & 11 \\ 3 & 9 & 6 \end{vmatrix} \]

\[ \begin{Vmatrix} 10 & 7 & 12 \\ 7 & 8 & 11 \\ 3 & 9 & 6 \end{Vmatrix} \]

Ecuaciones

Dada la función

\[ \begin{equation} f(x) = y \end{equation} \]

podemos determinar el valor de la variable…

\[ \text{Fórmula Ecuación 2º Grado} \quad x=\frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]

Símbolos Matemáticos

\[ (900) \]

\[ [900] \]

\[ |900| \]

\[ \|900\| \]

\[ 900 > 788 \]

\[ 900 < 10000 \]

\[ 900 \geq 788 \]

\[ 123 \leq 900 \]


  1. RMarkdown es un paquete del lenguaje de programacion R que nos permite crear documentos cientificos y tecnicos en distintos formatos HTML, PDF, Microsoft Word entre otros.**↩︎

LS0tDQp0aXRsZTogIkxlbmd1YWplIGRlIE1hcmNhZG8gTGlnZXJvIg0KYXV0aG9yOiAiUmVuem8gQ8OhY2VyZXMgUm9zc2kiDQpkYXRlOiAiMjAyMi8wNC8xMiINCnN1YnRpdGxlOiBNYXJrZG93biAtIFJNYXJrZG93bg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCi0tLQ0KDQo8IS0tIEHDsWFkaXIgY29tZW50YXJpb3MgYSBudWVzdHJvIGRvY3VtZW50byBNYXJrZG93biAtIEhUTUwgVGFncyAtLT4NCg0KIyBTaW50YXhpcyBCw6FzaWNhIE1hcmtkb3duDQoNCioqTWFya2Rvd24qKiBlcyB1biBsZW5ndWFqZSBkZSBtYXJjYWRvIGxpZ2VybyAoKioqTGlnaHR3ZWlnaHQgTWFya3VwIExhbmd1YWdlKioqKTsgc2llbmRvICoqUk1hcmtkb3duKipbXnBpZV9wYWdpbmFfMDFdIHVubyBkZSBzdXMgZGlhbGVjdG9zLCB1bmEgZGUgc3VzIHZhcmlhbnRlcywgdW5vIGRlIHN1cyBzYWJvcmVzICgqKk1hcmtkb3duIEZsYXZvdXJzKiopLg0KDQpbXjFdOiAiUk1hcmtkb3duIGVzIHVuIHBhcXVldGUgZGVsIGxlbmd1YWplIGRlIHByb2dyYW1hY2nDs24gUiwgcXVlIG5vcyBwZXJtaXRlIGNyZWFyIGRvY3VtZW50b3MgY2llbnTDrWZpY29zIHkgdMOpY25pY29zLCBlbiBkaXN0aW50b3MgZm9ybWF0b3MgdGFsZXMgY29tbyBIVE1MLFBERixNaWNyb3NvZnQgV29yZCBlbnRyZSBvdHJvcy4iDQoNCiMjIEVuY2FiZXphZG9zIC0gVMOtdHVsb3MNCg0KIyBUw610dWxvIDENCiMjIFTDrXR1bG8gMg0KIyMjIFTDrXR1bG8gMw0KIyMjIyBUw610dWxvIDQNCiMjIyMjIFTDrXR1bG8gNQ0KIyMjIyMjIFTDrXR1bG8gNg0KDQojIFTDrXR1bG8gMQ0KDQojIyBUw610dWxvIDINCg0KIyMgU2VwYXJhY2lvbmVzIC0gTMOtbmVhcyBIb3Jpem9udGFsZXMNCg0KLS0tDQoNCioqKg0KDQotLS0NCg0KKioqDQoNCiMjIENpdGFzIC0gQcOxYWRpciBjaXRhcyBhIG51ZXN0cm8gZG9jdW1lbnRvIE1hcmtkb3duDQoNCj4gIkxhIHRlY25vbG9nw61hIG5vIGVzIG5hZGEuIExvIGltcG9ydGFudGUgZXMgcXVlIHRlbmdhcyBmZSBlbiBsYSBnZW50ZSwgcXVlIHNlYW4gYsOhc2ljYW1lbnRlIGJ1ZW5hcyBlIGludGVsaWdlbnRlcywgeSBzaSBsZXMgZGFzIGhlcnJhbWllbnRhcywgaGFyw6FuIGNvc2FzIG1hcmF2aWxsb3NhcyBjb24gZWxsYXMiDQo+DQo+ICoqU3RldmUgSm9icyoqDQoNCiMjIE5lZ3JpdGEgLSBDdXJzaXZhIC0gVGFjaGFkbyAtIFN1YnJheWFkbw0KDQoqKlRleHRvIGZvcm1hdGVhZG8gY29tbyBOZWdyaXRhKioNCg0KKlRleHRvIGZvcm1hdGVhZG8gY29tbyBDdXJzaXZhKg0KDQoqKipUZXh0byBmb3JtYXRlYWRvIGNvbW8gTmVncml0YSB5IEN1cnNpdmEqKioNCg0Kfn5UZXh0byB0YWNoYWRvfn4NCg0KPHU+VGV4dG8gc3VicmF5YWRvPC91PiA8IS0tSFRNTCB0YWdzLS0+DQoNCiMjIExpc3Rhcw0KDQojIyMgTGlzdGEgVmnDsWV0YXMgLSBMaXN0YSBBbmlkYWRhDQoNCi0gICBMaXN0YSAxDQotICAgTGlzdGEgMg0KLSAgIExpc3RhIDMNCi0gICBMaXN0YSA0DQotICAgTGlzdGEgNQ0KICAgIC0gICBMaXN0YSA1LjENCiAgICAtICAgTGlzdGEgNS4yDQogICAgLSAgIExpc3RhIDUuMw0KLSAgIExpc3RhIDYNCi0gICBMaXN0YSA3DQotICAgTGlzdGEgOA0KDQojIyMgTGlzdGEgTnVtZXJhZGENCg0KMS4gIExpc3RhIDENCjIuICBMaXN0YSAyDQozLiAgTGlzdGEgMw0KNC4gIExpc3RhIDQNCjUuICBMaXN0YSA1DQo2LiAgTGlzdGEgNg0KNy4gIExpc3RhIDcNCg0KIyMjIExpc3RhIE9yZGVuYWRhIEFsZmFiw6l0aWNhbWVudGUNCg0KYS4gIExpc3RhIEENCmIuICBMaXN0YSBCDQpjLiAgTGlzdGEgQw0KZC4gIExpc3RhIEQNCmUuICBMaXN0YSBFDQpmLiAgTGlzdGEgRg0KDQojIyMgTGlzdGEgVGFyZWFzDQoNCi0gICBbIF0gVEFSRUEgQQ0KLSAgIFsgXSBUQVJFQSBCDQotICAgWyBdIFRBUkVBIEMNCi0gICBbIF0gVEFSRUEgRA0KLSAgIFsgXSBUQVJFQSBFDQotICAgWyBdIFRBUkVBIEYNCi0gICBbIF0gVEFSRUEgRw0KDQojIyMgQ2Fzb3MgLSBFamVtcGxvcw0KDQotICAgTGlzdGEgMQ0KLSAgIExpc3RhIDINCi0gICBMaXN0YSAzDQotICAgTGlzdGEgNA0KLSAgIExpc3RhIDUNCi0gICBMaXN0YSA2DQotICAgTGlzdGEgNw0KLSAgIExpc3RhIDgNCi0gICBMaXN0YSA5DQoNCiMjIEVubGFjZXMgLSBBw7FhZGlyIGxpbmtzIGEgbnVlc3RybyBkb2N1bWVudG8gTWFya2Rvd24NCg0KPGh0dHBzOi8vd3d3LmRhdGFzY2llbmNlLnBlPg0KDQpbRFNSUF0oaHR0cHM6Ly93d3cuZGF0YXNjaWVuY2UucGUpe3RhcmdldD0iX2JsYW5rIn0NCg0KW0RhdGEgU2NpZW5jZSBSZXNlYXJjaCBQZXJ1XShodHRwczovL3d3dy5kYXRhc2NpZW5jZS5wZSAiSW5ncmVzYXIgYWwgRFNSUCIpe3RhcmdldD0iX2JsYW5rIn0NCg0KIyMgSW3DoWdlbmVzIC0gQcOxYWRpciBpbcOhZ2VuZXMgYSBudWVzdHJvIGRvY3VtZW50byBNYXJrZG93bg0KDQo8IS0tIEhUTUwgVGFncyAtLT4NCg0KPGNlbnRlcj4NCg0KIVtdKGxvZ29fci5wbmcpDQoNCiFbXShodHRwczovL2QzM3d1YnJma2kwbDY4LmNsb3VkZnJvbnQubmV0L2FlZTkxMTg3YTljNjgxMWE4MDJkZGM1MjRjMzI3MTMwMjg5M2ExNDkvYTcwMDMvaW1hZ2VzL2JhbmR0aHJlZTIucG5nKXt3aWR0aD0iNDAwIn0NCg0KPC9jZW50ZXI+DQoNCiMjIFRhYmxhcyAtIEHDsWFkaXIgdGFibGFzIGEgbnVlc3RybyBkb2N1bWVudG8gTWFya2Rvd24NCg0KfCBUQUJMQSBBIHwgVEFCTEEgQiB8IFRBQkxBIEMgfA0KfDotLS0tLS0tOnw6LS0tLS0tLTp8Oi0tLS0tLS06fA0KfCAgICBBICAgIHwgICAgQiAgICB8ICAgIEMgICAgfA0KfCAgICBBICAgIHwgICAgQiAgICB8ICAgIEMgICAgfA0KfCAgICBBICAgIHwgICAgQiAgICB8ICAgIEMgICAgfA0KfCAgICBBICAgIHwgICAgQiAgICB8ICAgIEMgICAgfA0KfCAgICBBICAgIHwgICAgQiAgICB8ICAgIEMgICAgfA0KfCAgICBBICAgIHwgICAgQiAgICB8ICAgIEMgICAgfA0KfCAgICBBICAgIHwgICAgQiAgICB8ICAgIEMgICAgfA0KfCAgICBBICAgIHwgICAgQiAgICB8ICAgIEMgICAgfA0KfCAgICBBICAgIHwgICAgQiAgICB8ICAgIEMgICAgfA0KfCAgICBBICAgIHwgICAgQiAgICB8ICAgIEMgICAgfA0KDQojIyBWw61kZW9zIC0gQcOxYWRpciB2w61kZW9zIGEgbnVlc3RybyBkb2N1bWVudG8gTWFya2Rvd24NCg0KPCEtLSBIVE1MIFRhZ3MgLS0+DQoNCjxjZW50ZXI+DQoNCjxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvT3BjcS1HRGRYWDQiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4gZGF0YS1leHRlcm5hbD0iMSI+PC9pZnJhbWU+DQoNCjwvY2VudGVyPg0KDQojIyBNYXBhcyAtIEHDsWFkaXIgTWFwYXMgKEdvb2dsZSBNYXBzKSBhIG51ZXN0cm8gZG9jdW1lbnRvIE1hcmtkb3duDQoNCjwhLS0gSFRNTCBUYWdzIC0tPg0KDQo8Y2VudGVyPg0KDQo8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkP3BiPSExbTE4ITFtMTIhMW0zITFkMzkwMS43MjM5NzAyODg2OTUhMmQtNzcuMTUwOTgwNjg1NjE3NzEhM2QtMTIuMDYyNTAzMzQ1NDc2NjYyITJtMyExZjAhMmYwITNmMCEzbTIhMWkxMDI0ITJpNzY4ITRmMTMuMSEzbTMhMW0yITFzMHg5MTA1Y2I3NjAzZjNhZjBiJTNBMHg5MTZmZTYxYzNmNTgyN2MzITJzRm9ydGFsZXphJTIwZGVsJTIwUmVhbCUyMEZlbGlwZSE1ZTAhM20yITFzZXMhMnNwZSE0djE2NDk4MTMwMTUyMjYhNW0yITFzZXMhMnNwZSIgd2lkdGg9IjYwMCIgaGVpZ2h0PSI0NTAiIHN0eWxlPSJib3JkZXI6MDsiIGFsbG93ZnVsbHNjcmVlbiBsb2FkaW5nPSJsYXp5IiByZWZlcnJlcnBvbGljeT0ibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiIGRhdGEtZXh0ZXJuYWw9IjEiPjwvaWZyYW1lPg0KDQo8L2NlbnRlcj4NCg0KIyMgQ8OzZGlnbyAtIEHDsWFkaXIgY8OzZGlnbyBkZSBkaXN0aW50b3MgbGVuZ3VhamVzIGRlIHByb2dyYW1hY2nDs24gKFIgLSBQeXRob24gLSBTUUwpDQoNCjwhLS0gRnVuY2lvbmVzIGRlbCBsZW5ndWFqZSBkZSBwcm9ncmFtYWNpw7NuIFIgLS0+DQoNCiAgICBzdW1tYXJ5KG10Y2FycykNCg0KTGEgZnVuY2nDs24gYGJhcnBsb3QoKWAgbm9zIHBlcm1pdGUgY3JlYXIgZGlhZ3JhbWFzIGRlIGJhcnJhcyAoKipCYXIgQ2hhcnRzKiopIGVuIGVsIGxlbmd1YWplIGRlIHByb2dyYW1hY2nDs24gUi4NCg0KPCEtLSBTaW50YXhpcyBkZSBSLCBwZXJvIGNvbW8gdGV4dG8gcGxhbm8gLS0+DQoNCn5+fg0KeCA8LSB0YWJsZShtdGNhcnMkY3lsKQ0KDQpjb2xvcmVzIDwtIGMoIm9yYW5nZSIsImJsdWUiLCJwdXJwbGUiKQ0KDQpiYXJwbG90KHgseGxhYj0iQ2lsaW5kcm9zIix5bGFiPSJGcmVjdWVuY2lhcyIsbWFpbj0iTsO6bWVybyBkZSBDaWxpbmRyb3MiLGNvbD1jb2xvcmVzKQ0Kfn5+DQoNCg0KICAgIHggPC0gdGFibGUobXRjYXJzJGN5bCkNCg0KICAgIGNvbG9yZXMgPC0gYygib3JhbmdlIiwiYmx1ZSIsInB1cnBsZSIpDQoNCiAgICBiYXJwbG90KHgseGxhYj0iQ2lsaW5kcm9zIix5bGFiPSJGcmVjdWVuY2lhcyIsbWFpbj0iTsO6bWVybyBkZSBDaWxpbmRyb3MiLGNvbD1jb2xvcmVzKQ0KDQoNCmBgYCByDQp5IDwtIHRhYmxlKG10Y2FycyRnZWFyKQ0KDQpiYXJwbG90KHkseGxhYj0iRW5ncmFuYWplcyIseWxhYj0iRnJlY3VlbmNpYXMiLG1haW49Ik7Dum1lcm8gZGUgRW5ncmFuYWplcyIsY29sPXJhaW5ib3coMykpDQpgYGANCg0KPCEtLSBDb21hbmRvcyB5IGxpYnJlcsOtYXMgZGVsIGxlbmd1YWplIGRlIHByb2dyYW1hY2nDs24gUHl0aG9uIC0tPg0KDQpgYGAgcHl0aG9uDQppbXBvcnQgbWF0cGxvdGxpYi5weXBsb3QgYXMgcGx0DQoNCmVqZV94PVs0LDYsOF0NCg0KZWplX3k9WzExLDcsMTRdDQoNCmNvbG9yZXM9WydvcmFuZ2UnLCdibHVlJywncHVycGxlJ10NCg0KcGx0LmJhcihlamVfeCxlamVfeSxjb2xvcj1jb2xvcmVzKQ0KDQpwbHQueGxhYmVsKCdDaWxpbmRyb3MnKQ0KDQpwbHQueWxhYmVsKCdGcmVjdWVuY2lhcycpDQoNCnBsdC50aXRsZSgnTsO6bWVybyBkZSBDaWxpbmRyb3MnKQ0KDQpwbHQuc2hvdygpDQpgYGANCg0KICAgIFNFTEVDVCBpZF91c3VhcmlvLHVzdWFyaW9fbm9tYnJlLHVzdWFyaW9fYXBlbGxpZG8gRlJPTSB1c3VhcmlvOw0KDQpgYGAgc3FsDQpVU0UgTm9ydGh3aW5kOw0KDQpTRUxFQ1QgKiBGUk9NIFByb2R1Y3RzOw0KYGBgDQoNCiMjIEFudWxhciBzaW50YXhpcyBNYXJrZG93bg0KDQpcIyBFc3RvIGRlYmVyw61hIHNlciB1biB0w610dWxvIHRpcG8gMQ0KDQpcKlwqRXN0byBkZWJlcsOtYSBzZXIgdGV4dG8gZm9ybWF0ZWFkbyBjb21vIE5lZ3JpdGFcKlwqDQoNClwqRXN0byBkZWJlcsOtYSBzZXIgdGV4dG8gZm9ybWF0ZWFkbyBjb21vIEN1cnNpdmFcKg0KDQojIyBQaWUgZGUgcMOhZ2luYQ0KDQpbXnBpZV9wYWdpbmFfMDFdOiBSTWFya2Rvd24gZXMgdW4gcGFxdWV0ZSBkZWwgbGVuZ3VhamUgZGUgcHJvZ3JhbWFjaW9uIFIgcXVlIG5vcyBwZXJtaXRlIGNyZWFyIGRvY3VtZW50b3MgY2llbnRpZmljb3MgeSB0ZWNuaWNvcyBlbiBkaXN0aW50b3MgZm9ybWF0b3MgSFRNTCwgUERGLCBNaWNyb3NvZnQgV29yZCBlbnRyZSBvdHJvcy4qKg0KDQojIyBFY3VhY2lvbmVzIC0gRsOzcm11bGFzIC0gU2ludGF4aXMgeSBjb21hbmRvcyBMYVRlWA0KDQojIyMgU3VwZXLDrW5kaWNlIC0gUG90ZW5jaWENCg0KJCQNCkU9bWNeMg0KJCQNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiQkDQphXjIgKyBiXjIgPSBjXjINCiQkDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIyMgU3Viw61uZGljZQ0KDQokJA0KSF8yTw0KJCQNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiQkDQpOSF8zDQokJA0KDQojIyMgRnJhY2Npb25lcyAtIENhc29zIC0gRWplbXBsb3MNCg0KJCQNClxmcmFjezV9ezJ9DQokJA0KDQokJA0KXGZyYWN7NX17Mn0gKyBcZnJhY3s0fXs2fQ0KJCQNCg0KJCQNClxmcmFjezh9ezl9IC0gXGZyYWN7Mn17M30NCiQkDQoNCiQkDQpcZnJhY3s3fXs4fSBcY2RvdCBcZnJhY3szfXs0fQ0KJCQNCg0KJCQNClxmcmFjezl9ezh9IFx0aW1lcyBcZnJhY3szfXs3fQ0KJCQNCg0KJCQNClxmcmFjezJ9ezN9IFxkaXYgXGZyYWN7NH17NX0NCiQkDQoNCiQkDQooXGZyYWN7M317NH0pDQokJA0KDQokJA0KXGxlZnQoXGZyYWN7NH17NX1ccmlnaHQpXjMNCiQkDQoNCkRhZGEgbGEgZnJhY2Npw7NuICRcdGZyYWN7NH17NX0kLCBwb2RlbW9zIGRldGVybWluYXIgZWwgdmFsb3IgZGUgbGEgdmFyaWFibGUuLi4NCg0KRGFkYSBsYSBmcmFjY2nDs24gJFxmcmFjezR9ezV9JCwgcG9kZW1vcyBkZXRlcm1pbmFyIGVsIHZhbG9yIGRlIGxhIHZhcmlhYmxlLi4uDQoNCkRhZGEgbGEgZnJhY2Npw7NuICRcZGZyYWN7NH17NX0kLCBwb2RlbW9zIGRldGVybWluYXIgZWwgdmFsb3IgZGUgbGEgdmFyaWFibGUuLi4NCg0KIyMjIFN1bWF0b3JpYQ0KDQokJA0KXHN1bV97aT0xfV41IGkNCiQkDQoNCiQkDQpcc3VtX3tpPTF9XjUgMmkNCiQkDQoNCiQkDQpcc3VtX3tpPTN9XjYgMmktMQ0KJCQNCg0KJCQNClxzdW1fe2k9Mn1eNiBcZnJhY3tpKzF9e2l9DQokJA0KDQojIyMgUmHDrWNlcw0KDQokJA0KXHNxcnR7Mn09IDEuNDE0MjEzNTYNCiQkDQoNCiQkDQpcc3FydHszfSA9IDEuNzMyMDUwOA0KJCQNCg0KJCQNClxzcXJ0WzNde1xmcmFjezI1MH17MjV9fQ0KJCQNCg0KIyMjIExvZ2FyaXRtb3MNCg0KJCQNCmxvZ18zezQ5fT0gMg0KJCQNCg0KJCQNClxsb2dfNnsyMTZ9PTMNCiQkDQoNCiQkDQpcbG9nXzN7ODF9PTQNCiQkDQoNCiMjIyBNYXRyaWNlcw0KDQokJA0KXGJlZ2lue21hdHJpeH0NCjEwICYgNyAmIDEyIFxcDQo3ICYgOCAmIDExIFxcDQozICYgOSAmIDYNClxlbmR7bWF0cml4fQ0KJCQNCg0KJCQNClxiZWdpbntwbWF0cml4fQ0KMTAgJiA3ICYgMTIgXFwNCjcgJiA4ICYgMTEgXFwNCjMgJiA5ICYgNg0KXGVuZHtwbWF0cml4fQ0KJCQNCg0KJCQNClxiZWdpbntibWF0cml4fQ0KMTAgJiA3ICYgMTIgXFwNCjcgJiA4ICYgMTEgXFwNCjMgJiA5ICYgNg0KXGVuZHtibWF0cml4fQ0KJCQNCg0KJCQNClxiZWdpbntCbWF0cml4fQ0KMTAgJiA3ICYgMTIgXFwNCjcgJiA4ICYgMTEgXFwNCjMgJiA5ICYgNg0KXGVuZHtCbWF0cml4fQ0KJCQNCg0KJCQNClxiZWdpbnt2bWF0cml4fQ0KMTAgJiA3ICYgMTIgXFwNCjcgJiA4ICYgMTEgXFwNCjMgJiA5ICYgNg0KXGVuZHt2bWF0cml4fQ0KJCQNCg0KJCQNClxiZWdpbntWbWF0cml4fQ0KMTAgJiA3ICYgMTIgXFwNCjcgJiA4ICYgMTEgXFwNCjMgJiA5ICYgNg0KXGVuZHtWbWF0cml4fQ0KJCQNCg0KIyMjIEVjdWFjaW9uZXMNCg0KRGFkYSBsYSBmdW5jacOzbg0KDQokJA0KXGJlZ2lue2VxdWF0aW9ufQ0KZih4KSA9IHkNClxlbmR7ZXF1YXRpb259DQokJA0KDQpwb2RlbW9zIGRldGVybWluYXIgZWwgdmFsb3IgZGUgbGEgdmFyaWFibGUuLi4NCg0KJCQNClx0ZXh0e0bDs3JtdWxhIEVjdWFjacOzbiAywrogR3JhZG99IFxxdWFkIHg9XGZyYWN7LWIgXHBtIFxzcXJ0e2JeMiAtIDRhY319ezJhfQ0KJCQNCg0KIyMjIFPDrW1ib2xvcyBNYXRlbcOhdGljb3MNCg0KJCQNCig5MDApDQokJA0KDQokJA0KWzkwMF0NCiQkDQoNCiQkDQp8OTAwfA0KJCQNCg0KJCQNClx8OTAwXHwNCiQkDQoNCiQkDQo5MDAgPiA3ODgNCiQkDQoNCiQkDQo5MDAgPCAxMDAwMA0KJCQNCg0KJCQNCjkwMCBcZ2VxIDc4OA0KJCQNCg0KJCQNCjEyMyBcbGVxIDkwMA0KJCQNCg==