1 Intorduction

This note list commands for creating mathematics formulas in RMarkdown.

2 Greek Letters

Symbol Script
\(\alpha\) \alpha
\(A\) A
\(\beta\) \beta
\(B\) B
\(\gamma\) \gammma
\(\Gamma\) \Gamma
\(\pi\) \pi
\(\Pi\) \Pi
\(\phi\) \phi
\(\Phi\) \Phi
\(\varphi\) \varphi
\(\theta\) \theta

3 Operators

Symbol Script
\(\cos\) \cos
\(\sin\) \sin
\(\lim\) \lim
\(\exp\) \exp
\(\to\) \to
\(\infty\) \infty
\(\equiv\) \equiv
\(\bmod\) \bmod
\(\times\) \times

4 Power and Indicies

Symbol Script
\(k_{n+1}\) k_{n+1}
\(n^2\) n^2
\(k_n^2\) k_n^2

5 Fractions and Binomials

Symbol Script
\(\frac{n!}{k!(n-k)!}\) \frac{n!}{k!(n-k)!}
\(\binom{n}{k}\) \binom{n}{k}
\(\frac{\frac{x}{1}}{x - y}\) \frac{\frac{x}{1}}{x - y}
\(^3/_7\) ^3/_7

6 Radical Roots

Symbol Script
\(\sqrt{k}\) \sqrt{k}
\(\sqrt[n]{k}\) \sqrt[n]{k}

8 More Special Symbols

Symbol Script
\(a^{\prime}\) a^{\prime}
\(a^{\prime\prime}\) a^{\prime\prime}
\(\hat{a}\) \hat{a}
\(\bar{a}\) \bar{a}
\(\grave{a}\) \grave{a}
\(\acute{a}\) \acute{a}
\(\dot{a}\) \dot{a}
\(\ddot{a}\) \ddot{a}
\(\not{a}\) \not{a}
\(\mathring{a}\) \mathring{a}
\(\overrightarrow{AB}\) \overrightarrow{AB}
\(\overleftarrow{AB}\) \overleftarrow{AB}
\(a^{\prime\prime\prime}\) a^{\prime\prime\prime}
\(\overline{aaa}\) \overline{aaa}
\(\check{a}\) \check{a}
\(\vec{a}\) \vec{a}
\(\underline{a}\) \underline{a}
\(\color{red}x\) \color{red}x
\(\pm\) \pm
\(\mp\) \mp
\(\int y \mathrm{d}x\) \int y \mathrm{d}x
\(,\) ,
\(:\) :
\(;\) ;
\(!\) !
\(\int y, \mathrm{d}x\) \int y, \mathrm{d}x
\(\dots\) \dots
\(\ldots\) \ldots
\(\cdots\) \cdots
\(\vdots\) \vdots
\(\ddots\) \ddots

9 Brackets

Symbol Script
\((a)\) (a)
\([a]\) [a]
\(\{a\}\) \{a\}
\(\langle f \rangle\) \langle f \rangle
\(\lfloor f \rfloor\) \lfloor f \rfloor
\(\lceil f \rceil\) \lceil f \rceil
\(\ulcorner f \urcorner\) \ulcorner f \urcorner

10 Matrices and System of Equations

10.1 Matrix

$$
X_{m,n} = 
\begin{pmatrix}
  x_{1,1} & x_{1,2} & \cdots & x_{1,n} \\
  x_{2,1} & x_{2,2} & \cdots & x_{2,n} \\
  \vdots  & \vdots  & \ddots & \vdots  \\
  x_{m,1} & x_{m,2} & \cdots & x_{m,n} 
\end{pmatrix}
$$

produces

\[ X_{m,n} = \begin{pmatrix} x_{1,1} & x_{1,2} & \cdots & x_{1,n} \\ x_{2,1} & x_{2,2} & \cdots & x_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m,1} & x_{m,2} & \cdots & x_{m,n} \end{pmatrix} \]

$$
M = 
\begin{bmatrix}
\frac{5}{6} & \frac{1}{6} & 0 \\[0.3em]
\frac{5}{6} & 0 & \frac{1}{6} \\[0.3em]
0 & \frac{5}{6} & \frac{1}{6}
\end{bmatrix}
$$

produces

\[ M = \begin{bmatrix} \frac{5}{6} & \frac{1}{6} & 0 \\[0.3em] \frac{5}{6} & 0 & \frac{1}{6} \\[0.3em] 0 & \frac{5}{6} & \frac{1}{6} \end{bmatrix} \]

10.2 Aligned Equations

$$
\begin{aligned}
Bias(\hat{\theta})  &= E(\hat{\theta}) - \theta \\
Bias(\hat{\theta})  &= E(2 \bar{X} -1) - \theta \\
Bias(\hat{\theta})  &= \frac{2}{n}\sum_{i=1}^n E(X_i) -1 -\theta \\
Bias(\hat{\theta})  &= 2E(X) - 1 - \theta \\
Bias(\hat{\theta})  &= 2 \cdot \frac{\theta+1}{2} - 1 - \theta \\
Bias(\hat{\theta})  &= 0 \\
\end{aligned}
$$

Produces the following system of equations

\[ \begin{aligned} Bias(\hat{\theta}) &= E(\hat{\theta}) - \theta \\ Bias(\hat{\theta}) &= E(2 \bar{X} -1) - \theta \\ Bias(\hat{\theta}) &= \frac{2}{n}\sum_{i=1}^n E(X_i) -1 -\theta \\ Bias(\hat{\theta}) &= 2E(X) - 1 - \theta \\ Bias(\hat{\theta}) &= 2 \cdot \frac{\theta+1}{2} - 1 - \theta \\ Bias(\hat{\theta}) &= 0 \\ \end{aligned} \]

10.3 Piece-wise Function

$$ f(x) = \begin{cases} \frac{1}{b-a} \\ 0 \end{cases} $$

produces the following piece-wise function

\[ f(x) = \begin{cases} \frac{1}{b-a} \\ 0 \end{cases} \]

11 Pseudo-code of Algorithms

while not convergence:

compute \(\nabla(J)\)

\(\theta_0 := \theta_0 - \alpha\nabla(J)_0\)

\(\theta_1 := \theta_1 - \alpha\nabla(J)_1\)

end while

LS0tDQp0aXRsZTogIldyaXRpbmcgTWF0aGVtYXRpY2FsIEVxdWF0aW9ucyBpbiBSTWFya2Rvd24iDQphdXRob3I6ICJDaGVuZyBQZW5nIg0KZGF0ZTogIkxhYiBOb3RlIGZvciBTVEEzMjEgIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIHRvY19mbG9hdDogeWVzDQogICAgZmlnX3dpZHRoOiA0DQogICAgZmlnX2NhcHRpb246IHllcw0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQogICAgdG9jX2NvbGxhcHNlZDogeWVzDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgc21vb3RoX3Njcm9sbDogeWVzDQogICAgdGhlbWU6IGx1bWVuDQogIHdvcmRfZG9jdW1lbnQ6IA0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiA0DQogICAgZmlnX2NhcHRpb246IHllcw0KICAgIGtlZXBfbWQ6IHllcw0KICBwZGZfZG9jdW1lbnQ6IA0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiA0DQogICAgZmlnX2NhcHRpb246IHllcw0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQogICAgZmlnX3dpZHRoOiAzDQogICAgZmlnX2hlaWdodDogMw0KZWRpdG9yX29wdGlvbnM6IA0KICBjaHVua19vdXRwdXRfdHlwZTogaW5saW5lDQotLS0NCg0KYGBgez1odG1sfQ0KDQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KDQovKiBDYXNjYWRpbmcgU3R5bGUgU2hlZXRzIChDU1MpIGlzIGEgc3R5bGVzaGVldCBsYW5ndWFnZSB1c2VkIHRvIGRlc2NyaWJlIHRoZSBwcmVzZW50YXRpb24gb2YgYSBkb2N1bWVudCB3cml0dGVuIGluIEhUTUwgb3IgWE1MLiBpdCBpcyBhIHNpbXBsZSBtZWNoYW5pc20gZm9yIGFkZGluZyBzdHlsZSAoZS5nLiwgZm9udHMsIGNvbG9ycywgc3BhY2luZykgdG8gV2ViIGRvY3VtZW50cy4gKi8NCg0KaDEudGl0bGUgeyAgLyogVGl0bGUgLSBmb250IHNwZWNpZmljYXRpb25zIG9mIHRoZSByZXBvcnQgdGl0bGUgKi8NCiAgZm9udC1zaXplOiAyNHB4Ow0KICBjb2xvcjogRGFya1JlZDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBmb250LWZhbWlseTogIkdpbGwgU2FucyIsIHNhbnMtc2VyaWY7DQp9DQpoNC5hdXRob3IgeyAvKiBIZWFkZXIgNCAtIGZvbnQgc3BlY2lmaWNhdGlvbnMgZm9yIGF1dGhvcnMgICovDQogIGZvbnQtc2l6ZTogMjBweDsNCiAgZm9udC1mYW1pbHk6IHN5c3RlbS11aTsNCiAgY29sb3I6IERhcmtSZWQ7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCmg0LmRhdGUgeyAvKiBIZWFkZXIgNCAtIGZvbnQgc3BlY2lmaWNhdGlvbnMgZm9yIHRoZSBkYXRlICAqLw0KICBmb250LXNpemU6IDE4cHg7DQogIGZvbnQtZmFtaWx5OiBzeXN0ZW0tdWk7DQogIGNvbG9yOiBEYXJrQmx1ZTsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KaDEgeyAvKiBIZWFkZXIgMSAtIGZvbnQgc3BlY2lmaWNhdGlvbnMgZm9yIGxldmVsIDEgc2VjdGlvbiB0aXRsZSAgKi8NCiAgICBmb250LXNpemU6IDIycHg7DQogICAgZm9udC1mYW1pbHk6IHN5c3RlbS11aTsNCiAgICBjb2xvcjogbmF2eTsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KaDIgeyAvKiBIZWFkZXIgMiAtIGZvbnQgc3BlY2lmaWNhdGlvbnMgZm9yIGxldmVsIDIgc2VjdGlvbiB0aXRsZSAqLw0KICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICBjb2xvcjogbmF2eTsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQpoMyB7IC8qIEhlYWRlciAzIC0gZm9udCBzcGVjaWZpY2F0aW9ucyBvZiBsZXZlbCAzIHNlY3Rpb24gdGl0bGUgICovDQogICAgZm9udC1zaXplOiAxOHB4Ow0KICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGNvbG9yOiBuYXZ5Ow0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCmg0IHsgLyogSGVhZGVyIDQgLSBmb250IHNwZWNpZmljYXRpb25zIG9mIGxldmVsIDQgc2VjdGlvbiB0aXRsZSAgKi8NCiAgICBmb250LXNpemU6IDE4cHg7DQogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgY29sb3I6IGRhcmtyZWQ7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KYm9keSB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0NCg0KLmhpZ2hsaWdodG1lIHsgYmFja2dyb3VuZC1jb2xvcjp5ZWxsb3c7IH0NCg0KcCB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0NCg0KPC9zdHlsZT4NCmBgYA0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCiMgRGV0ZWN0LCBpbnN0YWxsIGFuZCBsb2FkIHBhY2thZ2VzIGlmIG5lZWRlZC4NCmlmICghcmVxdWlyZSgia25pdHIiKSkgew0KICAgaW5zdGFsbC5wYWNrYWdlcygia25pdHIiKQ0KICAgbGlicmFyeShrbml0cikNCn0NCmlmICghcmVxdWlyZSgiTUFTUyIpKSB7DQogICBpbnN0YWxsLnBhY2thZ2VzKCJNQVNTIikNCiAgIGxpYnJhcnkoTUFTUykNCn0NCmlmICghcmVxdWlyZSgibmxlcXNsdiIpKSB7DQogICBpbnN0YWxsLnBhY2thZ2VzKCJubGVxc2x2IikNCiAgIGxpYnJhcnkobmxlcXNsdikNCn0NCiMNCiMgc3BlY2lmaWNhdGlvbnMgb2Ygb3V0cHV0cyBvZiBjb2RlIGluIGNvZGUgY2h1bmtzDQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsICAgICAgIyBpbmNsdWRlIGNvZGUgY2h1bmsgaW4gdGhlIG91dHB1dCBmaWxlDQogICAgICAgICAgICAgICAgICAgICAgd2FybmluZ3MgPSBGQUxTRSwgICMgc29tZXRpbWVzLCB5b3UgY29kZSBtYXkgcHJvZHVjZSB3YXJuaW5nIG1lc3NhZ2VzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHlvdSBjYW4gY2hvb3NlIHRvIGluY2x1ZGUgdGhlIHdhcm5pbmcgbWVzc2FnZXMgaW4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGUgb3V0cHV0IGZpbGUuIA0KICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzID0gRkFMU0UsICAjDQogICAgICAgICAgICAgICAgICAgICAgcmVzdWx0cyA9IFRSVUUgICAgICMgeW91IGNhbiBhbHNvIGRlY2lkZSB3aGV0aGVyIHRvIGluY2x1ZGUgdGhlIG91dHB1dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluIHRoZSBvdXRwdXQgZmlsZS4NCiAgICAgICAgICAgICAgICAgICAgICApICAgDQpgYGANCg0KXA0KDQoNCiMgSW50b3JkdWN0aW9uDQoNClRoaXMgbm90ZSBsaXN0IGNvbW1hbmRzIGZvciBjcmVhdGluZyBtYXRoZW1hdGljcyBmb3JtdWxhcyBpbiBSTWFya2Rvd24uDQoNCiMgR3JlZWsgTGV0dGVycw0KDQp8U3ltYm9sCSAgfCAgU2NyaXB0ICAgfA0KfDotLS0tLS0tLXw6LS0tLS0tLS0tLXwNCnwkXGFscGhhJAl8IGBcYWxwaGFgICB8DQp8JEEkICAgICAgfCAgCWBBYHwNCnwkXGJldGEkCXwgICBgXGJldGFgfA0KfCRCJAkgICAgfCAgICBgQmB8DQp8JFxnYW1tYSQgfCAJYFxnYW1tbWFgfA0KfCRcR2FtbWEkIHwgIAlgXEdhbW1hYHwNCnwkXHBpJCAgICB8ICAJYFxwaWB8DQp8JFxQaSQgICAgfCAJYFxQaWB8DQp8JFxwaGkkCSAgfCAgYFxwaGlgfA0KfCRcUGhpJAkgIHwgIGBcUGhpYHwNCnwkXHZhcnBoaSR8CSAgIGBcdmFycGhpYHwNCnwkXHRoZXRhJAl8ICAgYFx0aGV0YWB8DQoNCiMgT3BlcmF0b3JzDQoNCg0KfFN5bWJvbAkgIHwgIFNjcmlwdCAgIHwNCnw6LS0tLS0tLS18Oi0tLS0tLS0tLS18DQp8JFxjb3MkfAlgXGNvc2B8DQp8JFxzaW4kfGBcc2luYHwNCnwkXGxpbSR8CWBcbGltYHwNCnwkXGV4cCR8CWBcZXhwYHwNCnwkXHRvJHwJYFx0b2B8DQp8JFxpbmZ0eSR8CWBcaW5mdHlgfA0KfCRcZXF1aXYkfAlgXGVxdWl2YHwNCnwkXGJtb2QkfAlgXGJtb2RgfA0KfCRcdGltZXMkfAlgXHRpbWVzYHwNCg0KDQoNCiMgUG93ZXIgYW5kIEluZGljaWVzDQoNCnxTeW1ib2wJICB8ICBTY3JpcHQgICB8DQp8Oi0tLS0tLS0tfDotLS0tLS0tLS0tfA0KfCRrX3tuKzF9JHwJYGtfe24rMX1gfA0KfCRuXjIkfAlgbl4yYHwNCnwka19uXjIkfAlga19uXjJgfA0KDQoNCiMgRnJhY3Rpb25zIGFuZCBCaW5vbWlhbHMNCg0KfFN5bWJvbAkgIHwgIFNjcmlwdCAgIHwNCnw6LS0tLS0tLS18Oi0tLS0tLS0tLS18DQp8JFxmcmFje24hfXtrIShuLWspIX0kfAlgXGZyYWN7biF9e2shKG4taykhfWB8DQp8JFxiaW5vbXtufXtrfSR8CWBcYmlub217bn17a31gfA0KfCRcZnJhY3tcZnJhY3t4fXsxfX17eCAtIHl9JHwJYFxmcmFje1xmcmFje3h9ezF9fXt4IC0geX1gfA0KfCReMy9fNyR8CWBeMy9fN2B8DQoNCg0KIyBSYWRpY2FsIFJvb3RzDQoNCnxTeW1ib2wJICB8ICBTY3JpcHQgICB8DQp8Oi0tLS0tLS0tfDotLS0tLS0tLS0tfA0KfCRcc3FydHtrfSR8CWBcc3FydHtrfWB8DQp8JFxzcXJ0W25de2t9JHwJYFxzcXJ0W25de2t9YHwNCg0KDQojIFN1bXMsIEludGVncmFscywgYW5kIFJlbGF0ZWQgU3ltYm9scw0KDQoNCnxTeW1ib2wJICB8ICBTY3JpcHQgICB8DQp8Oi0tLS0tLS0tfDotLS0tLS0tLS0tfA0KfCRcc3VtX3tpPTF9XnsxMH0gdF9pJHwJYFxzdW1fe2k9MX1eezEwfSB0X2lgfA0KfCRcaW50XzBeXGluZnR5IFxtYXRocm17ZX1eey14fSxcbWF0aHJte2R9eCR8CWBcaW50XzBeXGluZnR5IFxtYXRocm17ZX1eey14fSxcbWF0aHJte2R9eGB8DQp8JFxzdW0kfAlgXHN1bWB8DQp8JFxwcm9kJHwJYFxwcm9kYHwNCnwkXGNvcHJvZCR8CWBcY29wcm9kYHwNCnwkXGJpZ29wbHVzJHwJYFxiaWdvcGx1c2B8DQp8JFxiaWdvdGltZXMkfAlgXGJpZ290aW1lc2B8DQp8JFxiaWdvZG90JHwJYFxiaWdvZG90YHwNCnwkXGJpZ2N1cCR8CWBcYmlnY3VwYHwNCnwkXGJpZ2NhcCR8CWBcYmlnY2FwYHwNCnwkXGJpZ3VwbHVzJHwJYFxiaWd1cGx1c2B8DQp8JFxiaWdzcWN1cCR8CWBcYmlnc3FjdXBgfA0KfCRcYmlndmVlJHwJYFxiaWd2ZWVgfA0KfCRcYmlnd2VkZ2UkfAlgXGJpZ3dlZGdlYHwNCnwkXGludCR8CWBcaW50YHwNCnwkXG9pbnQkfAlgXG9pbnRgfA0KfCRcaWludCR8CWBcaWludGB8DQp8JFxpaWludCR8CWBcaWlpbnRgfA0KfCRcaWRvdHNpbnQkfAlgXGlkb3RzaW50YHwNCnwkXHN1bV97XHN1YnN0YWNrezA8aTxtLCBcIDA8ajxufX0gUChpLCBqKSR8CWBcc3VtX3tcc3Vic3RhY2t7MDxpPG0sIFwgMDxqPG59fSBQKGksIGopYHwNCnwkXGludFxsaW1pdHNfYV5iJHwJYFxpbnRcbGltaXRzX2FeYmB8DQoNCg0KDQojIE1vcmUgU3BlY2lhbCBTeW1ib2xzDQoNCnxTeW1ib2wJICB8ICBTY3JpcHQgICB8DQp8Oi0tLS0tLS0tfDotLS0tLS0tLS0tfA0KfCRhXntccHJpbWV9JHwgYGFee1xwcmltZX1gfA0KfCRhXntccHJpbWVccHJpbWV9JHwJYGFee1xwcmltZVxwcmltZX1gfA0KfCRcaGF0e2F9JHwJYFxoYXR7YX1gfA0KfCRcYmFye2F9JHwJYFxiYXJ7YX1gfA0KfCRcZ3JhdmV7YX0kfAlgXGdyYXZle2F9YHwNCnwkXGFjdXRle2F9JHwJYFxhY3V0ZXthfWB8DQp8JFxkb3R7YX0kfAlgXGRvdHthfWB8DQp8JFxkZG90e2F9JHwJYFxkZG90e2F9YHwNCnwkXG5vdHthfSR8CWBcbm90e2F9YHwNCnwkXG1hdGhyaW5ne2F9JHwJYFxtYXRocmluZ3thfWB8DQp8JFxvdmVycmlnaHRhcnJvd3tBQn0kfAlgXG92ZXJyaWdodGFycm93e0FCfWB8DQp8JFxvdmVybGVmdGFycm93e0FCfSR8CWBcb3ZlcmxlZnRhcnJvd3tBQn1gfA0KfCRhXntccHJpbWVccHJpbWVccHJpbWV9JHwJYGFee1xwcmltZVxwcmltZVxwcmltZX1gfA0KfCRcb3ZlcmxpbmV7YWFhfSR8CWBcb3ZlcmxpbmV7YWFhfWB8DQp8JFxjaGVja3thfSR8CWBcY2hlY2t7YX1gfA0KfCRcdmVje2F9JHwJYFx2ZWN7YX1gfA0KfCRcdW5kZXJsaW5le2F9JHwJYFx1bmRlcmxpbmV7YX1gfA0KfCRcY29sb3J7cmVkfXgkfAlgXGNvbG9ye3JlZH14YHwNCnwkXHBtJHwJYFxwbWB8DQp8JFxtcCR8CWBcbXBgfA0KfCRcaW50IHkgXG1hdGhybXtkfXgkfAlgXGludCB5IFxtYXRocm17ZH14YHwNCnwkLCR8CWAsYHwNCnwkOiR8CWA6YHwNCnwkOyR8CWA7YHwNCnwkISR8CWAhYHwNCnwkXGludCB5LCBcbWF0aHJte2R9eCR8CWBcaW50IHksIFxtYXRocm17ZH14YHwNCnwkXGRvdHMkfAlgXGRvdHNgfA0KfCRcbGRvdHMkfAlgXGxkb3RzYHwNCnwkXGNkb3RzJHwJYFxjZG90c2B8DQp8JFx2ZG90cyR8CWBcdmRvdHNgfA0KfCRcZGRvdHMkfAlgXGRkb3RzYHwNCg0KDQoNCg0KIyBCcmFja2V0cw0KDQp8U3ltYm9sCSAgfCAgU2NyaXB0ICAgfA0KfDotLS0tLS0tLXw6LS0tLS0tLS0tLXwNCnwkKGEpJHwgIAlgKGEpYHwNCnwkW2FdJHwJICBgW2FdYHwNCnwkXHthXH0kfAlgXHthXH1gfA0KfCRcbGFuZ2xlIGYgXHJhbmdsZSR8CWBcbGFuZ2xlIGYgXHJhbmdsZWB8DQp8JFxsZmxvb3IgZiBccmZsb29yJHwJYFxsZmxvb3IgZiBccmZsb29yYHwNCnwkXGxjZWlsIGYgXHJjZWlsJHwJYFxsY2VpbCBmIFxyY2VpbGB8DQp8JFx1bGNvcm5lciBmIFx1cmNvcm5lciR8CWBcdWxjb3JuZXIgZiBcdXJjb3JuZXJgfA0KDQoNCg0KDQojIE1hdHJpY2VzIGFuZCBTeXN0ZW0gb2YgRXF1YXRpb25zDQoNCiMjIE1hdHJpeA0KDQpgYGBgDQokJA0KWF97bSxufSA9IA0KXGJlZ2lue3BtYXRyaXh9DQogIHhfezEsMX0gJiB4X3sxLDJ9ICYgXGNkb3RzICYgeF97MSxufSBcXA0KICB4X3syLDF9ICYgeF97MiwyfSAmIFxjZG90cyAmIHhfezIsbn0gXFwNCiAgXHZkb3RzICAmIFx2ZG90cyAgJiBcZGRvdHMgJiBcdmRvdHMgIFxcDQogIHhfe20sMX0gJiB4X3ttLDJ9ICYgXGNkb3RzICYgeF97bSxufSANClxlbmR7cG1hdHJpeH0NCiQkDQpgYGBgDQpwcm9kdWNlcw0KDQokJA0KWF97bSxufSA9IA0KXGJlZ2lue3BtYXRyaXh9DQogIHhfezEsMX0gJiB4X3sxLDJ9ICYgXGNkb3RzICYgeF97MSxufSBcXA0KICB4X3syLDF9ICYgeF97MiwyfSAmIFxjZG90cyAmIHhfezIsbn0gXFwNCiAgXHZkb3RzICAmIFx2ZG90cyAgJiBcZGRvdHMgJiBcdmRvdHMgIFxcDQogIHhfe20sMX0gJiB4X3ttLDJ9ICYgXGNkb3RzICYgeF97bSxufSANClxlbmR7cG1hdHJpeH0NCiQkDQoNCmBgYGANCiQkDQpNID0gDQpcYmVnaW57Ym1hdHJpeH0NClxmcmFjezV9ezZ9ICYgXGZyYWN7MX17Nn0gJiAwIFxcWzAuM2VtXQ0KXGZyYWN7NX17Nn0gJiAwICYgXGZyYWN7MX17Nn0gXFxbMC4zZW1dDQowICYgXGZyYWN7NX17Nn0gJiBcZnJhY3sxfXs2fQ0KXGVuZHtibWF0cml4fQ0KJCQNCmBgYGANCnByb2R1Y2VzDQoNCg0KJCQNCk0gPSANClxiZWdpbntibWF0cml4fQ0KXGZyYWN7NX17Nn0gJiBcZnJhY3sxfXs2fSAmIDAgXFxbMC4zZW1dDQpcZnJhY3s1fXs2fSAmIDAgJiBcZnJhY3sxfXs2fSBcXFswLjNlbV0NCjAgJiBcZnJhY3s1fXs2fSAmIFxmcmFjezF9ezZ9DQpcZW5ke2JtYXRyaXh9DQokJA0KDQoNCiMjIEFsaWduZWQgRXF1YXRpb25zDQoNCmBgYGANCiQkDQpcYmVnaW57YWxpZ25lZH0NCkJpYXMoXGhhdHtcdGhldGF9KSAgJj0gRShcaGF0e1x0aGV0YX0pIC0gXHRoZXRhIFxcDQpCaWFzKFxoYXR7XHRoZXRhfSkgICY9IEUoMiBcYmFye1h9IC0xKSAtIFx0aGV0YSBcXA0KQmlhcyhcaGF0e1x0aGV0YX0pICAmPSBcZnJhY3syfXtufVxzdW1fe2k9MX1ebiBFKFhfaSkgLTEgLVx0aGV0YSBcXA0KQmlhcyhcaGF0e1x0aGV0YX0pICAmPSAyRShYKSAtIDEgLSBcdGhldGEgXFwNCkJpYXMoXGhhdHtcdGhldGF9KSAgJj0gMiBcY2RvdCBcZnJhY3tcdGhldGErMX17Mn0gLSAxIC0gXHRoZXRhIFxcDQpCaWFzKFxoYXR7XHRoZXRhfSkgICY9IDAgXFwNClxlbmR7YWxpZ25lZH0NCiQkDQpgYGBgDQoNClByb2R1Y2VzIHRoZSBmb2xsb3dpbmcgc3lzdGVtIG9mIGVxdWF0aW9ucw0KDQoNCiQkDQpcYmVnaW57YWxpZ25lZH0NCkJpYXMoXGhhdHtcdGhldGF9KSAgJj0gRShcaGF0e1x0aGV0YX0pIC0gXHRoZXRhIFxcDQpCaWFzKFxoYXR7XHRoZXRhfSkgICY9IEUoMiBcYmFye1h9IC0xKSAtIFx0aGV0YSBcXA0KQmlhcyhcaGF0e1x0aGV0YX0pICAmPSBcZnJhY3syfXtufVxzdW1fe2k9MX1ebiBFKFhfaSkgLTEgLVx0aGV0YSBcXA0KQmlhcyhcaGF0e1x0aGV0YX0pICAmPSAyRShYKSAtIDEgLSBcdGhldGEgXFwNCkJpYXMoXGhhdHtcdGhldGF9KSAgJj0gMiBcY2RvdCBcZnJhY3tcdGhldGErMX17Mn0gLSAxIC0gXHRoZXRhIFxcDQpCaWFzKFxoYXR7XHRoZXRhfSkgICY9IDAgXFwNClxlbmR7YWxpZ25lZH0NCiQkDQoNCg0KIyMgUGllY2Utd2lzZSBGdW5jdGlvbg0KDQpgYGBgDQokJCBmKHgpID0gXGJlZ2lue2Nhc2VzfSBcZnJhY3sxfXtiLWF9IFxcIDAgXGVuZHtjYXNlc30gJCQNCmBgYGANCnByb2R1Y2VzIHRoZSBmb2xsb3dpbmcgcGllY2Utd2lzZSBmdW5jdGlvbg0KDQokJCBmKHgpID0gXGJlZ2lue2Nhc2VzfSBcZnJhY3sxfXtiLWF9IFxcIDAgXGVuZHtjYXNlc30gJCQNCg0KDQoNCg0KDQojIFBzZXVkby1jb2RlIG9mIEFsZ29yaXRobXMNCg0KPndoaWxlIG5vdCBjb252ZXJnZW5jZToNCj4NCj4+IGNvbXB1dGUgJFxuYWJsYShKKSQNCj4+DQo+PiAkXHRoZXRhXzAgOj0gXHRoZXRhXzAgLSBcYWxwaGFcbmFibGEoSilfMCQNCj4+DQo+PiAkXHRoZXRhXzEgOj0gXHRoZXRhXzEgLSBcYWxwaGFcbmFibGEoSilfMSQNCj4NCj5lbmQgd2hpbGUNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg==