---
date: '2026-05-27'
description: tiled IO-aware attention kernel, recomputes softmax denominators on-the-fly, avoids materialising the full attention matrix.
id: attention-flash
modified: 2026-06-07 11:02:58 GMT-04:00
seealso:
  - '[[thoughts/Attention|Attention]]'
  - '[[thoughts/tree attention|tree attention]]'
  - '[[thoughts/GPU programming]]'
  - '[[@dao2023flashattention2fasterattentionbetter]]'
  - '[[@shah2024flashattention3fastaccurateattention]]'
tags:
  - ml
  - llm
  - technical
title: Flash Attention
created: '2026-05-27'
published: '2026-05-27'
pageLayout: default
noCite:
  - '@dao2023flashattention2fasterattentionbetter'
  - '@shah2024flashattention3fastaccurateattention'
slug: thoughts/flash-attention
permalink: https://aarnphm.xyz/thoughts/flash-attention.md
generator:
  quartz: v4.6.0
  hostedProvider: Cloudflare
  baseUrl: aarnphm.xyz
full: https://aarnphm.xyz/llms-full.txt
---
FlashAttention \[@dao2022flashattentionfastmemoryefficientexact\] reframes attention as a tiled matrix multiplication that keeps intermediate results in high-speed SRAM rather than slower GPU DRAM.

Recomputing softmax denominators on-the-fly avoids materialising the full attention matrix.

As sequence lengths $L$ grow, attention becomes more IO-bound than FLOP-bound, so this optimisation yields both speedups and numerical stability (via online normalisation).

FlashAttention partitions the logits $S = QK^{\top}/\sqrt{d_h}$ into $B_m \times B_n$ tiles.

For each tile $t$ the kernel streams $Q_t$ and $K_t$ into SRAM, updates the running maxima $m$ and partition sums $l$, then accumulates the context contribution:

$$
\begin{aligned}
m^{\text{new}}_i &= \max\big(m^{\text{old}}_i, \max_j S_{ij}^{(t)}\big),\\
l^{\text{new}}_i &= e^{m^{\text{old}}_i - m^{\text{new}}_i} l^{\text{old}}_i + \sum_j e^{S_{ij}^{(t)} - m^{\text{new}}_i},\\
O^{\text{new}}_i &= e^{m^{\text{old}}_i - m^{\text{new}}_i} O^{\text{old}}_i + \sum_j e^{S_{ij}^{(t)} - m^{\text{new}}_i} V^{(t)}_j.
\end{aligned}
$$

Only the current tile’s $K,V$ blocks ever leave global memory. After processing all tiles the output normalises as $O_i = O^{\text{new}}_i / l^{\text{new}}_i$, matching exact softmax attention while respecting SRAM capacity constraints.

> \[!tip\] tuning tile shapes
>
> Choosing $B_m,B_n$ to align with tensor-core fragment sizes (e.g., $64\times64$ for FP16) keeps the kernel compute-bound. FlashAttention-2 further overlaps tiles across heads, while FlashAttention-3 incorporates block-sparse layouts and asynchronous pipeline stages.

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\begin{document}\n\\definecolor{salmon}{HTML}{FDB2A2}\n\\definecolor{sage}{HTML}{CDD597}\n\\definecolor{stone}{HTML}{6F6E69}\n\\definecolor{paper}{HTML}{FFFCF0}\n\\begin{tikzpicture}[\n  font=\\small, >=latex,\n  tier/.style={draw=stone, rounded corners=3pt, align=center, minimum width=3.3cm, minimum height=1.15cm},\n  mat/.style={draw=stone, fill=paper, rounded corners=2pt, minimum width=1.1cm, minimum height=0.95cm, inner sep=2pt},\n  tile/.style={draw=stone, fill=salmon!55, rounded corners=2pt, minimum width=0.95cm, minimum height=0.72cm, inner sep=1pt},\n  flow/.style={->, thick, draw=stone},\n  bidir/.style={&#x3C;->, thick, draw=stone}\n]\n  \\path[use as bounding box] (-3.1, 0.3) rectangle (15.4, 7.1);\n\n  % swimlanes: each lane is one level of the GPU memory hierarchy\n  \\fill[salmon!14, rounded corners=4pt] (-3.0, 4.35) rectangle (15.2, 5.6);\n  \\fill[sage!16, rounded corners=4pt]   (-3.0, 2.35) rectangle (15.2, 3.6);\n  \\fill[stone!10, rounded corners=4pt]  (-3.0, 0.5)  rectangle (15.2, 1.75);\n\n  % compute feeds the top of the hierarchy\n  \\node[draw=stone, fill=white, rounded corners=2pt, minimum width=2.2cm, minimum height=0.62cm] (sm) at (-0.9, 6.45) {SMs (compute)};\n\n  % left column: tiers with bandwidth, capacity (A100, Dao 2022 Fig 1)\n  \\node[tier, fill=salmon!55] (sram) at (-0.9, 4.95) {SRAM\\\\{\\scriptsize 19 TB/s, 20 MB}};\n  \\node[tier, fill=sage!55]   (hbm)  at (-0.9, 2.95) {HBM\\\\{\\scriptsize 1.5 TB/s, 40 GB}};\n  \\node[tier, fill=stone!22]  (dram) at (-0.9, 1.10) {DRAM\\\\{\\scriptsize 12.8 GB/s, 1+ TB}};\n  \\draw[bidir] (sm) -- (sram);\n  \\draw[bidir] (sram) -- (hbm);\n  \\draw[bidir] (hbm) -- (dram);\n\n  % SRAM lane: the on-chip tiles FlashAttention computes on\n  \\node[tile] (qt) at (5.4, 4.95) {$Q_t$};\n  \\node[tile] (kt) at (7.5, 4.95) {$K_t$};\n  \\node[tile] (vt) at (9.6, 4.95) {$V_t$};\n  \\node[tile, fill=sage!60, minimum width=1.9cm] (st) at (12.3, 4.95) {$m$, $l$, $O_t$};\n  \\node[font=\\scriptsize, text=stone, anchor=west] at (13.45, 4.95) {tile $B_m\\times d$};\n\n  % HBM lane: the full token matrices\n  \\node[mat] (q) at (5.4, 2.95) {$Q$};\n  \\node[mat] (k) at (7.5, 2.95) {$K$};\n  \\node[mat] (v) at (9.6, 2.95) {$V$};\n  \\node[mat] (o) at (11.7, 2.95) {$O$};\n  \\node[font=\\scriptsize, text=stone, anchor=west] at (12.5, 2.95) {full $L\\times d$};\n\n  % DRAM lane: what the slow tier holds\n  \\node[mat, minimum width=1.6cm] (wts) at (5.6, 1.10) {weights};\n  \\node[mat, minimum width=1.6cm] (cch) at (8.0, 1.10) {cache};\n\n  % FlashAttention dataflow: load tiles up, store result down\n  \\draw[flow] (q) -- (qt) node[midway, right=1pt, font=\\scriptsize, text=stone] {load};\n  \\draw[flow] (k) -- (kt);\n  \\draw[flow] (v) -- (vt);\n  \\draw[flow] (st) -- (o) node[midway, right=1pt, font=\\scriptsize, text=stone] {store};\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI1MzkuNzA5MDZwdCIgaGVpZ2h0PSIxOTMuNDc4NzRwdCIgdmlld0JveD0iLTcyIC03MiA1MzkuNzA5MDYgMTkzLjQ3ODc0Ij48ZyBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI5LjI2Njk4MzAzMjIyNjU1NSwxMjkuNzQ0NjQ0MTY1MDM5MDMpIHNjYWxlKDEsLTEpIj48ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2Utd2lkdGg9IjAuNCI+IDxnIHN0cm9rZT0iI2ZmZjVmMiIgZmlsbD0iI2ZmZjVmMiI+IDxwYXRoIGQ9IiBNIC04NS4zNTgyMyAxMjMuNzY5NiBNIC04NS4zNTgyMyAxMjcuNzY5NiBMIC04NS4zNTgyMyAxNTUuMzM1NTMgQyAtODUuMzU4MjMgMTU3LjU0NDcgLTgzLjU2NzQgMTU5LjMzNTUzIC04MS4zNTgyMyAxNTkuMzM1NTMgTCA0MjguNDgxNjEgMTU5LjMzNTUzIEMgNDMwLjY5MDc4IDE1OS4zMzU1MyA0MzIuNDgxNjEgMTU3LjU0NDcgNDMyLjQ4MTYxIDE1NS4zMzU1MyBMIDQzMi40ODE2MSAxMjcuNzY5NiBDIDQzMi40ODE2MSAxMjUuNTYwNDQgNDMwLjY5MDc4IDEyMy43Njk2IDQyOC40ODE2MSAxMjMuNzY5NiBMIC04MS4zNTgyMyAxMjMuNzY5NiBDIC04My41Njc0IDEyMy43Njk2IC04NS4zNTgyMyAxMjUuNTYwNDQgLTg1LjM1ODIzIDEyNy43Njk2IFogTSA0MzIuNDgxNjEgMTU5LjMzNTUzICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZT0iI2Y3ZjllZiIgZmlsbD0iI2Y3ZjllZiI+IDxwYXRoIGQ9IiBNIC04NS4zNTgyMyA2Ni44NjQxMiBNIC04NS4zNTgyMyA3MC44NjQxMiBMIC04NS4zNTgyMyA5OC40MzAwNCBDIC04NS4zNTgyMyAxMDAuNjM5MiAtODMuNTY3NCAxMDIuNDMwMDQgLTgxLjM1ODIzIDEwMi40MzAwNCBMIDQyOC40ODE2MSAxMDIuNDMwMDQgQyA0MzAuNjkwNzggMTAyLjQzMDA0IDQzMi40ODE2MSAxMDAuNjM5MiA0MzIuNDgxNjEgOTguNDMwMDQgTCA0MzIuNDgxNjEgNzAuODY0MTIgQyA0MzIuNDgxNjEgNjguNjU0OTUgNDMwLjY5MDc4IDY2Ljg2NDEyIDQyOC40ODE2MSA2Ni44NjQxMiBMIC04MS4zNTgyMyA2Ni44NjQxMiBDIC04My41Njc0IDY2Ljg2NDEyIC04NS4zNTgyMyA2OC42NTQ5NSAtODUuMzU4MjMgNzAuODY0MTIgWiBNIDQzMi40ODE2MSAxMDIuNDMwMDQgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlPSIjZjFmMWYwIiBmaWxsPSIjZjFmMWYwIj4gPHBhdGggZD0iIE0gLTg1LjM1ODIzIDE0LjIyNjM2IE0gLTg1LjM1ODIzIDE4LjIyNjM2IEwgLTg1LjM1ODIzIDQ1Ljc5MjMgQyAtODUuMzU4MjMgNDguMDAxNDYgLTgzLjU2NzQgNDkuNzkyMyAtODEuMzU4MjMgNDkuNzkyMyBMIDQyOC40ODE2MSA0OS43OTIzIEMgNDMwLjY5MDc4IDQ5Ljc5MjMgNDMyLjQ4MTYxIDQ4LjAwMTQ2IDQzMi40ODE2MSA0NS43OTIzIEwgNDMyLjQ4MTYxIDE4LjIyNjM2IEMgNDMyLjQ4MTYxIDE2LjAxNzIgNDMwLjY5MDc4IDE0LjIyNjM2IDQyOC40ODE2MSAxNC4yMjYzNiBMIC04MS4zNTgyMyAxNC4yMjYzNiBDIC04My41Njc0IDE0LjIyNjM2IC04NS4zNTgyMyAxNi4wMTcyIC04NS4zNTgyMyAxOC4yMjYzNiBaIE0gNDMyLjQ4MTYxIDQ5Ljc5MjMgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZiI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZmYiPiA8cGF0aCBkPSIgTSA2LjcxNDAyIDE5Mi4zNDAzOCBMIC01Ny45Mjg1OSAxOTIuMzQwMzggQyAtNTkuMDMzMTcgMTkyLjM0MDM4IC01OS45Mjg1OSAxOTEuNDQ0OTYgLTU5LjkyODU5IDE5MC4zNDAzOCBMIC01OS45Mjg1OSAxNzYuNjk5ODEgQyAtNTkuOTI4NTkgMTc1LjU5NTIzIC01OS4wMzMxNyAxNzQuNjk5ODEgLTU3LjkyODU5IDE3NC42OTk4MSBMIDYuNzE0MDIgMTc0LjY5OTgxIEMgNy44MTg2IDE3NC42OTk4MSA4LjcxNDAyIDE3NS41OTUyMyA4LjcxNDAyIDE3Ni42OTk4MSBMIDguNzE0MDIgMTkwLjM0MDM4IEMgOC43MTQwMiAxOTEuNDQ0OTYgNy44MTg2IDE5Mi4zNDAzOCA2LjcxNDAyIDE5Mi4zNDAzOCBaIE0gLTU5LjkyODU5IDE3NC42OTk4MSAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTYuNTk1NjEsMTgxLjI3MDEpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgyOS4yNjY5ODMwMzIyMjY1NTUsMTI5Ljc0NDY0NDE2NTAzOTAzKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjI5LjI2Njk4MzAzMjIyNjU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIj5TTXM8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSI0OS42MTU0NjUxNjQxODQ1NTYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+KGNvbXB1dGUpPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkNWNjIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDVjYyI+IDxwYXRoIGQ9IiBNIDE4LjMzOTggMTU3LjIwMTIzIEwgLTY5LjU1NDM3IDE1Ny4yMDEyMyBDIC03MS4yMTEyNCAxNTcuMjAxMjMgLTcyLjU1NDM3IDE1NS44NTgxMSAtNzIuNTU0MzcgMTU0LjIwMTIzIEwgLTcyLjU1NDM3IDEyNy40ODA3NCBDIC03Mi41NTQzNyAxMjUuODIzODcgLTcxLjIxMTI0IDEyNC40ODA3NCAtNjkuNTU0MzcgMTI0LjQ4MDc0IEwgMTguMzM5OCAxMjQuNDgwNzQgQyAxOS45OTY2NyAxMjQuNDgwNzQgMjEuMzM5OCAxMjUuODIzODcgMjEuMzM5OCAxMjcuNDgwNzQgTCAyMS4zMzk4IDE1NC4yMDEyMyBDIDIxLjMzOTggMTU1Ljg1ODExIDE5Ljk5NjY3IDE1Ny4yMDEyMyAxOC4zMzk4IDE1Ny4yMDEyMyBaIE0gLTcyLjU1NDM3IDEyNC40ODA3NCAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTQuMzcyMDEsMTMzLjE0MSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDI5LjI2Njk4MzAzMjIyNjU1NSwxMjkuNzQ0NjQ0MTY1MDM5MDMpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjExOC43NDQ2NDQxNjUwMzkwMyIgeD0iNDQuMzUxMjcyNTgzMDA3ODA1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPlNSQU08L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSIyOS4yNjY5ODMwMzIyMjY1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSJibGFjayI+MTk8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSIzOS45MzM3MDYyODM1NjkzMyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9ImJsYWNrIj5UQi9zLDwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjYzLjM0NDk1MzUzNjk4NzI5IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iYmxhY2siPjIwPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iNzQuMDExNjc2Nzg4MzMwMDYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSJibGFjayI+TUI8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNlNGU4YzYiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZTRlOGM2Ij4gPHBhdGggZD0iIE0gMTguMzM5OCAxMDAuMjk1NzUgTCAtNjkuNTU0MzcgMTAwLjI5NTc1IEMgLTcxLjIxMTI0IDEwMC4yOTU3NSAtNzIuNTU0MzcgOTguOTUyNjIgLTcyLjU1NDM3IDk3LjI5NTc1IEwgLTcyLjU1NDM3IDcwLjU3NTI2IEMgLTcyLjU1NDM3IDY4LjkxODM4IC03MS4yMTEyNCA2Ny41NzUyNiAtNjkuNTU0MzcgNjcuNTc1MjYgTCAxOC4zMzk4IDY3LjU3NTI2IEMgMTkuOTk2NjcgNjcuNTc1MjYgMjEuMzM5OCA2OC45MTgzOCAyMS4zMzk4IDcwLjU3NTI2IEwgMjEuMzM5OCA5Ny4yOTU3NSBDIDIxLjMzOTggOTguOTUyNjIgMTkuOTk2NjcgMTAwLjI5NTc1IDE4LjMzOTggMTAwLjI5NTc1IFogTSAtNzIuNTU0MzcgNjcuNTc1MjYgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU1LjAwMDQ3LDc2LjIzNTUyKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoMjkuMjY2OTgzMDMyMjI2NTU1LDEyOS43NDQ2NDQxNjUwMzkwMykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTE4Ljc0NDY0NDE2NTAzOTAzIiB4PSI0Ny42Nzc2Mjc1NjM0NzY1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+SEJNPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iMjkuMjY2OTgzMDMyMjI2NTU1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iYmxhY2siPjEuNTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjQyLjE5NzYwOTkwMTQyODIxNiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9ImJsYWNrIj5UQi9zLDwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjY1LjYwODg1NzE1NDg0NjE4IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iYmxhY2siPjQwPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iNzYuMjc1NTgwNDA2MTg4OTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSJibGFjayI+R0I8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNlMGRmZGUiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZTBkZmRlIj4gPHBhdGggZD0iIE0gMTguMzM5OCA0Ny42NTg0MyBMIC02OS41NTQzNyA0Ny42NTg0MyBDIC03MS4yMTEyNCA0Ny42NTg0MyAtNzIuNTU0MzcgNDYuMzE1MyAtNzIuNTU0MzcgNDQuNjU4NDMgTCAtNzIuNTU0MzcgMTcuOTM3OTQgQyAtNzIuNTU0MzcgMTYuMjgxMDcgLTcxLjIxMTI0IDE0LjkzNzk0IC02OS41NTQzNyAxNC45Mzc5NCBMIDE4LjMzOTggMTQuOTM3OTQgQyAxOS45OTY2NyAxNC45Mzc5NCAyMS4zMzk4IDE2LjI4MTA3IDIxLjMzOTggMTcuOTM3OTQgTCAyMS4zMzk4IDQ0LjY1ODQzIEMgMjEuMzM5OCA0Ni4zMTUzIDE5Ljk5NjY3IDQ3LjY1ODQzIDE4LjMzOTggNDcuNjU4NDMgWiBNIC03Mi41NTQzNyAxNC45Mzc5NCAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTguMDY5OTMsMjMuNTk4MikiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDI5LjI2Njk4MzAzMjIyNjU1NSwxMjkuNzQ0NjQ0MTY1MDM5MDMpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjExOC43NDQ2NDQxNjUwMzkwMyIgeD0iNDcuMDg2MDEzNzkzOTQ1MzA1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPkRSQU08L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSIyOS4yNjY5ODMwMzIyMjY1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSJibGFjayI+MTIuODwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjQ2LjE4Mzc0MjUyMzE5MzM1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iYmxhY2siPkdCL3MsPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iNzAuMDc0MTU5NjIyMTkyMzciIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSJibGFjayI+MSs8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSI4Mi44OTM2NjkxMjg0MTc5NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9ImJsYWNrIj5UQjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSAtMjUuNjA3MjggMTY5LjgxOTkyIEwgLTI1LjYwNzI4IDE2Mi4wODExMyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjAsMS4wLC0xLjAsMC4wLC0yNS42MDcyOCwxNjkuODE5OTIpIj4gPHBhdGggZD0iIE0gNC42Nzk5IDAuMCBDIDMuMjkzMjQgMC4yNiAxLjAzOTk4IDEuMDM5OTggLTAuNTE5OTkgMS45NDk5NSBMIC0wLjUxOTk5IC0xLjk0OTk1IEMgMS4wMzk5OCAtMS4wMzk5OCAzLjI5MzI0IC0wLjI2IDQuNjc5OSAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+ICA8L2c+IDwvZz4gPGcgZmlsbD0iIzZmNmU2OSI+IDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMCwtMS4wLDEuMCwwLjAsLTI1LjYwNzI4LDE2Mi4wODExMykiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSAtMjUuNjA3MjggMTE5LjYwMDg1IEwgLTI1LjYwNzI4IDEwNS4xNzU2NCAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjAsMS4wLC0xLjAsMC4wLC0yNS42MDcyOCwxMTkuNjAwODUpIj4gPHBhdGggZD0iIE0gNC42Nzk5IDAuMCBDIDMuMjkzMjQgMC4yNiAxLjAzOTk4IDEuMDM5OTggLTAuNTE5OTkgMS45NDk5NSBMIC0wLjUxOTk5IC0xLjk0OTk1IEMgMS4wMzk5OCAtMS4wMzk5OCAzLjI5MzI0IC0wLjI2IDQuNjc5OSAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+ICA8L2c+IDwvZz4gPGcgZmlsbD0iIzZmNmU2OSI+IDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMCwtMS4wLDEuMCwwLjAsLTI1LjYwNzI4LDEwNS4xNzU2NCkiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSAtMjUuNjA3MjggNjIuNjk1MzYgTCAtMjUuNjA3MjggNTIuNTM4MzMgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4wLDEuMCwtMS4wLDAuMCwtMjUuNjA3MjgsNjIuNjk1MzYpIj4gPHBhdGggZD0iIE0gNC42Nzk5IDAuMCBDIDMuMjkzMjQgMC4yNiAxLjAzOTk4IDEuMDM5OTggLTAuNTE5OTkgMS45NDk5NSBMIC0wLjUxOTk5IC0xLjk0OTk1IEMgMS4wMzk5OCAtMS4wMzk5OCAzLjI5MzI0IC0wLjI2IDQuNjc5OSAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+ICA8L2c+IDwvZz4gPGcgZmlsbD0iIzZmNmU2OSI+IDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMCwtMS4wLDEuMCwwLjAsLTI1LjYwNzI4LDUyLjUzODMzKSI+IDxwYXRoIGQ9IiBNIDQuNjc5OSAwLjAgQyAzLjI5MzI0IDAuMjYgMS4wMzk5OCAxLjAzOTk4IC0wLjUxOTk5IDEuOTQ5OTUgTCAtMC41MTk5OSAtMS45NDk5NSBDIDEuMDM5OTggLTEuMDM5OTggMy4yOTMyNCAtMC4yNiA0LjY3OTkgMC4wICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiAgPC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkNWNjIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDVjYyI+IDxwYXRoIGQ9IiBNIDE2NS4xNTk2NSAxNTEuMDgzOTggTCAxNDIuMTI5NjIgMTUxLjA4Mzk4IEMgMTQxLjAyNTA0IDE1MS4wODM5OCAxNDAuMTI5NjIgMTUwLjE4ODU3IDE0MC4xMjk2MiAxNDkuMDgzOTggTCAxNDAuMTI5NjIgMTMyLjU5Nzk5IEMgMTQwLjEyOTYyIDEzMS40OTM0MSAxNDEuMDI1MDQgMTMwLjU5Nzk5IDE0Mi4xMjk2MiAxMzAuNTk3OTkgTCAxNjUuMTU5NjUgMTMwLjU5Nzk5IEMgMTY2LjI2NDI0IDEzMC41OTc5OSAxNjcuMTU5NjUgMTMxLjQ5MzQxIDE2Ny4xNTk2NSAxMzIuNTk3OTkgTCAxNjcuMTU5NjUgMTQ5LjA4Mzk4IEMgMTY3LjE1OTY1IDE1MC4xODg1NyAxNjYuMjY0MjQgMTUxLjA4Mzk4IDE2NS4xNTk2NSAxNTEuMDgzOTggWiBNIDE0MC4xMjk2MiAxMzAuNTk3OTkgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQ4LjMxNjM1LDEzOC42NDEpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgyOS4yNjY5ODMwMzIyMjY1NTUsMTI5Ljc0NDY0NDE2NTAzOTAzKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjI5LjI2Njk4MzAzMjIyNjU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPlE8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTMwLjc0NDYyODkwNjI0OTk3IiB4PSIzNi41NjI0ODg1NTU5MDgxOTYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj50PC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkNWNjIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDVjYyI+IDxwYXRoIGQ9IiBNIDIyNC45MTA1OCAxNTEuMDgzOTggTCAyMDEuODgwNTUgMTUxLjA4Mzk4IEMgMjAwLjc3NTk3IDE1MS4wODM5OCAxOTkuODgwNTUgMTUwLjE4ODU3IDE5OS44ODA1NSAxNDkuMDgzOTggTCAxOTkuODgwNTUgMTMyLjU5Nzk5IEMgMTk5Ljg4MDU1IDEzMS40OTM0MSAyMDAuNzc1OTcgMTMwLjU5Nzk5IDIwMS44ODA1NSAxMzAuNTk3OTkgTCAyMjQuOTEwNTggMTMwLjU5Nzk5IEMgMjI2LjAxNTE3IDEzMC41OTc5OSAyMjYuOTEwNTggMTMxLjQ5MzQxIDIyNi45MTA1OCAxMzIuNTk3OTkgTCAyMjYuOTEwNTggMTQ5LjA4Mzk4IEMgMjI2LjkxMDU4IDE1MC4xODg1NyAyMjYuMDE1MTcgMTUxLjA4Mzk4IDIyNC45MTA1OCAxNTEuMDgzOTggWiBNIDE5OS44ODA1NSAxMzAuNTk3OTkgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjA3Ljc5ODM5LDEzOC4yNjU5OSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDI5LjI2Njk4MzAzMjIyNjU1NSwxMjkuNzQ0NjQ0MTY1MDM5MDMpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iMjkuMjY2OTgzMDMyMjI2NTU1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+SzwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMzAuNzQ0NjI4OTA2MjQ5OTciIHg9IjM3LjEwMDI3NzkwMDY5NTc5NCIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjYiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPnQ8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ1Y2MiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkNWNjIj4gPHBhdGggZD0iIE0gMjg0LjY2MTUxIDE1MS4wODM5OCBMIDI2MS42MzE0OCAxNTEuMDgzOTggQyAyNjAuNTI2OSAxNTEuMDgzOTggMjU5LjYzMTQ4IDE1MC4xODg1NyAyNTkuNjMxNDggMTQ5LjA4Mzk4IEwgMjU5LjYzMTQ4IDEzMi41OTc5OSBDIDI1OS42MzE0OCAxMzEuNDkzNDEgMjYwLjUyNjkgMTMwLjU5Nzk5IDI2MS42MzE0OCAxMzAuNTk3OTkgTCAyODQuNjYxNTEgMTMwLjU5Nzk5IEMgMjg1Ljc2NjEgMTMwLjU5Nzk5IDI4Ni42NjE1MSAxMzEuNDkzNDEgMjg2LjY2MTUxIDEzMi41OTc5OSBMIDI4Ni42NjE1MSAxNDkuMDgzOTggQyAyODYuNjYxNTEgMTUwLjE4ODU3IDI4NS43NjYxIDE1MS4wODM5OCAyODQuNjYxNTEgMTUxLjA4Mzk4IFogTSAyNTkuNjMxNDggMTMwLjU5Nzk5ICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI2OC43Njg3NSwxMzguMjY1OTkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgyOS4yNjY5ODMwMzIyMjY1NTUsMTI5Ljc0NDY0NDE2NTAzOTAzKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjI5LjI2Njk4MzAzMjIyNjU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPlY8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTMwLjc0NDYyODkwNjI0OTk3IiB4PSIzNC42NjE0MDc0NzA3MDMxMiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjYiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPnQ8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ1Y2MiPiA8ZyBmaWxsPSIjZTFlNmMxIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDVjYyI+IDxnIGZpbGw9IiNlMWU2YzEiPiA8cGF0aCBkPSIgTSAzNzQuOTk4ODYgMTUxLjA4Mzk4IEwgMzI0LjkzODggMTUxLjA4Mzk4IEMgMzIzLjgzNDIxIDE1MS4wODM5OCAzMjIuOTM4OCAxNTAuMTg4NTcgMzIyLjkzODggMTQ5LjA4Mzk4IEwgMzIyLjkzODggMTMyLjU5Nzk5IEMgMzIyLjkzODggMTMxLjQ5MzQxIDMyMy44MzQyMSAxMzAuNTk3OTkgMzI0LjkzODggMTMwLjU5Nzk5IEwgMzc0Ljk5ODg2IDEzMC41OTc5OSBDIDM3Ni4xMDM0NCAxMzAuNTk3OTkgMzc2Ljk5ODg2IDEzMS40OTM0MSAzNzYuOTk4ODYgMTMyLjU5Nzk5IEwgMzc2Ljk5ODg2IDE0OS4wODM5OCBDIDM3Ni45OTg4NiAxNTAuMTg4NTcgMzc2LjEwMzQ0IDE1MS4wODM5OCAzNzQuOTk4ODYgMTUxLjA4Mzk4IFogTSAzMjIuOTM4OCAxMzAuNTk3OTkgICI+PC9wYXRoPiA8L2c+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMzMuNTg2NzgsMTM4LjU5MDk5KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoMjkuMjY2OTgzMDMyMjI2NTU1LDEyOS43NDQ2NDQxNjUwMzkwMykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSIyOS4yNjY5ODMwMzIyMjY1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5tPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iMzcuNDE2MjQ2NDE0MTg0NTYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+LDwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjQzLjA2ODk4Njg5MjcwMDE5IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+bDwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjQ1Ljk3ODcwMzQ5ODg0MDMyNSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIj4sPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iNTEuNjMxNDQzOTc3MzU1OTQiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5PPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEzMC43NDQ2Mjg5MDYyNDk5NyIgeD0iNTguNjcwMDA2NzUyMDE0MTQ2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+dDwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzODYuMjIyMjcsMTM4LjkxMDQ1KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoMjkuMjY2OTgzMDMyMjI2NTU1LDEyOS43NDQ2NDQxNjUwMzkwMykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSIyOS4yNjY5ODMwMzIyMjY1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij50aWxlPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iNDMuMTY5ODQxNzY2MzU3NDE1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSIgZm9udC1zdHlsZT0iaXRhbGljIj5CPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEzMC43NDQ2NDQxNjUwMzkwMyIgeD0iNDkuMjEyMDc2MTg3MTMzNzc1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNSIgZmlsbD0iIzZmNmU2OSIgZm9udC1zdHlsZT0iaXRhbGljIj5tPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iNTcuNjczMTk2NzkyNjAyNTI1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSI+w5c8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSI2NS43NDQyMTAyNDMyMjUwOCIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9IiM2ZjZlNjkiIGZvbnQtc3R5bGU9Iml0YWxpYyI+ZDwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZmY2YwIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZmNmMCI+IDxwYXRoIGQ9IiBNIDE2Ny4yOTM3MyA5Ny40NTA1MiBMIDEzOS45OTU1NCA5Ny40NTA1MiBDIDEzOC44OTA5NiA5Ny40NTA1MiAxMzcuOTk1NTQgOTYuNTU1MSAxMzcuOTk1NTQgOTUuNDUwNTIgTCAxMzcuOTk1NTQgNzIuNDIwNDkgQyAxMzcuOTk1NTQgNzEuMzE1OSAxMzguODkwOTYgNzAuNDIwNDkgMTM5Ljk5NTU0IDcwLjQyMDQ5IEwgMTY3LjI5MzczIDcwLjQyMDQ5IEMgMTY4LjM5ODMyIDcwLjQyMDQ5IDE2OS4yOTM3MyA3MS4zMTU5IDE2OS4yOTM3MyA3Mi40MjA0OSBMIDE2OS4yOTM3MyA5NS40NTA1MiBDIDE2OS4yOTM3MyA5Ni41NTUxIDE2OC4zOTgzMiA5Ny40NTA1MiAxNjcuMjkzNzMgOTcuNDUwNTIgWiBNIDEzNy45OTU1NCA3MC40MjA0OSAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNDkuOTk2ODksODEuNzM1NTIpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgyOS4yNjY5ODMwMzIyMjY1NTUsMTI5Ljc0NDY0NDE2NTAzOTAzKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjI5LjI2Njk4MzAzMjIyNjU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPlE8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZmZjZjAiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZmY2YwIj4gPHBhdGggZD0iIE0gMjI3LjA0NDY2IDk3LjQ1MDUyIEwgMTk5Ljc0NjQ4IDk3LjQ1MDUyIEMgMTk4LjY0MTg5IDk3LjQ1MDUyIDE5Ny43NDY0OCA5Ni41NTUxIDE5Ny43NDY0OCA5NS40NTA1MiBMIDE5Ny43NDY0OCA3Mi40MjA0OSBDIDE5Ny43NDY0OCA3MS4zMTU5IDE5OC42NDE4OSA3MC40MjA0OSAxOTkuNzQ2NDggNzAuNDIwNDkgTCAyMjcuMDQ0NjYgNzAuNDIwNDkgQyAyMjguMTQ5MjUgNzAuNDIwNDkgMjI5LjA0NDY2IDcxLjMxNTkgMjI5LjA0NDY2IDcyLjQyMDQ5IEwgMjI5LjA0NDY2IDk1LjQ1MDUyIEMgMjI5LjA0NDY2IDk2LjU1NTEgMjI4LjE0OTI1IDk3LjQ1MDUyIDIyNy4wNDQ2NiA5Ny40NTA1MiBaIE0gMTk3Ljc0NjQ4IDcwLjQyMDQ5ICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwOS4xNTg4LDgwLjg2MDUyKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoMjkuMjY2OTgzMDMyMjI2NTU1LDEyOS43NDQ2NDQxNjUwMzkwMykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSIyOS4yNjY5ODMwMzIyMjY1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5LPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZmY2YwIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZmNmMCI+IDxwYXRoIGQ9IiBNIDI4Ni43OTU2IDk3LjQ1MDUyIEwgMjU5LjQ5NzQgOTcuNDUwNTIgQyAyNTguMzkyODIgOTcuNDUwNTIgMjU3LjQ5NzQgOTYuNTU1MSAyNTcuNDk3NCA5NS40NTA1MiBMIDI1Ny40OTc0IDcyLjQyMDQ5IEMgMjU3LjQ5NzQgNzEuMzE1OSAyNTguMzkyODIgNzAuNDIwNDkgMjU5LjQ5NzQgNzAuNDIwNDkgTCAyODYuNzk1NiA3MC40MjA0OSBDIDI4Ny45MDAxOCA3MC40MjA0OSAyODguNzk1NiA3MS4zMTU5IDI4OC43OTU2IDcyLjQyMDQ5IEwgMjg4Ljc5NTYgOTUuNDUwNTIgQyAyODguNzk1NiA5Ni41NTUxIDI4Ny45MDAxOCA5Ny40NTA1MiAyODYuNzk1NiA5Ny40NTA1MiBaIE0gMjU3LjQ5NzQgNzAuNDIwNDkgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjY5LjQyMTUyLDgwLjg2MDUyKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoMjkuMjY2OTgzMDMyMjI2NTU1LDEyOS43NDQ2NDQxNjUwMzkwMykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSIyOS4yNjY5ODMwMzIyMjY1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5WPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZmY2YwIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZmNmMCI+IDxwYXRoIGQ9IiBNIDM0Ni41NDYxIDk3LjQ1MDUyIEwgMzE5LjI0NzkxIDk3LjQ1MDUyIEMgMzE4LjE0MzMzIDk3LjQ1MDUyIDMxNy4yNDc5MSA5Ni41NTUxIDMxNy4yNDc5MSA5NS40NTA1MiBMIDMxNy4yNDc5MSA3Mi40MjA0OSBDIDMxNy4yNDc5MSA3MS4zMTU5IDMxOC4xNDMzMyA3MC40MjA0OSAzMTkuMjQ3OTEgNzAuNDIwNDkgTCAzNDYuNTQ2MSA3MC40MjA0OSBDIDM0Ny42NTA2OCA3MC40MjA0OSAzNDguNTQ2MSA3MS4zMTU5IDM0OC41NDYxIDcyLjQyMDQ5IEwgMzQ4LjU0NjEgOTUuNDUwNTIgQyAzNDguNTQ2MSA5Ni41NTUxIDM0Ny42NTA2OCA5Ny40NTA1MiAzNDYuNTQ2MSA5Ny40NTA1MiBaIE0gMzE3LjI0NzkxIDcwLjQyMDQ5ICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMyOS4yNDkyNSw4MC44NjA1MikiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDI5LjI2Njk4MzAzMjIyNjU1NSwxMjkuNzQ0NjQ0MTY1MDM5MDMpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iMjkuMjY2OTgzMDMyMjI2NTU1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+TzwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzU5LjE5MjI2LDgxLjkyMTYzKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoMjkuMjY2OTgzMDMyMjI2NTU1LDEyOS43NDQ2NDQxNjUwMzkwMykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSIyOS4yNjY5ODMwMzIyMjY1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij5mdWxsPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iNDMuMzg1MTI3MDY3NTY1OTEiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5IiBmb250LXN0eWxlPSJpdGFsaWMiPkw8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSI1MC42OTIyNTc4ODExNjQ1NCIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9IiM2ZjZlNjkiPsOXPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iNTguNzYzMjcxMzMxNzg3MDk1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSIgZm9udC1zdHlsZT0iaXRhbGljIj5kPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZmZjZjAiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZmY2YwIj4gPHBhdGggZD0iIE0gMTgwLjA5NzgxIDQ0LjgxMzIgTCAxMzguNTczMjQgNDQuODEzMiBDIDEzNy40Njg2NiA0NC44MTMyIDEzNi41NzMyNCA0My45MTc3OSAxMzYuNTczMjQgNDIuODEzMiBMIDEzNi41NzMyNCAxOS43ODMxNyBDIDEzNi41NzMyNCAxOC42Nzg1OSAxMzcuNDY4NjYgMTcuNzgzMTcgMTM4LjU3MzI0IDE3Ljc4MzE3IEwgMTgwLjA5NzgxIDE3Ljc4MzE3IEMgMTgxLjIwMjQgMTcuNzgzMTcgMTgyLjA5NzgxIDE4LjY3ODU5IDE4Mi4wOTc4MSAxOS43ODMxNyBMIDE4Mi4wOTc4MSA0Mi44MTMyIEMgMTgyLjA5NzgxIDQzLjkxNzc5IDE4MS4yMDI0IDQ0LjgxMzIgMTgwLjA5NzgxIDQ0LjgxMzIgWiBNIDEzNi41NzMyNCAxNy43ODMxNyAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNDQuNDA1NDMsMjkuMDQ4MTkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgyOS4yNjY5ODMwMzIyMjY1NTUsMTI5Ljc0NDY0NDE2NTAzOTAzKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjI5LjI2Njk4MzAzMjIyNjU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIj53PC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEyOS43NDQ2NDQxNjUwMzkwMyIgeD0iMzUuNjkwNTUxNzU3ODEyNDkiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+ZWlnaDwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjUxLjg4MTQyMTA4OTE3MjM1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPnRzPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZmY2YwIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZmNmMCI+IDxwYXRoIGQ9IiBNIDI0OC4zODQyMyA0NC44MTMyIEwgMjA2Ljg1OTY2IDQ0LjgxMzIgQyAyMDUuNzU1MDggNDQuODEzMiAyMDQuODU5NjYgNDMuOTE3NzkgMjA0Ljg1OTY2IDQyLjgxMzIgTCAyMDQuODU5NjYgMTkuNzgzMTcgQyAyMDQuODU5NjYgMTguNjc4NTkgMjA1Ljc1NTA4IDE3Ljc4MzE3IDIwNi44NTk2NiAxNy43ODMxNyBMIDI0OC4zODQyMyAxNy43ODMxNyBDIDI0OS40ODg4MiAxNy43ODMxNyAyNTAuMzg0MjMgMTguNjc4NTkgMjUwLjM4NDIzIDE5Ljc4MzE3IEwgMjUwLjM4NDIzIDQyLjgxMzIgQyAyNTAuMzg0MjMgNDMuOTE3NzkgMjQ5LjQ4ODgyIDQ0LjgxMzIgMjQ4LjM4NDIzIDQ0LjgxMzIgWiBNIDIwNC44NTk2NiAxNy43ODMxNyAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTYuNzAwMTUsMjguMTczMTkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgyOS4yNjY5ODMwMzIyMjY1NTUsMTI5Ljc0NDY0NDE2NTAzOTAzKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjI5LjI2Njk4MzAzMjIyNjU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIj5jYWM8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSI0MS44NTcxNzc3MzQzNzQ5OSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIj5oZTwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSAxNTMuNjQ0NjQgOTcuNjUwNTEgTCAxNTMuNjQ0NjQgMTI1LjcxODEgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjAsMS4wLC0xLjAsMC4wLDE1My42NDQ2NCwxMjUuNzE4MSkiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTU4LjM3NzYxLDExMS41OTM3KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoMjkuMjY2OTgzMDMyMjI2NTU1LDEyOS43NDQ2NDQxNjUwMzkwMykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTI5Ljc0NDY0NDE2NTAzOTAzIiB4PSIyOS4yNjY5ODMwMzIyMjY1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij5sb2FkPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDIxMy4zOTU1NyA5Ny42NTA1MSBMIDIxMy4zOTU1NyAxMjUuNzE4MSAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMCwxLjAsLTEuMCwwLjAsMjEzLjM5NTU3LDEyNS43MTgxKSI+IDxwYXRoIGQ9IiBNIDQuNjc5OSAwLjAgQyAzLjI5MzI0IDAuMjYgMS4wMzk5OCAxLjAzOTk4IC0wLjUxOTk5IDEuOTQ5OTUgTCAtMC41MTk5OSAtMS45NDk5NSBDIDEuMDM5OTggLTEuMDM5OTggMy4yOTMyNCAtMC4yNiA0LjY3OTkgMC4wICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiAgPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSAyNzMuMTQ2NSA5Ny42NTA1MSBMIDI3My4xNDY1IDEyNS43MTgxICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4wLDEuMCwtMS4wLDAuMCwyNzMuMTQ2NSwxMjUuNzE4MSkiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPHBhdGggZD0iIE0gMzQ2LjgzNjA2IDEzMC4zOTggTCAzMzguMzU0MSAxMDIuMTMyNjggICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgtMC4yODc0MSwtMC45NTc3NSwwLjk1Nzc1LC0wLjI4NzQxLDMzOC4zNTQxMSwxMDIuMTMyNjgpIj4gPHBhdGggZD0iIE0gNC42Nzk5IDAuMCBDIDMuMjkzMjQgMC4yNiAxLjAzOTk4IDEuMDM5OTggLTAuNTE5OTkgMS45NDk5NSBMIC0wLjUxOTk5IC0xLjk0OTk1IEMgMS4wMzk5OCAtMS4wMzk5OCAzLjI5MzI0IC0wLjI2IDQuNjc5OSAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+ICA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM0Ni42NTU1MiwxMTEuODcxNDkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgyOS4yNjY5ODMwMzIyMjY1NTUsMTI5Ljc0NDY0NDE2NTAzOTAzKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMjkuNzQ0NjQ0MTY1MDM5MDMiIHg9IjI5LjI2Njk4MzAzMjIyNjU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9IiM2ZjZlNjkiPnN0b3JlPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

full $Q, K, V, O$ token matrices live down in the HBM lane while only the active $B_m \times d$ tile sits up in SRAM.

FlashAttention loads tiles up, runs the whole softmax on-chip, and touches HBM again only to store $O$ and stream the next $K, V$ block.

```jsx imports={Zoomable,FlashAttentionTiles}
<Zoomable label="FlashAttention tile streaming">
  <FlashAttentionTiles caption="Step through the tile loop: HBM holds the full $Q, K, V, O$ matrices while SRAM streams in one $(Q_i, K_j, V_j)$ tile pair at a time. Each step updates the running maxima $m_i$, normaliser $l_i$, and partial output $O_i$ via the online softmax recurrence." />
</Zoomable>
```

```jsx imports={Zoomable,FlashDataFlow}
<Zoomable label="FlashAttention data movement">
  <FlashDataFlow />
</Zoomable>
```

- Motivation: eliminate memory bandwidth bottlenecks so that longer contexts fit on commodity GPUs.
- Extension: variants such as FlashAttention-2/3, xFormers, and Triton kernels specialise for [[thoughts/GPU programming|GPU]] architectures and sparse layouts.

## Deriving the online softmax

We will first go into motivation of stable softmax, and the ingenious tricks of using {{sidenotes[online softmax]: $m/\ell/O$ recurrence computes the same softmax as the batched form per tile. This is largely refer to our operations on GPU. We will go in depth each of these terms meant below.}} \[@milakov2018onlinenormalizercalculationsoftmax\]

> \[!definition\] Definition 1. softmax
>
> $$
> \operatorname{softmax}(z)_i = \frac{e^{z_i}}{\sum_j e^{z_j}}
> $$

Now, with IEEE 754 and quirky computer representation of integer we know that with 32-bit floating point, the maximum representable value is $(2 - 2^{-23})\times 2^{127}$.

Since $e^{x} = 2^{x \log_2 e}$, we will very much reach {{sidenotes[overflows]: $e^{x_i}$ exceeds the FP16 ceiling ($\approx 65504$) once $x_i > 11$, and FP32 near $x_i \approx 88$.}} at certain $x_i$ for any logit vector $x \in \mathbb{R}^{V}$!!

A trick to address this overflow is often referred to as the _safe-softmax_ implementation, where we subtract the maximum value vector from every element before exponentiating

> \[!proposition\] Proposition 1. safe-softmax
>
> Subtracting the row maximum $m_V = \max_k x_k$ forces every exponent to be non-positive, so each $e^{(\cdot)} \in (0,1]$:
>
> $$
> y_i = \frac{e^{x_i - m_V}}{\sum_{j=1}^{V} e^{x_j - m_V}},\;\;m_V = \max_{k} x_k
> $$

Looking at this equation, one might notice that it takes us <span class="marker marker-h2">three passes</span> over $x$:

- for the maximum $m_V$
- the denominator $\ell_V = \sum_j e^{x_j - m_V}$
- normalize (the factor)

> The denominator pass is blocked on the maximum pass, because $\ell_V$ subtracts the _global_ $m_V$, which is unknown until the first pass finishes.

We can further break it down by tracking a _running_ maximum $m_j = \max(m_{j-1}, x_j)$ and define a [surrogate](https://en.wikipedia.org/wiki/Surrogate_model) denominator that subtracts $m_j$ rather than $m_V$:

$$
\ell'_j := \sum_{k=1}^{j} e^{x_k - m_j} .
$$

At the end of the sequence $m_V = m_N$, so $\ell'_N = \ell_V$ exactly — the surrogate is a legal drop-in for the true denominator. And $\ell'_j$ admits a one-step recurrence. Split off the last term and factor $e^{-m_j}$ through the historical sum:

$$
\ell'_j = \underbrace{\Big(\sum_{k=1}^{j-1} e^{x_k - m_{j-1}}\Big)}_{=\,\ell'_{j-1}} \, e^{m_{j-1} - m_j} + e^{x_j - m_j}
       = \ell'_{j-1}\, e^{m_{j-1} - m_j} + e^{x_j - m_j} .
$$

The factor $e^{m_{j-1} - m_j}$ is the **correction factor**. When the running maximum holds ($m_j = m_{j-1}$) it is $e^{0}=1$ and the update is plain accumulation; when a new element raises the maximum, it is $< 1$ and retroactively re-bases every previously accumulated term from the old maximum to the new one in $O(1)$, without revisiting any of them. The identity that licenses this is $e^{a-b}e^{b-c} = e^{a-c}$.

Streaming equals batch at _every_ step, by induction on $j$. Base case $j=1$: $m_1 = x_1$ and $\ell'_1 = e^{x_1 - m_1} = 1$, the one-element sum. Inductive step, assuming $\ell'_{j-1} = \sum_{k=1}^{j-1} e^{x_k - m_{j-1}}$:

$$
\ell'_j = \Big(\sum_{k=1}^{j-1} e^{x_k - m_{j-1}}\Big)\,e^{m_{j-1}-m_j} + e^{x_j - m_j}
       = \sum_{k=1}^{j-1} e^{x_k - m_j} + e^{x_j - m_j}
       = \sum_{k=1}^{j} e^{x_k - m_j} .
$$

The correction factor folds into each exponent exactly. The bound $1 \le \ell'_j \le j$ means FP32 carries the denominator for vectors up to $\sim 10^{37}$ elements before it overflows. The pair $(m, \ell)$ is a mergeable summary: it forms a commutative monoid under $[m_a,\ell_a]\oplus[m_b,\ell_b] = [\max(m_a,m_b),\ \ell_a e^{m_a-\max}+\ell_b e^{m_b-\max}]$ with identity $[-\infty, 0]$, so the reduction parallelises across a tile (a warp-shuffle tree), not only down it. That associativity is precisely what makes softmax — and therefore attention — tileable.

One pass now suffices for the _statistics_, yet softmax still needs a second pass to emit $y_i = e^{x_i - m_V}/\ell_V$, because you cannot divide until $\ell_V$ is final. Attention escapes the second pass because its target is $O = \mathrm{softmax}(S)V$, not the probabilities themselves. Apply the surrogate trick a second time, now to the output accumulator. The exact row output $o_i = \sum_{k \le i} (e^{x_k - m_N}/\ell'_N)\,V_k$ depends on the global $m_N, \ell'_N$; define instead

$$
O'_i := \sum_{k=1}^{i} \frac{e^{x_k - m_i}}{\ell'_i}\, V_k , \qquad O'_N = o_N ,
$$

which carries the running statistics and is again exact at the endpoint. Its recurrence inherits the same correction factor on the running weighted sum of value rows:

$$
O'_i = O'_{i-1}\cdot \frac{\ell'_{i-1}\, e^{m_{i-1}-m_i}}{\ell'_i} + \frac{e^{x_i - m_i}}{\ell'_i}\, V_i .
$$

Now $m$, $\ell'$, and $O'$ all advance in a single fused pass. Promote the scalar $x_i$ to a tile of $B_n$ logits $S^{(t)}_{i:}$, take the tile’s local maximum, and accumulate the $B_n$ exponentiated contributions at once. Writing the _unnormalised_ output $O^{\text{new}}_i = \ell^{\text{new}}_i \cdot O'_i$ so the $1/\ell$ division can wait until the loop ends, the recurrence collapses to exactly the $m/\ell/O$ update the note states:

$$
\begin{aligned}
m^{\text{new}}_i &= \max\big(m^{\text{old}}_i,\ \textstyle\max_j S^{(t)}_{ij}\big), \\
\ell^{\text{new}}_i &= e^{m^{\text{old}}_i - m^{\text{new}}_i}\,\ell^{\text{old}}_i + \textstyle\sum_j e^{S^{(t)}_{ij} - m^{\text{new}}_i}, \\
O^{\text{new}}_i &= e^{m^{\text{old}}_i - m^{\text{new}}_i}\,O^{\text{old}}_i + \textstyle\sum_j e^{S^{(t)}_{ij} - m^{\text{new}}_i}\,V^{(t)}_j ,
\end{aligned}
$$

with the single normalisation $O_i = O^{\text{new}}_i / \ell^{\text{new}}_i$ after all tiles. The online-softmax statistic is due to Milakov and Gimelshein \[@milakov2018onlinenormalizercalculationsoftmax\]; the second application to the output accumulator is the step that turns it into single-pass attention.

## IO complexity

The point of FlashAttention is an asymptotic reduction in HBM traffic, and the bound is tight.

Let $N$ be the sequence length, $d$ the head dimension, and $M$ the on-chip SRAM size in elements, in the regime $d \le M \le Nd$. Standard attention (materialise $S=QK^{\top}$, read it back for the softmax, write $P$, re-read for $PV$) moves

$$
\Theta\big(Nd + N^2\big)
$$

bytes through HBM, dominated by the $N^2$ term — the two $N\times N$ writes and reads of the score and probability matrices. FlashAttention never writes $S$ or $P$ to HBM and instead moves

$$
\#\text{HBM}_{\text{flash}} = \Theta\!\Big(\frac{N^2 d^2}{M}\Big) .
$$

The bound follows from the loop structure. Block sizes are set so the resident tiles fit on chip:

- $B_c = \lceil M/4d\rceil$ and $B_r = \min(\lceil M/4d\rceil, d)$
- the factor $4$ reserving room for the four simultaneously-live tiles $Q_i, K_j, V_j, O_i$ plus the $B_r \times B_c$ score tile.
- $K$ and $V$ are each loaded once.
- $Q$ and $O$ are re-streamed once per outer pass over the key blocks, and there are $T_c = \lceil N/B_c\rceil = \Theta(Nd/M)$ such passes.

Total traffic is therefore $\Theta(Nd \cdot T_c) = \Theta(N^2 d^2/M)$.

The ratio against standard attention is $d^2/M$, smaller than one whenever $d^2 < M$

since $d = 64$ gives $d^2 = 4096$ words against an A100’s $M \approx 98\,000$ FP16 words, a factor $\approx 24$ on paper.

The measured reduction is up to $9\times$; the gap from $24\times$ is the suppressed constants and the additive $Nd$ term \[@dao2022flashattentionfastmemoryefficientexact\].

This is optimal in the regime. No exact-attention algorithm achieves $o(N^2 d^2 M^{-1})$ HBM accesses for all $M \in [d, Nd]$: at $M = \Theta(Nd)$ that would mean $o(Nd)$, impossible because the inputs alone occupy $Nd$ words and start in HBM.

> So FlashAttention’s IO complexity is asymptotically tight, and every later generation (FA-2, FA-3, FA-4) improves constant factors and hardware utilisation, not the asymptotics.

wrt backward pass, it stores only $O$ and the per-row logsumexp ($O(N)$ memory) instead of $S$ or $P$, then recomputes the score and probability tiles in SRAM during the gradient pass.

The softmax-Jacobian quadratic term collapses to a per-row scalar

$D_i = \mathrm{rowsum}(dO \circ O)$

which gives $dS_{ij} = P_{ij}(dP_{ij} - D_i)$ block-locally, so the backward also moves $\Theta(N^2 d^2/M)$ versus the standard $\Theta(Nd + N^2)$.

Recomputation costs more FLOPs, and the kernel runs faster anyway, because attention at these lengths is bounded by HBM bandwidth.

> If the kernel were compute-bound, more FLOPs would be slower; it is faster, which is the direct evidence that bytes, not FLOPs, were the binding constraint.

We should treat the IO model as first-order, in a sense where growing the block size shrinks HBM traffic but eventually makes the kernel compute-bound; past that crossover, further IO reduction stops buying wall-clock time.

The forward kernel runs $K,V$ on the outer loop and $Q$ on the inner loop, so each output block $O_i$ with its statistics $m_i, \ell_i$ is read-modify-written $T_c$ times across HBM—the round-trip that FA-2 later removes by swapping the loop order.

The block sizes $B_c = \lceil M/4d\rceil$, $B_r = \min(\lceil M/4d\rceil, d)$ keep $Q_i, K_j, V_j, O_i$ and the $B_r \times B_c$ score tile co-resident in SRAM

## FlashAttention 2

FlashAttention-2 \[@dao2023flashattention2fasterattentionbetter\] an improvement from FA1 (I would argue that this was an evolution in design).

- It defers the $1/l_i$ rescaling to the end of the loop instead of every tile, cutting non-matmul FLOPs (which run $\approx 16\times$ slower than matmul on tensor-core hardware).
- It parallelises over the query-sequence dimension, _in addition to batch and heads_, so a single long sequence still saturates the SMs.
- It also partitions work inside a threadblock by splitting $Q$ across warps (split-Q) rather than $K$ (split-K):
  - each warp owns whole output rows and never round-trips partial sums through shared memory for a reduction.

Motivation: FA-1 reached only 30–50% of A100 FP16 peak on the forward pass and 25–35% on the backward, against 80–90% for a well-tuned GEMM, and the loss traced to thread-block and warp work partitioning.

The deferred $1/\ell$ rescaling rewrites the accumulator update to carry only the max-correction $\mathrm{diag}(e^{m^{(j-1)}-m^{(j)}})^{-1}$ inside the loop and apply the single division once at the end, which matters more on A100 given that a non-matmul FP32 FLOP costs $16\times$ a matmul FLOP (19.5 vs 312 TFLOP/s), so even a small count of softmax ops dominates if it sits in the hot path.

It stores one statistic per row, the logsumexp $L = m + \log\ell$, rather than the pair $(m, \ell)$.

Note on _causal masking_: it exploits the block structure via column-blocks entirely above the diagonal are skipped, roughly half the work at long $N$, for a $1.7$–$1.8\times$ gain, and the elementwise mask touches only the $\sim 1$ diagonal block per row.

The loop-order swap (Q outer, K/V inner) is credited to Phil Tillet’s Triton fused-attention tutorial.

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\begin{document}\n\\definecolor{salmon}{HTML}{FDB2A2}\n\\definecolor{sage}{HTML}{CDD597}\n\\definecolor{stone}{HTML}{6F6E69}\n\\definecolor{paper}{HTML}{FFFCF0}\n\\begin{tikzpicture}[\n  font=\\small, >=latex,\n  wbox/.style={draw=stone, rounded corners=2pt, minimum width=1.0cm, minimum height=0.68cm, inner sep=2pt},\n  warp/.style={wbox, fill=salmon!50},\n  share/.style={wbox, fill=sage!55, minimum width=1.6cm},\n  result/.style={wbox, fill=paper},\n  cost/.style={draw=stone, fill=stone!25, rounded corners=2pt, minimum width=3.0cm, minimum height=0.7cm},\n  a/.style={->, thick, draw=stone}\n]\n  \\path[use as bounding box] (-0.6, -0.6) rectangle (13.4, 6.2);\n  \\draw[dashed, draw=stone!45] (6.4, -0.2) -- (6.4, 5.9);\n\n  % left: FlashAttention-1 split-K needs a cross-warp reduction\n  \\node[text=stone] at (3.0, 5.7) {FA-1 split-K};\n  \\node[share] (q1) at (3.0, 4.7) {$Q$};\n  \\node[warp] (k0) at (0.9, 3.4) {$K_0$};\n  \\node[warp] (k1) at (2.3, 3.4) {$K_1$};\n  \\node[warp] (k2) at (3.7, 3.4) {$K_2$};\n  \\node[warp] (k3) at (5.1, 3.4) {$K_3$};\n  \\draw[a] (q1) -- (k0); \\draw[a] (q1) -- (k1); \\draw[a] (q1) -- (k2); \\draw[a] (q1) -- (k3);\n  \\node[cost] (red) at (3.0, 1.9) {reduce};\n  \\draw[a] (k0) -- (red); \\draw[a] (k1) -- (red); \\draw[a] (k2) -- (red); \\draw[a] (k3) -- (red);\n  \\node[result, fill=sage!55] (oL) at (3.0, 0.6) {$O$};\n  \\draw[a] (red) -- (oL);\n\n  % right: FlashAttention-2 split-Q keeps warps independent\n  \\node[text=stone] at (10.0, 5.7) {FA-2 split-Q};\n  \\node[share] (kv) at (10.0, 4.7) {$K$, $V$};\n  \\node[warp] (q0) at (7.9, 3.4) {$Q_0$};\n  \\node[warp] (qq1) at (9.3, 3.4) {$Q_1$};\n  \\node[warp] (qq2) at (10.7, 3.4) {$Q_2$};\n  \\node[warp] (qq3) at (12.1, 3.4) {$Q_3$};\n  \\draw[a] (kv) -- (q0); \\draw[a] (kv) -- (qq1); \\draw[a] (kv) -- (qq2); \\draw[a] (kv) -- (qq3);\n  \\node[result] (o0) at (7.9, 1.9) {$O_0$};\n  \\node[result] (o1) at (9.3, 1.9) {$O_1$};\n  \\node[result] (o2) at (10.7, 1.9) {$O_2$};\n  \\node[result] (o3) at (12.1, 1.9) {$O_3$};\n  \\draw[a] (q0) -- (o0); \\draw[a] (qq1) -- (o1); \\draw[a] (qq2) -- (o2); \\draw[a] (qq3) -- (o3);\n  \\node[font=\\scriptsize, text=stone] at (10.0, 0.6) {no reduce};\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI0MTEuNjcxN3B0IiBoZWlnaHQ9IjE5My40Nzg3M3B0IiB2aWV3Qm94PSItNzIgLTcyIDQxMS42NzE3IDE5My40Nzg3MyI+PGcgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDEuODY0ODgzNDIyODUxNTU1LDEwNC4xMzY5MTcxMTQyNTc3OCkgc2NhbGUoMSwtMSkiPjxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZS13aWR0aD0iMC40Ij4gPGcgc3Ryb2tlLWRhc2hhcnJheT0iMy4wLDMuMCIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAuMCI+IDxnIHN0cm9rZT0iI2JlYmViYyI+IDxwYXRoIGQ9IiBNIDE4Mi4wOTczOCAtNS42OTA0NiBMIDE4Mi4wOTczOCAxNjcuODcxICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYwLjA4OTY4LDE1OS45MzA1NCkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC00MS44NjQ4ODM0MjI4NTE1NTUsMTA0LjEzNjkxNzExNDI1Nzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMDQuMTM2OTE3MTE0MjU3NzgiIHg9Ii00MS44NjQ4ODM0MjI4NTE1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSIjNmY2ZTY5Ij5GPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNC4xMzY5MTcxMTQyNTc3OCIgeD0iLTM2Ljg1NTE5NTA0NTQ3MTE4NCIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9IiM2ZjZlNjkiPkEtMTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMDQuMTM2OTE3MTE0MjU3NzgiIHg9Ii0xOS4xMjc1MzU4MjAwMDczMiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9IiM2ZjZlNjkiPnNwbGl0LUs8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2U0ZThjNiI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNlNGU4YzYiPiA8cGF0aCBkPSIgTSAxMDYuMTIwNTEgMTQzLjQwMTYzIEwgNjQuNTk1OTUgMTQzLjQwMTYzIEMgNjMuNDkxMzYgMTQzLjQwMTYzIDYyLjU5NTk1IDE0Mi41MDYyMSA2Mi41OTU5NSAxNDEuNDAxNjMgTCA2Mi41OTU5NSAxMjYuMDUzOTcgQyA2Mi41OTU5NSAxMjQuOTQ5MzkgNjMuNDkxMzYgMTI0LjA1Mzk3IDY0LjU5NTk1IDEyNC4wNTM5NyBMIDEwNi4xMjA1MSAxMjQuMDUzOTcgQyAxMDcuMjI1MSAxMjQuMDUzOTcgMTA4LjEyMDUxIDEyNC45NDkzOSAxMDguMTIwNTEgMTI2LjA1Mzk3IEwgMTA4LjEyMDUxIDE0MS40MDE2MyBDIDEwOC4xMjA1MSAxNDIuNTA2MjEgMTA3LjIyNTEgMTQzLjQwMTYzIDEwNi4xMjA1MSAxNDMuNDAxNjMgWiBNIDYyLjU5NTk1IDEyNC4wNTM5NyAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4MS43MTA0OCwxMzEuNTI3ODIpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNDEuODY0ODgzNDIyODUxNTU1LDEwNC4xMzY5MTcxMTQyNTc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA0LjEzNjkxNzExNDI1Nzc4IiB4PSItNDEuODY0ODgzNDIyODUxNTU1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+UTwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDlkMSI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ5ZDEiPiA8cGF0aCBkPSIgTSAzNy44MzM2NSAxMDYuNDEyOTggTCAxMy4zODA5MiAxMDYuNDEyOTggQyAxMi4yNzYzNCAxMDYuNDEyOTggMTEuMzgwOTIgMTA1LjUxNzU2IDExLjM4MDkyIDEwNC40MTI5OCBMIDExLjM4MDkyIDg5LjA2NTMyIEMgMTEuMzgwOTIgODcuOTYwNzQgMTIuMjc2MzQgODcuMDY1MzIgMTMuMzgwOTIgODcuMDY1MzIgTCAzNy44MzM2NSA4Ny4wNjUzMiBDIDM4LjkzODIzIDg3LjA2NTMyIDM5LjgzMzY1IDg3Ljk2MDc0IDM5LjgzMzY1IDg5LjA2NTMyIEwgMzkuODMzNjUgMTA0LjQxMjk4IEMgMzkuODMzNjUgMTA1LjUxNzU2IDM4LjkzODIzIDEwNi40MTI5OCAzNy44MzM2NSAxMDYuNDEyOTggWiBNIDExLjM4MDkyIDg3LjA2NTMyICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE5LjYwNzM1LDk0LjE2NDE1KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTQxLjg2NDg4MzQyMjg1MTU1NSwxMDQuMTM2OTE3MTE0MjU3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNC4xMzY5MTcxMTQyNTc3OCIgeD0iLTQxLjg2NDg4MzQyMjg1MTU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPks8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA1LjEzNjkwMTg1NTQ2ODcyIiB4PSItMzQuMDMxNTg4NTU0MzgyMzIiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayI+MDwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDlkMSI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ5ZDEiPiA8cGF0aCBkPSIgTSA3Ny42Njc3NiAxMDYuNDEyOTggTCA1My4yMTUwMyAxMDYuNDEyOTggQyA1Mi4xMTA0NCAxMDYuNDEyOTggNTEuMjE1MDMgMTA1LjUxNzU2IDUxLjIxNTAzIDEwNC40MTI5OCBMIDUxLjIxNTAzIDg5LjA2NTMyIEMgNTEuMjE1MDMgODcuOTYwNzQgNTIuMTEwNDQgODcuMDY1MzIgNTMuMjE1MDMgODcuMDY1MzIgTCA3Ny42Njc3NiA4Ny4wNjUzMiBDIDc4Ljc3MjM0IDg3LjA2NTMyIDc5LjY2Nzc2IDg3Ljk2MDc0IDc5LjY2Nzc2IDg5LjA2NTMyIEwgNzkuNjY3NzYgMTA0LjQxMjk4IEMgNzkuNjY3NzYgMTA1LjUxNzU2IDc4Ljc3MjM0IDEwNi40MTI5OCA3Ny42Njc3NiAxMDYuNDEyOTggWiBNIDUxLjIxNTAzIDg3LjA2NTMyICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU5LjQ0MTQ1LDk0LjE2NDE1KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTQxLjg2NDg4MzQyMjg1MTU1NSwxMDQuMTM2OTE3MTE0MjU3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNC4xMzY5MTcxMTQyNTc3OCIgeD0iLTQxLjg2NDg4MzQyMjg1MTU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPks8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA1LjEzNjkwMTg1NTQ2ODcyIiB4PSItMzQuMDMxNTg4NTU0MzgyMzIiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayI+MTwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDlkMSI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ5ZDEiPiA8cGF0aCBkPSIgTSAxMTcuNTAxNDIgMTA2LjQxMjk4IEwgOTMuMDQ4NjkgMTA2LjQxMjk4IEMgOTEuOTQ0MSAxMDYuNDEyOTggOTEuMDQ4NjkgMTA1LjUxNzU2IDkxLjA0ODY5IDEwNC40MTI5OCBMIDkxLjA0ODY5IDg5LjA2NTMyIEMgOTEuMDQ4NjkgODcuOTYwNzQgOTEuOTQ0MSA4Ny4wNjUzMiA5My4wNDg2OSA4Ny4wNjUzMiBMIDExNy41MDE0MiA4Ny4wNjUzMiBDIDExOC42MDYgODcuMDY1MzIgMTE5LjUwMTQyIDg3Ljk2MDc0IDExOS41MDE0MiA4OS4wNjUzMiBMIDExOS41MDE0MiAxMDQuNDEyOTggQyAxMTkuNTAxNDIgMTA1LjUxNzU2IDExOC42MDYgMTA2LjQxMjk4IDExNy41MDE0MiAxMDYuNDEyOTggWiBNIDkxLjA0ODY5IDg3LjA2NTMyICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDk5LjI3NTEyLDk0LjE2NDE1KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTQxLjg2NDg4MzQyMjg1MTU1NSwxMDQuMTM2OTE3MTE0MjU3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNC4xMzY5MTcxMTQyNTc3OCIgeD0iLTQxLjg2NDg4MzQyMjg1MTU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPks8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA1LjEzNjkwMTg1NTQ2ODcyIiB4PSItMzQuMDMxNTg4NTU0MzgyMzIiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayI+MjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDlkMSI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ5ZDEiPiA8cGF0aCBkPSIgTSAxNTcuMzM1NTMgMTA2LjQxMjk4IEwgMTMyLjg4MjggMTA2LjQxMjk4IEMgMTMxLjc3ODIxIDEwNi40MTI5OCAxMzAuODgyOCAxMDUuNTE3NTYgMTMwLjg4MjggMTA0LjQxMjk4IEwgMTMwLjg4MjggODkuMDY1MzIgQyAxMzAuODgyOCA4Ny45NjA3NCAxMzEuNzc4MjEgODcuMDY1MzIgMTMyLjg4MjggODcuMDY1MzIgTCAxNTcuMzM1NTMgODcuMDY1MzIgQyAxNTguNDQwMTEgODcuMDY1MzIgMTU5LjMzNTUzIDg3Ljk2MDc0IDE1OS4zMzU1MyA4OS4wNjUzMiBMIDE1OS4zMzU1MyAxMDQuNDEyOTggQyAxNTkuMzM1NTMgMTA1LjUxNzU2IDE1OC40NDAxMSAxMDYuNDEyOTggMTU3LjMzNTUzIDEwNi40MTI5OCBaIE0gMTMwLjg4MjggODcuMDY1MzIgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTM5LjEwOTIyLDk0LjE2NDE1KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTQxLjg2NDg4MzQyMjg1MTU1NSwxMDQuMTM2OTE3MTE0MjU3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNC4xMzY5MTcxMTQyNTc3OCIgeD0iLTQxLjg2NDg4MzQyMjg1MTU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPks8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA1LjEzNjkwMTg1NTQ2ODcyIiB4PSItMzQuMDMxNTg4NTU0MzgyMzIiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayI+MzwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSA2OS40MTMzMSAxMjMuODUzOTcgTCA0NC4wMTIzNyAxMDguMTI2NDMgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgtMC44NTAxNywtMC41MjY0LDAuNTI2NCwtMC44NTAxNyw0NC4wMTIzNywxMDguMTI2NDMpIj4gPHBhdGggZD0iIE0gNC42Nzk5IDAuMCBDIDMuMjkzMjQgMC4yNiAxLjAzOTk4IDEuMDM5OTggLTAuNTE5OTkgMS45NDk5NSBMIC0wLjUxOTk5IC0xLjk0OTk1IEMgMS4wMzk5OCAtMS4wMzk5OCAzLjI5MzI0IC0wLjI2IDQuNjc5OSAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+ICA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDgwLjA0Mjg2IDEyMy44NTM5NyBMIDcyLjk3NDgxIDExMC43MzI4OCAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIHRyYW5zZm9ybT0ibWF0cml4KC0wLjQ3NDIxLC0wLjg4MDM0LDAuODgwMzQsLTAuNDc0MjEsNzIuOTc0ODIsMTEwLjczMjg4KSI+IDxwYXRoIGQ9IiBNIDQuNjc5OSAwLjAgQyAzLjI5MzI0IDAuMjYgMS4wMzk5OCAxLjAzOTk4IC0wLjUxOTk5IDEuOTQ5OTUgTCAtMC41MTk5OSAtMS45NDk5NSBDIDEuMDM5OTggLTEuMDM5OTggMy4yOTMyNCAtMC4yNiA0LjY3OTkgMC4wICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiAgPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSA5MC42NzM2IDEyMy44NTM5NyBMIDk3Ljc0MTY0IDExMC43MzI4OCAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNDc0MjEsLTAuODgwMzQsMC44ODAzNCwwLjQ3NDIxLDk3Ljc0MTYyLDExMC43MzI4OCkiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPHBhdGggZD0iIE0gMTAxLjMwMzE1IDEyMy44NTM5NyBMIDEyNi43MDQwNyAxMDguMTI2NDMgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjg1MDE3LC0wLjUyNjQsMC41MjY0LDAuODUwMTcsMTI2LjcwNDA3LDEwOC4xMjY0MykiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNkYmRiZGEiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZGJkYmRhIj4gPHBhdGggZD0iIE0gMTI2LjAzNzM1IDY0LjAxODQ1IEwgNDQuNjc5MTEgNjQuMDE4NDUgQyA0My41NzQ1MiA2NC4wMTg0NSA0Mi42NzkxMSA2My4xMjMwMyA0Mi42NzkxMSA2Mi4wMTg0NSBMIDQyLjY3OTExIDQ2LjEwMTYxIEMgNDIuNjc5MTEgNDQuOTk3MDIgNDMuNTc0NTIgNDQuMTAxNjEgNDQuNjc5MTEgNDQuMTAxNjEgTCAxMjYuMDM3MzUgNDQuMTAxNjEgQyAxMjcuMTQxOTQgNDQuMTAxNjEgMTI4LjAzNzM1IDQ0Ljk5NzAyIDEyOC4wMzczNSA0Ni4xMDE2MSBMIDEyOC4wMzczNSA2Mi4wMTg0NSBDIDEyOC4wMzczNSA2My4xMjMwMyAxMjcuMTQxOTQgNjQuMDE4NDUgMTI2LjAzNzM1IDY0LjAxODQ1IFogTSA0Mi42NzkxMSA0NC4xMDE2MSAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3Mi4yNDAyOCw1MC45MzUwMykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC00MS44NjQ4ODM0MjI4NTE1NTUsMTA0LjEzNjkxNzExNDI1Nzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMDQuMTM2OTE3MTE0MjU3NzgiIHg9Ii00MS44NjQ4ODM0MjI4NTE1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+cmVkdWNlPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDM5LjQzMDczIDg2Ljg2NTMzIEwgNjcuMzMzNDQgNjYuOTM4MDggICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjgxMzc0LC0wLjU4MTEzLDAuNTgxMTMsMC44MTM3NCw2Ny4zMzM0NCw2Ni45MzgwOCkiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPHBhdGggZD0iIE0gNzAuMDQ5MSA4Ni44NjUzMyBMIDc4LjY0MDE3IDY4LjQ1OTA5ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC40MjI5MywtMC45MDYxNCwwLjkwNjE0LDAuNDIyOTMsNzguNjQwMTUsNjguNDU5MSkiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPHBhdGggZD0iIE0gMTAwLjY2NzM0IDg2Ljg2NTMzIEwgOTIuMDc2MyA2OC40NTkwOSAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIHRyYW5zZm9ybT0ibWF0cml4KC0wLjQyMjkzLC0wLjkwNjE0LDAuOTA2MTQsLTAuNDIyOTMsOTIuMDc2MzEsNjguNDU5MSkiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPHBhdGggZD0iIE0gMTMxLjI4NTcyIDg2Ljg2NTMzIEwgMTAzLjM4MzAzIDY2LjkzODA4ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoLTAuODEzNzQsLTAuNTgxMTMsMC41ODExMywtMC44MTM3NCwxMDMuMzgzMDMsNjYuOTM4MDgpIj4gPHBhdGggZD0iIE0gNC42Nzk5IDAuMCBDIDMuMjkzMjQgMC4yNiAxLjAzOTk4IDEuMDM5OTggLTAuNTE5OTkgMS45NDk5NSBMIC0wLjUxOTk5IC0xLjk0OTk1IEMgMS4wMzk5OCAtMS4wMzk5OCAzLjI5MzI0IC0wLjI2IDQuNjc5OSAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+ICA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZmY2YwIj4gPGcgZmlsbD0iI2U0ZThjNiI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZmZjZjAiPiA8ZyBmaWxsPSIjZTRlOGM2Ij4gPHBhdGggZD0iIE0gOTcuNTg0NiAyNi43NDU2NCBMIDczLjEzMTg3IDI2Ljc0NTY0IEMgNzIuMDI3MjggMjYuNzQ1NjQgNzEuMTMxODcgMjUuODUwMjIgNzEuMTMxODcgMjQuNzQ1NjQgTCA3MS4xMzE4NyA5LjM5Nzk4IEMgNzEuMTMxODcgOC4yOTM0IDcyLjAyNzI4IDcuMzk3OTggNzMuMTMxODcgNy4zOTc5OCBMIDk3LjU4NDYgNy4zOTc5OCBDIDk4LjY4OTE4IDcuMzk3OTggOTkuNTg0NiA4LjI5MzQgOTkuNTg0NiA5LjM5Nzk4IEwgOTkuNTg0NiAyNC43NDU2NCBDIDk5LjU4NDYgMjUuODUwMjIgOTguNjg5MTggMjYuNzQ1NjQgOTcuNTg0NiAyNi43NDU2NCBaIE0gNzEuMTMxODcgNy4zOTc5OCAgIj48L3BhdGg+IDwvZz4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDgxLjcxMDQ4LDEzLjk5NjgzKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTQxLjg2NDg4MzQyMjg1MTU1NSwxMDQuMTM2OTE3MTE0MjU3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNC4xMzY5MTcxMTQyNTc3OCIgeD0iLTQxLjg2NDg4MzQyMjg1MTU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPk88L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSA4NS4zNTgyMyA0My45MDE2MSBMIDg1LjM1ODIzIDMxLjYyNTUzICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4wLC0xLjAsMS4wLDAuMCw4NS4zNTgyMywzMS42MjU1MykiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI1OS4yNTgxOCwxNTkuOTMwNTQpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNDEuODY0ODgzNDIyODUxNTU1LDEwNC4xMzY5MTcxMTQyNTc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA0LjEzNjkxNzExNDI1Nzc4IiB4PSItNDEuODY0ODgzNDIyODUxNTU1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iIzZmNmU2OSI+RjwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMDQuMTM2OTE3MTE0MjU3NzgiIHg9Ii0zNi44NTUxOTUwNDU0NzExODQiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSIjNmY2ZTY5Ij5BLTI8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA0LjEzNjkxNzExNDI1Nzc4IiB4PSItMTkuMTI3NTM1ODIwMDA3MzIiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSIjNmY2ZTY5Ij5zcGxpdC1RPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNlNGU4YzYiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZTRlOGM2Ij4gPHBhdGggZD0iIE0gMzA1LjI4OTcyIDE0My40MDE2MyBMIDI2My43NjUxNSAxNDMuNDAxNjMgQyAyNjIuNjYwNTcgMTQzLjQwMTYzIDI2MS43NjUxNSAxNDIuNTA2MjEgMjYxLjc2NTE1IDE0MS40MDE2MyBMIDI2MS43NjUxNSAxMjYuMDUzOTcgQyAyNjEuNzY1MTUgMTI0Ljk0OTM5IDI2Mi42NjA1NyAxMjQuMDUzOTcgMjYzLjc2NTE1IDEyNC4wNTM5NyBMIDMwNS4yODk3MiAxMjQuMDUzOTcgQyAzMDYuMzk0MyAxMjQuMDUzOTcgMzA3LjI4OTcyIDEyNC45NDkzOSAzMDcuMjg5NzIgMTI2LjA1Mzk3IEwgMzA3LjI4OTcyIDE0MS40MDE2MyBDIDMwNy4yODk3MiAxNDIuNTA2MjEgMzA2LjM5NDMgMTQzLjQwMTYzIDMwNS4yODk3MiAxNDMuNDAxNjMgWiBNIDI2MS43NjUxNSAxMjQuMDUzOTcgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjczLjczOTMyLDEzMS41Mjc4MikiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC00MS44NjQ4ODM0MjI4NTE1NTUsMTA0LjEzNjkxNzExNDI1Nzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMDQuMTM2OTE3MTE0MjU3NzgiIHg9Ii00MS44NjQ4ODM0MjI4NTE1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5LPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNC4xMzY5MTcxMTQyNTc3OCIgeD0iLTMzLjM5MTMyOTc2NTMxOTgyIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPiw8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA0LjEzNjkxNzExNDI1Nzc4IiB4PSItMjcuNzM4NTg5Mjg2ODA0MTkyIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+VjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDlkMSI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ5ZDEiPiA8cGF0aCBkPSIgTSAyMzcuMDAyODUgMTA2LjQxMjk4IEwgMjEyLjU1MDEzIDEwNi40MTI5OCBDIDIxMS40NDU1NCAxMDYuNDEyOTggMjEwLjU1MDEzIDEwNS41MTc1NiAyMTAuNTUwMTMgMTA0LjQxMjk4IEwgMjEwLjU1MDEzIDg5LjA2NTMyIEMgMjEwLjU1MDEzIDg3Ljk2MDc0IDIxMS40NDU1NCA4Ny4wNjUzMiAyMTIuNTUwMTMgODcuMDY1MzIgTCAyMzcuMDAyODUgODcuMDY1MzIgQyAyMzguMTA3NDQgODcuMDY1MzIgMjM5LjAwMjg1IDg3Ljk2MDc0IDIzOS4wMDI4NSA4OS4wNjUzMiBMIDIzOS4wMDI4NSAxMDQuNDEyOTggQyAyMzkuMDAyODUgMTA1LjUxNzU2IDIzOC4xMDc0NCAxMDYuNDEyOTggMjM3LjAwMjg1IDEwNi40MTI5OCBaIE0gMjEwLjU1MDEzIDg3LjA2NTMyICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxOS4wNDU0NCw5NC41MzkxNykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC00MS44NjQ4ODM0MjI4NTE1NTUsMTA0LjEzNjkxNzExNDI1Nzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMDQuMTM2OTE3MTE0MjU3NzgiIHg9Ii00MS44NjQ4ODM0MjI4NTE1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5RPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNS4xMzY5MDE4NTU0Njg3MiIgeD0iLTM0LjU2OTM3Nzg5OTE2OTkxNSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjYiIGZpbGw9ImJsYWNrIj4wPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkOWQxIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDlkMSI+IDxwYXRoIGQ9IiBNIDI3Ni44MzY5NiAxMDYuNDEyOTggTCAyNTIuMzg0MjMgMTA2LjQxMjk4IEMgMjUxLjI3OTY1IDEwNi40MTI5OCAyNTAuMzg0MjMgMTA1LjUxNzU2IDI1MC4zODQyMyAxMDQuNDEyOTggTCAyNTAuMzg0MjMgODkuMDY1MzIgQyAyNTAuMzg0MjMgODcuOTYwNzQgMjUxLjI3OTY1IDg3LjA2NTMyIDI1Mi4zODQyMyA4Ny4wNjUzMiBMIDI3Ni44MzY5NiA4Ny4wNjUzMiBDIDI3Ny45NDE1NCA4Ny4wNjUzMiAyNzguODM2OTYgODcuOTYwNzQgMjc4LjgzNjk2IDg5LjA2NTMyIEwgMjc4LjgzNjk2IDEwNC40MTI5OCBDIDI3OC44MzY5NiAxMDUuNTE3NTYgMjc3Ljk0MTU0IDEwNi40MTI5OCAyNzYuODM2OTYgMTA2LjQxMjk4IFogTSAyNTAuMzg0MjMgODcuMDY1MzIgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjU4Ljg3OTU1LDk0LjUzOTE3KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTQxLjg2NDg4MzQyMjg1MTU1NSwxMDQuMTM2OTE3MTE0MjU3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNC4xMzY5MTcxMTQyNTc3OCIgeD0iLTQxLjg2NDg4MzQyMjg1MTU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPlE8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA1LjEzNjkwMTg1NTQ2ODcyIiB4PSItMzQuNTY5Mzc3ODk5MTY5OTE1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siPjE8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ5ZDEiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkOWQxIj4gPHBhdGggZD0iIE0gMzE2LjY3MDYyIDEwNi40MTI5OCBMIDI5Mi4yMTc5IDEwNi40MTI5OCBDIDI5MS4xMTMzMSAxMDYuNDEyOTggMjkwLjIxNzkgMTA1LjUxNzU2IDI5MC4yMTc5IDEwNC40MTI5OCBMIDI5MC4yMTc5IDg5LjA2NTMyIEMgMjkwLjIxNzkgODcuOTYwNzQgMjkxLjExMzMxIDg3LjA2NTMyIDI5Mi4yMTc5IDg3LjA2NTMyIEwgMzE2LjY3MDYyIDg3LjA2NTMyIEMgMzE3Ljc3NTIgODcuMDY1MzIgMzE4LjY3MDYyIDg3Ljk2MDc0IDMxOC42NzA2MiA4OS4wNjUzMiBMIDMxOC42NzA2MiAxMDQuNDEyOTggQyAzMTguNjcwNjIgMTA1LjUxNzU2IDMxNy43NzUyIDEwNi40MTI5OCAzMTYuNjcwNjIgMTA2LjQxMjk4IFogTSAyOTAuMjE3OSA4Ny4wNjUzMiAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyOTguNzEzMjEsOTQuNTM5MTcpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNDEuODY0ODgzNDIyODUxNTU1LDEwNC4xMzY5MTcxMTQyNTc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA0LjEzNjkxNzExNDI1Nzc4IiB4PSItNDEuODY0ODgzNDIyODUxNTU1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+UTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMDUuMTM2OTAxODU1NDY4NzIiIHg9Ii0zNC41NjkzNzc4OTkxNjk5MTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayI+MjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDlkMSI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ5ZDEiPiA8cGF0aCBkPSIgTSAzNTYuNTA0NzMgMTA2LjQxMjk4IEwgMzMyLjA1MiAxMDYuNDEyOTggQyAzMzAuOTQ3NDIgMTA2LjQxMjk4IDMzMC4wNTIgMTA1LjUxNzU2IDMzMC4wNTIgMTA0LjQxMjk4IEwgMzMwLjA1MiA4OS4wNjUzMiBDIDMzMC4wNTIgODcuOTYwNzQgMzMwLjk0NzQyIDg3LjA2NTMyIDMzMi4wNTIgODcuMDY1MzIgTCAzNTYuNTA0NzMgODcuMDY1MzIgQyAzNTcuNjA5MzEgODcuMDY1MzIgMzU4LjUwNDczIDg3Ljk2MDc0IDM1OC41MDQ3MyA4OS4wNjUzMiBMIDM1OC41MDQ3MyAxMDQuNDEyOTggQyAzNTguNTA0NzMgMTA1LjUxNzU2IDM1Ny42MDkzMSAxMDYuNDEyOTggMzU2LjUwNDczIDEwNi40MTI5OCBaIE0gMzMwLjA1MiA4Ny4wNjUzMiAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMzguNTQ3MzIsOTQuNTM5MTcpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNDEuODY0ODgzNDIyODUxNTU1LDEwNC4xMzY5MTcxMTQyNTc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA0LjEzNjkxNzExNDI1Nzc4IiB4PSItNDEuODY0ODgzNDIyODUxNTU1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+UTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMDUuMTM2OTAxODU1NDY4NzIiIHg9Ii0zNC41NjkzNzc4OTkxNjk5MTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayI+MzwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSAyNjguNTgyNTIgMTIzLjg1Mzk3IEwgMjQzLjE4MTU4IDEwOC4xMjY0MyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIHRyYW5zZm9ybT0ibWF0cml4KC0wLjg1MDE3LC0wLjUyNjQsMC41MjY0LC0wLjg1MDE3LDI0My4xODE1OCwxMDguMTI2NDMpIj4gPHBhdGggZD0iIE0gNC42Nzk5IDAuMCBDIDMuMjkzMjQgMC4yNiAxLjAzOTk4IDEuMDM5OTggLTAuNTE5OTkgMS45NDk5NSBMIC0wLjUxOTk5IC0xLjk0OTk1IEMgMS4wMzk5OCAtMS4wMzk5OCAzLjI5MzI0IC0wLjI2IDQuNjc5OSAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+ICA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDI3OS4yMTIwNyAxMjMuODUzOTcgTCAyNzIuMTQ0MDEgMTEwLjczMjg4ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNDc0MjEsLTAuODgwMzQsMC44ODAzNCwtMC40NzQyMSwyNzIuMTQ0MDMsMTEwLjczMjg4KSI+IDxwYXRoIGQ9IiBNIDQuNjc5OSAwLjAgQyAzLjI5MzI0IDAuMjYgMS4wMzk5OCAxLjAzOTk4IC0wLjUxOTk5IDEuOTQ5OTUgTCAtMC41MTk5OSAtMS45NDk5NSBDIDEuMDM5OTggLTEuMDM5OTggMy4yOTMyNCAtMC4yNiA0LjY3OTkgMC4wICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiAgPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSAyODkuODQyOCAxMjMuODUzOTcgTCAyOTYuOTEwODQgMTEwLjczMjg4ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC40NzQyMSwtMC44ODAzNCwwLjg4MDM0LDAuNDc0MjEsMjk2LjkxMDgzLDExMC43MzI4OCkiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPHBhdGggZD0iIE0gMzAwLjQ3MjM1IDEyMy44NTM5NyBMIDMyNS44NzMyOCAxMDguMTI2NDMgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjg1MDE3LC0wLjUyNjQsMC41MjY0LDAuODUwMTcsMzI1Ljg3MzI4LDEwOC4xMjY0MykiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZmZjZjAiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZmY2YwIj4gPHBhdGggZD0iIE0gMjM3LjAwMjg1IDYzLjczMzg2IEwgMjEyLjU1MDEzIDYzLjczMzg2IEMgMjExLjQ0NTU0IDYzLjczMzg2IDIxMC41NTAxMyA2Mi44Mzg0NCAyMTAuNTUwMTMgNjEuNzMzODYgTCAyMTAuNTUwMTMgNDYuMzg2MiBDIDIxMC41NTAxMyA0NS4yODE2MiAyMTEuNDQ1NTQgNDQuMzg2MiAyMTIuNTUwMTMgNDQuMzg2MiBMIDIzNy4wMDI4NSA0NC4zODYyIEMgMjM4LjEwNzQ0IDQ0LjM4NjIgMjM5LjAwMjg1IDQ1LjI4MTYyIDIzOS4wMDI4NSA0Ni4zODYyIEwgMjM5LjAwMjg1IDYxLjczMzg2IEMgMjM5LjAwMjg1IDYyLjgzODQ0IDIzOC4xMDc0NCA2My43MzM4NiAyMzcuMDAyODUgNjMuNzMzODYgWiBNIDIxMC41NTAxMyA0NC4zODYyICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxOS4xNzM5LDUxLjQ4NTAzKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTQxLjg2NDg4MzQyMjg1MTU1NSwxMDQuMTM2OTE3MTE0MjU3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNC4xMzY5MTcxMTQyNTc3OCIgeD0iLTQxLjg2NDg4MzQyMjg1MTU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPk88L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA1LjEzNjkwMTg1NTQ2ODcyIiB4PSItMzQuODI2MzIwNjQ4MTkzMzUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayI+MDwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZmNmMCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZmZjZjAiPiA8cGF0aCBkPSIgTSAyNzYuODM2OTYgNjMuNzMzODYgTCAyNTIuMzg0MjMgNjMuNzMzODYgQyAyNTEuMjc5NjUgNjMuNzMzODYgMjUwLjM4NDIzIDYyLjgzODQ0IDI1MC4zODQyMyA2MS43MzM4NiBMIDI1MC4zODQyMyA0Ni4zODYyIEMgMjUwLjM4NDIzIDQ1LjI4MTYyIDI1MS4yNzk2NSA0NC4zODYyIDI1Mi4zODQyMyA0NC4zODYyIEwgMjc2LjgzNjk2IDQ0LjM4NjIgQyAyNzcuOTQxNTQgNDQuMzg2MiAyNzguODM2OTYgNDUuMjgxNjIgMjc4LjgzNjk2IDQ2LjM4NjIgTCAyNzguODM2OTYgNjEuNzMzODYgQyAyNzguODM2OTYgNjIuODM4NDQgMjc3Ljk0MTU0IDYzLjczMzg2IDI3Ni44MzY5NiA2My43MzM4NiBaIE0gMjUwLjM4NDIzIDQ0LjM4NjIgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjU5LjAwODAxLDUxLjQ4NTAzKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTQxLjg2NDg4MzQyMjg1MTU1NSwxMDQuMTM2OTE3MTE0MjU3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNC4xMzY5MTcxMTQyNTc3OCIgeD0iLTQxLjg2NDg4MzQyMjg1MTU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPk88L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA1LjEzNjkwMTg1NTQ2ODcyIiB4PSItMzQuODI2MzIwNjQ4MTkzMzUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayI+MTwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZmNmMCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZmZjZjAiPiA8cGF0aCBkPSIgTSAzMTYuNjcwNjIgNjMuNzMzODYgTCAyOTIuMjE3OSA2My43MzM4NiBDIDI5MS4xMTMzMSA2My43MzM4NiAyOTAuMjE3OSA2Mi44Mzg0NCAyOTAuMjE3OSA2MS43MzM4NiBMIDI5MC4yMTc5IDQ2LjM4NjIgQyAyOTAuMjE3OSA0NS4yODE2MiAyOTEuMTEzMzEgNDQuMzg2MiAyOTIuMjE3OSA0NC4zODYyIEwgMzE2LjY3MDYyIDQ0LjM4NjIgQyAzMTcuNzc1MiA0NC4zODYyIDMxOC42NzA2MiA0NS4yODE2MiAzMTguNjcwNjIgNDYuMzg2MiBMIDMxOC42NzA2MiA2MS43MzM4NiBDIDMxOC42NzA2MiA2Mi44Mzg0NCAzMTcuNzc1MiA2My43MzM4NiAzMTYuNjcwNjIgNjMuNzMzODYgWiBNIDI5MC4yMTc5IDQ0LjM4NjIgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjk4Ljg0MTY3LDUxLjQ4NTAzKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTQxLjg2NDg4MzQyMjg1MTU1NSwxMDQuMTM2OTE3MTE0MjU3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNC4xMzY5MTcxMTQyNTc3OCIgeD0iLTQxLjg2NDg4MzQyMjg1MTU1NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPk88L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA1LjEzNjkwMTg1NTQ2ODcyIiB4PSItMzQuODI2MzIwNjQ4MTkzMzUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayI+MjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZmNmMCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZmZjZjAiPiA8cGF0aCBkPSIgTSAzNTYuNTA0NzMgNjMuNzMzODYgTCAzMzIuMDUyIDYzLjczMzg2IEMgMzMwLjk0NzQyIDYzLjczMzg2IDMzMC4wNTIgNjIuODM4NDQgMzMwLjA1MiA2MS43MzM4NiBMIDMzMC4wNTIgNDYuMzg2MiBDIDMzMC4wNTIgNDUuMjgxNjIgMzMwLjk0NzQyIDQ0LjM4NjIgMzMyLjA1MiA0NC4zODYyIEwgMzU2LjUwNDczIDQ0LjM4NjIgQyAzNTcuNjA5MzEgNDQuMzg2MiAzNTguNTA0NzMgNDUuMjgxNjIgMzU4LjUwNDczIDQ2LjM4NjIgTCAzNTguNTA0NzMgNjEuNzMzODYgQyAzNTguNTA0NzMgNjIuODM4NDQgMzU3LjYwOTMxIDYzLjczMzg2IDM1Ni41MDQ3MyA2My43MzM4NiBaIE0gMzMwLjA1MiA0NC4zODYyICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMzOC42NzU3OCw1MS40ODUwMykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC00MS44NjQ4ODM0MjI4NTE1NTUsMTA0LjEzNjkxNzExNDI1Nzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMDQuMTM2OTE3MTE0MjU3NzgiIHg9Ii00MS44NjQ4ODM0MjI4NTE1NTUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5PPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjEwNS4xMzY5MDE4NTU0Njg3MiIgeD0iLTM0LjgyNjMyMDY0ODE5MzM1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siPjM8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPHBhdGggZD0iIE0gMjI0Ljc3NjQ5IDg2Ljg2NTMzIEwgMjI0Ljc3NjQ5IDY4LjYxMzc1ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4wLC0xLjAsMS4wLDAuMCwyMjQuNzc2NDksNjguNjEzNzUpIj4gPHBhdGggZD0iIE0gNC42Nzk5IDAuMCBDIDMuMjkzMjQgMC4yNiAxLjAzOTk4IDEuMDM5OTggLTAuNTE5OTkgMS45NDk5NSBMIC0wLjUxOTk5IC0xLjk0OTk1IEMgMS4wMzk5OCAtMS4wMzk5OCAzLjI5MzI0IC0wLjI2IDQuNjc5OSAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+ICA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDI2NC42MTA2IDg2Ljg2NTMzIEwgMjY0LjYxMDYgNjguNjEzNzUgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjAsLTEuMCwxLjAsMC4wLDI2NC42MTA2LDY4LjYxMzc1KSI+IDxwYXRoIGQ9IiBNIDQuNjc5OSAwLjAgQyAzLjI5MzI0IDAuMjYgMS4wMzk5OCAxLjAzOTk4IC0wLjUxOTk5IDEuOTQ5OTUgTCAtMC41MTk5OSAtMS45NDk5NSBDIDEuMDM5OTggLTEuMDM5OTggMy4yOTMyNCAtMC4yNiA0LjY3OTkgMC4wICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiAgPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSAzMDQuNDQ0MjYgODYuODY1MzMgTCAzMDQuNDQ0MjYgNjguNjEzNzUgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjAsLTEuMCwxLjAsMC4wLDMwNC40NDQyNiw2OC42MTM3NSkiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPHBhdGggZD0iIE0gMzQ0LjI3ODM3IDg2Ljg2NTMzIEwgMzQ0LjI3ODM3IDY4LjYxMzc1ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4wLC0xLjAsMS4wLDAuMCwzNDQuMjc4MzcsNjguNjEzNzUpIj4gPHBhdGggZD0iIE0gNC42Nzk5IDAuMCBDIDMuMjkzMjQgMC4yNiAxLjAzOTk4IDEuMDM5OTggLTAuNTE5OTkgMS45NDk5NSBMIC0wLjUxOTk5IC0xLjk0OTk1IEMgMS4wMzk5OCAtMS4wMzk5OCAzLjI5MzI0IC0wLjI2IDQuNjc5OSAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+ICA8L2c+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNjcuNjY2MjQsMTQuNjQxMjcpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNDEuODY0ODgzNDIyODUxNTU1LDEwNC4xMzY5MTcxMTQyNTc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA0LjEzNjkxNzExNDI1Nzc4IiB4PSItNDEuODY0ODgzNDIyODUxNTU1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSI+bm88L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTA0LjEzNjkxNzExNDI1Nzc4IiB4PSItMzAuNzY3NjAyOTIwNTMyMjIiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij5yZWR1Y2U8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDwvZz48L3N2Zz4=" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

## FlashAttention 3

FlashAttention-3 \[@shah2024flashattention3fastaccurateattention\] targets Hopper (H100) and is built around asynchrony.

Warps inside a CTA are specialised: producer warps do nothing but issue [[thoughts/GPU programming|TMA]] loads of $K, V$ tiles from HBM into shared memory, while consumer warps do nothing but run WGMMA matmuls on the tensor cores.

Because both run asynchronously, the kernel overlaps the load of tile $t{+}1$ with the compute of tile $t$, and ping-pong scheduling further hides the softmax of one warpgroup under the GEMM of another.

They also add FP8 with block quantisation and incoherent (Hadamard) processing for accuracy, and it reaches $\approx 740$ TFLOPs in FP16 (75% of H100 peak) and $\approx 1.2$ PFLOPs in FP8, $1.5$–$2\times$ over FlashAttention-2.

FA-3 leverages three kinds of Hopper asynchrony, on top of FlashAttention2:

- Warp specialisation splits a thread block into a producer warpgroup that issues only TMA async copies HBM$\to$SMEM and consumer warpgroups that run only WGMMA, with `setmaxnreg` handing registers from the register-light producer to the math-heavy consumers and a circular SMEM buffer decoupling load latency from compute.
- softmax running one-to-two orders of magnitude below tensor-core throughput is hidden two ways: inter-warpgroup ping-pong schedules one warpgroup’s softmax under the other’s GEMMs, and intra-warpgroup two-stage pipelining rotates GEMM0 ($S=QK^\top$ for the next block) against GEMM1 ($O\mathrel{+}=PV$ for the current block) so the current exp runs in the shadow of the next matmul.
- FP8 path adds per-block quantisation (one scale per $B_r\times d$ tile, the dominant accuracy lever) and incoherent processing — left/right-multiplying $Q,K$ by a random Hadamard-times-sign orthogonal $M$, which leaves $QK^\top$ exact yet spreads outliers, applied in $O(d\log d)$ via a fast Walsh–Hadamard transform.

FP16 forward reaches $\approx 740$ TFLOP/s (75% of the 989-TFLOP dense peak), FP8 close to $1.2$ PFLOP/s with RMSE $2.6\times$ below the per-tensor baseline ($9.1\!\times\!10^{-3}$).

> \[!tip\] accuracy
>
> FP8 error is still $\sim 48\times$ the FP16 error

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\begin{document}\n\\definecolor{salmon}{HTML}{FDB2A2}\n\\definecolor{sage}{HTML}{CDD597}\n\\definecolor{stone}{HTML}{6F6E69}\n\\definecolor{paper}{HTML}{FFFCF0}\n\\begin{tikzpicture}[\n  font=\\small, >=latex,\n  prod/.style={draw=stone, fill=sage!55, rounded corners=2pt, minimum width=2.2cm, minimum height=0.8cm, align=center, inner sep=2pt},\n  cons/.style={draw=stone, fill=salmon!55, rounded corners=2pt, minimum width=2.2cm, minimum height=0.8cm, align=center, inner sep=2pt},\n  a/.style={->, thick, draw=stone}\n]\n  \\path[use as bounding box] (-3.7, 0.2) rectangle (12.6, 4.6);\n\n  \\node[text=stone, anchor=east] at (-0.3, 3.7) {producer (TMA)};\n  \\node[prod] (p0) at (1.3, 3.7) {load $K_0$, $V_0$};\n  \\node[prod] (p1) at (4.4, 3.7) {load $K_1$, $V_1$};\n  \\node[prod] (p2) at (7.5, 3.7) {load $K_2$, $V_2$};\n\n  \\node[draw=stone, fill=paper, rounded corners=3pt, minimum width=9.4cm, minimum height=0.55cm] (smem) at (4.4, 2.4) {SMEM};\n\n  \\node[text=stone, anchor=east] at (-0.3, 1.1) {consumer (WGMMA)};\n  \\node[cons] (c0) at (2.85, 1.1) {compute $t_0$};\n  \\node[cons] (c1) at (5.95, 1.1) {compute $t_1$};\n  \\node[cons] (c2) at (9.05, 1.1) {compute $t_2$};\n\n  \\draw[a] (p0) -- (smem.north -| p0);\n  \\draw[a] (smem.south -| c0) -- (c0);\n  \\draw[a] (p1) -- (smem.north -| p1);\n  \\draw[a] (smem.south -| c1) -- (c1);\n  \\draw[a] (p2) -- (smem.north -| p2);\n  \\draw[a] (smem.south -| c2) -- (c2);\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI0NzcuMTEzMXB0IiBoZWlnaHQ9IjEyNS4xOTIzMnB0IiB2aWV3Qm94PSItNzIgLTcyIDQ3Ny4xMTMxIDEyNS4xOTIzMiI+PGcgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0Ni4zMzgzNjM2NDc0NjA5Myw1OC42MTI3Nzc3MDk5NjA5Mikgc2NhbGUoMSwtMSkiPjxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZS13aWR0aD0iMC40Ij4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTgwLjIwMTAyLDEwMy4wMjUwNSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDQ2LjMzODM2MzY0NzQ2MDkzLDU4LjYxMjc3NzcwOTk2MDkyKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI1OC42MTI3Nzc3MDk5NjA5MiIgeD0iNDYuMzM4MzYzNjQ3NDYwOTMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSIjNmY2ZTY5Ij5wcm88L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTguNjEyNzc3NzA5OTYwOTIiIHg9IjU5Ljk3NzE2OTAzNjg2NTIyIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iIzZmNmU2OSI+ZHVjZXI8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTguNjEyNzc3NzA5OTYwOTIiIHg9Ijg1LjE4MTg3NDI3NTIwNzUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSIjNmY2ZTY5Ij4oVE1BKTwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZTRlOGM2Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2U0ZThjNiI+IDxwYXRoIGQ9IiBNIDY2LjI4NjYyIDExNi42NTYxOSBMIDcuNjkwNjcgMTE2LjY1NjE5IEMgNi41ODYwOSAxMTYuNjU2MTkgNS42OTA2NyAxMTUuNzYwNzcgNS42OTA2NyAxMTQuNjU2MTkgTCA1LjY5MDY3IDk1Ljg5MzkyIEMgNS42OTA2NyA5NC43ODkzNCA2LjU4NjA5IDkzLjg5MzkyIDcuNjkwNjcgOTMuODkzOTIgTCA2Ni4yODY2MiA5My44OTM5MiBDIDY3LjM5MTIgOTMuODkzOTIgNjguMjg2NjIgOTQuNzg5MzQgNjguMjg2NjIgOTUuODkzOTIgTCA2OC4yODY2MiAxMTQuNjU2MTkgQyA2OC4yODY2MiAxMTUuNzYwNzcgNjcuMzkxMiAxMTYuNjU2MTkgNjYuMjg2NjIgMTE2LjY1NjE5IFogTSA1LjY5MDY3IDkzLjg5MzkyICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEzLjM2MTA1LDEwMy4wMjUwNSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDQ2LjMzODM2MzY0NzQ2MDkzLDU4LjYxMjc3NzcwOTk2MDkyKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI1OC42MTI3Nzc3MDk5NjA5MiIgeD0iNDYuMzM4MzYzNjQ3NDYwOTMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+bG9hZDwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI1OC42MTI3Nzc3MDk5NjA5MiIgeD0iNjYuMzc5ODk4MDcxMjg5MDUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5LPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjU5LjYxMjc2MjQ1MTE3MTg2IiB4PSI3NC4yMTMxOTI5Mzk3NTgyOSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjYiIGZpbGw9ImJsYWNrIj4wPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjU4LjYxMjc3NzcwOTk2MDkyIiB4PSI3OC4zNzk4MDM2NTc1MzE3MiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIj4sPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjU4LjYxMjc3NzcwOTk2MDkyIiB4PSI4NC4wMzI1NDQxMzYwNDczNSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPlY8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTkuNjEyNzYyNDUxMTcxODYiIHg9Ijg5LjQyNjk2ODU3NDUyMzkxIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siPjA8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNlNGU4YzYiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZTRlOGM2Ij4gPHBhdGggZD0iIE0gMTU0LjQ4OTg3IDExNi42NTYxOSBMIDk1Ljg5MzkyIDExNi42NTYxOSBDIDk0Ljc4OTM0IDExNi42NTYxOSA5My44OTM5MiAxMTUuNzYwNzcgOTMuODkzOTIgMTE0LjY1NjE5IEwgOTMuODkzOTIgOTUuODkzOTIgQyA5My44OTM5MiA5NC43ODkzNCA5NC43ODkzNCA5My44OTM5MiA5NS44OTM5MiA5My44OTM5MiBMIDE1NC40ODk4NyA5My44OTM5MiBDIDE1NS41OTQ0NSA5My44OTM5MiAxNTYuNDg5ODcgOTQuNzg5MzQgMTU2LjQ4OTg3IDk1Ljg5MzkyIEwgMTU2LjQ4OTg3IDExNC42NTYxOSBDIDE1Ni40ODk4NyAxMTUuNzYwNzcgMTU1LjU5NDQ1IDExNi42NTYxOSAxNTQuNDg5ODcgMTE2LjY1NjE5IFogTSA5My44OTM5MiA5My44OTM5MiAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDEuNTY0MywxMDMuMDI1MDUpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg0Ni4zMzgzNjM2NDc0NjA5Myw1OC42MTI3Nzc3MDk5NjA5Mikgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTguNjEyNzc3NzA5OTYwOTIiIHg9IjQ2LjMzODM2MzY0NzQ2MDkzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPmxvYWQ8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTguNjEyNzc3NzA5OTYwOTIiIHg9IjY2LjM3OTg5ODA3MTI4OTA1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+SzwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI1OS42MTI3NjI0NTExNzE4NiIgeD0iNzQuMjEzMTkyOTM5NzU4MjkiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayI+MTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI1OC42MTI3Nzc3MDk5NjA5MiIgeD0iNzguMzc5ODAzNjU3NTMxNzIiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+LDwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI1OC42MTI3Nzc3MDk5NjA5MiIgeD0iODQuMDMyNTQ0MTM2MDQ3MzUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5WPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjU5LjYxMjc2MjQ1MTE3MTg2IiB4PSI4OS40MjY5Njg1NzQ1MjM5MSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjYiIGZpbGw9ImJsYWNrIj4xPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZTRlOGM2Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2U0ZThjNiI+IDxwYXRoIGQ9IiBNIDI0Mi42OTM1NCAxMTYuNjU2MTkgTCAxODQuMDk3NiAxMTYuNjU2MTkgQyAxODIuOTkzMDEgMTE2LjY1NjE5IDE4Mi4wOTc2IDExNS43NjA3NyAxODIuMDk3NiAxMTQuNjU2MTkgTCAxODIuMDk3NiA5NS44OTM5MiBDIDE4Mi4wOTc2IDk0Ljc4OTM0IDE4Mi45OTMwMSA5My44OTM5MiAxODQuMDk3NiA5My44OTM5MiBMIDI0Mi42OTM1NCA5My44OTM5MiBDIDI0My43OTgxMyA5My44OTM5MiAyNDQuNjkzNTQgOTQuNzg5MzQgMjQ0LjY5MzU0IDk1Ljg5MzkyIEwgMjQ0LjY5MzU0IDExNC42NTYxOSBDIDI0NC42OTM1NCAxMTUuNzYwNzcgMjQzLjc5ODEzIDExNi42NTYxOSAyNDIuNjkzNTQgMTE2LjY1NjE5IFogTSAxODIuMDk3NiA5My44OTM5MiAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODkuNzY3OTcsMTAzLjAyNTA1KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoNDYuMzM4MzYzNjQ3NDYwOTMsNTguNjEyNzc3NzA5OTYwOTIpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjU4LjYxMjc3NzcwOTk2MDkyIiB4PSI0Ni4zMzgzNjM2NDc0NjA5MyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIj5sb2FkPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjU4LjYxMjc3NzcwOTk2MDkyIiB4PSI2Ni4zNzk4OTgwNzEyODkwNSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPks8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTkuNjEyNzYyNDUxMTcxODYiIHg9Ijc0LjIxMzE5MjkzOTc1ODI5IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siPjI8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTguNjEyNzc3NzA5OTYwOTIiIHg9Ijc4LjM3OTgwMzY1NzUzMTcyIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPiw8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTguNjEyNzc3NzA5OTYwOTIiIHg9Ijg0LjAzMjU0NDEzNjA0NzM1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+VjwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI1OS42MTI3NjI0NTExNzE4NiIgeD0iODkuNDI2OTY4NTc0NTIzOTEiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI2IiBmaWxsPSJibGFjayI+MjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZmNmMCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZmZjZjAiPiA8cGF0aCBkPSIgTSAyNTUuOTE5NzUgNzYuMTEwOTUgTCAtNS41MzU5NiA3Ni4xMTA5NSBDIC03LjE5Mjg0IDc2LjExMDk1IC04LjUzNTk2IDc0Ljc2NzgyIC04LjUzNTk2IDczLjExMDk1IEwgLTguNTM1OTYgNjMuNDYxODcgQyAtOC41MzU5NiA2MS44MDUgLTcuMTkyODQgNjAuNDYxODcgLTUuNTM1OTYgNjAuNDYxODcgTCAyNTUuOTE5NzUgNjAuNDYxODcgQyAyNTcuNTc2NjMgNjAuNDYxODcgMjU4LjkxOTc1IDYxLjgwNSAyNTguOTE5NzUgNjMuNDYxODcgTCAyNTguOTE5NzUgNzMuMTEwOTUgQyAyNTguOTE5NzUgNzQuNzY3ODIgMjU3LjU3NjYzIDc2LjExMDk1IDI1NS45MTk3NSA3Ni4xMTA5NSBaIE0gLTguNTM1OTYgNjAuNDYxODcgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEwLjk5NzU3LDY1LjIxMTQzKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoNDYuMzM4MzYzNjQ3NDYwOTMsNTguNjEyNzc3NzA5OTYwOTIpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjU4LjYxMjc3NzcwOTk2MDkyIiB4PSI0Ni4zMzgzNjM2NDc0NjA5MyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIj5TTUVNPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAwLjg0ODA4LDI5LjA0ODE5KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoNDYuMzM4MzYzNjQ3NDYwOTMsNTguNjEyNzc3NzA5OTYwOTIpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzZmNmU2OSI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjU4LjYxMjc3NzcwOTk2MDkyIiB4PSI0Ni4zMzgzNjM2NDc0NjA5MyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9IiM2ZjZlNjkiPmNvbnN1bWVyPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjU4LjYxMjc3NzcwOTk2MDkyIiB4PSI4Ny41MjQ5MTQ3NDE1MTYxIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iIzZmNmU2OSI+KFc8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTguNjEyNzc3NzA5OTYwOTIiIHg9IjEwMC4zNzA2NjE3MzU1MzQ2NCIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9IiM2ZjZlNjkiPkdNTUEpPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ1Y2MiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkNWNjIj4gPHBhdGggZD0iIE0gMTEwLjM4ODQ2IDQyLjY3OTMyIEwgNTEuNzkyNTEgNDIuNjc5MzIgQyA1MC42ODc5MyA0Mi42NzkzMiA0OS43OTI1MSA0MS43ODM5IDQ5Ljc5MjUxIDQwLjY3OTMyIEwgNDkuNzkyNTEgMjEuOTE3MDUgQyA0OS43OTI1MSAyMC44MTI0NyA1MC42ODc5MyAxOS45MTcwNSA1MS43OTI1MSAxOS45MTcwNSBMIDExMC4zODg0NiAxOS45MTcwNSBDIDExMS40OTMwNCAxOS45MTcwNSAxMTIuMzg4NDYgMjAuODEyNDcgMTEyLjM4ODQ2IDIxLjkxNzA1IEwgMTEyLjM4ODQ2IDQwLjY3OTMyIEMgMTEyLjM4ODQ2IDQxLjc4MzkgMTExLjQ5MzA0IDQyLjY3OTMyIDExMC4zODg0NiA0Mi42NzkzMiBaIE0gNDkuNzkyNTEgMTkuOTE3MDUgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTguNTc4NSwyOS40MDUzMykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDQ2LjMzODM2MzY0NzQ2MDkzLDU4LjYxMjc3NzcwOTk2MDkyKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI1OC42MTI3Nzc3MDk5NjA5MiIgeD0iNDYuMzM4MzYzNjQ3NDYwOTMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+Y29tcHV0ZTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI1OC42MTI3Nzc3MDk5NjA5MiIgeD0iODMuODU1NDgxMTQ3NzY2MSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPnQ8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTkuNjEyNzYyNDUxMTcxODYiIHg9Ijg3LjE5NTczNjg4NTA3MDc5IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siPjA8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ1Y2MiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkNWNjIj4gPHBhdGggZD0iIE0gMTk4LjU5MTcgNDIuNjc5MzIgTCAxMzkuOTk1NzYgNDIuNjc5MzIgQyAxMzguODkxMTcgNDIuNjc5MzIgMTM3Ljk5NTc2IDQxLjc4MzkgMTM3Ljk5NTc2IDQwLjY3OTMyIEwgMTM3Ljk5NTc2IDIxLjkxNzA1IEMgMTM3Ljk5NTc2IDIwLjgxMjQ3IDEzOC44OTExNyAxOS45MTcwNSAxMzkuOTk1NzYgMTkuOTE3MDUgTCAxOTguNTkxNyAxOS45MTcwNSBDIDE5OS42OTYyOSAxOS45MTcwNSAyMDAuNTkxNyAyMC44MTI0NyAyMDAuNTkxNyAyMS45MTcwNSBMIDIwMC41OTE3IDQwLjY3OTMyIEMgMjAwLjU5MTcgNDEuNzgzOSAxOTkuNjk2MjkgNDIuNjc5MzIgMTk4LjU5MTcgNDIuNjc5MzIgWiBNIDEzNy45OTU3NiAxOS45MTcwNSAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNDYuNzgxNzUsMjkuNDA1MzMpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg0Ni4zMzgzNjM2NDc0NjA5Myw1OC42MTI3Nzc3MDk5NjA5Mikgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTguNjEyNzc3NzA5OTYwOTIiIHg9IjQ2LjMzODM2MzY0NzQ2MDkzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPmNvbXB1dGU8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTguNjEyNzc3NzA5OTYwOTIiIHg9IjgzLjg1NTQ4MTE0Nzc2NjEiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj50PC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjU5LjYxMjc2MjQ1MTE3MTg2IiB4PSI4Ny4xOTU3MzY4ODUwNzA3OSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjYiIGZpbGw9ImJsYWNrIj4xPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkNWNjIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZlZDVjYyI+IDxwYXRoIGQ9IiBNIDI4Ni43OTUzOCA0Mi42NzkzMiBMIDIyOC4xOTk0MyA0Mi42NzkzMiBDIDIyNy4wOTQ4NSA0Mi42NzkzMiAyMjYuMTk5NDMgNDEuNzgzOSAyMjYuMTk5NDMgNDAuNjc5MzIgTCAyMjYuMTk5NDMgMjEuOTE3MDUgQyAyMjYuMTk5NDMgMjAuODEyNDcgMjI3LjA5NDg1IDE5LjkxNzA1IDIyOC4xOTk0MyAxOS45MTcwNSBMIDI4Ni43OTUzOCAxOS45MTcwNSBDIDI4Ny44OTk5NiAxOS45MTcwNSAyODguNzk1MzggMjAuODEyNDcgMjg4Ljc5NTM4IDIxLjkxNzA1IEwgMjg4Ljc5NTM4IDQwLjY3OTMyIEMgMjg4Ljc5NTM4IDQxLjc4MzkgMjg3Ljg5OTk2IDQyLjY3OTMyIDI4Ni43OTUzOCA0Mi42NzkzMiBaIE0gMjI2LjE5OTQzIDE5LjkxNzA1ICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzNC45ODU0MywyOS40MDUzMykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDQ2LjMzODM2MzY0NzQ2MDkzLDU4LjYxMjc3NzcwOTk2MDkyKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI1OC42MTI3Nzc3MDk5NjA5MiIgeD0iNDYuMzM4MzYzNjQ3NDYwOTMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+Y29tcHV0ZTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI1OC42MTI3Nzc3MDk5NjA5MiIgeD0iODMuODU1NDgxMTQ3NzY2MSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPnQ8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNTkuNjEyNzYyNDUxMTcxODYiIHg9Ijg3LjE5NTczNjg4NTA3MDc5IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siPjI8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPHBhdGggZD0iIE0gMzYuOTg4NjUgOTMuNjkzOTIgTCAzNi45ODg2NSA4MC45OTA4NCAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMCwtMS4wLDEuMCwwLjAsMzYuOTg4NjUsODAuOTkwODQpIj4gPHBhdGggZD0iIE0gNC42Nzk5IDAuMCBDIDMuMjkzMjQgMC4yNiAxLjAzOTk4IDEuMDM5OTggLTAuNTE5OTkgMS45NDk5NSBMIC0wLjUxOTk5IC0xLjk0OTk1IEMgMS4wMzk5OCAtMS4wMzk5OCAzLjI5MzI0IC0wLjI2IDQuNjc5OSAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+ICA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDgxLjA5MDQ4IDYwLjI2MTg3IEwgODEuMDkwNDggNDcuNTU5MjIgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjAsLTEuMCwxLjAsMC4wLDgxLjA5MDQ4LDQ3LjU1OTIyKSI+IDxwYXRoIGQ9IiBNIDQuNjc5OSAwLjAgQyAzLjI5MzI0IDAuMjYgMS4wMzk5OCAxLjAzOTk4IC0wLjUxOTk5IDEuOTQ5OTUgTCAtMC41MTk5OSAtMS45NDk5NSBDIDEuMDM5OTggLTEuMDM5OTggMy4yOTMyNCAtMC4yNiA0LjY3OTkgMC4wICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiAgPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSAxMjUuMTkxOSA5My42OTM5MiBMIDEyNS4xOTE5IDgwLjk5MDg0ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4wLC0xLjAsMS4wLDAuMCwxMjUuMTkxOSw4MC45OTA4NCkiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPHBhdGggZD0iIE0gMTY5LjI5MzczIDYwLjI2MTg3IEwgMTY5LjI5MzczIDQ3LjU1OTIyICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4wLC0xLjAsMS4wLDAuMCwxNjkuMjkzNzMsNDcuNTU5MjIpIj4gPHBhdGggZD0iIE0gNC42Nzk5IDAuMCBDIDMuMjkzMjQgMC4yNiAxLjAzOTk4IDEuMDM5OTggLTAuNTE5OTkgMS45NDk5NSBMIC0wLjUxOTk5IC0xLjk0OTk1IEMgMS4wMzk5OCAtMS4wMzk5OCAzLjI5MzI0IC0wLjI2IDQuNjc5OSAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+ICA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDIxMy4zOTU1NyA5My42OTM5MiBMIDIxMy4zOTU1NyA4MC45OTA4NCAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMCwtMS4wLDEuMCwwLjAsMjEzLjM5NTU3LDgwLjk5MDg0KSI+IDxwYXRoIGQ9IiBNIDQuNjc5OSAwLjAgQyAzLjI5MzI0IDAuMjYgMS4wMzk5OCAxLjAzOTk4IC0wLjUxOTk5IDEuOTQ5OTUgTCAtMC41MTk5OSAtMS45NDk5NSBDIDEuMDM5OTggLTEuMDM5OTggMy4yOTMyNCAtMC4yNiA0LjY3OTkgMC4wICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiAgPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSAyNTcuNDk3NCA2MC4yNjE4NyBMIDI1Ny40OTc0IDQ3LjU1OTIyICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4wLC0xLjAsMS4wLDAuMCwyNTcuNDk3NCw0Ny41NTkyMikiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPiA8L2c+PC9zdmc+" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

## FlashAttention 4

FlashAttention-4 \[@dao2024flashattention4\] is the Blackwell (B200) kernel.

Blackwell’s MMA is fully asynchronous, so the pipeline splits into scheduler warps that drive async loads and matmul dispatch and compute warps that run softmax, with one tile’s matmuls overlapping the next tile’s softmax.

> rather than route exponentials through the special-function unit (SFU), it emulates $\exp$ with a polynomial on the FMA units, moving the softmax bottleneck onto the general-purpose compute Blackwell.
>
> It hits $\approx 1605$ TFLOPs in BF16 (71% utilisation), $\approx 2.7\times$ over the Triton kernel.

It currently runs BF16 only; FP4 and 2-CTA matmuls, Blackwell’s headline features, are not yet used.

The design premise is asymmetric hardware scaling

- from H100 to B200, BF16 tensor-core throughput grows $\approx 2.25\times$ (1 to 2.25 PFLOP/s) while per-SM special-function-unit count and shared-memory bandwidth stay flat, so the matmul stops being the bottleneck and the SFU-bound exp (forward) and SMEM-bound data movement (backward) become binding.
- The polynomial-exp trick computes $2^x = 2^n \cdot 2^f$ by Cody–Waite range reduction—$n$ is a free exponent-field shift, $2^f$ on $[0,1)$ is a cubic in Horner form, exactly three FMAs (Sollya coefficients $p_0=1.0,\ p_1\!\approx\!0.6951,\ p_2\!\approx\!0.2276,\ p_3\!\approx\!0.0771$)—run on the abundant FP32$\times$2 FMA pipes _in parallel_ with the hardware `MUFU.EX2`, summing their throughput while matching SFU output for BF16.
- Conditional online-softmax rescaling gates the $O$-accumulator correction on $m_j - m_{j-1} > \tau$
  - accumulating against the stale maximum otherwise, which the Hot Chips talk reports cuts corrections $\approx 10\times$
  - a dedicated correction warpgroup performs the deferred rescale off the critical path.
    - The forward kernel is a deep warp-specialised pipeline on Blackwell’s fully asynchronous `tcgen05.mma` (issued by a single leader thread, `cta_group::1`), with accumulators $S, P, O$ in tensor memory (TMEM, 256 KB/SM);
    - the backward adopts `cta_group::2`, a $256\times256\times16$ tile split across a CTA pair that halves operand-B SMEM traffic and the $dQ$ atomic reductions.
      - It sustains $\approx 1613$ TFLOP/s in BF16 (71% of the 2.25-PFLOP peak), the first attention kernel past a petaflop on a single GPU, $1.1$–$1.3\times$ over cuDNN 9.13 and $2.1$–$2.7\times$ over Triton.
- FP4 is deliberately unused throughout — it would only speed the matmul, which is no longer the constraint.

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\begin{document}\n\\definecolor{salmon}{HTML}{FDB2A2}\n\\definecolor{sage}{HTML}{CDD597}\n\\definecolor{stone}{HTML}{6F6E69}\n\\definecolor{paper}{HTML}{FFFCF0}\n\\begin{tikzpicture}[\n  font=\\small, >=latex,\n  sch/.style={draw=stone, fill=paper, rounded corners=2pt, minimum width=1.9cm, minimum height=0.72cm, align=center, inner sep=2pt},\n  mma/.style={draw=stone, fill=salmon!55, rounded corners=2pt, minimum width=1.9cm, minimum height=0.72cm, align=center, inner sep=2pt},\n  fma/.style={draw=stone, fill=sage!55, rounded corners=2pt, minimum width=1.9cm, minimum height=0.72cm, align=center, inner sep=2pt},\n  a/.style={->, thick, draw=stone}\n]\n  \\path[use as bounding box] (-3.8, 0.3) rectangle (13.4, 5.2);\n\n  \\node[text=stone, anchor=east] at (-0.3, 4.0) {scheduler};\n  \\node[sch] (s0) at (1.2, 4.0) {dispatch};\n  \\node[sch] (s1) at (3.4, 4.0) {dispatch};\n  \\node[sch] (s2) at (5.6, 4.0) {dispatch};\n  \\node[sch] (s3) at (7.8, 4.0) {dispatch};\n\n  \\node[text=stone, anchor=east] at (-0.3, 2.6) {tensor cores};\n  \\node[mma] (m0) at (1.2, 2.6) {MMA $t_0$};\n  \\node[mma] (m1) at (3.4, 2.6) {MMA $t_1$};\n  \\node[mma] (m2) at (5.6, 2.6) {MMA $t_2$};\n  \\node[mma] (m3) at (7.8, 2.6) {MMA $t_3$};\n\n  \\node[text=stone, anchor=east] at (-0.3, 1.2) {CUDA cores};\n  \\node[fma] (f0) at (2.3, 1.2) {softmax $t_0$};\n  \\node[fma] (f1) at (4.5, 1.2) {softmax $t_1$};\n  \\node[fma] (f2) at (6.7, 1.2) {softmax $t_2$};\n\n  \\node[draw=stone, fill=salmon!28, rounded corners=3pt, align=center, minimum width=2.6cm] (poly) at (11.2, 2.6) {poly-exp\\\\on FMA};\n  \\draw[a, dashed] (f2) to[bend right=12] (poly);\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI1MDIuNzIwNHB0IiBoZWlnaHQ9IjEzOS40MTgyN3B0IiB2aWV3Qm94PSItNzIgLTcyIDUwMi43MjA0IDEzOS40MTgyNyI+PGcgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0OS4xODM4MDczNzMwNDY4Niw3NS42ODQxNzM1ODM5ODQzNikgc2NhbGUoMSwtMSkiPjxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZS13aWR0aD0iMC40Ij4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ5LjQwNDcyLDExMC42ODU5NykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDQ5LjE4MzgwNzM3MzA0Njg2LDc1LjY4NDE3MzU4Mzk4NDM2KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNDkuMTgzODA3MzczMDQ2ODYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSIjNmY2ZTY5Ij5zYzwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNTYuNjg2NTQyNTEwOTg2MzE0IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iIzZmNmU2OSI+aGVkdWxlcjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZmY2YwIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZmNmMCI+IDxwYXRoIGQ9IiBNIDU5LjE3MzIzIDEyNC4wNTM5NyBMIDkuMTEzMTcgMTI0LjA1Mzk3IEMgOC4wMDg1OSAxMjQuMDUzOTcgNy4xMTMxNyAxMjMuMTU4NTUgNy4xMTMxNyAxMjIuMDUzOTcgTCA3LjExMzE3IDEwNS41Njc5OCBDIDcuMTEzMTcgMTA0LjQ2MzQgOC4wMDg1OSAxMDMuNTY3OTggOS4xMTMxNyAxMDMuNTY3OTggTCA1OS4xNzMyMyAxMDMuNTY3OTggQyA2MC4yNzc4MiAxMDMuNTY3OTggNjEuMTczMjMgMTA0LjQ2MzQgNjEuMTczMjMgMTA1LjU2Nzk4IEwgNjEuMTczMjMgMTIyLjA1Mzk3IEMgNjEuMTczMjMgMTIzLjE1ODU1IDYwLjI3NzgyIDEyNC4wNTM5NyA1OS4xNzMyMyAxMjQuMDUzOTcgWiBNIDcuMTEzMTcgMTAzLjU2Nzk4ICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE3LjI4Nzc3LDExMS41NjA5NykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDQ5LjE4MzgwNzM3MzA0Njg2LDc1LjY4NDE3MzU4Mzk4NDM2KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNDkuMTgzODA3MzczMDQ2ODYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+ZGlzcGF0YzwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNzcuNzU1ODQ3OTMwOTA4MTkiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+aDwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZmNmMCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZmZjZjAiPiA8cGF0aCBkPSIgTSAxMjEuNzY5MTggMTI0LjA1Mzk3IEwgNzEuNzA5MTIgMTI0LjA1Mzk3IEMgNzAuNjA0NTQgMTI0LjA1Mzk3IDY5LjcwOTEyIDEyMy4xNTg1NSA2OS43MDkxMiAxMjIuMDUzOTcgTCA2OS43MDkxMiAxMDUuNTY3OTggQyA2OS43MDkxMiAxMDQuNDYzNCA3MC42MDQ1NCAxMDMuNTY3OTggNzEuNzA5MTIgMTAzLjU2Nzk4IEwgMTIxLjc2OTE4IDEwMy41Njc5OCBDIDEyMi44NzM3NiAxMDMuNTY3OTggMTIzLjc2OTE4IDEwNC40NjM0IDEyMy43NjkxOCAxMDUuNTY3OTggTCAxMjMuNzY5MTggMTIyLjA1Mzk3IEMgMTIzLjc2OTE4IDEyMy4xNTg1NSAxMjIuODczNzYgMTI0LjA1Mzk3IDEyMS43NjkxOCAxMjQuMDUzOTcgWiBNIDY5LjcwOTEyIDEwMy41Njc5OCAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3OS44ODM3MSwxMTEuNTYwOTcpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg0OS4xODM4MDczNzMwNDY4Niw3NS42ODQxNzM1ODM5ODQzNikgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9IjQ5LjE4MzgwNzM3MzA0Njg2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPmRpc3BhdGM8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9Ijc3Ljc1NTg0NzkzMDkwODE5IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPmg8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZmZjZjAiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZmY2YwIj4gPHBhdGggZD0iIE0gMTg0LjM2NTU1IDEyNC4wNTM5NyBMIDEzNC4zMDU1IDEyNC4wNTM5NyBDIDEzMy4yMDA5MSAxMjQuMDUzOTcgMTMyLjMwNTUgMTIzLjE1ODU1IDEzMi4zMDU1IDEyMi4wNTM5NyBMIDEzMi4zMDU1IDEwNS41Njc5OCBDIDEzMi4zMDU1IDEwNC40NjM0IDEzMy4yMDA5MSAxMDMuNTY3OTggMTM0LjMwNTUgMTAzLjU2Nzk4IEwgMTg0LjM2NTU1IDEwMy41Njc5OCBDIDE4NS40NzAxNCAxMDMuNTY3OTggMTg2LjM2NTU1IDEwNC40NjM0IDE4Ni4zNjU1NSAxMDUuNTY3OTggTCAxODYuMzY1NTUgMTIyLjA1Mzk3IEMgMTg2LjM2NTU1IDEyMy4xNTg1NSAxODUuNDcwMTQgMTI0LjA1Mzk3IDE4NC4zNjU1NSAxMjQuMDUzOTcgWiBNIDEzMi4zMDU1IDEwMy41Njc5OCAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNDIuNDgwMDksMTExLjU2MDk3KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoNDkuMTgzODA3MzczMDQ2ODYsNzUuNjg0MTczNTgzOTg0MzYpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ijc1LjY4NDE3MzU4Mzk4NDM2IiB4PSI0OS4xODM4MDczNzMwNDY4NiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIj5kaXNwYXRjPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ijc1LjY4NDE3MzU4Mzk4NDM2IiB4PSI3Ny43NTU4NDc5MzA5MDgxOSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIj5oPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZmY2YwIj4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZmNmMCI+IDxwYXRoIGQ9IiBNIDI0Ni45NjE1IDEyNC4wNTM5NyBMIDE5Ni45MDE0NCAxMjQuMDUzOTcgQyAxOTUuNzk2ODYgMTI0LjA1Mzk3IDE5NC45MDE0NCAxMjMuMTU4NTUgMTk0LjkwMTQ0IDEyMi4wNTM5NyBMIDE5NC45MDE0NCAxMDUuNTY3OTggQyAxOTQuOTAxNDQgMTA0LjQ2MzQgMTk1Ljc5Njg2IDEwMy41Njc5OCAxOTYuOTAxNDQgMTAzLjU2Nzk4IEwgMjQ2Ljk2MTUgMTAzLjU2Nzk4IEMgMjQ4LjA2NjA5IDEwMy41Njc5OCAyNDguOTYxNSAxMDQuNDYzNCAyNDguOTYxNSAxMDUuNTY3OTggTCAyNDguOTYxNSAxMjIuMDUzOTcgQyAyNDguOTYxNSAxMjMuMTU4NTUgMjQ4LjA2NjA5IDEyNC4wNTM5NyAyNDYuOTYxNSAxMjQuMDUzOTcgWiBNIDE5NC45MDE0NCAxMDMuNTY3OTggICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjA1LjA3NjAzLDExMS41NjA5NykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDQ5LjE4MzgwNzM3MzA0Njg2LDc1LjY4NDE3MzU4Mzk4NDM2KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNDkuMTgzODA3MzczMDQ2ODYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+ZGlzcGF0YzwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNzcuNzU1ODQ3OTMwOTA4MTkiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+aDwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTYwLjAxMTYsNzEuMjA5NDQpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg0OS4xODM4MDczNzMwNDY4Niw3NS42ODQxNzM1ODM5ODQzNikgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9IjQ5LjE4MzgwNzM3MzA0Njg2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iIzZmNmU2OSI+dGVuc29yPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ijc1LjY4NDE3MzU4Mzk4NDM2IiB4PSI3Ny4wMDkzMzU1MTc4ODMyOSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9IiM2ZjZlNjkiPmNvcmVzPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ1Y2MiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkNWNjIj4gPHBhdGggZD0iIE0gNTkuMTczMjMgODQuMjIwMjkgTCA5LjExMzE3IDg0LjIyMDI5IEMgOC4wMDg1OSA4NC4yMjAyOSA3LjExMzE3IDgzLjMyNDg3IDcuMTEzMTcgODIuMjIwMjkgTCA3LjExMzE3IDY1LjczNDMgQyA3LjExMzE3IDY0LjYyOTcxIDguMDA4NTkgNjMuNzM0MyA5LjExMzE3IDYzLjczNDMgTCA1OS4xNzMyMyA2My43MzQzIEMgNjAuMjc3ODIgNjMuNzM0MyA2MS4xNzMyMyA2NC42Mjk3MSA2MS4xNzMyMyA2NS43MzQzIEwgNjEuMTczMjMgODIuMjIwMjkgQyA2MS4xNzMyMyA4My4zMjQ4NyA2MC4yNzc4MiA4NC4yMjAyOSA1OS4xNzMyMyA4NC4yMjAyOSBaIE0gNy4xMTMxNyA2My43MzQzICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2LjkwMjM5LDcxLjQwMjMpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg0OS4xODM4MDczNzMwNDY4Niw3NS42ODQxNzM1ODM5ODQzNikgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9IjQ5LjE4MzgwNzM3MzA0Njg2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPk1NQTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNzYuMTU4NjI0NjQ5MDQ3ODQiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj50PC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ijc2LjY4NDE1ODMyNTE5NTMiIHg9Ijc5LjQ5ODg4MDM4NjM1MjUyIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siPjA8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ1Y2MiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkNWNjIj4gPHBhdGggZD0iIE0gMTIxLjc2OTE4IDg0LjIyMDI5IEwgNzEuNzA5MTIgODQuMjIwMjkgQyA3MC42MDQ1NCA4NC4yMjAyOSA2OS43MDkxMiA4My4zMjQ4NyA2OS43MDkxMiA4Mi4yMjAyOSBMIDY5LjcwOTEyIDY1LjczNDMgQyA2OS43MDkxMiA2NC42Mjk3MSA3MC42MDQ1NCA2My43MzQzIDcxLjcwOTEyIDYzLjczNDMgTCAxMjEuNzY5MTggNjMuNzM0MyBDIDEyMi44NzM3NiA2My43MzQzIDEyMy43NjkxOCA2NC42Mjk3MSAxMjMuNzY5MTggNjUuNzM0MyBMIDEyMy43NjkxOCA4Mi4yMjAyOSBDIDEyMy43NjkxOCA4My4zMjQ4NyAxMjIuODczNzYgODQuMjIwMjkgMTIxLjc2OTE4IDg0LjIyMDI5IFogTSA2OS43MDkxMiA2My43MzQzICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDc5LjQ5ODM0LDcxLjQwMjMpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg0OS4xODM4MDczNzMwNDY4Niw3NS42ODQxNzM1ODM5ODQzNikgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9IjQ5LjE4MzgwNzM3MzA0Njg2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPk1NQTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNzYuMTU4NjI0NjQ5MDQ3ODQiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj50PC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ijc2LjY4NDE1ODMyNTE5NTMiIHg9Ijc5LjQ5ODg4MDM4NjM1MjUyIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siPjE8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ1Y2MiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkNWNjIj4gPHBhdGggZD0iIE0gMTg0LjM2NTU1IDg0LjIyMDI5IEwgMTM0LjMwNTUgODQuMjIwMjkgQyAxMzMuMjAwOTEgODQuMjIwMjkgMTMyLjMwNTUgODMuMzI0ODcgMTMyLjMwNTUgODIuMjIwMjkgTCAxMzIuMzA1NSA2NS43MzQzIEMgMTMyLjMwNTUgNjQuNjI5NzEgMTMzLjIwMDkxIDYzLjczNDMgMTM0LjMwNTUgNjMuNzM0MyBMIDE4NC4zNjU1NSA2My43MzQzIEMgMTg1LjQ3MDE0IDYzLjczNDMgMTg2LjM2NTU1IDY0LjYyOTcxIDE4Ni4zNjU1NSA2NS43MzQzIEwgMTg2LjM2NTU1IDgyLjIyMDI5IEMgMTg2LjM2NTU1IDgzLjMyNDg3IDE4NS40NzAxNCA4NC4yMjAyOSAxODQuMzY1NTUgODQuMjIwMjkgWiBNIDEzMi4zMDU1IDYzLjczNDMgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQyLjA5NDcxLDcxLjQwMjMpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg0OS4xODM4MDczNzMwNDY4Niw3NS42ODQxNzM1ODM5ODQzNikgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9IjQ5LjE4MzgwNzM3MzA0Njg2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPk1NQTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNzYuMTU4NjI0NjQ5MDQ3ODQiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj50PC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ijc2LjY4NDE1ODMyNTE5NTMiIHg9Ijc5LjQ5ODg4MDM4NjM1MjUyIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siPjI8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNmZWQ1Y2MiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmVkNWNjIj4gPHBhdGggZD0iIE0gMjQ2Ljk2MTUgODQuMjIwMjkgTCAxOTYuOTAxNDQgODQuMjIwMjkgQyAxOTUuNzk2ODYgODQuMjIwMjkgMTk0LjkwMTQ0IDgzLjMyNDg3IDE5NC45MDE0NCA4Mi4yMjAyOSBMIDE5NC45MDE0NCA2NS43MzQzIEMgMTk0LjkwMTQ0IDY0LjYyOTcxIDE5NS43OTY4NiA2My43MzQzIDE5Ni45MDE0NCA2My43MzQzIEwgMjQ2Ljk2MTUgNjMuNzM0MyBDIDI0OC4wNjYwOSA2My43MzQzIDI0OC45NjE1IDY0LjYyOTcxIDI0OC45NjE1IDY1LjczNDMgTCAyNDguOTYxNSA4Mi4yMjAyOSBDIDI0OC45NjE1IDgzLjMyNDg3IDI0OC4wNjYwOSA4NC4yMjAyOSAyNDYuOTYxNSA4NC4yMjAyOSBaIE0gMTk0LjkwMTQ0IDYzLjczNDMgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjA0LjY5MDY2LDcxLjQwMjMpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg0OS4xODM4MDczNzMwNDY4Niw3NS42ODQxNzM1ODM5ODQzNikgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9IjQ5LjE4MzgwNzM3MzA0Njg2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPk1NQTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNzYuMTU4NjI0NjQ5MDQ3ODQiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj50PC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ijc2LjY4NDE1ODMyNTE5NTMiIHg9Ijc5LjQ5ODg4MDM4NjM1MjUyIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siPjM8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02Mi42MzAyOCwzMS4wNjgyMikiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDQ5LjE4MzgwNzM3MzA0Njg2LDc1LjY4NDE3MzU4Mzk4NDM2KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNDkuMTgzODA3MzczMDQ2ODYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSIjNmY2ZTY5Ij5DVUQ8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9IjY5LjYwODY3MDIzNDY4MDE2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iIzZmNmU2OSI+QTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNzkuNjI4MDQ2OTg5NDQwOSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9IiM2ZjZlNjkiPmNvcmVzPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNlNGU4YzYiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZTRlOGM2Ij4gPHBhdGggZD0iIE0gOTAuNDcxNDIgNDQuMzg2MiBMIDQwLjQxMTM2IDQ0LjM4NjIgQyAzOS4zMDY3OCA0NC4zODYyIDM4LjQxMTM2IDQzLjQ5MDc4IDM4LjQxMTM2IDQyLjM4NjIgTCAzOC40MTEzNiAyNS45MDAyIEMgMzguNDExMzYgMjQuNzk1NjIgMzkuMzA2NzggMjMuOTAwMiA0MC40MTEzNiAyMy45MDAyIEwgOTAuNDcxNDIgMjMuOTAwMiBDIDkxLjU3NiAyMy45MDAyIDkyLjQ3MTQyIDI0Ljc5NTYyIDkyLjQ3MTQyIDI1LjkwMDIgTCA5Mi40NzE0MiA0Mi4zODYyIEMgOTIuNDcxNDIgNDMuNDkwNzggOTEuNTc2IDQ0LjM4NjIgOTAuNDcxNDIgNDQuMzg2MiBaIE0gMzguNDExMzYgMjMuOTAwMiAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0NC4xOTAxNiwzMS41MTgxOSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDQ5LjE4MzgwNzM3MzA0Njg2LDc1LjY4NDE3MzU4Mzk4NDM2KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNDkuMTgzODA3MzczMDQ2ODYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+c29mdG1heDwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iODQuMTc5NDE2NjU2NDk0MTMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj50PC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ijc2LjY4NDE1ODMyNTE5NTMiIHg9Ijg3LjUxOTY3MjM5Mzc5ODgxIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNiIgZmlsbD0iYmxhY2siPjA8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIGZpbGw9IiNlNGU4YzYiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZTRlOGM2Ij4gPHBhdGggZD0iIE0gMTUzLjA2NzM3IDQ0LjM4NjIgTCAxMDMuMDA3MzEgNDQuMzg2MiBDIDEwMS45MDI3MyA0NC4zODYyIDEwMS4wMDczMSA0My40OTA3OCAxMDEuMDA3MzEgNDIuMzg2MiBMIDEwMS4wMDczMSAyNS45MDAyIEMgMTAxLjAwNzMxIDI0Ljc5NTYyIDEwMS45MDI3MyAyMy45MDAyIDEwMy4wMDczMSAyMy45MDAyIEwgMTUzLjA2NzM3IDIzLjkwMDIgQyAxNTQuMTcxOTUgMjMuOTAwMiAxNTUuMDY3MzcgMjQuNzk1NjIgMTU1LjA2NzM3IDI1LjkwMDIgTCAxNTUuMDY3MzcgNDIuMzg2MiBDIDE1NS4wNjczNyA0My40OTA3OCAxNTQuMTcxOTUgNDQuMzg2MiAxNTMuMDY3MzcgNDQuMzg2MiBaIE0gMTAxLjAwNzMxIDIzLjkwMDIgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTA2Ljc4NjEsMzEuNTE4MTkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg0OS4xODM4MDczNzMwNDY4Niw3NS42ODQxNzM1ODM5ODQzNikgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9IjQ5LjE4MzgwNzM3MzA0Njg2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPnNvZnRtYXg8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9Ijg0LjE3OTQxNjY1NjQ5NDEzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+dDwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3Ni42ODQxNTgzMjUxOTUzIiB4PSI4Ny41MTk2NzIzOTM3OTg4MSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjYiIGZpbGw9ImJsYWNrIj4xPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZTRlOGM2Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2U0ZThjNiI+IDxwYXRoIGQ9IiBNIDIxNS42NjMzMSA0NC4zODYyIEwgMTY1LjYwMzI2IDQ0LjM4NjIgQyAxNjQuNDk4NjcgNDQuMzg2MiAxNjMuNjAzMjYgNDMuNDkwNzggMTYzLjYwMzI2IDQyLjM4NjIgTCAxNjMuNjAzMjYgMjUuOTAwMiBDIDE2My42MDMyNiAyNC43OTU2MiAxNjQuNDk4NjcgMjMuOTAwMiAxNjUuNjAzMjYgMjMuOTAwMiBMIDIxNS42NjMzMSAyMy45MDAyIEMgMjE2Ljc2NzkgMjMuOTAwMiAyMTcuNjYzMzEgMjQuNzk1NjIgMjE3LjY2MzMxIDI1LjkwMDIgTCAyMTcuNjYzMzEgNDIuMzg2MiBDIDIxNy42NjMzMSA0My40OTA3OCAyMTYuNzY3OSA0NC4zODYyIDIxNS42NjMzMSA0NC4zODYyIFogTSAxNjMuNjAzMjYgMjMuOTAwMiAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjkuMzgyMDUsMzEuNTE4MTkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg0OS4xODM4MDczNzMwNDY4Niw3NS42ODQxNzM1ODM5ODQzNikgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9IjQ5LjE4MzgwNzM3MzA0Njg2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPnNvZnRtYXg8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9Ijg0LjE3OTQxNjY1NjQ5NDEzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+dDwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3Ni42ODQxNTgzMjUxOTUzIiB4PSI4Ny41MTk2NzIzOTM3OTg4MSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjYiIGZpbGw9ImJsYWNrIj4yPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8ZyBmaWxsPSIjZmZlYWU1Ij4gPGcgc3Ryb2tlPSIjNmY2ZTY5Ij4gPGcgZmlsbD0iI2ZmZWFlNSI+IDxwYXRoIGQ9IiBNIDM1Mi42NTkzIDg1LjkzNTI3IEwgMjg0LjY4MTk4IDg1LjkzNTI3IEMgMjgzLjAyNTEgODUuOTM1MjcgMjgxLjY4MTk4IDg0LjU5MjE1IDI4MS42ODE5OCA4Mi45MzUyNyBMIDI4MS42ODE5OCA2NS4wMTkzMiBDIDI4MS42ODE5OCA2My4zNjI0NCAyODMuMDI1MSA2Mi4wMTkzMiAyODQuNjgxOTggNjIuMDE5MzIgTCAzNTIuNjU5MyA2Mi4wMTkzMiBDIDM1NC4zMTYxOCA2Mi4wMTkzMiAzNTUuNjU5MyA2My4zNjI0NCAzNTUuNjU5MyA2NS4wMTkzMiBMIDM1NS42NTkzIDgyLjkzNTI3IEMgMzU1LjY1OTMgODQuNTkyMTUgMzU0LjMxNjE4IDg1LjkzNTI3IDM1Mi42NTkzIDg1LjkzNTI3IFogTSAyODEuNjgxOTggNjIuMDE5MzIgICI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAxLjMyNTI3LDY1LjM1MjMpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg0OS4xODM4MDczNzMwNDY4Niw3NS42ODQxNzM1ODM5ODQzNikgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNjQuNjg0MTczNTgzOTg0MzYiIHg9IjQ5LjE4MzgwNzM3MzA0Njg2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPnA8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNjQuNjg0MTczNTgzOTg0MzYiIHg9IjU0LjU3OTYwNTEwMjUzOTA1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iOSIgZmlsbD0iYmxhY2siPm9seS1leHA8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iNzUuNjg0MTczNTgzOTg0MzYiIHg9IjQ5LjM4MDAwNDg4MjgxMjQ4NiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjkiIGZpbGw9ImJsYWNrIj5vbjwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSI3NS42ODQxNzM1ODM5ODQzNiIgeD0iNjIuMjI3MTQyMzMzOTg0MzYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI5IiBmaWxsPSJibGFjayI+Rk1BPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxnIHN0cm9rZS1kYXNoYXJyYXk9IjMuMCwzLjAiIHN0cm9rZS1kYXNob2Zmc2V0PSIwLjAiPiA8cGF0aCBkPSIgTSAyMTcuODYzMzEgMzYuNjU1NyBDIDI1MC4yMDc0MyAzOS44NDk5MyAyNjguNzQ2NDYgNDUuNzQ1NTEgMjkyLjkyNzY5IDU5LjUwNDk0ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44NjkxLDAuNDk0NTQsLTAuNDk0NTQsMC44NjkxLDI5Mi45Mjc2OSw1OS41MDQ5MykiPiA8cGF0aCBkPSIgTSA0LjY3OTkgMC4wIEMgMy4yOTMyNCAwLjI2IDEuMDM5OTggMS4wMzk5OCAtMC41MTk5OSAxLjk0OTk1IEwgLTAuNTE5OTkgLTEuOTQ5OTUgQyAxLjAzOTk4IC0xLjAzOTk4IDMuMjkzMjQgLTAuMjYgNC42Nzk5IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gIDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPiA8L2c+IDwvZz48L3N2Zz4=" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

## Throughput across generations

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\begin{document}\n\\definecolor{salmon}{HTML}{FDB2A2}\n\\definecolor{sage}{HTML}{CDD597}\n\\definecolor{stone}{HTML}{6F6E69}\n\\definecolor{paper}{HTML}{FFFCF0}\n\\begin{tikzpicture}[font=\\small, >=latex]\n  \\path[use as bounding box] (-1.7, -1.5) rectangle (9.0, 6.6);\n  \\draw[draw=stone] (0,0) -- (0,5.9);\n  \\draw[draw=stone] (0,0) -- (8.7,0);\n  \\node[font=\\scriptsize, text=stone, rotate=90, anchor=south] at (-1.15, 2.95) {TFLOP/s};\n  \\draw[draw=stone!45] (-0.08,1.705) -- (0,1.705); \\node[font=\\scriptsize, text=stone, anchor=east] at (-0.14,1.705) {500};\n  \\draw[draw=stone!45] (-0.08,3.41) -- (0,3.41); \\node[font=\\scriptsize, text=stone, anchor=east] at (-0.14,3.41) {1000};\n  \\draw[draw=stone!45] (-0.08,5.115) -- (0,5.115); \\node[font=\\scriptsize, text=stone, anchor=east] at (-0.14,5.115) {1500};\n  \\node[font=\\scriptsize, text=stone, anchor=east] at (-0.14,0) {0};\n  \\fill[sage!70, draw=stone] (0.35,0) rectangle (1.45,0.341);\n  \\fill[sage!70, draw=stone] (2.05,0) rectangle (3.15,0.784);\n  \\fill[salmon!65, draw=stone] (3.75,0) rectangle (4.85,2.524);\n  \\fill[salmon!65, draw=stone] (5.45,0) rectangle (6.55,4.092);\n  \\fill[stone!40, draw=stone] (7.15,0) rectangle (8.25,5.5);\n  \\node[font=\\scriptsize, text=stone] at (0.9,0.62) {100};\n  \\node[font=\\scriptsize, text=stone] at (2.6,1.06) {230};\n  \\node[font=\\scriptsize, text=stone] at (4.3,2.80) {740};\n  \\node[font=\\scriptsize, text=stone] at (6.0,4.37) {1200};\n  \\node[font=\\scriptsize, text=stone] at (7.7,5.78) {1613};\n  \\node[font=\\scriptsize, text=stone] at (0.9,-0.32) {FA-1};\n  \\node[font=\\scriptsize, text=stone] at (2.6,-0.32) {FA-2};\n  \\node[font=\\scriptsize, text=stone] at (4.3,-0.32) {FA-3};\n  \\node[font=\\scriptsize, text=stone] at (6.0,-0.32) {FA-3};\n  \\node[font=\\scriptsize, text=stone] at (7.7,-0.32) {FA-4};\n  \\node[font=\\scriptsize, text=stone] at (0.9,-0.72) {FP16};\n  \\node[font=\\scriptsize, text=stone] at (2.6,-0.72) {FP16};\n  \\node[font=\\scriptsize, text=stone] at (4.3,-0.72) {FP16};\n  \\node[font=\\scriptsize, text=stone] at (6.0,-0.72) {FP8};\n  \\node[font=\\scriptsize, text=stone] at (7.7,-0.72) {BF16};\n  \\fill[sage!70, draw=stone] (0.2,5.6) rectangle (0.5,5.85); \\node[font=\\scriptsize, text=stone, anchor=west] at (0.55,5.72) {A100};\n  \\fill[salmon!65, draw=stone] (1.7,5.6) rectangle (2.0,5.85); \\node[font=\\scriptsize, text=stone, anchor=west] at (2.05,5.72) {H100};\n  \\fill[stone!40, draw=stone] (3.2,5.6) rectangle (3.5,5.85); \\node[font=\\scriptsize, text=stone, anchor=west] at (3.55,5.72) {B200};\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIzMTcuNzc3NTdwdCIgaGVpZ2h0PSIyMzAuNDY3MzhwdCIgdmlld0JveD0iLTcyIC03MiAzMTcuNzc3NTcgMjMwLjQ2NzM4Ij48ZyBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMC41NjcxMjM0MTMwODU5MzYsMTE1LjUxODI2NDc3MDUwNzc4KSBzY2FsZSgxLC0xKSI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlLXdpZHRoPSIwLjQiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSAwLjAgMC4wIEwgMC4wIDE2Ny44NzEgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDAuMCAwLjAgTCAyNDcuNTM4NzcgMC4wICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjAsMS4wLC0xLjAsMC4wLC0zOC4wMDM0NSw2Ni42OTUxNikiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0xMC41NjcxMjM0MTMwODU5MzYsMTE1LjUxODI2NDc3MDUwNzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMTUuNTE4MjY0NzcwNTA3NzgiIHg9Ii0xMC41NjcxMjM0MTMwODU5MzYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij5URkxPUC9zPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHN0cm9rZT0iI2JlYmViYyI+IDxwYXRoIGQ9IiBNIC0yLjI3NjI2IDQ4LjUxMTk4IEwgMC4wIDQ4LjUxMTk4ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTkuNDc0Nyw0Ni4yNTY0MikiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0xMC41NjcxMjM0MTMwODU5MzYsMTE1LjUxODI2NDc3MDUwNzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMTUuNTE4MjY0NzcwNTA3NzgiIHg9Ii0xMC41NjcxMjM0MTMwODU5MzYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij41MDA8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgc3Ryb2tlPSIjYmViZWJjIj4gPHBhdGggZD0iIE0gLTIuMjc2MjYgOTcuMDIzOTYgTCAwLjAgOTcuMDIzOTYgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMy40NjA4NSw5NC43Njg0KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTEwLjU2NzEyMzQxMzA4NTkzNiwxMTUuNTE4MjY0NzcwNTA3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzZmNmU2OSI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjExNS41MTgyNjQ3NzA1MDc3OCIgeD0iLTEwLjU2NzEyMzQxMzA4NTkzNiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9IiM2ZjZlNjkiPjEwMDA8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgc3Ryb2tlPSIjYmViZWJjIj4gPHBhdGggZD0iIE0gLTIuMjc2MjYgMTQ1LjUzNTkzIEwgMC4wIDE0NS41MzU5MyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzLjQ2MDg1LDE0My4yODAzOCkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0xMC41NjcxMjM0MTMwODU5MzYsMTE1LjUxODI2NDc3MDUwNzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMTUuNTE4MjY0NzcwNTA3NzgiIHg9Ii0xMC41NjcxMjM0MTMwODU5MzYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij4xNTAwPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMS41MDI0NCwtMi4yNTU1NSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0xMC41NjcxMjM0MTMwODU5MzYsMTE1LjUxODI2NDc3MDUwNzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMTUuNTE4MjY0NzcwNTA3NzgiIHg9Ii0xMC41NjcxMjM0MTMwODU5MzYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij4wPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHN0cm9rZT0iI2RjZTJiNiIgZmlsbD0iI2RjZTJiNiI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDkuOTU4NjMgMC4wIE0gOS45NTg2MyAwLjAgTCA5Ljk1ODYzIDkuNzAyNDcgTCA0MS4yNTYzOCA5LjcwMjQ3IEwgNDEuMjU2MzggMC4wIFogTSA0MS4yNTYzOCA5LjcwMjQ3ICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iI2RjZTJiNiIgZmlsbD0iI2RjZTJiNiI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDU4LjMyODIgMC4wIE0gNTguMzI4MiAwLjAgTCA1OC4zMjgyIDIyLjMwNjg0IEwgODkuNjI1OTYgMjIuMzA2ODQgTCA4OS42MjU5NiAwLjAgWiBNIDg5LjYyNTk2IDIyLjMwNjg0ICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iI2ZlY2RjMyIgZmlsbD0iI2ZlY2RjMyI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDEwNi42OTc3OCAwLjAgTSAxMDYuNjk3NzggMC4wIEwgMTA2LjY5Nzc4IDcxLjgxNDc3IEwgMTM3Ljk5NTk3IDcxLjgxNDc3IEwgMTM3Ljk5NTk3IDAuMCBaIE0gMTM3Ljk5NTk3IDcxLjgxNDc3ICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iI2ZlY2RjMyIgZmlsbD0iI2ZlY2RjMyI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDE1NS4wNjczNSAwLjAgTSAxNTUuMDY3MzUgMC4wIEwgMTU1LjA2NzM1IDExNi40Mjg0OCBMIDE4Ni4zNjU1NSAxMTYuNDI4NDggTCAxODYuMzY1NTUgMC4wIFogTSAxODYuMzY1NTUgMTE2LjQyODQ4ICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHN0cm9rZT0iI2M2YzVjMyIgZmlsbD0iI2M2YzVjMyI+IDxnIHN0cm9rZT0iIzZmNmU2OSI+IDxwYXRoIGQ9IiBNIDIwMy40MzY5NCAwLjAgTSAyMDMuNDM2OTQgMC4wIEwgMjAzLjQzNjk0IDE1Ni40OTAwOCBMIDIzNC43MzUxMiAxNTYuNDkwMDggTCAyMzQuNzM1MTIgMC4wIFogTSAyMzQuNzM1MTIgMTU2LjQ5MDA4ICAiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE5LjYyODEsMTUuMzg1KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTEwLjU2NzEyMzQxMzA4NTkzNiwxMTUuNTE4MjY0NzcwNTA3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzZmNmU2OSI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjExNS41MTgyNjQ3NzA1MDc3OCIgeD0iLTEwLjU2NzEyMzQxMzA4NTkzNiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9IiM2ZjZlNjkiPjEwMDwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2Ny45OTgxMSwyNy45MDQyOCkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0xMC41NjcxMjM0MTMwODU5MzYsMTE1LjUxODI2NDc3MDUwNzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMTUuNTE4MjY0NzcwNTA3NzgiIHg9Ii0xMC41NjcxMjM0MTMwODU5MzYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij4yMzA8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTE2LjM2NzY5LDc3LjQxMjIpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMTAuNTY3MTIzNDEzMDg1OTM2LDExNS41MTgyNjQ3NzA1MDc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTE1LjUxODI2NDc3MDUwNzc4IiB4PSItMTAuNTY3MTIzNDEzMDg1OTM2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSI+NzQwPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2Mi43NDQyLDEyMi4wODI4KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTEwLjU2NzEyMzQxMzA4NTkzNiwxMTUuNTE4MjY0NzcwNTA3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzZmNmU2OSI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjExNS41MTgyNjQ3NzA1MDc3OCIgeD0iLTEwLjU2NzEyMzQxMzA4NTkzNiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9IiM2ZjZlNjkiPjEyMDA8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjExLjExMzc3LDE2Mi4yMDEyNikiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0xMC41NjcxMjM0MTMwODU5MzYsMTE1LjUxODI2NDc3MDUwNzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMTUuNTE4MjY0NzcwNTA3NzgiIHg9Ii0xMC41NjcxMjM0MTMwODU5MzYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij4xNjEzPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE3LjE2NjI4LC0xMS40OTY3MykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0xMC41NjcxMjM0MTMwODU5MzYsMTE1LjUxODI2NDc3MDUwNzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMTUuNTE4MjY0NzcwNTA3NzgiIHg9Ii0xMC41NjcxMjM0MTMwODU5MzYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij5GPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjExNS41MTgyNjQ3NzA1MDc3OCIgeD0iLTYuMjY4NDgwMzAwOTAzMzE4NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9IiM2ZjZlNjkiPkEtMTwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2NS41MzYyOSwtMTEuNDk2NzMpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMTAuNTY3MTIzNDEzMDg1OTM2LDExNS41MTgyNjQ3NzA1MDc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTE1LjUxODI2NDc3MDUwNzc4IiB4PSItMTAuNTY3MTIzNDEzMDg1OTM2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSI+RjwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMTUuNTE4MjY0NzcwNTA3NzgiIHg9Ii02LjI2ODQ4MDMwMDkwMzMxODUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij5BLTI8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEzLjkwNTg3LC0xMS40OTY3MykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0xMC41NjcxMjM0MTMwODU5MzYsMTE1LjUxODI2NDc3MDUwNzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMTUuNTE4MjY0NzcwNTA3NzgiIHg9Ii0xMC41NjcxMjM0MTMwODU5MzYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij5GPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjExNS41MTgyNjQ3NzA1MDc3OCIgeD0iLTYuMjY4NDgwMzAwOTAzMzE4NSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9IiM2ZjZlNjkiPkEtMzwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjIuMjc1NDUsLTExLjQ5NjczKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTEwLjU2NzEyMzQxMzA4NTkzNiwxMTUuNTE4MjY0NzcwNTA3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzZmNmU2OSI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjExNS41MTgyNjQ3NzA1MDc3OCIgeD0iLTEwLjU2NzEyMzQxMzA4NTkzNiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9IiM2ZjZlNjkiPkY8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTE1LjUxODI2NDc3MDUwNzc4IiB4PSItNi4yNjg0ODAzMDA5MDMzMTg1IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSI+QS0zPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxMC42NDUwMiwtMTEuNDk2NzMpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMTAuNTY3MTIzNDEzMDg1OTM2LDExNS41MTgyNjQ3NzA1MDc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTE1LjUxODI2NDc3MDUwNzc4IiB4PSItMTAuNTY3MTIzNDEzMDg1OTM2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSI+RjwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMTUuNTE4MjY0NzcwNTA3NzgiIHg9Ii02LjI2ODQ4MDMwMDkwMzMxODUiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij5BLTQ8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTYuMzUzNzgsLTIyLjg3NzY3KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTEwLjU2NzEyMzQxMzA4NTkzNiwxMTUuNTE4MjY0NzcwNTA3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzZmNmU2OSI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjExNS41MTgyNjQ3NzA1MDc3OCIgeD0iLTEwLjU2NzEyMzQxMzA4NTkzNiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9IiM2ZjZlNjkiPkZQMTY8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjQuNzIzNzksLTIyLjg3NzY3KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTEwLjU2NzEyMzQxMzA4NTkzNiwxMTUuNTE4MjY0NzcwNTA3NzgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzZmNmU2OSI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjExNS41MTgyNjQ3NzA1MDc3OCIgeD0iLTEwLjU2NzEyMzQxMzA4NTkzNiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjciIGZpbGw9IiM2ZjZlNjkiPkZQMTY8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEzLjA5MzM3LC0yMi44Nzc2NykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0xMC41NjcxMjM0MTMwODU5MzYsMTE1LjUxODI2NDc3MDUwNzc4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiM2ZjZlNjkiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIxMTUuNTE4MjY0NzcwNTA3NzgiIHg9Ii0xMC41NjcxMjM0MTMwODU5MzYiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSI3IiBmaWxsPSIjNmY2ZTY5Ij5GUDE2PC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2My40NTYwMiwtMjIuODc3NjcpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMTAuNTY3MTIzNDEzMDg1OTM2LDExNS41MTgyNjQ3NzA1MDc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTE1LjUxODI2NDc3MDUwNzc4IiB4PSItMTAuNTY3MTIzNDEzMDg1OTM2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSI+RlA4PC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwOS43MjQ4OCwtMjIuODc3NjcpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMTAuNTY3MTIzNDEzMDg1OTM2LDExNS41MTgyNjQ3NzA1MDc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTE1LjUxODI2NDc3MDUwNzc4IiB4PSItMTAuNTY3MTIzNDEzMDg1OTM2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSI+QkYxNjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyBzdHJva2U9IiNkY2UyYjYiIGZpbGw9IiNkY2UyYjYiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSA1LjY5MDQ2IDE1OS4zMzU1MyBNIDUuNjkwNDYgMTU5LjMzNTUzIEwgNS42OTA0NiAxNjYuNDQ4NzIgTCAxNC4yMjYzNiAxNjYuNDQ4NzIgTCAxNC4yMjYzNiAxNTkuMzM1NTMgWiBNIDE0LjIyNjM2IDE2Ni40NDg3MiAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxOS4xODIwNywxNjAuMzU4MDYpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMTAuNTY3MTIzNDEzMDg1OTM2LDExNS41MTgyNjQ3NzA1MDc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTE1LjUxODI2NDc3MDUwNzc4IiB4PSItMTAuNTY3MTIzNDEzMDg1OTM2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSI+QTEwMDwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyBzdHJva2U9IiNmZWNkYzMiIGZpbGw9IiNmZWNkYzMiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSA0OC4zNjk1NyAxNTkuMzM1NTMgTSA0OC4zNjk1NyAxNTkuMzM1NTMgTCA0OC4zNjk1NyAxNjYuNDQ4NzIgTCA1Ni45MDU0OSAxNjYuNDQ4NzIgTCA1Ni45MDU0OSAxNTkuMzM1NTMgWiBNIDU2LjkwNTQ5IDE2Ni40NDg3MiAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MS44NjExOCwxNjAuMzU4MDYpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMTAuNTY3MTIzNDEzMDg1OTM2LDExNS41MTgyNjQ3NzA1MDc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTE1LjUxODI2NDc3MDUwNzc4IiB4PSItMTAuNTY3MTIzNDEzMDg1OTM2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSI+SDEwMDwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyBzdHJva2U9IiNjNmM1YzMiIGZpbGw9IiNjNmM1YzMiPiA8ZyBzdHJva2U9IiM2ZjZlNjkiPiA8cGF0aCBkPSIgTSA5MS4wNDg2OSAxNTkuMzM1NTMgTSA5MS4wNDg2OSAxNTkuMzM1NTMgTCA5MS4wNDg2OSAxNjYuNDQ4NzIgTCA5OS41ODQ2IDE2Ni40NDg3MiBMIDk5LjU4NDYgMTU5LjMzNTUzIFogTSA5OS41ODQ2IDE2Ni40NDg3MiAgIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDQuNTQwMywxNjAuMzU4MDYpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMTAuNTY3MTIzNDEzMDg1OTM2LDExNS41MTgyNjQ3NzA1MDc3OCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjNmY2ZTY5Ij4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMTE1LjUxODI2NDc3MDUwNzc4IiB4PSItMTAuNTY3MTIzNDEzMDg1OTM2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iNyIgZmlsbD0iIzZmNmU2OSI+QjIwMDwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

