<?xml version="1.0" encoding="UTF-8" ?>
    <feed xmlns="http://www.w3.org/2005/Atom">
      <title>Julian Bauer</title>
      <subtitle>Julian Bauer's home on the internet. </subtitle>
      <link href="https://julianlbauer.com/atom.xml" rel="self" />
      <link href="https://julianlbauer.com" />
      <id>https://julianlbauer.com/</id>
      <updated>2026-10-07T00:00:00.000Z</updated>
      <author>
        <name>Julian Bauer</name>
      </author>
      
    <entry>
      <title><![CDATA[Converting all my Markdown notes to Typst]]></title>
      <link href="https://julianlbauer.com/writing/markdown-to-typst" />
      <id>https://julianlbauer.com/writing/markdown-to-typst</id>
      <published>2026-10-07T00:00:00.000Z</published>
      <updated>2026-10-07T00:00:00.000Z</updated>
      <summary><![CDATA[Using Pandoc to upgrade more than 400 notes.]]></summary>
      <content type="html"><![CDATA[<p>After the vim-inspired modal editor <a href="https://helix-editor.com/">Helix</a> conquered my code writing habits this summer, it demanded complete loyalty. That meant that my homemade note-taking app, <a href="https://github.com/Ashwagandhae/brot">brot</a>, built with the <a href="https://tiptap.dev/">Tiptap</a> what-you-see-is-what-you-get Markdown editor, needed surgical alteration to meet my new standards.</p><p>I initially tried making a modal Markdown editor to allow myself to edit my notes without changing their representation. However, looking at the strange corners of Markdown syntax I had to handle, with millions<sup><a id="footnote-return-1" href="#footnote-1" role="doc-noteref" aria-label="footnote 1">1</a></sup> of redundant ways to make bullet points and strange alternative heading types<sup><a id="footnote-return-2" href="#footnote-2" role="doc-noteref" aria-label="footnote 2">2</a></sup> , convinced me to search for <a href="https://karl-voit.at/2025/08/17/Markdown-disaster/">articles to confirm my growing Markdown disapproval</a>.</p><p>With my dislike of Markdown now supported by credible sources, I decided to convert all my 400 notes to <a href="https://typst.app/">Typst</a>, the LaTeX replacement with Markdown-like syntax. I will describe that conversion process in this post to help anyone else converting many Markdown documents.</p><h2>Setup</h2><p>I used the universal document converter <a href="https://pandoc.org/">Pandoc</a> to automate the conversion. To minimize the cost of mistakes, I wrote a Python script that would run each command-line tool, and save the output in a folder separate from my actual notes folder. This separation protected my actual notes from modification before I became certain about my conversion process.</p><p>The main part of my Python script initially looked like this:</p><p>main.py:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#ABB2BF">old_dir </span><span style="color:#56B6C2">=</span><span style="color:#61AFEF"> Path</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"./old"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">new_dir </span><span style="color:#56B6C2">=</span><span style="color:#61AFEF"> Path</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"./new"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">if</span><span style="color:#ABB2BF"> new_dir.</span><span style="color:#61AFEF">exists</span><span style="color:#ABB2BF">():</span></span>
<span class="line"><span style="color:#ABB2BF">    shutil.</span><span style="color:#61AFEF">rmtree</span><span style="color:#ABB2BF">(new_dir)</span></span>
<span class="line"><span style="color:#56B6C2">    print</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"cleared new_dir"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">new_dir.</span><span style="color:#61AFEF">mkdir</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75;font-style:italic">parents</span><span style="color:#56B6C2">=</span><span style="color:#D19A66">True</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75;font-style:italic">exist_ok</span><span style="color:#56B6C2">=</span><span style="color:#D19A66">True</span><span style="color:#ABB2BF">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">md_names </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> [</span></span>
<span class="line"><span style="color:#98C379">    "md_to_typ_test.md"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#98C379">    "-hackerman--brot_rich_content_test.md"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#ABB2BF">]</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">for</span><span style="color:#ABB2BF"> md_name </span><span style="color:#C678DD">in</span><span style="color:#ABB2BF"> md_names:</span></span>
<span class="line"><span style="color:#56B6C2">    print</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"converting"</span><span style="color:#ABB2BF">, md_name)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">    md_file </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> old_dir </span><span style="color:#56B6C2">/</span><span style="color:#ABB2BF"> md_name</span></span>
<span class="line"><span style="color:#ABB2BF">    content </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> md_file.</span><span style="color:#61AFEF">read_text</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75;font-style:italic">encoding</span><span style="color:#56B6C2">=</span><span style="color:#98C379">"utf-8"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">    modified_content </span><span style="color:#56B6C2">=</span><span style="color:#61AFEF"> process_content</span><span style="color:#ABB2BF">(content)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">    typ_file </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> new_dir </span><span style="color:#56B6C2">/</span><span style="color:#ABB2BF"> md_file.</span><span style="color:#61AFEF">with_suffix</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">".typ"</span><span style="color:#ABB2BF">).name</span></span>
<span class="line"><span style="color:#ABB2BF">    typ_file.</span><span style="color:#61AFEF">write_text</span><span style="color:#ABB2BF">(modified_content, </span><span style="color:#E06C75;font-style:italic">encoding</span><span style="color:#56B6C2">=</span><span style="color:#98C379">"utf-8"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#56B6C2">    print</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"compiling with typst"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">    path </span><span style="color:#56B6C2">=</span><span style="color:#56B6C2"> str</span><span style="color:#ABB2BF">(typ_file)</span></span>
<span class="line"><span style="color:#61AFEF">    call_typst</span><span style="color:#ABB2BF">(path)</span></span>
<span class="line"><span style="color:#61AFEF">    call_typstyle</span><span style="color:#ABB2BF">(path)</span></span></code></pre></div><p>I started by only converting two test Markdown files containing examples of richly formatted content. For each of those files, I first used Pandoc to convert the content to Typst, ensured that the results compiled by calling Typst, and finally fixed formatting with the formatter <a href="https://github.com/typstyle-rs/typstyle">typstyle</a>.</p><p>This infrastructure allowed me to quickly iterate on my conversion process, giving me the ability to easily change arguments for all command-line tools and quickly see the conversion results.</p><h2>Results</h2><p>After much iteration, I created a process that worked correctly for almost all my notes.</p><h3 id="preprocessing">Preprocessing</h3><p>Tiptap denotes underlines with the nonstandard <code class="shiki-inline"><span>++</span></code> syntax, for example <code class="shiki-inline"><span style="color:#ABB2BF">++I am underlined++</span></code>. I used an evil RegEx to solve this problem, using python to replace these markers with the <em>bracketed spans</em> notation that Pandoc understands.</p><p>The below regex replaces text like <code class="shiki-inline"><span style="color:#ABB2BF">++hello world++</span></code> with <code class="shiki-inline"><span style="color:#ABB2BF">[hello world]{.underline}</span></code>.</p><p>main.py:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">def</span><span style="color:#61AFEF"> preprocess_markdown</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66;font-style:italic">md_text</span><span style="color:#ABB2BF">: </span><span style="color:#56B6C2">str</span><span style="color:#ABB2BF">) -&gt; </span><span style="color:#56B6C2">str</span><span style="color:#ABB2BF">:</span></span>
<span class="line"><span style="color:#ABB2BF">    md_text </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> re.</span><span style="color:#61AFEF">sub</span><span style="color:#ABB2BF">(</span><span style="color:#C678DD">r</span><span style="color:#E06C75">"</span><span style="color:#ABB2BF">(?&lt;!</span><span style="color:#56B6C2">\\</span><span style="color:#ABB2BF">)</span><span style="color:#56B6C2">\+\+</span><span style="color:#D19A66">(</span><span style="color:#E06C75">.</span><span style="color:#D19A66">+?)</span><span style="color:#ABB2BF">(?&lt;!</span><span style="color:#56B6C2">\\</span><span style="color:#ABB2BF">)</span><span style="color:#56B6C2">\+\+</span><span style="color:#E06C75">"</span><span style="color:#ABB2BF">, </span><span style="color:#C678DD">r</span><span style="color:#E06C75">"</span><span style="color:#D19A66">[</span><span style="color:#56B6C2">\1</span><span style="color:#D19A66">]</span><span style="color:#E06C75">{.underline}"</span><span style="color:#ABB2BF">, md_text)</span></span>
<span class="line"><span style="color:#C678DD">    return</span><span style="color:#ABB2BF"> md_text</span></span></code></pre></div><h3>Pandoc command</h3><p>My final Pandoc command looked like this:</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">pandoc</span></span>
<span class="line"><span style="color:#61AFEF">  -f</span><span style="color:#98C379"> gfm-gfm_auto_identifiers+bracketed_spans+smart-autolink_bare_uris</span></span>
<span class="line"><span style="color:#61AFEF">  -t</span><span style="color:#98C379"> typst</span></span>
<span class="line"><span style="color:#E06C75">  --lua-filter</span><span style="color:#56B6C2">=</span><span style="color:#98C379">filter.lua</span></span></code></pre></div><p>I converted from Github-Flavored Markdown (specified by setting <code class="shiki-inline"><span>-f</span></code> to <code class="shiki-inline"><span>gfm</span></code>), because it better fit Tiptap’s Markdown export. I also configured some Pandoc extensions on GFM, and added a Lua filter to fix edge cases.</p><h4>Pandoc extensions</h4><ul><li>I disabled the <code class="shiki-inline"><span>gfm_auto_identifiers</span></code> <a href="https://pandoc.org/MANUAL.html#extensions">Pandoc extension</a> by appending <code class="shiki-inline"><span>‑gfm_auto_identifiers</span></code> (you can read this syntax as “subtract <code class="shiki-inline"><span>gfm_auto_identifiers</span></code>”) so that each heading wouldn’t have an associated <a href="https://typst.app/docs/reference/foundations/label/">Typst label</a>.</li><li>I enabled the <code class="shiki-inline"><span>bracketed_spans</span></code> extension to handle the underlines I created in <a href="#preprocessing">preprocessing</a>.</li><li>I enabled the <code class="shiki-inline"><span>smart</span></code> extension so that Pandoc would correctly interpret quotes matching curly quotes, and not escape them when converting to Typst, preventing the problem of <code class="shiki-inline"><span style="color:#ABB2BF">"hello world"</span></code> turning into <code class="shiki-inline"><span style="color:#56B6C2">\"</span><span style="color:#ABB2BF">hello world</span><span style="color:#56B6C2">\"</span></code>.</li><li>I disabled the <code class="shiki-inline"><span>autolink_bare_uris</span></code> extension to pass plain links to Typst as plain text.</li></ul><h4>Lua filter</h4><p>I also used a Pandoc <a href="https://pandoc.org/lua-filters.html">Lua filter</a> by specifying the <code class="shiki-inline"><span>--lua-filter</span></code> option, allowing me to make precise adjustments by writing arbitrary Lua code with access to Pandoc’s internal representation of elements.</p><p>The Lua filter I wrote grew into complexity to shoulder the heap of edge cases in the large number of notes I’d written. It consists of two passes, <code class="shiki-inline"><span>convert_html</span></code> and <code class="shiki-inline"><span>modify_elements</span></code>. Pandoc knows the order to run the filters because Lua tables are ordered by insertion.</p><p>filter.lua:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">local</span><span style="color:#E06C75"> convert_html</span><span style="color:#ABB2BF"> = {</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  -- ...</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">local</span><span style="color:#E06C75"> modify_elements</span><span style="color:#ABB2BF"> = {</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  -- ...</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">return</span><span style="color:#ABB2BF"> { </span><span style="color:#E06C75">convert_html</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">modify_elements</span><span style="color:#ABB2BF"> }</span></span></code></pre></div><p>The <code class="shiki-inline"><span>convert_html</span></code> filter consists of only one selector which finds HTML tables and forces Pandoc to parse them as actual tables.</p><p>filter.lua:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">local</span><span style="color:#E06C75"> convert_html</span><span style="color:#ABB2BF"> = {</span></span>
<span class="line"><span style="color:#61AFEF">  RawBlock</span><span style="color:#ABB2BF"> = </span><span style="color:#C678DD">function</span><span style="color:#ABB2BF">(</span><span style="color:#ABB2BF;font-style:italic">raw</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    if</span><span style="color:#E06C75"> raw</span><span style="color:#ABB2BF">.</span><span style="color:#E5C07B">format</span><span style="color:#ABB2BF">:</span><span style="color:#61AFEF">match</span><span style="color:#98C379"> 'html' </span><span style="color:#ABB2BF">and </span><span style="color:#E06C75">raw</span><span style="color:#ABB2BF">.</span><span style="color:#E5C07B">text</span><span style="color:#ABB2BF">:</span><span style="color:#61AFEF">match</span><span style="color:#98C379"> '%&lt;table' </span><span style="color:#C678DD">then</span></span>
<span class="line"><span style="color:#C678DD">      return</span><span style="color:#E06C75"> pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">read</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">raw</span><span style="color:#ABB2BF">.text, </span><span style="color:#E06C75">raw</span><span style="color:#ABB2BF">.format).blocks</span></span>
<span class="line"><span style="color:#C678DD">    end</span></span>
<span class="line"><span style="color:#C678DD">  end</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>The <code class="shiki-inline"><span>modify_elements</span></code> filter has many more selectors.</p><ul><li><p>The first selectors force Pandoc to render strong and emphasized elements using the dedicated syntax, turning <code class="shiki-inline"><span style="color:#61AFEF">#strong</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">hello</span><span style="color:#ABB2BF">) </span><span style="color:#61AFEF">#emph</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">world</span><span style="color:#ABB2BF">)</span></code> into <code class="shiki-inline"><span style="color:#E5C07B">*</span><span style="color:#D19A66">hello</span><span style="color:#E5C07B">*</span><span style="color:#C678DD"> _world_</span></code>.</p><p>filter.lua:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">local</span><span style="color:#E06C75"> modify_elements</span><span style="color:#ABB2BF"> = {</span></span>
<span class="line"><span style="color:#61AFEF">  Strong</span><span style="color:#ABB2BF"> = </span><span style="color:#C678DD">function</span><span style="color:#ABB2BF">(</span><span style="color:#ABB2BF;font-style:italic">el</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    local</span><span style="color:#E06C75"> inlines</span><span style="color:#ABB2BF"> = { </span><span style="color:#E06C75">pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">RawInline</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">'typst'</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">'*'</span><span style="color:#ABB2BF">) }</span></span>
<span class="line"><span style="color:#C678DD">    for</span><span style="color:#E06C75"> _</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">item</span><span style="color:#C678DD"> in</span><span style="color:#56B6C2"> ipairs</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">el</span><span style="color:#ABB2BF">.content) </span><span style="color:#C678DD">do</span></span>
<span class="line"><span style="color:#56B6C2">      table.insert</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">inlines</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">item</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    end</span></span>
<span class="line"><span style="color:#56B6C2">    table.insert</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">inlines</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">RawInline</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">'typst'</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">'*'</span><span style="color:#ABB2BF">))</span></span>
<span class="line"><span style="color:#C678DD">    return</span><span style="color:#E06C75"> inlines</span></span>
<span class="line"><span style="color:#C678DD">  end</span><span style="color:#ABB2BF">,</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">  Emph</span><span style="color:#ABB2BF"> = </span><span style="color:#C678DD">function</span><span style="color:#ABB2BF">(</span><span style="color:#ABB2BF;font-style:italic">el</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    local</span><span style="color:#E06C75"> inlines</span><span style="color:#ABB2BF"> = { </span><span style="color:#E06C75">pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">RawInline</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">'typst'</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">'_'</span><span style="color:#ABB2BF">) }</span></span>
<span class="line"><span style="color:#C678DD">    for</span><span style="color:#E06C75"> _</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">item</span><span style="color:#C678DD"> in</span><span style="color:#56B6C2"> ipairs</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">el</span><span style="color:#ABB2BF">.content) </span><span style="color:#C678DD">do</span></span>
<span class="line"><span style="color:#56B6C2">      table.insert</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">inlines</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">item</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    end</span></span>
<span class="line"><span style="color:#56B6C2">    table.insert</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">inlines</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">RawInline</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">'typst'</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">'_'</span><span style="color:#ABB2BF">))</span></span>
<span class="line"><span style="color:#C678DD">    return</span><span style="color:#E06C75"> inlines</span></span>
<span class="line"><span style="color:#C678DD">  end</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  -- ...</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div></li><li><p>The <code class="shiki-inline"><span>Link</span></code> filter turns links without bodies and links with bodies identical to their sources into plaintext links that Typst recognizes, allowing <code class="shiki-inline"><span style="color:#ABB2BF">[</span><span style="color:#61AFEF">https://julianlbauer.com</span><span style="color:#ABB2BF">]</span><span style="color:#E06C75">(</span><span style="color:#C678DD;text-decoration:underline">https://julianlbauer.com</span><span style="color:#E06C75">)</span></code> to become <code class="shiki-inline"><span style="color:#ABB2BF;text-decoration:underline">https://julianlbauer.com</span></code> instead of <code class="shiki-inline"><span style="color:#61AFEF">#link</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"https://julianlbauer.com"</span><span style="color:#ABB2BF">)[</span><span style="color:#ABB2BF;text-decoration:underline">https://julianlbauer.com</span><span style="color:#ABB2BF">]</span></code>.</p><p>filter.lua:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">local</span><span style="color:#E06C75"> modify_elements</span><span style="color:#ABB2BF"> = {</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  -- ...</span></span>
<span class="line"><span style="color:#61AFEF">  Link</span><span style="color:#ABB2BF"> = </span><span style="color:#C678DD">function</span><span style="color:#ABB2BF">(</span><span style="color:#ABB2BF;font-style:italic">el</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    local</span><span style="color:#E06C75"> content_text</span><span style="color:#ABB2BF"> = </span><span style="color:#E06C75">pandoc</span><span style="color:#ABB2BF">.utils.</span><span style="color:#61AFEF">stringify</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">el</span><span style="color:#ABB2BF">.content)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">    if</span><span style="color:#E06C75"> content_text</span><span style="color:#ABB2BF"> == </span><span style="color:#E06C75">el</span><span style="color:#ABB2BF">.target or </span><span style="color:#E06C75">content_text</span><span style="color:#ABB2BF"> == </span><span style="color:#98C379">"" </span><span style="color:#C678DD">then</span></span>
<span class="line"><span style="color:#C678DD">      return</span><span style="color:#E06C75"> pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">RawInline</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">'typst'</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">el</span><span style="color:#ABB2BF">.target)</span></span>
<span class="line"><span style="color:#C678DD">    else</span></span>
<span class="line"><span style="color:#C678DD">      return</span><span style="color:#E06C75"> el</span></span>
<span class="line"><span style="color:#C678DD">    end</span></span>
<span class="line"><span style="color:#C678DD">  end</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  -- ...</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div></li><li>The <code class="shiki-inline"><span>Math</span></code> filter passes the content inside math elements directly to Typst, because I had already created a custom Tiptap plugin that used Typst math syntax inside Typst using <a href="https://github.com/qwinsi/tex2typst">tex2typst</a>. I also included some evil find-and-replace lines to fix tex2typst’s inconsistencies with Typst.<span style="white-space: pre-wrap"> </span><p>filter.lua:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">local</span><span style="color:#E06C75"> modify_elements</span><span style="color:#ABB2BF"> = {</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  -- ...</span></span>
<span class="line"><span style="color:#61AFEF">  Math</span><span style="color:#ABB2BF"> = </span><span style="color:#C678DD">function</span><span style="color:#ABB2BF">(</span><span style="color:#ABB2BF;font-style:italic">el</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    local</span><span style="color:#E06C75"> modified_text</span><span style="color:#ABB2BF"> = </span><span style="color:#56B6C2">string.gsub</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">el</span><span style="color:#ABB2BF">.text, </span><span style="color:#98C379">"cdot"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"dot "</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#E06C75">    modified_text</span><span style="color:#ABB2BF"> = </span><span style="color:#56B6C2">string.gsub</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">modified_text</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"int "</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"integral "</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#E06C75">    modified_text</span><span style="color:#ABB2BF"> = </span><span style="color:#56B6C2">string.gsub</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">modified_text</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"int%%^"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"integral^"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#E06C75">    modified_text</span><span style="color:#ABB2BF"> = </span><span style="color:#56B6C2">string.gsub</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">modified_text</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"int_"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"integral_"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#E06C75">    modified_text</span><span style="color:#ABB2BF"> = </span><span style="color:#56B6C2">string.gsub</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">modified_text</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"empty"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"emptyset"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#E06C75">    modified_text</span><span style="color:#ABB2BF"> = </span><span style="color:#56B6C2">string.gsub</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">modified_text</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">" sub "</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">" subset "</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    if</span><span style="color:#E06C75"> el</span><span style="color:#ABB2BF">.mathtype == </span><span style="color:#98C379">'InlineMath' </span><span style="color:#C678DD">then</span></span>
<span class="line"><span style="color:#C678DD">      return</span><span style="color:#E06C75"> pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">RawInline</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">'typst'</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">'$' </span><span style="color:#ABB2BF">.. </span><span style="color:#E06C75">modified_text</span><span style="color:#ABB2BF"> .. </span><span style="color:#98C379">'$'</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    else</span></span>
<span class="line"><span style="color:#C678DD">      return</span><span style="color:#E06C75"> pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">RawInline</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">'typst'</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">'$ ' </span><span style="color:#ABB2BF">.. </span><span style="color:#E06C75">modified_text</span><span style="color:#ABB2BF"> .. </span><span style="color:#98C379">' $'</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    end</span></span>
<span class="line"><span style="color:#C678DD">  end</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  -- ...</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div></li><li>The <code class="shiki-inline"><span>Span</span></code> filter adds underlines to the spans created in <a href="#preprocessing">preprocessing</a>.<span style="white-space: pre-wrap"> </span><p>filter.lua:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">local</span><span style="color:#E06C75"> modify_elements</span><span style="color:#ABB2BF"> = {</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  -- ...</span></span>
<span class="line"><span style="color:#61AFEF">  Span</span><span style="color:#ABB2BF"> = </span><span style="color:#C678DD">function</span><span style="color:#ABB2BF">(</span><span style="color:#ABB2BF;font-style:italic">el</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    if</span><span style="color:#E06C75"> el</span><span style="color:#ABB2BF">.</span><span style="color:#E5C07B">classes</span><span style="color:#ABB2BF">:</span><span style="color:#61AFEF">includes</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">'underline'</span><span style="color:#ABB2BF">) </span><span style="color:#C678DD">then</span></span>
<span class="line"><span style="color:#C678DD">      return</span><span style="color:#E06C75"> pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">Underline</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">el</span><span style="color:#ABB2BF">.content)</span></span>
<span class="line"><span style="color:#C678DD">    end</span></span>
<span class="line"><span style="color:#C678DD">  end</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  -- ...</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div></li><li>The <code class="shiki-inline"><span>Table</span></code> filter removes the <code class="shiki-inline"><span style="color:#61AFEF">#figure</span><span style="color:#ABB2BF">()</span></code> wrapping around tables, and uses evil RegExes to remove some table boilerplate I found unecessary.<span style="white-space: pre-wrap"> </span><p>filter.lua:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">local</span><span style="color:#E06C75"> modify_elements</span><span style="color:#ABB2BF"> = {</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  -- ...</span></span>
<span class="line"><span style="color:#61AFEF">  Table</span><span style="color:#ABB2BF"> = </span><span style="color:#C678DD">function</span><span style="color:#ABB2BF">(</span><span style="color:#ABB2BF;font-style:italic">elem</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#E06C75">    elem</span><span style="color:#ABB2BF">.attr.</span><span style="color:#E5C07B">classes</span><span style="color:#ABB2BF">:</span><span style="color:#61AFEF">insert</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">'typst:no-figure'</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#E06C75">    elem</span><span style="color:#ABB2BF">.attr.attributes[</span><span style="color:#98C379">'typst:figure:kind'</span><span style="color:#ABB2BF">] = </span><span style="color:#98C379">'none'</span></span>
<span class="line"><span style="color:#C678DD">    local</span><span style="color:#E06C75"> typst_code</span><span style="color:#ABB2BF"> = </span><span style="color:#E06C75">pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">write</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">Pandoc</span><span style="color:#ABB2BF">({</span><span style="color:#E06C75">elem</span><span style="color:#ABB2BF">}), </span><span style="color:#98C379">'typst'</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#E06C75">    typst_code</span><span style="color:#ABB2BF"> = </span><span style="color:#E5C07B">typst_code</span><span style="color:#ABB2BF">:</span><span style="color:#61AFEF">gsub</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"%s*align:%s*%([^%)]+%),?</span><span style="color:#56B6C2">\n</span><span style="color:#98C379">"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"</span><span style="color:#56B6C2">\n</span><span style="color:#98C379">"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#E06C75">    typst_code</span><span style="color:#ABB2BF"> = </span><span style="color:#E5C07B">typst_code</span><span style="color:#ABB2BF">:</span><span style="color:#61AFEF">gsub</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"%s*table%.hline%(%),?</span><span style="color:#56B6C2">\n</span><span style="color:#98C379">"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"</span><span style="color:#56B6C2">\n</span><span style="color:#98C379">"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    return</span><span style="color:#E06C75"> pandoc</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">RawBlock</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">'typst'</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">typst_code</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">  end</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div></li></ul><h3>Postprocessing</h3><p>I discovered that Pandoc overcautiously escaped the second slash in the <code class="shiki-inline"><span>https://</span></code> of links to prevent creating a <code class="shiki-inline"><span style="color:#7F848E;font-style:italic">// typst comment</span></code>, an unnecessary and uglifying change that made all bare links in the resulting Typst look like <code class="shiki-inline"><span style="color:#ABB2BF" class="highlighted-word">http:/</span><span style="color:#56B6C2" class="highlighted-word">\/</span><span style="color:#ABB2BF">julianlbauer.com</span></code> instead of <code class="shiki-inline"><span style="color:#ABB2BF;text-decoration:underline" class="highlighted-word">http://</span><span style="color:#ABB2BF;text-decoration:underline">julianlbauer.com</span></code>.</p><p>As a final evil hack, I used find-and-replace on the resulting source code to remove that extra backslash.</p><p>main.py:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">def</span><span style="color:#61AFEF"> postprocess_typst</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66;font-style:italic">text</span><span style="color:#ABB2BF">: </span><span style="color:#56B6C2">str</span><span style="color:#ABB2BF">) -&gt; </span><span style="color:#56B6C2">str</span><span style="color:#ABB2BF">:</span></span>
<span class="line"><span style="color:#ABB2BF">    text </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> text.</span><span style="color:#61AFEF">replace</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"https:/</span><span style="color:#56B6C2">\\</span><span style="color:#98C379">/"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"https://"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    return</span><span style="color:#ABB2BF"> text</span></span></code></pre></div><h3>Manual adjustments</h3><p>Tragically, there were a few unavoidable manual adjustments I had to make. Before switching my math to Typst, I had written a quarter dozen notes with LaTeX math. I converted those equations to Typst by hand.</p><h2>Conclusion</h2><p>I had to write much more code than I expected, due to the verbosity of Pandoc’s default Typst output and the nonstandard Markdown output of my Tiptap editor. Luckily, my process was still much faster than manually converting each note.</p><p>You can see my <a href="https://github.com/Ashwagandhae/brot-md-to-typ">conversion code on Github</a>. I hope this article can act as an example for new Pandoc users facing big document conversion projects!</p><footer><ol><li id="footnote-1" role="doc-footnote">Ok, there exist only 3 ways: <code class="shiki-inline"><span style="color:#E5C07B">-</span><span style="color:#ABB2BF"> Item</span></code>, <code class="shiki-inline"><span style="color:#E5C07B">+</span><span style="color:#ABB2BF"> Item</span></code>, and <code class="shiki-inline"><span style="color:#E5C07B">*</span><span style="color:#ABB2BF"> Item</span></code>, but it still feels like too many. <a href="#footnote-return-1" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-2" role="doc-footnote"><p>Did you know about <a href="https://spec.commonmark.org/0.20/#setext-header">setext headings</a>? The ones that let you use the following syntax?</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#ABB2BF">Wow, h1 heading</span></span>
<span class="line"><span style="color:#E06C75">====================</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">Wow, h2 heading</span></span>
<span class="line"><span style="color:#E06C75">---------</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">Uh oh, there's no way to make an h3...</span></span></code></pre></div><p>Neither did I. <a href="#footnote-return-2" role="doc-backlink" aria-label="Back to content">↩︎</a></p></li></ol></footer>]]></content>
    </entry>
  
    <entry>
      <title><![CDATA[Configuring Helix for convenient Typst previewing]]></title>
      <link href="https://julianlbauer.com/writing/typst-helix-config" />
      <id>https://julianlbauer.com/writing/typst-helix-config</id>
      <published>2026-09-22T00:00:00.000Z</published>
      <updated>2026-09-22T00:00:00.000Z</updated>
      <summary><![CDATA[Guide to configure Helix to open Typst preview in a dedicated window on-demand.]]></summary>
      <content type="html"><![CDATA[<p>While switching from <a href="https://code.visualstudio.com/">VSCode</a> to the vim-inspired <a href="https://helix-editor.com/">Helix</a> text editor this summer provided much perceived efficiency and fun, it also degraded my editing workflow for <a href="https://typst.app/">Typst</a>—the LaTeX replacement with markdown-like syntax—by making previewing less ergonomic. After much finnicking, I’ve found a satisfactory Helix configuration on par with VSCode’s functionality.</p><h2>What you get</h2><img alt="Screenshot of working Typst preview, with two terminals with Typst files open in Helix next to their preview windows." src="https://julianlbauer.com/_app/immutable/assets/screenshot.B9ikYB_D.png"><p>This configuration creates two new keyboard shortcuts you can use when editing Typst files:</p><table id="keyboard-shortcuts"><thead><tr><th>Keybinding</th><th>Action</th></tr></thead><tbody><tr><td><code class="shiki-inline"><span>ctrl+shift+p</span></code></td><td>Open a previewing window</td></tr><tr><td><code class="shiki-inline"><span>ctrl+p</span></code></td><td>Set the file the preview window previews to the currently open buffer</td></tr></tbody></table><p>The previewing window</p><ul><li>Has all the preview features for the Typst language server <a href="https://github.com/Myriad-Dreamin/tinymist">Tinymist</a>, including instant previewing as you type, jumping to source on-click, and dark theme</li><li>Spawns as a seperate window without distracting browser elements like tabs and search bars</li><li>Works without conflicting with other preview windows spawned from other Helix instances</li></ul><h2>Configuration steps</h2><ol><li>Make sure you’ve installed the Typst language server <a href="https://github.com/Myriad-Dreamin/tinymist">Tinymist</a></li><li><p>Open your global <a href="https://docs.helix-editor.com/languages.html">Helix languages file</a>, and append:</p><p>~/.config/helix/languages.toml:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#ABB2BF">[</span><span style="color:#61AFEF">language-server</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">tinymist</span><span style="color:#ABB2BF">]</span></span>
<span class="line"><span style="color:#E06C75">command</span><span style="color:#ABB2BF"> = </span><span style="color:#98C379">"tinymist"</span></span>
<span class="line"><span style="color:#E06C75">config.preview.background.enabled</span><span style="color:#ABB2BF"> = </span><span style="color:#D19A66">true</span></span>
<span class="line"><span style="color:#E06C75">config.preview.background.args</span><span style="color:#ABB2BF"> = [</span><span style="color:#98C379">"--data-plane-host=127.0.0.1:0"</span><span style="color:#ABB2BF">]</span></span></code></pre></div><p>These lines configure Tinymist to start a preview server at a random port once you’ve opened your first Typst file, as specified by setting the <code class="shiki-inline"><span>data-plane-host</span></code> port to <code class="shiki-inline"><span>0</span></code>.</p></li><li>Make sure you’ve installed <a href="https://www.nushell.sh/">Nushell</a>—a modern shell and programming language intended to replace bash, zsh, and other shells—so that you can run the preview-opening script.<sup><a id="footnote-return-1" href="#footnote-1" role="doc-noteref" aria-label="footnote 1">1</a></sup></li><li><p>Create a file <code class="shiki-inline"><span>typst-preview.nu</span></code> somewhere, perhaps in your <a href="https://docs.helix-editor.com/configuration.html">Helix config directory</a>, with the contents:</p><p>~/.config/helix/typst-preview.nu:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">let</span><span style="color:#E06C75"> helix_pid</span><span style="color:#C678DD"> =</span><span style="color:#ABB2BF"> (</span><span style="color:#C678DD">ps</span><span style="color:#C678DD"> |</span><span style="color:#C678DD"> where</span><span style="color:#98C379"> pid</span><span style="color:#C678DD"> ==</span><span style="color:#E5C07B"> $nu</span><span style="color:#E06C75">.pid</span><span style="color:#C678DD"> |</span><span style="color:#C678DD"> first</span><span style="color:#ABB2BF">)</span><span style="color:#E5C07B">.ppid</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">let</span><span style="color:#E06C75"> tinymist_proc</span><span style="color:#C678DD"> =</span><span style="color:#C678DD"> ps</span></span>
<span class="line"><span style="color:#C678DD">|</span><span style="color:#C678DD"> where</span><span style="color:#98C379"> ppid</span><span style="color:#C678DD"> ==</span><span style="color:#E06C75"> $helix_pid</span></span>
<span class="line"><span style="color:#C678DD">|</span><span style="color:#C678DD"> where</span><span style="color:#98C379"> name</span><span style="color:#C678DD"> =~</span><span style="color:#98C379"> tinymist</span></span>
<span class="line"><span style="color:#C678DD">|</span><span style="color:#C678DD"> first</span></span>
<span class="line"><span style="color:#C678DD">if</span><span style="color:#E06C75"> $tinymist_proc</span><span style="color:#C678DD"> ==</span><span style="color:#D19A66"> null</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">    print</span><span style="color:#98C379"> "tinymist proc is null"</span></span>
<span class="line"><span style="color:#ABB2BF">} </span><span style="color:#C678DD">else</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> tinymist_entry</span><span style="color:#C678DD"> =</span><span style="color:#E5C07B"> lsof</span><span style="color:#C678DD;font-style:italic"> -</span><span style="color:#E06C75;font-style:italic">i</span><span style="color:#C678DD;font-style:italic"> -</span><span style="color:#E06C75;font-style:italic">P</span><span style="color:#C678DD;font-style:italic"> -</span><span style="color:#E06C75;font-style:italic">n</span></span>
<span class="line"><span style="color:#C678DD">    |</span><span style="color:#C678DD"> from ssv</span><span style="color:#C678DD;font-style:italic"> --</span><span style="color:#E06C75;font-style:italic">minimum-spaces</span><span style="color:#D19A66"> 1</span></span>
<span class="line"><span style="color:#C678DD">    |</span><span style="color:#C678DD"> where</span><span style="color:#98C379"> PID</span><span style="color:#C678DD"> ==</span><span style="color:#ABB2BF"> (</span><span style="color:#E06C75">$tinymist_proc.pid</span><span style="color:#C678DD"> |</span></span>
<span class="line"><span style="color:#C678DD">    into string</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    |</span><span style="color:#C678DD"> first</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">    # should be `google-chrome --app=("http://" + $tinymist_entry.NAME)` on Linux</span></span>
<span class="line"><span style="color:#ABB2BF">    ^</span><span style="color:#C678DD">open</span><span style="color:#C678DD;font-style:italic"> -</span><span style="color:#E06C75;font-style:italic">na</span><span style="color:#98C379"> "Google Chrome"</span><span style="color:#C678DD;font-style:italic"> --</span><span style="color:#E06C75;font-style:italic">args</span><span style="color:#C678DD;font-style:italic"> --</span><span style="color:#E06C75;font-style:italic">app</span><span style="color:#98C379">=</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"http://"</span><span style="color:#C678DD"> +</span><span style="color:#E06C75"> $tinymist_entry.NAME</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>This script finds your Helix instance’s process ID, finds the child Tinymist process that the Helix instance spawned, and looks up the address of the previewing server based on the child’s process ID.</p><p>The final <code class="shiki-inline"><span style="color:#C678DD">open</span></code> command opens the address in Chrome, using the <code class="shiki-inline"><span>--app</span></code> flag of Chromium browsers to hide tabs and other superfluous UI elements.<sup><a id="footnote-return-2" href="#footnote-2" role="doc-noteref" aria-label="footnote 2">2</a></sup></p></li><li>Open your <a href="https://docs.helix-editor.com/configuration.html">Helix config file</a>, and append:<span style="white-space: pre-wrap"> </span><p>~/.config/helix/config.toml:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#ABB2BF">[</span><span style="color:#61AFEF">keys</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">normal</span><span style="color:#ABB2BF">]</span></span>
<span class="line"><span style="color:#E06C75">"</span><span style="color:#ABB2BF">C-S-p</span><span style="color:#E06C75">"</span><span style="color:#ABB2BF"> = </span><span style="color:#98C379">':sh nu ~/.config/helix/typst-preview.nu'</span></span>
<span class="line"><span style="color:#E06C75">"</span><span style="color:#ABB2BF">C-p</span><span style="color:#E06C75">"</span><span style="color:#ABB2BF"> = </span><span style="color:#98C379">':lsp-workspace-command tinymist.pinMain "%sh{realpath %{buffer_name}}"'</span></span></code></pre></div><span style="white-space: pre-wrap"> </span>These lines create the keyboard shortcuts <a href="#keyboard-shortcuts">described above</a>.</li></ol><h2>Credits</h2><p>Most of the config comes from <a href="https://forum.typst.app/t/what-is-the-best-setup-for-using-typst-in-helix-editor/5867/3">sijo’s reply in the Typst forums</a>, without which I wouldn’t have understood how to make Tinymist preview at a random port. Thank you!</p><p>My improvements consist of</p><ul><li>Letting you open the preview server intentionally with a shortcut instead of having Tinymist open your browser automatically on startup and annoyingly steal your focus</li><li>Opening the preview in a dedicated UI-less window instead of cluttering your browser’s tabs<sup><a id="footnote-return-3" href="#footnote-3" role="doc-noteref" aria-label="footnote 3">3</a></sup></li></ul><p>I hope this helps!</p><footer><ol><li id="footnote-1" role="doc-footnote">If you don’t like installing things, you can also rewrite the script in Bash and update the Helix command to run the Bash script. <a href="#footnote-return-1" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-2" role="doc-footnote">You can also open the url in other browsers like Firefox or Safari, but to my knowledge those browsers don’t have a similar UI-hiding feature. <a href="#footnote-return-2" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-3" role="doc-footnote">Additionally, because I use Zen as my actual browser, opening the preview in the seperate app Chrome allow any shortcuts I use to switch to the Zen app to better match my intent, focusing my actual browser window instead of a random Typst preview. <a href="#footnote-return-3" role="doc-backlink" aria-label="Back to content">↩︎</a></li></ol></footer>]]></content>
    </entry>
  
    <entry>
      <title><![CDATA[Formally verifying insertion sort in Idris]]></title>
      <link href="https://julianlbauer.com/writing/idris-sorting" />
      <id>https://julianlbauer.com/writing/idris-sorting</id>
      <published>2026-05-24T00:00:00.000Z</published>
      <updated>2026-05-24T00:00:00.000Z</updated>
      <summary><![CDATA[Using the dependently-typed programming language Idris to verify insertion sort.]]></summary>
      <content type="html"><![CDATA[<p>The programming language <a href="https://www.idris-lang.org/">Idris</a> allows you to write programs and prove theorems about them with dependent types, types that depend on values. Idris can achieve this through the <a href="https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence">Curry-Howard correspondence</a>—the idea that types correspond to propositions and programs correspond to proofs.</p><p>As part of a project for discrete math, I formally verified that insertion sort actually sorts lists of natural numbers. I wanted to write a thorough walkthrough of each part of the code to provide a resource on how to prove things with dependently typed languages.</p><p>Many of the guides I saw either only showed extremely basic functionality or glossed over the specifics of their proofs, making the relationship between proof and program harder to understand.</p><p>Additionally, Idris’ large feature set made much of the code I saw online difficult to understand. For this guide, I used only basic features language features<sup><a id="footnote-return-1" href="#footnote-1" role="doc-noteref" aria-label="footnote 1">1</a></sup> to make each function implementation as consistent and comprehensible as possible.</p><p>For those new to dependently-typed languages, I would recommend looking at the <a href="https://idris2.readthedocs.io/en/latest/tutorial/index.html">Idris 2 Crash Course</a> and the <a href="https://adam.math.hhu.de/">Lean Natural Number Game</a> (the concepts apply to Idris as well).</p><h2>Definitions</h2><h3>Standard library</h3><p>First, to refresh our knowledge of Idris’s basic types, we look at the definition of natural numbers and lists provided by the standard library.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">data</span><span style="color:#E5C07B"> Nat</span><span style="color:#ABB2BF"> : Type </span><span style="color:#C678DD">where</span></span>
<span class="line"><span style="color:#61AFEF">  Z</span><span style="color:#ABB2BF"> : Nat</span></span>
<span class="line"><span style="color:#61AFEF">  S</span><span style="color:#ABB2BF">: Nat -&gt; Nat</span></span></code></pre></div><p>We define natural numbers as an enum with two variants: the zero base case value <code class="shiki-inline"><span>Z</span></code> and the successor <code class="shiki-inline"><span>S</span></code> that wraps another natural number. Thus, we represent 0 as <code class="shiki-inline"><span>Z</span></code>, 1 as <code class="shiki-inline"><span>S Z</span></code>, 3 as <code class="shiki-inline"><span>S (S (S Z))</span></code>, continually incrementing numbers by wrapping them in layers of successors.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">data</span><span style="color:#E5C07B"> Vect</span><span style="color:#ABB2BF"> : Nat -&gt; Type -&gt; Type </span><span style="color:#C678DD">where</span></span>
<span class="line"><span style="color:#61AFEF">  Nil</span><span style="color:#ABB2BF"> : Vect 0 elem</span></span>
<span class="line"><span style="color:#ABB2BF">  (</span><span style="color:#61AFEF">::</span><span style="color:#ABB2BF">) : elem -&gt; Vect len elem -&gt; Vect (S len) elem</span></span></code></pre></div><p>Looking at the first line of code, <code class="shiki-inline"><span style="color:#C678DD">data</span><span style="color:#E5C07B"> Vect</span><span style="color:#ABB2BF"> : Nat -&gt; Type -&gt; Type </span><span style="color:#C678DD">where</span></code>, we parameterize our definition of <code class="shiki-inline"><span>Vect</span></code> over the list’s length and the type of the contained items. Then, we have a base case constructor of an empty list, and a constructor that adds an element to an already existing list while keeping the type’s length information correct.</p><p>We also need a way to order our natural numbers.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">data</span><span style="color:#E5C07B"> LTE</span><span style="color:#ABB2BF"> : (n, m : Nat) -&gt; Type </span><span style="color:#C678DD">where</span></span>
<span class="line"><span style="color:#61AFEF">  LTEZero</span><span style="color:#ABB2BF"> : LTE Z    right</span></span>
<span class="line"><span style="color:#61AFEF">  LTESucc</span><span style="color:#ABB2BF"> : LTE left right -&gt; LTE (S left) (S right)</span></span></code></pre></div><p>We define evidence <code class="shiki-inline"><span>LTE</span></code>, parameterized over two natural numbers. Constructing an element of type <code class="shiki-inline"><span>LTE x y</span></code> proves that <code class="shiki-inline"><span>x &lt;= y</span></code>. Our base case, <code class="shiki-inline"><span>LTEZero</span></code>, simply states that zero is less than or equal to any other natural number, because it’s the smallest number. <code class="shiki-inline"><span>LTESucc</span></code> allows us to increment both of the numbers on each side of the inequality, allowing us to express any possible <code class="shiki-inline"><span>LTE</span></code> relationship between two natural numbers.</p><h3><code class="shiki-inline"><span>Sorted</span></code></h3><p>In order to prove that our insertion sort algorithm sorts, we need a definition of sortedness.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">data</span><span style="color:#E5C07B"> Sorted</span><span style="color:#ABB2BF"> : (</span><span style="color:#E06C75">xs</span><span style="color:#ABB2BF"> : Vect n Nat) -&gt; Type </span><span style="color:#C678DD">where</span></span>
<span class="line"><span style="color:#61AFEF">  SortedZero</span><span style="color:#ABB2BF">: Sorted Nil</span></span>
<span class="line"><span style="color:#61AFEF">  SortedOne</span><span style="color:#ABB2BF">: (</span><span style="color:#E06C75">x</span><span style="color:#ABB2BF"> : Nat) -&gt; Sorted (x::Nil)</span></span>
<span class="line"><span style="color:#61AFEF">  SortedMany</span><span style="color:#ABB2BF">: (</span><span style="color:#E06C75">x</span><span style="color:#ABB2BF"> : Nat) -&gt; (</span><span style="color:#E06C75">y</span><span style="color:#ABB2BF"> : Nat) -&gt; (</span><span style="color:#E06C75">ys</span><span style="color:#ABB2BF"> : Vect n Nat) -&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">    (LTE x y) -&gt; Sorted (y :: ys) -&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">    Sorted (x :: (y :: ys))</span></span></code></pre></div><p>We parameterize our definition of <code class="shiki-inline"><span>Sorted</span></code> over a given list of natural numbers. Thus, if we can construct a value of type <code class="shiki-inline"><span>Sorted xs</span></code>, then we have proven that the list <code class="shiki-inline"><span>xs</span></code> is sorted.</p><p>In this definition, we have two base cases <code class="shiki-inline"><span>SortedZero</span></code> and <code class="shiki-inline"><span>SortedOne</span></code>: if our list contains zero or one items, we already know that it is sorted.</p><p>Our recursive <code class="shiki-inline"><span>SortedMany</span></code> definition is more complicated, but becomes easier to understand if you read it backwards. The basic idea is that, given a list containing at least two elements <math><mrow><mo>[</mo><mrow><mi>𝑥</mi><mo>,</mo><mi>𝑦</mi><mo>,</mo><mi>…</mi></mrow><mo>]</mo></mrow></math>, represented as <code class="shiki-inline"><span>(x :: (y :: ys))</span></code> in the above proof, you know it is sorted if both</p><ol><li value="1"><math><mrow><mo>[</mo><mrow><mi>𝑦</mi><mo>,</mo><mi>…</mi></mrow><mo>]</mo></mrow></math> is sorted</li><li value="2"><math><mi>𝑥</mi><mo>≤</mo><mi>𝑦</mi></math></li></ol><p>Reading the <code class="shiki-inline"><span>SortedMany</span></code> constructor forwards gives a more constructive view of the theorem it represents. Instead of proving that a given list is sorted, we can think of this constructor as taking an element <code class="shiki-inline"><span>x</span></code>, <code class="shiki-inline"><span>y</span></code>, a list <code class="shiki-inline"><span>ys</span></code>, a proof that <code class="shiki-inline"><span>y::ys</span></code> is sorted, and a proof that <code class="shiki-inline"><span>x &lt;= y</span></code>, and outputting a proof that a new list <code class="shiki-inline"><span>x::(y::ys)</span></code> is sorted.</p><h3><code class="shiki-inline"><span>Permutation</span></code></h3><p>In addition to proving that our insertion sort algorithm sorts, we also need to prove that the elements in the outputted list are the same as those in the inputted list; in other words, we must prove that the output is a permutation of the input. Thus, we create a definition of permutation.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">data</span><span style="color:#E5C07B"> Permutation</span><span style="color:#ABB2BF"> : (</span><span style="color:#E06C75">xs</span><span style="color:#ABB2BF">: Vect n Nat) -&gt; (</span><span style="color:#E06C75">ys</span><span style="color:#ABB2BF">: Vect n Nat) -&gt; Type </span><span style="color:#C678DD">where</span></span>
<span class="line"><span style="color:#61AFEF">  PermutationZero</span><span style="color:#ABB2BF">: Permutation [] []</span></span>
<span class="line"><span style="color:#61AFEF">  PermutationGrow</span><span style="color:#ABB2BF">: (as, bs: Vect n Nat) -&gt; (</span><span style="color:#E06C75">x</span><span style="color:#ABB2BF"> : Nat) -&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">    Permutation as bs -&gt; Permutation (x::as) (x::bs)</span></span>
<span class="line"><span style="color:#61AFEF">  PermutationSwap</span><span style="color:#ABB2BF">: (as, bs : Vect n Nat) -&gt; (a, b : Nat) -&gt; Permutation as bs -&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">    Permutation (a::(b::as)) (b::(a::bs))</span></span>
<span class="line"><span style="color:#61AFEF">  PermutationTrans</span><span style="color:#ABB2BF">: (as, bs, cs : Vect n Nat) -&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">    Permutation as bs -&gt; Permutation bs cs -&gt; Permutation as cs</span></span></code></pre></div><p>Here, we parameterize our definition of <code class="shiki-inline"><span>Permutation</span></code> over two lists, claiming that a construction of a value of type <code class="shiki-inline"><span>Permutation xs ys</span></code> proves that <code class="shiki-inline"><span>ys</span></code> permutes <code class="shiki-inline"><span>xs</span></code>.</p><p>Our base case <code class="shiki-inline"><span>PermutationZero</span></code> simply states that empty lists permute each other. Both <code class="shiki-inline"><span>PermutationGrow</span></code> and <code class="shiki-inline"><span>PermutationSwap</span></code> claim that larger lists permute each other given that smaller lists do as well; <code class="shiki-inline"><span>PermutationGrow</span></code> claims that two permutations with the same element added to the front permute each other, and <code class="shiki-inline"><span>PermutationSwap</span></code> claims that two permutations with the same two elements added to the front in different orders permute each other. <code class="shiki-inline"><span>PermutationTrans</span></code> just states that permutation is transitive, meaning that if <math><mi>𝑥</mi></math> permutes <math><mi>𝑦</mi></math> and <math><mi>𝑦</mi></math> permutes <math><mi>𝑧</mi></math> then <math><mi>𝑥</mi></math> permutes <math><mi>𝑧</mi></math>.</p><h3><code class="shiki-inline"><span>Elem</span></code></h3><p>To make some of our proofs easier, we need a way to state that <code class="shiki-inline"><span>x</span></code> is an element of a list.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">data</span><span style="color:#E5C07B"> Elem</span><span style="color:#ABB2BF"> : (</span><span style="color:#E06C75">x</span><span style="color:#ABB2BF"> : a) -&gt; (</span><span style="color:#E06C75">xs</span><span style="color:#ABB2BF"> : Vect n a) -&gt; Type </span><span style="color:#C678DD">where</span></span>
<span class="line"><span style="color:#61AFEF">  Here</span><span style="color:#ABB2BF">  : Elem x (x :: xs)</span></span>
<span class="line"><span style="color:#61AFEF">  There</span><span style="color:#ABB2BF"> : Elem x xs -&gt; Elem x (y :: xs)</span></span></code></pre></div><p>Our definition has a base case of <code class="shiki-inline"><span>Here</span></code> if <code class="shiki-inline"><span>x</span></code> is the first element of the list, and <code class="shiki-inline"><span>There</span></code> if it is a later element of the list. So to construct a proof that <code class="shiki-inline"><span>x</span></code> is in <code class="shiki-inline"><span>xs = [x, ...]</span></code>, we would simply write <code class="shiki-inline"><span>Here</span></code>, and to construct a proof that <code class="shiki-inline"><span>x</span></code> is in <code class="shiki-inline"><span>xs = [z, y, x, ...]</span></code> we would write <code class="shiki-inline"><span>There (There Here)</span></code>.</p><h2>Theorems</h2><p>When thinking through how to prove our theorem, I found it easiest to start from high-level functions and create smaller functions with the correct type declarations but with <a href="https://docs.idris-lang.org/en/latest/tutorial/typesfuns.html#holes">holes</a> as placeholders for their bodies.</p><h3><code class="shiki-inline"><span>insertion​Sort</span></code></h3><p>The highest-level theorem is, of course, our <code class="shiki-inline"><span>insertionSort</span></code> function. First, let’s create the functions type declaration. Note that this type declaration corresponds to the theorem that we are stating by the Curry-Howard isomorphism:</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">insertionSort</span><span style="color:#ABB2BF"> : (</span><span style="color:#E06C75">inList</span><span style="color:#ABB2BF"> : Vect n Nat)</span></span>
<span class="line"><span style="color:#ABB2BF">  -&gt; (</span><span style="color:#61AFEF">outList</span><span style="color:#ABB2BF"> : Vect n Nat ** (Sorted outList, Permutation inList outList))</span></span></code></pre></div><p>Here, we take in some list <code class="shiki-inline"><span>inList</span></code>, and output an <code class="shiki-inline"><span>outList</span></code> <a href="https://docs.idris-lang.org/en/latest/tutorial/typesfuns.html#dependent-pairs">dependently-paired</a> with a proof that <code class="shiki-inline"><span>outList</span></code> is sorted and that <code class="shiki-inline"><span>outList</span></code> permutes <code class="shiki-inline"><span>inList</span></code>. Stating this function as a theorem, we are saying that</p><blockquote>Let <code class="shiki-inline"><span>inList</span></code> be a list. There exists a sorted list <code class="shiki-inline"><span>outList</span></code> that is a permutation of <code class="shiki-inline"><span>inList</span></code>.</blockquote><p>Now, let’s look at our function implementation. By the Curry-Howard isomorphism, the implementation corresponds to the proof of our theorem. First, we handle the case of an empty list:</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#ABB2BF">insertionSort [] = ([] ** (</span><span style="color:#D19A66">SortedZero</span><span style="color:#ABB2BF">, </span><span style="color:#D19A66">PermutationZero</span><span style="color:#ABB2BF">))</span></span></code></pre></div><p>The <code class="shiki-inline"><span>SortedZero</span></code> constructor proves that an empty list is sorted, and <code class="shiki-inline"><span>PermutationZero</span></code> proves that both empty lists permute each other.</p><p>The more interesting case comes when the list contains at least one element.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#ABB2BF">insertionSort (x::xs) =</span></span>
<span class="line"><span style="color:#C678DD">  let</span></span>
<span class="line"><span style="color:#61AFEF">    recursiveCase</span><span style="color:#ABB2BF"> : (</span><span style="color:#E06C75">xsSorted</span><span style="color:#ABB2BF"> : Vect _ Nat ** (Sorted xsSorted, Permutation xs xsSorted)) = insertionSort xs</span></span>
<span class="line"><span style="color:#ABB2BF">    (xsSorted ** (sor1, perm1)) = recursiveCase</span></span>
<span class="line"><span style="color:#61AFEF">    insertRet</span><span style="color:#ABB2BF"> : (</span><span style="color:#E06C75">xsSortedInserted</span><span style="color:#ABB2BF"> : Vect _ Nat ** (Sorted xsSortedInserted, Permutation (x::xsSorted) xsSortedInserted))</span></span>
<span class="line"><span style="color:#ABB2BF">      = insert xsSorted sor1 x</span></span>
<span class="line"><span style="color:#ABB2BF">    (xsSortedInserted ** (sor2, perm2)) = insertRet</span></span>
<span class="line"><span style="color:#61AFEF">    perm3</span><span style="color:#ABB2BF"> : Permutation (x :: xs) (x :: xsSorted) =</span></span>
<span class="line"><span style="color:#D19A66">      PermutationGrow</span><span style="color:#ABB2BF"> xs xsSorted x perm1</span></span>
<span class="line"><span style="color:#61AFEF">    permRet</span><span style="color:#ABB2BF"> : Permutation (x::xs) (xsSortedInserted) =</span></span>
<span class="line"><span style="color:#D19A66">      PermutationTrans</span><span style="color:#ABB2BF"> (x::xs) (x::xsSorted) xsSortedInserted perm3 perm2</span></span>
<span class="line"><span style="color:#C678DD">  in</span><span style="color:#ABB2BF"> (xsSortedInserted ** (sor2, permRet))</span></span></code></pre></div><p>First, we recursively sort the tail of our list, <code class="shiki-inline"><span>xs</span></code>, storing the result in <code class="shiki-inline"><span>xsSorted</span></code>. Then, we use a new function, <code class="shiki-inline"><span>insert</span></code>, to insert our head into the <code class="shiki-inline"><span>xsSorted</span></code>. Our <code class="shiki-inline"><span>insert</span></code> function outputs a new list we call <code class="shiki-inline"><span>xsSortedInserted</span></code>, and conveniently provides proof that <code class="shiki-inline"><span>xsSortedInserted</span></code> is sorted and that <code class="shiki-inline"><span>xsSortedInserted</span></code> permutes <code class="shiki-inline"><span>x::xsSorted</span></code> (another way of saying that <code class="shiki-inline"><span>xsSortedInserted</span></code> consists of all elements from <code class="shiki-inline"><span>xsSorted</span></code> and <code class="shiki-inline"><span>x</span></code>).</p><p>The final part of the proof consists of proving that the input list, <code class="shiki-inline"><span>x::xs</span></code>, permutes the output list <code class="shiki-inline"><span>xsSorted</span></code>. First, we use the fact that we know that <code class="shiki-inline"><span>xs</span></code> permutes <code class="shiki-inline"><span>xsSorted</span></code> to prove that <code class="shiki-inline"><span>x::xs</span></code> permutes <code class="shiki-inline"><span>x::xsSorted</span></code> with <code class="shiki-inline"><span>PermutationGrow</span></code>, storing this proof in perm3. That gives us two permutation proofs</p><ol><li value="1"><code class="shiki-inline"><span>x::xs</span></code> permutes <code class="shiki-inline"><span>x::xsSorted</span></code></li><li value="2"><code class="shiki-inline"><span>x::xsSorted</span></code> permutes <code class="shiki-inline"><span>xsSortedInserted</span></code></li></ol><p>These two permutations perfectly match our <code class="shiki-inline"><span>PermutationTrans</span></code> constructor, allowing us to construct a proof that <code class="shiki-inline"><span>x::xs</span></code> permutes <code class="shiki-inline"><span>xsSortedInserted</span></code>, completing our function.</p><p>Now we’ve completed our proof! All we need to do is finish that <code class="shiki-inline"><span>insert</span></code> function we assumed existed.</p><h3><code class="shiki-inline"><span>insert</span></code></h3><p>We again start with the type declaration:</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">insert</span><span style="color:#ABB2BF"> : (</span><span style="color:#E06C75">inList</span><span style="color:#ABB2BF"> : Vect n Nat) -&gt; (Sorted inList) -&gt; (</span><span style="color:#E06C75">x</span><span style="color:#ABB2BF"> : Nat)</span></span>
<span class="line"><span style="color:#ABB2BF">  -&gt; (</span><span style="color:#61AFEF">outList</span><span style="color:#ABB2BF"> : Vect (S n) Nat ** (Sorted outList, Permutation (x::inList) outList))</span></span></code></pre></div><p>Here, we take some sorted list <code class="shiki-inline"><span>inList</span></code> and some element <code class="shiki-inline"><span>x</span></code>, and output a sorted list that permutes <code class="shiki-inline"><span>x::inList</span></code>.</p><p>We again have an easy base case if the list is empty:</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#ABB2BF">insert [] sor x = ([x] ** (</span><span style="color:#D19A66">SortedOne</span><span style="color:#ABB2BF"> x, permutationId [x]))</span></span></code></pre></div><p>Here, we use a utility theorem, <code class="shiki-inline"><span>permutationId</span></code>, that proves that two identical lists permute each other by repeatedly applying <code class="shiki-inline"><span>PermutationGrow</span></code>.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">permutationId</span><span style="color:#ABB2BF"> : (</span><span style="color:#E06C75">xs</span><span style="color:#ABB2BF"> : Vect n Nat) -&gt; Permutation xs xs</span></span>
<span class="line"><span style="color:#ABB2BF">permutationId [] = </span><span style="color:#D19A66">PermutationZero</span></span>
<span class="line"><span style="color:#ABB2BF">permutationId (x::xs) = </span><span style="color:#D19A66">PermutationGrow</span><span style="color:#ABB2BF"> xs xs x (permutationId xs)</span></span></code></pre></div><p>This theorem may seem obvious, but Idris’ type system requires that we prove it.</p><p>Unfortunately, the case where the list contains more than one element becomes more complicated.</p><p>First, we define a new function <code class="shiki-inline"><span>lteTotal</span></code> that proves an obvious fact: for two natural numbers <math><mi>𝑥</mi></math> and <math><mi>𝑦</mi></math>, either <math><mi>𝑥</mi><mo>≤</mo><mi>𝑦</mi></math> or <math><mi>𝑦</mi><mo>≤</mo><mi>𝑥</mi></math>.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">lteTotal</span><span style="color:#ABB2BF"> : (x, y : Nat) -&gt; Either (LTE x y) (LTE y x)</span></span>
<span class="line"><span style="color:#ABB2BF">lteTotal </span><span style="color:#D19A66">Z</span><span style="color:#D19A66"> Z</span><span style="color:#ABB2BF"> = Left </span><span style="color:#D19A66">LTEZero</span></span>
<span class="line"><span style="color:#ABB2BF">lteTotal </span><span style="color:#D19A66">Z</span><span style="color:#ABB2BF"> (</span><span style="color:#D19A66">S</span><span style="color:#ABB2BF"> m) = Left </span><span style="color:#D19A66">LTEZero</span></span>
<span class="line"><span style="color:#ABB2BF">lteTotal (</span><span style="color:#D19A66">S</span><span style="color:#ABB2BF"> n) </span><span style="color:#D19A66">Z</span><span style="color:#ABB2BF"> = Right </span><span style="color:#D19A66">LTEZero</span></span>
<span class="line"><span style="color:#ABB2BF">lteTotal (</span><span style="color:#D19A66">S</span><span style="color:#ABB2BF"> n) (</span><span style="color:#D19A66">S</span><span style="color:#ABB2BF"> m) =</span></span>
<span class="line"><span style="color:#C678DD">  case</span><span style="color:#ABB2BF"> lteTotal n m </span><span style="color:#C678DD">of</span></span>
<span class="line"><span style="color:#ABB2BF">    Left p =&gt; Left (</span><span style="color:#D19A66">LTESucc</span><span style="color:#ABB2BF"> p)</span></span>
<span class="line"><span style="color:#ABB2BF">    Right p =&gt; Right (</span><span style="color:#D19A66">LTESucc</span><span style="color:#ABB2BF"> p)</span></span></code></pre></div><p>Here we have a bunch of base cases whenever one of the natural numbers is zero, and a recursive case that uses <code class="shiki-inline"><span>LTESucc</span></code> if both numbers are nonzero.</p><p>Going back to our <code class="shiki-inline"><span>insert</span></code> function, we apply <code class="shiki-inline"><span>lteTotal</span></code> to compare the element we want to insert, <code class="shiki-inline"><span>x</span></code>, and the first element <code class="shiki-inline"><span>y</span></code> of our input list <code class="shiki-inline"><span>y::ys</span></code>.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#ABB2BF">insert (y::ys) sor x =</span></span>
<span class="line"><span style="color:#C678DD">  case</span><span style="color:#ABB2BF"> lteTotal x y </span><span style="color:#C678DD">of</span></span>
<span class="line"><span style="color:#ABB2BF">    Left prf =&gt;</span></span>
<span class="line"><span style="color:#C678DD">      let</span></span>
<span class="line"><span style="color:#ABB2BF">        retSor = </span><span style="color:#D19A66">SortedMany</span><span style="color:#ABB2BF"> x y ys prf sor</span></span>
<span class="line"><span style="color:#ABB2BF">        ret = (x::(y::ys) ** (retSor, permutationId (x::(y::ys)) ))</span></span>
<span class="line"><span style="color:#C678DD">      in</span><span style="color:#ABB2BF"> ret</span></span>
<span class="line"><span style="color:#ABB2BF">    Right prf =&gt;</span></span>
<span class="line"><span style="color:#C678DD">      let</span></span>
<span class="line"><span style="color:#ABB2BF">        ysSorted = sortedImpliesSortedSmaller y ys sor</span></span>
<span class="line"><span style="color:#ABB2BF">        recursiveCase = insert ys ysSorted x</span></span>
<span class="line"><span style="color:#ABB2BF">        (x_ys ** (sor1, perm1)) = recursiveCase</span></span>
<span class="line"><span style="color:#ABB2BF">        y_x_ysSorted = yLtXAndYsImpliesYLtXYs x y ys x_ys prf sor sor1 perm1</span></span>
<span class="line"><span style="color:#61AFEF">        intermediatePerm</span><span style="color:#ABB2BF">: Permutation (y::(x::ys)) (y::x_ys) = PermutationGrow (x::ys) (x_ys) y perm1</span></span>
<span class="line"><span style="color:#61AFEF">        retPerm</span><span style="color:#ABB2BF">: Permutation (x::(y::ys)) (y::x_ys) =</span></span>
<span class="line"><span style="color:#D19A66">          PermutationTrans</span></span>
<span class="line"><span style="color:#ABB2BF">            (x::(y::ys)) (y::(x::ys)) (y::x_ys)</span></span>
<span class="line"><span style="color:#ABB2BF">            (</span><span style="color:#D19A66">PermutationSwap</span><span style="color:#ABB2BF"> ys ys x y (permutationId ys)) intermediatePerm</span></span>
<span class="line"><span style="color:#ABB2BF">        ret = (y::x_ys ** (y_x_ysSorted, retPerm))</span></span>
<span class="line"><span style="color:#C678DD">      in</span><span style="color:#ABB2BF"> ret</span></span></code></pre></div><p>If <code class="shiki-inline"><span>x</span></code> is smaller than or equal to <code class="shiki-inline"><span>y</span></code>, then putting <code class="shiki-inline"><span>x</span></code> at the start of our list will keep it sorted. We handle this possibility in the <code class="shiki-inline"><span>Left</span></code> case, where we use the <code class="shiki-inline"><span>SortedMany</span></code> constructor to prove that <code class="shiki-inline"><span>x::(y::ys)</span></code> is sorted given that <code class="shiki-inline"><span>x</span></code> <math><mo lspace="0em" rspace="0em">≤</mo></math> <code class="shiki-inline"><span>y</span></code>.</p><p>The more interesting case happens when <code class="shiki-inline"><span>x</span></code> is larger than <code class="shiki-inline"><span>y</span></code>, which we handle in the <code class="shiki-inline"><span>Right</span></code> case.<sup><a id="footnote-return-2" href="#footnote-2" role="doc-noteref" aria-label="footnote 2">2</a></sup> First, we use a utility function <code class="shiki-inline"><span>sortedImpliesSortedSmaller</span></code> to show that <code class="shiki-inline"><span>ys</span></code> is sorted, which is obviously true because <code class="shiki-inline"><span>y::ys</span></code> is sorted.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">sortedImpliesSortedSmaller</span><span style="color:#ABB2BF"> : (</span><span style="color:#E06C75">x</span><span style="color:#ABB2BF">: Nat) -&gt; (</span><span style="color:#E06C75">xs</span><span style="color:#ABB2BF"> : Vect n Nat) -&gt; (Sorted (x::xs)) -&gt; Sorted xs</span></span>
<span class="line"><span style="color:#ABB2BF">sortedImpliesSortedSmaller x [] </span><span style="color:#D19A66">_</span><span style="color:#ABB2BF"> = </span><span style="color:#D19A66">SortedZero</span></span>
<span class="line"><span style="color:#ABB2BF">sortedImpliesSortedSmaller x (y::ys) (</span><span style="color:#D19A66">SortedMany</span><span style="color:#ABB2BF"> x y ys </span><span style="color:#D19A66">_</span><span style="color:#ABB2BF"> sor) = sor</span></span></code></pre></div><p>Because <code class="shiki-inline"><span>x</span></code> is greater than <code class="shiki-inline"><span>y</span></code>, we insert <code class="shiki-inline"><span>x</span></code> somewhere in the part after <code class="shiki-inline"><span>y</span></code> using our <code class="shiki-inline"><span>insert</span></code> function. We call the list resulting from that insertion <code class="shiki-inline"><span>x_ys</span></code>. Finally, we attach <code class="shiki-inline"><span>y</span></code> to the front of <code class="shiki-inline"><span>x_ys</span></code>, creating our final list <code class="shiki-inline"><span>y::x_ys</span></code>. The only remaining task is constructing the proofs that <code class="shiki-inline"><span>y::x_ys</span></code> is sorted and is a permutation of <code class="shiki-inline"><span>x::(y::ys)</span></code>.</p><p>To prove permutation, we use <code class="shiki-inline"><span>PermutationGrow</span></code> to prove that <code class="shiki-inline"><span>y::(x::ys)</span></code> permutes <code class="shiki-inline"><span>y::x_ys</span></code> given that we know that <code class="shiki-inline"><span>x::ys</span></code> permutes <code class="shiki-inline"><span>x_ys</span></code> from our insertion. Then, we directly apply the <code class="shiki-inline"><span>PermutationSwap</span></code> constructor to see that <code class="shiki-inline"><span>x::(y::ys)</span></code> permutes <code class="shiki-inline"><span>y::(x::ys)</span></code>, and finally use <code class="shiki-inline"><span>PermutationTrans</span></code> to combine those two permutations and create our final permutation.</p><p>To prove sortedness, we use a magical theorem <code class="shiki-inline"><span>yLtXAndYsImpliesYLtXYs</span></code> to show that <code class="shiki-inline"><span>y::x_ys</span></code>, a theorem complex enough to deserve its own section!</p><h3><code class="shiki-inline"><span>y​Lt​X​And​Ys​Implies​Y​Lt​X​Ys</span></code></h3><p>As the theorems got more complex, naming them also became harder, leading to the mess of characters heading this section. The type declaration this function shares the complexity of its name:</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">yLtXAndYsImpliesYLtXYs</span><span style="color:#ABB2BF">:</span></span>
<span class="line"><span style="color:#ABB2BF">  (x, </span><span style="color:#61AFEF">y</span><span style="color:#ABB2BF">: Nat) -&gt; (</span><span style="color:#E06C75">ys</span><span style="color:#ABB2BF">: Vect n Nat) -&gt; (</span><span style="color:#E06C75">x_ys</span><span style="color:#ABB2BF"> : Vect (S n) Nat) -&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">  (LTE y x) -&gt; (Sorted (y::ys)) -&gt; (Sorted x_ys) -&gt; (Permutation (x::ys) x_ys) -&gt; (Sorted (y::x_ys))</span></span></code></pre></div><p>I think the best way to understand this function is to read it as a theorem</p><blockquote>Theorem: Let <code class="shiki-inline"><span>x</span></code>, <code class="shiki-inline"><span>y</span></code> be elements and <code class="shiki-inline"><span>ys</span></code> be a list. Let <code class="shiki-inline"><span>x_ys</span></code> be a list that contains <code class="shiki-inline"><span>x</span></code> and all elements in <code class="shiki-inline"><span>ys</span></code> in some order. If <code class="shiki-inline"><span>y</span></code> <math><mo lspace="0em" rspace="0em">≤</mo></math> <code class="shiki-inline"><span>x</span></code> and <code class="shiki-inline"><span>y::ys</span></code> is sorted (which means that <code class="shiki-inline"><span>y</span></code> <math><mo lspace="0em" rspace="0em">≤</mo></math> all elements in <code class="shiki-inline"><span>ys</span></code>), then the list <code class="shiki-inline"><span>y::x_ys</span></code> is sorted.</blockquote><p>Due to the use of magical functions that abstract away details, the implementation of this function remains quite small.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">yLtXAndYsImpliesYLtXYs</span><span style="color:#ABB2BF">:</span></span>
<span class="line"><span style="color:#ABB2BF">  (x, </span><span style="color:#61AFEF">y</span><span style="color:#ABB2BF">: Nat) -&gt; (</span><span style="color:#E06C75">ys</span><span style="color:#ABB2BF">: Vect n Nat) -&gt; (</span><span style="color:#E06C75">x_ys</span><span style="color:#ABB2BF"> : Vect (S n) Nat) -&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">  (LTE y x) -&gt; (Sorted (y::ys)) -&gt; (Sorted x_ys) -&gt; (Permutation (x::ys) x_ys) -&gt; (Sorted (y::x_ys))</span></span>
<span class="line"><span style="color:#ABB2BF">yLtXAndYsImpliesYLtXYs x y ys (f::x_ysTail) yLteX y'ysSor x_ysTailSor x'ysPermX_ys =</span></span>
<span class="line"><span style="color:#C678DD">  let</span></span>
<span class="line"><span style="color:#ABB2BF">    yLteF =</span></span>
<span class="line"><span style="color:#C678DD">    case</span><span style="color:#ABB2BF"> elOfListIsInPermOfList f (permutationRev x'ysPermX_ys) </span><span style="color:#D19A66">Here</span><span style="color:#C678DD"> of</span></span>
<span class="line"><span style="color:#D19A66">      Here</span><span style="color:#ABB2BF"> =&gt; replace {p=(\k =&gt; LTE y k)} </span><span style="color:#D19A66">Refl</span><span style="color:#ABB2BF"> yLteX</span></span>
<span class="line"><span style="color:#D19A66">      There</span><span style="color:#56B6C2"> elem</span><span style="color:#ABB2BF"> =&gt; yAfterXInSortedListImpliesXLtY y f ys y'ysSor </span><span style="color:#56B6C2">elem</span></span>
<span class="line"><span style="color:#C678DD">    in</span><span style="color:#D19A66"> SortedMany</span><span style="color:#ABB2BF"> y f x_ysTail yLteF x_ysTailSor</span></span></code></pre></div><p>Here, we are trying to prove that adding <code class="shiki-inline"><span>y</span></code> to the front of the sorted list <code class="shiki-inline"><span>f::x_ysTail</span></code> (also know as <code class="shiki-inline"><span>x_ys</span></code> in the type declaration) will create another sorted list.</p><p>Before getting to the main idea of our proof, we have to reverse the permutation <code class="shiki-inline"><span>x'ysPermX_ys</span></code> constructing <code class="shiki-inline"><span>Permutation x_ys (x::ys)</span></code> from <code class="shiki-inline"><span>Permutation (x::ys) x_ys</span></code>. To prove this obvious fact, we have create a tiny utility theorem:</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">permutationRev</span><span style="color:#ABB2BF"> : Permutation xs ys -&gt; Permutation ys xs</span></span>
<span class="line"><span style="color:#ABB2BF">permutationRev (</span><span style="color:#D19A66">PermutationZero</span><span style="color:#ABB2BF">) = </span><span style="color:#D19A66">PermutationZero</span></span>
<span class="line"><span style="color:#ABB2BF">permutationRev (</span><span style="color:#D19A66">PermutationGrow</span><span style="color:#ABB2BF"> as bs x p) =</span></span>
<span class="line"><span style="color:#ABB2BF">  (</span><span style="color:#D19A66">PermutationGrow</span><span style="color:#ABB2BF"> bs as x (permutationRev p))</span></span>
<span class="line"><span style="color:#ABB2BF">permutationRev (</span><span style="color:#D19A66">PermutationSwap</span><span style="color:#ABB2BF"> as bs a b p) =</span></span>
<span class="line"><span style="color:#D19A66">  PermutationSwap</span><span style="color:#ABB2BF"> bs as b a (permutationRev p)</span></span>
<span class="line"><span style="color:#ABB2BF">permutationRev (</span><span style="color:#D19A66">PermutationTrans</span><span style="color:#ABB2BF"> as bs cs perm1 perm2) =</span></span>
<span class="line"><span style="color:#D19A66">  PermutationTrans</span><span style="color:#ABB2BF"> cs bs as (permutationRev perm2) (permutationRev perm1)</span></span></code></pre></div><p>First, we use the theorem <code class="shiki-inline"><span>elOfListIsInPermOfList</span></code> to show that, because <code class="shiki-inline"><span>f::x_ysTail</span></code> is a permutation of <code class="shiki-inline"><span>x::ys</span></code>, then <code class="shiki-inline"><span>f</span></code> must be an element of the list <code class="shiki-inline"><span>x::ys</span></code>. That means <code class="shiki-inline"><span>f</span></code> must either:</p><ol><li value="1">Be equal to the head <code class="shiki-inline"><span>x</span></code> of <code class="shiki-inline"><span>x::ys</span></code></li><li value="2">Be an element of the tail <code class="shiki-inline"><span>ys</span></code> of <code class="shiki-inline"><span>x::ys</span></code></li></ol><p>In both cases, we create evidence <code class="shiki-inline"><span>yLteF</span></code> of type <code class="shiki-inline"><span>idris LTE y f</span></code> to show that <code class="shiki-inline"><span>y</span></code> is less than or equal to the first element of <code class="shiki-inline"><span>f::x_ysTail</span></code>, which is enough to construct a <code class="shiki-inline"><span>SortedMany</span></code> that completes the proof.</p><p>In the case that <code class="shiki-inline"><span>f</span></code> equals <code class="shiki-inline"><span>x</span></code>, we can use the fact that we know that <code class="shiki-inline"><span>y</span></code> <math><mo lspace="0em" rspace="0em">≤</mo></math> <code class="shiki-inline"><span>x</span></code> to show that <code class="shiki-inline"><span>y</span></code> <math><mo lspace="0em" rspace="0em">≤</mo></math> <code class="shiki-inline"><span>f</span></code> by substitution. We do this substitution with Idris’ built in <a href="https://idris2.readthedocs.io/en/latest/proofs/propositional.html#replace"><code class="shiki-inline"><span>replace</span></code> function</a>.</p><p>In the case that <code class="shiki-inline"><span>f</span></code> is in <code class="shiki-inline"><span>ys</span></code>, we use another theorem <code class="shiki-inline"><span>yAfterXInSortedListImpliesXLtY</span></code> to show that <code class="shiki-inline"><span>y</span></code> <math><mo lspace="0em" rspace="0em">≤</mo></math> <code class="shiki-inline"><span>f</span></code>.</p><h3><code class="shiki-inline"><span>el​Of​List​Is​In​Perm​Of​List</span></code></h3><p>This theorem tells us that given some list containing element <code class="shiki-inline"><span>x</span></code>, any permutation of that list will also contain <code class="shiki-inline"><span>x</span></code>.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">elOfListIsInPermOfList</span><span style="color:#ABB2BF">: (</span><span style="color:#E06C75">a</span><span style="color:#ABB2BF"> : Nat) -&gt; Permutation as cs -&gt; Elem a as</span></span>
<span class="line"><span style="color:#ABB2BF">  -&gt; </span><span style="color:#D19A66">Elem</span><span style="color:#ABB2BF"> a cs</span></span>
<span class="line"><span style="color:#ABB2BF">elOfListIsInPermOfList c (</span><span style="color:#D19A66">PermutationSwap</span><span style="color:#ABB2BF"> xs ys a b p) </span><span style="color:#56B6C2">elem</span><span style="color:#ABB2BF"> = </span><span style="color:#C678DD">case</span><span style="color:#56B6C2"> elem</span><span style="color:#C678DD"> of</span></span>
<span class="line"><span style="color:#D19A66">  Here</span><span style="color:#ABB2BF"> =&gt; </span><span style="color:#D19A66">There</span><span style="color:#ABB2BF"> (</span><span style="color:#D19A66">Here</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#D19A66">  There</span><span style="color:#ABB2BF"> (</span><span style="color:#D19A66">Here</span><span style="color:#ABB2BF">) =&gt; </span><span style="color:#D19A66">Here</span></span>
<span class="line"><span style="color:#D19A66">  There</span><span style="color:#ABB2BF"> (</span><span style="color:#D19A66">There</span><span style="color:#ABB2BF"> pos) =&gt; </span><span style="color:#D19A66">There</span><span style="color:#ABB2BF"> (</span><span style="color:#D19A66">There</span><span style="color:#ABB2BF"> (elOfListIsInPermOfList c p pos))</span></span>
<span class="line"><span style="color:#ABB2BF">elOfListIsInPermOfList l (</span><span style="color:#D19A66">PermutationGrow</span><span style="color:#ABB2BF"> xs ys x p1) </span><span style="color:#56B6C2">elem</span><span style="color:#ABB2BF"> = </span><span style="color:#C678DD">case</span><span style="color:#56B6C2"> elem</span><span style="color:#C678DD"> of</span></span>
<span class="line"><span style="color:#D19A66">  Here</span><span style="color:#ABB2BF"> =&gt; </span><span style="color:#D19A66">Here</span></span>
<span class="line"><span style="color:#D19A66">  There</span><span style="color:#56B6C2"> elem</span><span style="color:#ABB2BF"> =&gt; </span><span style="color:#D19A66">There</span><span style="color:#ABB2BF"> (elOfListIsInPermOfList l p1 </span><span style="color:#56B6C2">elem</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">elOfListIsInPermOfList a (</span><span style="color:#D19A66">PermutationTrans</span><span style="color:#ABB2BF"> as bs cs p1 p2) aElemAs = </span><span style="color:#C678DD">let</span></span>
<span class="line"><span style="color:#61AFEF">  aElemBs</span><span style="color:#ABB2BF"> : (Elem a bs) = elOfListIsInPermOfList a p1 aElemAs</span></span>
<span class="line"><span style="color:#C678DD">  in</span><span style="color:#ABB2BF"> elOfListIsInPermOfList a p2 aElemBs</span></span></code></pre></div><p>Here, we simply look at every possible <code class="shiki-inline"><span>Permutation</span></code> constructor, recursively finding out where the element is. Note that we don’t need to handle <code class="shiki-inline"><span>PermutationZero</span></code> because idris has statically determined that passing in <code class="shiki-inline"><span>PermutationZero</span></code> would be impossible for lists that contain elements.</p><h3><code class="shiki-inline"><span>y​After​X​In​Sorted​List​Implies​X​Lt​Y</span></code></h3><p>We’ve arrived at our final theorem, another heap of messy characters. The idea of this theorem, however, is simple: if an element <code class="shiki-inline"><span>y</span></code> is in a list <code class="shiki-inline"><span>xs</span></code>, and the list <code class="shiki-inline"><span>x::xs</span></code> is sorted, then <code class="shiki-inline"><span>x &lt;= y</span></code>. In other words, if an element <code class="shiki-inline"><span>y</span></code> comes after <code class="shiki-inline"><span>x</span></code> in a sorted list, then <code class="shiki-inline"><span>x &lt;= y</span></code>.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">yAfterXInSortedListImpliesXLtY</span><span style="color:#ABB2BF">: (x, y : Nat) -&gt; (</span><span style="color:#E06C75">xs</span><span style="color:#ABB2BF"> : Vect n Nat) -&gt; (Sorted (x::xs)) -&gt; (Elem y xs)</span></span>
<span class="line"><span style="color:#ABB2BF">  -&gt; (LTE x y)</span></span>
<span class="line"><span style="color:#ABB2BF">yAfterXInSortedListImpliesXLtY x y (y::xs) (</span><span style="color:#D19A66">SortedMany</span><span style="color:#ABB2BF"> x y xs prfLte sor) </span><span style="color:#D19A66">Here</span><span style="color:#ABB2BF"> = prfLte</span></span>
<span class="line"><span style="color:#ABB2BF">yAfterXInSortedListImpliesXLtY x y (f::xs) (</span><span style="color:#D19A66">SortedMany</span><span style="color:#ABB2BF"> x f xs prfLte sor) (</span><span style="color:#D19A66">There</span><span style="color:#ABB2BF"> n) = </span><span style="color:#C678DD">let</span></span>
<span class="line"><span style="color:#61AFEF">  fLteY</span><span style="color:#ABB2BF"> : LTE f y = yAfterXInSortedListImpliesXLtY f y xs sor n</span></span>
<span class="line"><span style="color:#61AFEF">  xLteF</span><span style="color:#ABB2BF"> : LTE x f = prfLte</span></span>
<span class="line"><span style="color:#C678DD">  in</span><span style="color:#ABB2BF"> transitive xLteF fLteY</span></span></code></pre></div><p>First, note that because we have at least two elements in our list (<code class="shiki-inline"><span>x</span></code> and <code class="shiki-inline"><span>y</span></code>), Idris can statically guarantee that we only need to handle the <code class="shiki-inline"><span>SortedMany</span></code> constructor.</p><p>Our proof splits on two cases:</p><ol><li value="1">If <code class="shiki-inline"><span>y</span></code> happens to be the first element in <code class="shiki-inline"><span>xs</span></code>, then we can just return the <code class="shiki-inline"><span>LTE</span></code> evidence embedded in our proof of sortedness.</li><li value="2">If <code class="shiki-inline"><span>y</span></code> is not the first element in <code class="shiki-inline"><span>xs</span></code>, then we call the first element <code class="shiki-inline"><span>f</span></code>, and recursively prove that <code class="shiki-inline"><span>f &lt;= y</span></code>. Then we use the <code class="shiki-inline"><span>LTE</span></code> in our proof of sortedness to show that <code class="shiki-inline"><span>x &lt;= f</span></code>, and use the standard-library-defined <code class="shiki-inline"><span>transitive</span></code><sup><a id="footnote-return-3" href="#footnote-3" role="doc-noteref" aria-label="footnote 3">3</a></sup> property of inequality to show that <code class="shiki-inline"><span>x &lt;= f</span></code>.</li></ol><h2>Conclusion</h2><p>With all these theorems in place, our program finally compiles, which—by the guarantees of Idris’ type system—proves that our sorting algorithm works correctly. Creating an actual proof is a powerful statement: assuming Idris has no bugs, our program will sort <em>any</em> list of natural numbers, no matter the size of the list or the size of the numbers. We know this without any testing, fuzzing, or manual inspection—as long as we trust our definitions, the fact that the program compiles provides total assurance. You can find the complete <a href="https://github.com/Ashwagandhae/cs-2051-dependent-types/blob/main/src/MainPrez.idr">source code on GitHub</a>.</p><p>Throughout this guide, I paired thorough proof explanations and programs that express those proofs. I intended for these pairings to help clarify the main idea of the Curry-Howard correspondence:</p><blockquote>Types correspond to propositions, programs correspond to proofs</blockquote><p>I hope it helps aspiring dependent typers learn!</p><footer><ol><li id="footnote-1" role="doc-footnote"><p>More specifically, I did not use:</p><ul><li>function application <code class="shiki-inline"><span>$</span></code> operator or function composition <code class="shiki-inline"><span>.</span></code> operator</li><li>shorthand constructors like <code class="shiki-inline"><span style="color:#C678DD">data</span><span style="color:#E5C07B"> Nat</span><span style="color:#ABB2BF"> = </span><span style="color:#D19A66">S</span><span style="color:#ABB2BF"> Nat | </span><span style="color:#D19A66">Z</span></code></li><li><a href="https://idris2.readthedocs.io/en/latest/proofs/propositional.html#rewrite">implicit arguments</a></li><li><a href="https://idris2.readthedocs.io/en/latest/proofs/propositional.html#rewrite"><code class="shiki-inline"><span>rewrite</span></code></a>, instead always manually using <code class="shiki-inline"><span>replace</span></code></li><li><a href="https://idris2.readthedocs.io/en/latest/tutorial/views.html#the-with-rule-matching-intermediate-values"><code class="shiki-inline"><span>with</span></code> rule</a></li></ul><p><a href="#footnote-return-1" role="doc-backlink" aria-label="Back to content">↩︎</a></p></li><li id="footnote-2" role="doc-footnote">Technically, we only have a proof that <code class="shiki-inline"><span>y</span></code> is less than or equal to <code class="shiki-inline"><span>x</span></code>, which is all we need to complete our proof. However, based on how our <code class="shiki-inline"><span>lteTotal</span></code> function is defined, we will only reach the <code class="shiki-inline"><span>Right</span></code> branch of <code class="shiki-inline"><span>x</span></code> <math><mo lspace="0em" rspace="0em">&gt;</mo></math> <code class="shiki-inline"><span>y</span></code>. <a href="#footnote-return-2" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-3" role="doc-footnote"><p>The <a href="https://idris-lang.org/Idris2/base/source/Data.Nat.html">implementation</a> is pretty simple, although it uses the <code class="shiki-inline"><span>Transitive</span></code> interface which makes it a bit confusing. Ignoring interfaces, we could prove this property by writing</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">transitive</span><span style="color:#ABB2BF">: LTE x y -&gt; LTE y z -&gt; LTE x z</span></span>
<span class="line"><span style="color:#ABB2BF">transitive </span><span style="color:#D19A66">LTEZero</span><span style="color:#D19A66"> _</span><span style="color:#ABB2BF"> = </span><span style="color:#D19A66">LTEZero</span></span>
<span class="line"><span style="color:#ABB2BF">transitive (</span><span style="color:#D19A66">LTESucc</span><span style="color:#ABB2BF"> xy) (</span><span style="color:#D19A66">LTESucc</span><span style="color:#ABB2BF"> yz) =</span></span>
<span class="line"><span style="color:#D19A66">  LTESucc</span><span style="color:#ABB2BF"> $ transitive xy yz</span></span></code></pre></div><a href="#footnote-return-3" role="doc-backlink" aria-label="Back to content">↩︎</a></li></ol></footer>]]></content>
    </entry>
  
    <entry>
      <title><![CDATA[Finding all disarium numbers in 12 seconds]]></title>
      <link href="https://julianlbauer.com/writing/disarium" />
      <id>https://julianlbauer.com/writing/disarium</id>
      <published>2025-12-19T00:00:00.000Z</published>
      <updated>2025-12-19T00:00:00.000Z</updated>
      <summary><![CDATA[Explanation of how I wrote a Rust program to find all disarium numbers in 12 seconds.]]></summary>
      <content type="html"><![CDATA[<p>A disarium numbers is an integer where the sum of the digits powered to their position in the number equals the original number. For example, 135 is a disarium number, because <math><msup><mn>1</mn><mn>1</mn></msup><mo>+</mo><msup><mn>3</mn><mn>2</mn></msup><mo>+</mo><msup><mn>5</mn><mn>3</mn></msup><mo>=</mo><mn>135</mn></math>.</p><p>As a way to learn more about benchmarking and writing code that go fast, I wrote a <a href="https://github.com/Ashwagandhae/disarium/">Rust program</a> to find all the disarium numbers as quickly as possible. I got the program to check all 18446744073709551616 <code class="shiki-inline"><span>u64</span></code>s in just over 12 seconds on my MacBook Pro M4.</p><h2>Problem scope</h2><p>To understand the scope of this problem, I did some preliminary research and realized that there are a finite number of disarium numbers, because once you reach 23 digits, the largest possible digit-power-sum only has 22 digits:</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span>99999999999999999999999 &lt;- 23 digit number with max digit sizes</span></span>
<span class="line"><span>9960805384609063732919  &lt;- digit-power-sum of 99999999999999999999999</span></span></code></pre></div><p>This digit difference means that there cannot exist any disarium numbers with more than 22 digits because all digit-power-sums after that will be too small.</p><p>In reality, there are only 20 disarium numbers, and all of them fit into a <code class="shiki-inline"><span>u64</span></code>. To make implementation easier, I decided to benchmark checking all <code class="shiki-inline"><span>u64</span></code>s instead of using <code class="shiki-inline"><span>u128</span></code>s and going to 22 digits, although I also checked the runtime with <code class="shiki-inline"><span>u128</span></code>s in the end as well.</p><h2>Basic approach</h2><p>The easiest way to find all disarium numbers is to loop through every integer, break it into digits, and check if the digit-power-sum equals the original number to see it’s a disarium number.</p><p>A small optimization is to store and increment the digits separately so that you don’t have to repeatedly extract digits.<sup><a id="footnote-return-1" href="#footnote-1" role="doc-noteref" aria-label="footnote 1">1</a></sup> I implemented this version as a starting point.</p><p>src/lib.rs:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">fn</span><span style="color:#61AFEF"> add_one</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">digits</span><span style="color:#ABB2BF">: &amp;</span><span style="color:#C678DD">mut</span><span style="color:#ABB2BF"> [</span><span style="color:#E5C07B">u8</span><span style="color:#ABB2BF">], </span><span style="color:#E06C75">number</span><span style="color:#ABB2BF">: &amp;</span><span style="color:#C678DD">mut</span><span style="color:#E5C07B"> u64</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#ABB2BF">    *</span><span style="color:#E06C75">number</span><span style="color:#56B6C2"> +=</span><span style="color:#D19A66"> 1</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#C678DD">    for</span><span style="color:#E06C75"> i</span><span style="color:#C678DD"> in</span><span style="color:#ABB2BF"> (</span><span style="color:#D19A66">0</span><span style="color:#ABB2BF">..</span><span style="color:#E06C75">digits</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">len</span><span style="color:#ABB2BF">()).</span><span style="color:#61AFEF">rev</span><span style="color:#ABB2BF">() {</span></span>
<span class="line"><span style="color:#C678DD">        if</span><span style="color:#E06C75"> digits</span><span style="color:#ABB2BF">[</span><span style="color:#E06C75">i</span><span style="color:#ABB2BF">] </span><span style="color:#56B6C2">&lt;</span><span style="color:#D19A66"> 9</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">            digits</span><span style="color:#ABB2BF">[</span><span style="color:#E06C75">i</span><span style="color:#ABB2BF">] </span><span style="color:#56B6C2">+=</span><span style="color:#D19A66"> 1</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#C678DD">            return</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#ABB2BF">        }</span></span>
<span class="line"><span style="color:#E06C75">        digits</span><span style="color:#ABB2BF">[</span><span style="color:#E06C75">i</span><span style="color:#ABB2BF">] </span><span style="color:#56B6C2">=</span><span style="color:#D19A66"> 0</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#ABB2BF">    }</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">fn</span><span style="color:#61AFEF"> check_disarium</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">digits</span><span style="color:#ABB2BF">: &amp;[</span><span style="color:#E5C07B">u8</span><span style="color:#ABB2BF">], </span><span style="color:#E06C75">number</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">u64</span><span style="color:#ABB2BF">) -&gt; </span><span style="color:#E5C07B">bool</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> number_cmp</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">u64</span><span style="color:#56B6C2"> =</span><span style="color:#E06C75"> digits</span></span>
<span class="line"><span style="color:#ABB2BF">        .</span><span style="color:#61AFEF">iter</span><span style="color:#ABB2BF">()</span></span>
<span class="line"><span style="color:#ABB2BF">        .</span><span style="color:#61AFEF">skip_while</span><span style="color:#ABB2BF">(</span><span style="color:#56B6C2">|</span><span style="color:#ABB2BF">&amp;</span><span style="color:#E06C75">n</span><span style="color:#56B6C2">|</span><span style="color:#ABB2BF"> *</span><span style="color:#E06C75">n</span><span style="color:#56B6C2"> ==</span><span style="color:#D19A66"> 0</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">        .</span><span style="color:#61AFEF">enumerate</span><span style="color:#ABB2BF">()</span></span>
<span class="line"><span style="color:#ABB2BF">        .</span><span style="color:#61AFEF">map</span><span style="color:#ABB2BF">(</span><span style="color:#56B6C2">|</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">i</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">n</span><span style="color:#ABB2BF">)</span><span style="color:#56B6C2">|</span><span style="color:#ABB2BF"> (*</span><span style="color:#E06C75">n</span><span style="color:#C678DD"> as</span><span style="color:#E5C07B"> u64</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">pow</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">i</span><span style="color:#C678DD"> as</span><span style="color:#E5C07B"> u32</span><span style="color:#ABB2BF"> + </span><span style="color:#D19A66">1</span><span style="color:#ABB2BF">))</span></span>
<span class="line"><span style="color:#ABB2BF">        .</span><span style="color:#61AFEF">sum</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#E06C75">    number_cmp</span><span style="color:#56B6C2"> ==</span><span style="color:#E06C75"> number</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">pub</span><span style="color:#C678DD"> fn</span><span style="color:#61AFEF"> find_disarium</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">bound</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">u64</span><span style="color:#ABB2BF">) -&gt; </span><span style="color:#C678DD">impl</span><span style="color:#E5C07B"> Iterator</span><span style="color:#ABB2BF">&lt;</span><span style="color:#E5C07B">Item</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> u64</span><span style="color:#ABB2BF">&gt; {</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#C678DD"> mut</span><span style="color:#E06C75"> digits</span><span style="color:#56B6C2"> =</span><span style="color:#ABB2BF"> [</span><span style="color:#D19A66">0</span><span style="color:#ABB2BF">; </span><span style="color:#D19A66">10</span><span style="color:#ABB2BF">];</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#C678DD"> mut</span><span style="color:#E06C75"> number</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">u64</span><span style="color:#56B6C2"> =</span><span style="color:#D19A66"> 0</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#E5C07B">    std</span><span style="color:#ABB2BF">::</span><span style="color:#E5C07B">iter</span><span style="color:#ABB2BF">::</span><span style="color:#61AFEF">from_fn</span><span style="color:#ABB2BF">(</span><span style="color:#C678DD">move</span><span style="color:#56B6C2"> ||</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">        while</span><span style="color:#E06C75"> number</span><span style="color:#56B6C2"> &lt;</span><span style="color:#E06C75"> bound</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#61AFEF">            add_one</span><span style="color:#ABB2BF">(&amp;</span><span style="color:#C678DD">mut</span><span style="color:#E06C75"> digits</span><span style="color:#ABB2BF">, &amp;</span><span style="color:#C678DD">mut</span><span style="color:#E06C75"> number</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">            if</span><span style="color:#61AFEF"> check_disarium</span><span style="color:#ABB2BF">(&amp;</span><span style="color:#E06C75">digits</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">number</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#C678DD">                return</span><span style="color:#E5C07B"> Some</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">number</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#ABB2BF">            }</span></span>
<span class="line"><span style="color:#ABB2BF">        }</span></span>
<span class="line"><span style="color:#E5C07B">        None</span></span>
<span class="line"><span style="color:#ABB2BF">    })</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>Checking the first 100 million integers gives</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span>1</span></span>
<span class="line"><span>2</span></span>
<span class="line"><span>3</span></span>
<span class="line"><span>4</span></span>
<span class="line"><span>5</span></span>
<span class="line"><span>6</span></span>
<span class="line"><span>7</span></span>
<span class="line"><span>8</span></span>
<span class="line"><span>9</span></span>
<span class="line"><span>89</span></span>
<span class="line"><span>135</span></span>
<span class="line"><span>175</span></span>
<span class="line"><span>518</span></span>
<span class="line"><span>598</span></span>
<span class="line"><span>1306</span></span>
<span class="line"><span>1676</span></span>
<span class="line"><span>2427</span></span>
<span class="line"><span>2646798</span></span></code></pre></div><p>This approach gives us 18 out of 20 numbers in about 1 second. Unfortunately, the final two are slightly larger, and will take some more optimization to reveal in a reasonable amount of time.</p><h2>Benchmarking</h2><p>To properly measure performance improvements, I installed the benchmarking library <a href="https://docs.rs/criterion/latest/criterion/">criterion</a>. This library makes measuring benchmark differences easier and more reliable. I wrote a simple benchmark on the first 1 million numbers:</p><p>benches/benchmark.rs:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">pub</span><span style="color:#C678DD"> fn</span><span style="color:#61AFEF"> criterion_benchmark</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">c</span><span style="color:#ABB2BF">: &amp;</span><span style="color:#C678DD">mut</span><span style="color:#E5C07B"> Criterion</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#E06C75">    c</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">bench_function</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"disarium 1 mil"</span><span style="color:#ABB2BF">, </span><span style="color:#56B6C2">|</span><span style="color:#E06C75">b</span><span style="color:#56B6C2">|</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">        b</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">iter</span><span style="color:#ABB2BF">(</span><span style="color:#56B6C2">||</span><span style="color:#61AFEF"> find_disarium</span><span style="color:#ABB2BF">(</span><span style="color:#61AFEF">black_box</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66">1_000_000</span><span style="color:#ABB2BF">)).</span><span style="color:#61AFEF">collect</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#E5C07B">Vec</span><span style="color:#ABB2BF">&lt;</span><span style="color:#E06C75">_</span><span style="color:#ABB2BF">&gt;&gt;())</span></span>
<span class="line"><span style="color:#ABB2BF">    });</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><h2>Table of powers</h2><p>Because there are only 10 possible digits and 20 possible digit places, we can precalculate all possible powers for each digit and store them in a table at compile time.</p><p>src/lib.rs:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">const</span><span style="color:#D19A66"> DIGIT_POWERS</span><span style="color:#ABB2BF">: [[</span><span style="color:#E5C07B">u64</span><span style="color:#ABB2BF">; </span><span style="color:#D19A66">20</span><span style="color:#ABB2BF">]; </span><span style="color:#D19A66">10</span><span style="color:#ABB2BF">] </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#C678DD"> mut</span><span style="color:#E06C75"> table</span><span style="color:#56B6C2"> =</span><span style="color:#ABB2BF"> [[</span><span style="color:#D19A66">0</span><span style="color:#E5C07B">u64</span><span style="color:#ABB2BF">; </span><span style="color:#D19A66">20</span><span style="color:#ABB2BF">]; </span><span style="color:#D19A66">10</span><span style="color:#ABB2BF">];</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#C678DD"> mut</span><span style="color:#E06C75"> d</span><span style="color:#56B6C2"> =</span><span style="color:#D19A66"> 0</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#C678DD">    while</span><span style="color:#E06C75"> d</span><span style="color:#56B6C2"> &lt;</span><span style="color:#D19A66"> 10</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">        let</span><span style="color:#C678DD"> mut</span><span style="color:#E06C75"> p</span><span style="color:#56B6C2"> =</span><span style="color:#D19A66"> 0</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#C678DD">        while</span><span style="color:#E06C75"> p</span><span style="color:#56B6C2"> &lt;</span><span style="color:#D19A66"> 20</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">            table</span><span style="color:#ABB2BF">[</span><span style="color:#E06C75">d</span><span style="color:#ABB2BF">][</span><span style="color:#E06C75">p</span><span style="color:#ABB2BF">] </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> (</span><span style="color:#E06C75">d</span><span style="color:#C678DD"> as</span><span style="color:#E5C07B"> u64</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">pow</span><span style="color:#ABB2BF">((</span><span style="color:#E06C75">p</span><span style="color:#ABB2BF"> + </span><span style="color:#D19A66">1</span><span style="color:#ABB2BF">) </span><span style="color:#C678DD">as</span><span style="color:#E5C07B"> u32</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#E06C75">            p</span><span style="color:#56B6C2"> +=</span><span style="color:#D19A66"> 1</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#ABB2BF">        }</span></span>
<span class="line"><span style="color:#E06C75">        d</span><span style="color:#56B6C2"> +=</span><span style="color:#D19A66"> 1</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#ABB2BF">    }</span></span>
<span class="line"><span style="color:#E06C75">    table</span></span>
<span class="line"><span style="color:#ABB2BF">};</span></span>
<span class="line"><span style="color:#C678DD">fn</span><span style="color:#61AFEF"> exp_digit</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">digit</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">usize</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">position</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">usize</span><span style="color:#ABB2BF">) -&gt; </span><span style="color:#E5C07B">u64</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#D19A66">    DIGIT_POWERS</span><span style="color:#ABB2BF">[</span><span style="color:#E06C75">digit</span><span style="color:#ABB2BF">][</span><span style="color:#E06C75">position</span><span style="color:#ABB2BF">]</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>In addition to helping “improve code”, using a benchmarking library like criterion has a very good benefit of gamifying optimization. The dopamine-rich green dripping off of improving benchmarks provides great motivation to continue coding.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#98c379">disarium 1 mil          </span><span style="color:#abb2bf">time:   [</span><span style="color:#abb2bf80">2.0033 ms </span><span style="color:#abb2bf;font-weight:bold">2.0059 ms </span><span style="color:#abb2bf80">2.0086 ms</span><span style="color:#abb2bf">]</span></span>
<span class="line"><span style="color:#abb2bf">                        change: [</span><span style="color:#abb2bf80">−71.564% </span><span style="color:#98c379;font-weight:bold">−71.299% </span><span style="color:#abb2bf80">−71.063%</span><span style="color:#abb2bf">] (p = 0.00 &lt; 0.05)</span></span>
<span class="line"><span style="color:#abb2bf">                        Performance has </span><span style="color:#98c379">improved</span><span style="color:#abb2bf">.</span></span></code></pre></div><p>Our optimization seems to have worked. So good!</p><h2>Freezing digits</h2><p>Tragically, reducing the work we do to check each number will still end up slow if we do that work on all 18,446,744,073,709,551,616 <code class="shiki-inline"><span>u64</span></code>s. I decided to look for ways to exclude ranges of numbers and save time.</p><p>To help look for patterns, I used a quick python script to create a graph of the differences between each number and its digit-power-sum. I’ve recreated this graph:</p><figure aria-label="Graph of n subtracted from digit-power-sum(n) shown on the y-axis for integers in [0, 100] on the x-axis. The graph shows big spikes every 10 digits, revealing that the lower-place digits have the biggest impact on the digit-power-sum."><img src="data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20390.271%20228.061%22%20width%3D%22390.271pt%22%20height%3D%22228.061pt%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20xmlns%3Ah5%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%3E%3Crect%20fill%3D%22%231a1a1a%22%20height%3D%22100%25%22%20width%3D%22100%25%22%3E%3C%2Frect%3E%3Cg%3E%3Cg%20transform%3D%22translate(40.271)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(50.315656566)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(81.881313131)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(113.446969697)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(145.012626263)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(176.578282828)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(208.143939394)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(239.70959596)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(271.275252525)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(302.840909091)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(334.406565657)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20188.045634921)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20163.244047619)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20138.442460317)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20113.640873016)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2088.839285714)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2064.037698413)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2039.236111111)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2014.43452381)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cg%20clip-path%3D%22url(%23cB43DEB99DE931151D6B0B15873618090)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(21.906565657%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(25.063131313%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(28.21969697%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(31.376262626%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(34.532828283%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(37.689393939%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(40.845959596%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(44.002525253%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(47.159090909%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(50.315656566%2088.839285714)%22%20d%3D%22M%200%200v%2011.160714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(53.472222222%2088.839285714)%22%20d%3D%22M%200%200v%2011.160714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(56.628787879%2088.839285714)%22%20d%3D%22M%200%200v%208.680555556%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(59.785353535%2088.839285714)%22%20d%3D%22M%200%200v%203.720238095%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(62.941919192%2088.839285714)%22%20d%3D%22M%200%200v%20-3.720238095%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(66.098484848%2088.839285714)%22%20d%3D%22M%200%200v%20-13.640873016%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(69.255050505%2088.839285714)%22%20d%3D%22M%200%200v%20-26.041666667%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(72.411616162%2088.839285714)%22%20d%3D%22M%200%200v%20-40.922619048%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(75.568181818%2088.839285714)%22%20d%3D%22M%200%200v%20-58.283730159%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(78.724747475%2088.839285714)%22%20d%3D%22M%200%200v%20-78.125%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(81.881313131%2088.839285714)%22%20d%3D%22M%200%200v%2022.321428571%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(85.037878788%2088.839285714)%22%20d%3D%22M%200%200v%2022.321428571%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(88.194444444%2088.839285714)%22%20d%3D%22M%200%200v%2019.841269841%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(91.351010101%2088.839285714)%22%20d%3D%22M%200%200v%2014.880952381%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(94.507575758%2088.839285714)%22%20d%3D%22M%200%200v%207.44047619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(97.664141414%2088.839285714)%22%20d%3D%22M%200%200v%20-2.48015873%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(100.820707071%2088.839285714)%22%20d%3D%22M%200%200v%20-14.880952381%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(103.977272727%2088.839285714)%22%20d%3D%22M%200%200v%20-29.761904762%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(107.133838384%2088.839285714)%22%20d%3D%22M%200%200v%20-47.123015873%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(110.29040404%2088.839285714)%22%20d%3D%22M%200%200v%20-66.964285714%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(113.446969697%2088.839285714)%22%20d%3D%22M%200%200v%2033.482142857%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(116.603535354%2088.839285714)%22%20d%3D%22M%200%200v%2033.482142857%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(119.76010101%2088.839285714)%22%20d%3D%22M%200%200v%2031.001984127%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(122.916666667%2088.839285714)%22%20d%3D%22M%200%200v%2026.041666667%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(126.073232323%2088.839285714)%22%20d%3D%22M%200%200v%2018.601190476%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(129.22979798%2088.839285714)%22%20d%3D%22M%200%200v%208.680555556%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(132.386363636%2088.839285714)%22%20d%3D%22M%200%200v%20-3.720238095%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(135.542929293%2088.839285714)%22%20d%3D%22M%200%200v%20-18.601190476%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(138.699494949%2088.839285714)%22%20d%3D%22M%200%200v%20-35.962301587%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(141.856060606%2088.839285714)%22%20d%3D%22M%200%200v%20-55.803571429%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(145.012626263%2088.839285714)%22%20d%3D%22M%200%200v%2044.642857143%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(148.169191919%2088.839285714)%22%20d%3D%22M%200%200v%2044.642857143%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(151.325757576%2088.839285714)%22%20d%3D%22M%200%200v%2042.162698413%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(154.482323232%2088.839285714)%22%20d%3D%22M%200%200v%2037.202380952%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(157.638888889%2088.839285714)%22%20d%3D%22M%200%200v%2029.761904762%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(160.795454545%2088.839285714)%22%20d%3D%22M%200%200v%2019.841269841%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(163.952020202%2088.839285714)%22%20d%3D%22M%200%200v%207.44047619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(167.108585859%2088.839285714)%22%20d%3D%22M%200%200v%20-7.44047619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(170.265151515%2088.839285714)%22%20d%3D%22M%200%200v%20-24.801587302%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(173.421717172%2088.839285714)%22%20d%3D%22M%200%200v%20-44.642857143%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(176.578282828%2088.839285714)%22%20d%3D%22M%200%200v%2055.803571429%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(179.734848485%2088.839285714)%22%20d%3D%22M%200%200v%2055.803571429%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(182.891414141%2088.839285714)%22%20d%3D%22M%200%200v%2053.323412698%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(186.047979798%2088.839285714)%22%20d%3D%22M%200%200v%2048.363095238%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(189.204545455%2088.839285714)%22%20d%3D%22M%200%200v%2040.922619048%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(192.361111111%2088.839285714)%22%20d%3D%22M%200%200v%2031.001984127%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(195.517676768%2088.839285714)%22%20d%3D%22M%200%200v%2018.601190476%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(198.674242424%2088.839285714)%22%20d%3D%22M%200%200v%203.720238095%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(201.830808081%2088.839285714)%22%20d%3D%22M%200%200v%20-13.640873016%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(204.987373737%2088.839285714)%22%20d%3D%22M%200%200v%20-33.482142857%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(208.143939394%2088.839285714)%22%20d%3D%22M%200%200v%2066.964285714%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(211.300505051%2088.839285714)%22%20d%3D%22M%200%200v%2066.964285714%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(214.457070707%2088.839285714)%22%20d%3D%22M%200%200v%2064.484126984%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(217.613636364%2088.839285714)%22%20d%3D%22M%200%200v%2059.523809524%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(220.77020202%2088.839285714)%22%20d%3D%22M%200%200v%2052.083333333%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(223.926767677%2088.839285714)%22%20d%3D%22M%200%200v%2042.162698413%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(227.083333333%2088.839285714)%22%20d%3D%22M%200%200v%2029.761904762%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(230.23989899%2088.839285714)%22%20d%3D%22M%200%200v%2014.880952381%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(233.396464646%2088.839285714)%22%20d%3D%22M%200%200v%20-2.48015873%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(236.553030303%2088.839285714)%22%20d%3D%22M%200%200v%20-22.321428571%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(239.70959596%2088.839285714)%22%20d%3D%22M%200%200v%2078.125%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(242.866161616%2088.839285714)%22%20d%3D%22M%200%200v%2078.125%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(246.022727273%2088.839285714)%22%20d%3D%22M%200%200v%2075.64484127%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(249.179292929%2088.839285714)%22%20d%3D%22M%200%200v%2070.68452381%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(252.335858586%2088.839285714)%22%20d%3D%22M%200%200v%2063.244047619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(255.492424242%2088.839285714)%22%20d%3D%22M%200%200v%2053.323412698%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(258.648989899%2088.839285714)%22%20d%3D%22M%200%200v%2040.922619048%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(261.805555556%2088.839285714)%22%20d%3D%22M%200%200v%2026.041666667%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(264.962121212%2088.839285714)%22%20d%3D%22M%200%200v%208.680555556%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(268.118686869%2088.839285714)%22%20d%3D%22M%200%200v%20-11.160714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(271.275252525%2088.839285714)%22%20d%3D%22M%200%200v%2089.285714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(274.431818182%2088.839285714)%22%20d%3D%22M%200%200v%2089.285714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(277.588383838%2088.839285714)%22%20d%3D%22M%200%200v%2086.805555556%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(280.744949495%2088.839285714)%22%20d%3D%22M%200%200v%2081.845238095%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(283.901515152%2088.839285714)%22%20d%3D%22M%200%200v%2074.404761905%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(287.058080808%2088.839285714)%22%20d%3D%22M%200%200v%2064.484126984%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(290.214646465%2088.839285714)%22%20d%3D%22M%200%200v%2052.083333333%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(293.371212121%2088.839285714)%22%20d%3D%22M%200%200v%2037.202380952%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(296.527777778%2088.839285714)%22%20d%3D%22M%200%200v%2019.841269841%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(299.684343434%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(302.840909091%2088.839285714)%22%20d%3D%22M%200%200v%20100.446428571%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(305.997474747%2088.839285714)%22%20d%3D%22M%200%200v%20100.446428571%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(309.154040404%2088.839285714)%22%20d%3D%22M%200%200v%2097.966269841%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(312.310606061%2088.839285714)%22%20d%3D%22M%200%200v%2093.005952381%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(315.467171717%2088.839285714)%22%20d%3D%22M%200%200v%2085.56547619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(318.623737374%2088.839285714)%22%20d%3D%22M%200%200v%2075.64484127%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(321.78030303%2088.839285714)%22%20d%3D%22M%200%200v%2063.244047619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(324.936868687%2088.839285714)%22%20d%3D%22M%200%200v%2048.363095238%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(328.093434343%2088.839285714)%22%20d%3D%22M%200%200v%2031.001984127%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(331.25%2088.839285714)%22%20d%3D%22M%200%200v%2011.160714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ff4136%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75%2088.839285714)%22%20d%3D%22M%200%200h%20312.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2016%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(50.315656566%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2044.815656566%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g3E2A4E29F5F78B7482203F9341039E72%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2050.315656566%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(81.881313131%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2076.381313131%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5037E03A0CBEB30198DBAC9F97CDF04F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2081.881313131%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(113.446969697%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20107.946969697%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gC63E28D2FF745BC8AEDEB058F758CC95%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20113.446969697%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(145.012626263%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20139.512626263%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5B440C03A6991C2AE1CF687F6CF909A%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20145.012626263%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(176.578282828%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20171.078282828%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gE3AFFB6D3A6969089B1BA192752CE6D1%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20176.578282828%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(208.143939394%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20202.643939394%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gBD401770F8867B490949D5AE1AB3F82%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20208.143939394%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(239.70959596%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20234.13809596%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8B3FA07D93F5CD200BBF8A3D70170575%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20239.78109596%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(271.275252525%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20265.775252525%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gD42E3B394D6850BF8C4865F4AE3B1088%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20271.275252525%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(302.840909091%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20297.340909091%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gA22B31529741E8678957AE18B36D082F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20302.840909091%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(334.406565657%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20326.156565657%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g3E2A4E29F5F78B7482203F9341039E72%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20331.656565657%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20337.156565657%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(6.123737374%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(12.436868687%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(25.063131313%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(31.376262626%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(37.689393939%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(44.002525253%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(56.628787879%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(62.941919192%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(69.255050505%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(75.568181818%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(88.194444444%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(94.507575758%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(100.820707071%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(107.133838384%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(119.76010101%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(126.073232323%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(132.386363636%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(138.699494949%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(151.325757576%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(157.638888889%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(163.952020202%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(170.265151515%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(182.891414141%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(189.204545455%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(195.517676768%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(201.830808081%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(214.457070707%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(220.77020202%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(227.083333333%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(233.396464646%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(246.022727273%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(252.335858586%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(258.648989899%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(264.962121212%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(277.588383838%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(283.901515152%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(290.214646465%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(296.527777778%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(309.154040404%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(315.467171717%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(321.78030303%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(328.093434343%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(340.71969697%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(347.032828283%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20220.713)%22%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20135.7245%207.348)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g4B491C9D0EAFB09ABAB1AC7BC9DFA911%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g5C3AABF9E729631755B8B12BA5F35AAD%22%20x%3D%226.006%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gEB5211937D607FFB591FCEE3719D218E%22%20x%3D%2211.792%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gB4C902E48C8D391C4615AFFB0E611714%22%20x%3D%2215.356%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gAB87DF46BD16BB429BA1A7AAD7177B35%22%20x%3D%2221.252%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g5C3AABF9E729631755B8B12BA5F35AAD%22%20x%3D%2224.827%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g2DC51706BC3B9B574727AA30C0F19912%22%20x%3D%2230.613%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g4B491C9D0EAFB09ABAB1AC7BC9DFA911%22%20x%3D%2236.322%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gB4C902E48C8D391C4615AFFB0E611714%22%20x%3D%2242.328%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gE05D5D7294E0599B8CEF8A16665A3920%22%20x%3D%2248.224%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g45C37C2E3D74B42AC20B9E6C65A434E4%22%20x%3D%2257.475%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gF7AC29E1E5FA5B1D800F0E84A8D3FE3D%22%20x%3D%2263.701%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gAB87DF46BD16BB429BA1A7AAD7177B35%22%20x%3D%2269.63%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gC7F2A8BD7C0771BB10ADE18F2DA062E4%22%20x%3D%2273.37%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%20%2F%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(50.315656566)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(81.881313131)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(113.446969697)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(145.012626263)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(176.578282828)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(208.143939394)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(239.70959596)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(271.275252525)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(302.840909091)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(334.406565657)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(6.123737374)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(12.436868687)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(25.063131313)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(31.376262626)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(37.689393939)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(44.002525253)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(56.628787879)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(62.941919192)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(69.255050505)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(75.568181818)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(88.194444444)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(94.507575758)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(100.820707071)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(107.133838384)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(119.76010101)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(126.073232323)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(132.386363636)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(138.699494949)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(151.325757576)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(157.638888889)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(163.952020202)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(170.265151515)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(182.891414141)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(189.204545455)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(195.517676768)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(201.830808081)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(214.457070707)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(220.77020202)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(227.083333333)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(233.396464646)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(246.022727273)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(252.335858586)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(258.648989899)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(264.962121212)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(277.588383838)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(283.901515152)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(290.214646465)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(296.527777778)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(309.154040404)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(315.467171717)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(321.78030303)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(328.093434343)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(340.71969697)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(347.032828283)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20%2F%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200l%200%20200%22%20%2F%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20188.045634921)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-25.058%20191.802134921)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8C5DE8B42A8F44179A2C3172A23CB10B%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%20191.802134921)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gD42E3B394D6850BF8C4865F4AE3B1088%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20191.802134921)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20163.244047619)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-25.058%20167.000547619)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8C5DE8B42A8F44179A2C3172A23CB10B%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%20167.000547619)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gBD401770F8867B490949D5AE1AB3F82%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20167.000547619)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20138.442460317)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-25.058%20142.198960317)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8C5DE8B42A8F44179A2C3172A23CB10B%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%20142.198960317)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5B440C03A6991C2AE1CF687F6CF909A%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20142.198960317)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20113.640873016)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-25.058%20117.397373016)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8C5DE8B42A8F44179A2C3172A23CB10B%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%20117.397373016)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5037E03A0CBEB30198DBAC9F97CDF04F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20117.397373016)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2088.839285714)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2092.595785714)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2064.037698413)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%2067.794198413)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5037E03A0CBEB30198DBAC9F97CDF04F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2067.794198413)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2039.236111111)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%2042.992611111)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5B440C03A6991C2AE1CF687F6CF909A%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2042.992611111)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2014.43452381)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%2018.19102381)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gBD401770F8867B490949D5AE1AB3F82%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2018.19102381)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20194.246031746)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20181.845238095)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20175.64484127)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20169.444444444)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20157.043650794)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20150.843253968)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20144.642857143)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20132.242063492)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20126.041666667)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20119.841269841)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20107.44047619)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20101.240079365)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2095.03968254)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2082.638888889)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2076.438492063)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2070.238095238)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2057.837301587)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2051.636904762)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2045.436507937)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2033.035714286)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2026.83531746)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2020.634920635)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%208.234126984)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%202.033730159)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(-40.271)%22%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%20156.454444444)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g74C12D21CC092D37E7D4D70E34ADCA23%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gF7A93543484FC37935C78A5D1F5B2EC6%22%20x%3D%226.116%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gE86F840DDA400091B8324095DD2EC20C%22%20x%3D%229.174%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gF7A93543484FC37935C78A5D1F5B2EC6%22%20x%3D%2214.674%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gED093E24411CDC16AD008BFA8D8A65C1%22%20x%3D%2217.732%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g332FEE9CAEF879E7D01E038ACA245048%22%20x%3D%2222.011%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gCBAED53C5EB8EDED597F84071DCE9968%22%20x%3D%2225.674%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gF1018D9EAD0D6A7C348C4064F39364A9%22%20x%3D%2231.79%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g5EB396CD9EB516C004A1674D88B874CA%22%20x%3D%2237.29%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g4F15B44AD1AAE7906B9D9F9C3850F14B%22%20x%3D%2245.232%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gA1583A9D47A5AF176809D99838F34700%22%20x%3D%2250.116%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g332FEE9CAEF879E7D01E038ACA245048%22%20x%3D%2254.428%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g67E0717D063DE91831D2A23981510B8D%22%20x%3D%2258.091%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g53741DD6BA4504AC32BDC384B8913A03%22%20x%3D%2262.425%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g5EF7A2FE47BCD00C1DDF63F6B87CC52A%22%20x%3D%2268.541%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%2078.750444444)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gCBFDB4FAA60E8030E7B751E03D6CAAA6%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%2074.471444444)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g46A72DF51926ABBEA5282E072AF79004%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%2067.871444444)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g11C1096A524ED08942C2BB5E0564A17C%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%2061.148)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8C5DE8B42A8F44179A2C3172A23CB10B%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%2050.145555556)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g46A72DF51926ABBEA5282E072AF79004%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20%2F%3E%3Cg%20transform%3D%22translate(350)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200l%200%20200%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(350)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20188.045634921)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20163.244047619)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20138.442460317)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20113.640873016)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2088.839285714)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2064.037698413)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2039.236111111)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2014.43452381)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(350)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20194.246031746)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20181.845238095)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20175.64484127)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20169.444444444)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20157.043650794)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20150.843253968)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20144.642857143)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20132.242063492)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20126.041666667)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20119.841269841)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20107.44047619)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20101.240079365)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2095.03968254)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2082.638888889)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2076.438492063)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2070.238095238)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2057.837301587)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2051.636904762)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2045.436507937)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2033.035714286)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2026.83531746)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2020.634920635)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%208.234126984)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%202.033730159)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(350)%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cdefs%3E%3Csymbol%20id%3D%22g18E9A2F0F5286FD67B2F2437F78BB061%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.739%20-0.242c%201.551%200%202.321%201.254%202.321%203.762c%200%201.683%20-0.352%202.805%20-1.045%203.355c%20-0.385%200.297%20-0.814%200.451%20-1.265%200.451c%20-1.551%200%20-2.321%20-1.265%20-2.321%20-3.806c%200%20-2.024%200.539%20-3.762%202.31%20-3.762Z%20m%201.232%206.006c%200.077%20-0.385%200.11%20-1.089%200.11%20-2.112c%200%20-1.012%20-0.044%20-1.76%20-0.121%20-2.244c%20-0.143%20-0.88%20-0.55%20-1.32%20-1.221%20-1.32c%20-0.253%200%20-0.506%200.099%20-0.737%200.286c%20-0.297%200.253%20-0.473%200.77%20-0.55%201.562c%20-0.033%200.275%20-0.044%200.847%20-0.044%201.716c%200%200.957%200.033%201.628%200.088%201.991c%200.099%200.605%200.297%200.99%200.605%201.155c%200.242%200.132%200.451%200.198%200.638%200.198c%200.715%200%201.111%20-0.583%201.232%20-1.232Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g3E2A4E29F5F78B7482203F9341039E72%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.959%207.326c%20-0.451%20-0.462%20-1.111%20-0.693%20-1.98%20-0.693v%20-0.429c%200.572%200%201.045%200.088%201.408%200.264v%20-5.566c%200%20-0.198%20-0.044%20-0.33%20-0.143%20-0.385c%20-0.099%20-0.055%20-0.374%20-0.088%20-0.814%20-0.088h%20-0.385v%20-0.429c%200.275%200.022%200.869%200.033%201.782%200.033c%200.913%200%201.507%20-0.011%201.782%20-0.033v%200.429h%20-0.385c%20-0.451%200%20-0.726%200.033%20-0.814%200.088c%20-0.088%200.055%20-0.143%200.187%20-0.143%200.385v%206.094c%200%200.264%20-0.022%200.33%20-0.308%200.33Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5037E03A0CBEB30198DBAC9F97CDF04F%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.607%207.326c%20-0.561%200%20-1.034%20-0.198%20-1.441%20-0.594c%20-0.407%20-0.396%20-0.616%20-0.858%20-0.616%20-1.419c%200%20-0.374%200.275%20-0.649%200.616%20-0.649c%200.33%200%200.605%200.286%200.605%200.616c%200%200.363%20-0.264%200.616%20-0.616%200.616c%20-0.033%200%20-0.055%200%20-0.077%20-0.011c%200.209%200.539%200.693%201.012%201.386%201.012c%200.902%200%201.408%20-0.781%201.408%20-1.727c%200%20-0.737%20-0.374%20-1.529%20-1.122%20-2.365l%20-2.068%20-2.332c%20-0.143%20-0.165%20-0.132%20-0.154%20-0.132%20-0.473h%204.081l%200.319%201.98h%20-0.363c%20-0.088%20-0.561%20-0.165%20-0.88%20-0.231%20-0.979c%20-0.055%20-0.055%20-0.385%20-0.077%20-0.99%20-0.077h%20-1.837l%201.067%201.045c%200.748%200.704%201.694%201.463%202.013%202.046c%200.22%200.385%200.33%200.77%200.33%201.155c%200%201.298%20-1.012%202.156%20-2.332%202.156Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gC63E28D2FF745BC8AEDEB058F758CC95%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.333%203.883c%200.726%200.275%201.408%200.968%201.408%201.903c%200%200.473%20-0.231%200.858%20-0.682%201.155c%20-0.396%200.253%20-0.847%200.385%20-1.353%200.385c%20-0.495%200%20-0.924%20-0.132%20-1.309%20-0.385c%20-0.429%20-0.286%20-0.649%20-0.66%20-0.649%20-1.133c%200%20-0.363%200.242%20-0.616%200.594%20-0.616c%200.352%200%200.594%200.253%200.594%200.605c%200%200.363%20-0.209%200.561%20-0.627%200.583c%200.286%200.385%200.737%200.583%201.353%200.583c%200.66%200%200.99%20-0.385%200.99%20-1.166c%200%20-0.462%20-0.088%20-0.847%20-0.253%20-1.166c%20-0.297%20-0.528%20-0.704%20-0.627%20-1.386%20-0.627c%20-0.132%20-0.022%20-0.198%20-0.077%20-0.198%20-0.176c%200%20-0.165%200.077%20-0.165%200.297%20-0.165h%200.473c%200.825%200%201.243%20-0.583%201.243%20-1.76c%200%20-0.935%20-0.341%20-1.749%20-1.177%20-1.749c%20-0.715%200%20-1.243%200.242%20-1.562%200.726c%200.385%20-0.011%200.671%200.275%200.671%200.649c%200%200.374%20-0.275%200.649%20-0.649%200.649c%20-0.429%200%20-0.649%20-0.22%20-0.649%20-0.671c%200%20-0.539%200.242%20-0.968%200.726%20-1.309c%200.429%20-0.297%200.935%20-0.44%201.496%20-0.44c%200.627%200%201.166%200.209%201.639%200.616c%200.473%200.407%200.704%200.913%200.704%201.529c%200%201.034%20-0.814%201.749%20-1.694%201.98Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5B440C03A6991C2AE1CF687F6CF909A%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.883%207.447c%20-0.099%200%20-0.187%20-0.055%20-0.253%20-0.154l%20-3.322%20-5.104v%20-0.396h%202.871v%20-0.902c%200%20-0.198%20-0.044%20-0.33%20-0.121%20-0.385c%20-0.077%20-0.055%20-0.286%20-0.077%20-0.649%20-0.077h%20-0.275v%20-0.429c%200.319%200.022%200.825%200.033%201.507%200.033c%200.682%200%201.188%20-0.011%201.507%20-0.033v%200.429h%20-0.275c%20-0.363%200%20-0.572%200.022%20-0.649%200.077c%20-0.077%200.055%20-0.121%200.187%20-0.121%200.385v%200.902h%201.078v%200.429h%20-1.078v%205.038c%200%200.11%20-0.077%200.187%20-0.22%200.187Z%20m%20-0.638%20-1.364v%20-3.861h%20-2.508Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gE3AFFB6D3A6969089B1BA192752CE6D1%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%201.298%203.465c%200.055%200%200.121%200.044%200.176%200.121c%200.33%200.495%200.781%200.737%201.353%200.737c%200.385%200%200.682%20-0.22%200.88%20-0.671c%200.121%20-0.297%200.187%20-0.748%200.187%20-1.353c%200%20-0.693%20-0.088%20-1.177%20-0.253%20-1.463c%20-0.275%20-0.451%20-0.649%20-0.682%20-1.122%20-0.682c%20-0.737%200%20-1.32%200.528%20-1.518%201.1c%200.033%20-0.011%200.055%200%200.099%200c%200.33%200%200.605%200.253%200.605%200.583c%200%200.341%20-0.275%200.572%20-0.605%200.572c%20-0.385%200%20-0.55%20-0.209%20-0.55%20-0.616c%200%20-1.1%200.891%20-2.035%201.991%20-2.035c%200.671%200%201.243%200.242%201.705%200.726c%200.462%200.484%200.693%201.067%200.693%201.738c%200%200.638%20-0.187%201.188%20-0.561%201.661c%20-0.407%200.517%20-0.913%200.77%20-1.529%200.77c%20-0.517%200%20-0.968%20-0.165%20-1.331%20-0.495v%201.958c%200.297%20-0.088%200.583%20-0.132%200.88%20-0.132c%200.506%200%200.946%200.121%201.32%200.374c%200.341%200.209%200.572%200.418%200.704%200.616c%200.066%200.088%200.099%200.154%200.099%200.187c%200%200.11%20-0.055%200.165%20-0.165%200.165c%20-0.605%20-0.231%20-1.122%20-0.352%20-1.54%20-0.352c%20-0.495%200%20-0.968%200.099%20-1.419%200.308c%20-0.055%200.022%20-0.099%200.033%20-0.143%200.033c%20-0.099%200%20-0.154%20-0.099%20-0.154%20-0.308v%20-3.212c%200%20-0.231%200%20-0.33%200.198%20-0.33Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gBD401770F8867B490949D5AE1AB3F82%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%204.213%205.544c%200.363%200%200.539%200.187%200.539%200.561c%200%200.792%20-0.594%201.221%20-1.408%201.221c%20-0.913%200%20-1.639%20-0.429%20-2.178%20-1.298c%20-0.473%20-0.748%20-0.704%20-1.595%20-0.704%20-2.552c%200%20-1.397%200.253%20-2.376%200.77%20-2.959c%200.44%20-0.506%200.946%20-0.759%201.529%20-0.759c%200.671%200%201.221%200.253%201.65%200.759c%200.407%200.484%200.616%201.067%200.616%201.738c%200%200.671%20-0.198%201.243%20-0.594%201.716c%20-0.418%200.506%20-0.957%200.77%20-1.606%200.77c%20-0.572%200%20-1.012%20-0.319%20-1.309%20-0.935v%200.066c%200%201.243%200.308%202.299%200.968%202.783c%200.286%200.209%200.583%200.308%200.88%200.308c%200.396%200%200.682%20-0.11%200.869%20-0.341c%20-0.374%200%20-0.561%20-0.209%20-0.561%20-0.539c%200%20-0.308%200.231%20-0.539%200.539%20-0.539Z%20m%20-0.429%20-1.804c%200.121%20-0.253%200.187%20-0.748%200.187%20-1.474c%200%20-0.715%20-0.055%20-1.188%20-0.176%20-1.43c%20-0.22%20-0.451%20-0.561%20-0.682%20-1.034%20-0.682c%20-0.319%200%20-0.561%200.11%20-0.737%200.33c%20-0.143%200.176%20-0.242%200.33%20-0.286%200.451c%20-0.132%200.341%20-0.198%200.858%20-0.198%201.562c%200%200.308%200.044%200.605%200.121%200.891c%200.143%200.517%200.55%201.001%201.155%201.001c%200.429%200%200.759%20-0.22%200.968%20-0.649Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g8B3FA07D93F5CD200BBF8A3D70170575%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%205.225%206.644c%200.077%200.099%200.11%200.242%200.11%200.44h%20-2.662c%20-0.759%200%20-1.188%200.044%20-1.265%200.143c%20-0.033%200.033%20-0.066%200.11%20-0.088%200.209h%20-0.341l%20-0.374%20-2.332h%200.363c%200.11%200.616%200.198%200.946%200.264%201.001c%200.033%200.033%200.374%200.055%201.023%200.055h%202.156l%20-1.166%20-1.65c%20-0.891%20-1.265%20-1.331%20-2.629%20-1.331%20-4.114c%200%20-0.429%200.176%20-0.638%200.539%20-0.638c%200.363%200%200.539%200.209%200.539%200.638v%200.561c%200%201.672%200.264%202.882%200.781%203.619Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gD42E3B394D6850BF8C4865F4AE3B1088%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.75%207.326c%20-0.539%200%20-1.012%20-0.176%20-1.408%20-0.528c%20-0.396%20-0.352%20-0.594%20-0.792%20-0.594%20-1.331c%200%20-0.451%200.165%20-0.858%200.495%20-1.221c%200.077%20-0.088%200.319%20-0.275%200.726%20-0.561c%20-1.001%20-0.517%20-1.507%20-1.188%20-1.507%20-2.002c%200%20-0.583%200.242%20-1.056%200.715%20-1.419c%200.44%20-0.341%200.957%20-0.506%201.562%20-0.506c%200.616%200%201.155%200.198%201.606%200.594c%200.451%200.396%200.682%200.913%200.682%201.518c%200%200.506%20-0.176%200.957%20-0.539%201.364c%20-0.132%200.143%20-0.473%200.396%20-1.012%200.737c%200.847%200.451%201.265%201.023%201.265%201.694c%200%201.001%20-0.957%201.661%20-1.991%201.661Z%20m%201.419%20-1.661c%200%20-0.572%20-0.341%20-1.067%20-1.023%20-1.474l%20-1.309%200.858c%20-0.341%200.22%20-0.517%200.506%20-0.517%200.847c%200%200.66%200.715%201.067%201.419%201.067c%200.759%200%201.43%20-0.539%201.43%20-1.298Z%20m%20-1.419%20-5.511c%20-0.902%200%20-1.661%200.649%20-1.661%201.529c%200%200.737%200.407%201.331%201.221%201.782l%201.298%20-0.825c%200.528%20-0.341%200.792%20-0.726%200.792%20-1.166c%200%20-0.792%20-0.825%20-1.32%20-1.65%20-1.32Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gA22B31529741E8678957AE18B36D082F%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%201.276%201.54c%20-0.363%200%20-0.539%20-0.187%20-0.539%20-0.561c%200%20-0.825%200.671%20-1.221%201.54%20-1.221c%200.88%200%201.584%200.44%202.101%201.331c%200.429%200.737%200.649%201.584%200.649%202.53c%200%201.397%20-0.253%202.387%20-0.759%202.97c%20-0.429%200.495%20-0.924%200.737%20-1.485%200.737c%20-0.649%200%20-1.188%20-0.231%20-1.617%20-0.704c%20-0.473%20-0.495%20-0.704%20-1.089%20-0.704%20-1.782c%200%20-0.671%200.198%20-1.243%200.594%20-1.716c%200.418%20-0.506%200.957%20-0.759%201.606%20-0.759c%200.572%200%201.012%200.308%201.309%200.924v%20-0.143c%200%20-1.199%20-0.209%20-2.013%20-0.638%20-2.453c%20-0.341%20-0.363%20-0.704%20-0.539%20-1.067%20-0.539c%20-0.44%200%20-0.759%200.099%20-0.968%200.308c%200.341%200%200.517%200.198%200.517%200.539c%200%200.308%20-0.231%200.539%20-0.539%200.539Z%20m%201.397%201.166c%20-0.429%200%20-0.748%200.22%20-0.968%200.66c%20-0.121%200.253%20-0.187%200.748%20-0.187%201.463c%200%200.715%200.077%201.199%200.22%201.474c%200.242%200.44%200.594%200.66%201.045%200.66c%200.451%200%200.781%20-0.275%200.99%20-0.825c%200.121%20-0.297%200.198%20-0.803%200.198%20-1.518c%200%20-0.957%20-0.429%20-1.914%20-1.298%20-1.914Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g4B491C9D0EAFB09ABAB1AC7BC9DFA911%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.77%200v%205.456h%200.682l%200.242%20-0.825q%200.231%200.385%200.649%200.649q%200.418%200.264%201.111%200.264q%200.99%200%201.397%20-0.5775q%200.407%20-0.5775%200.407%20-1.5125v%20-3.454h%20-0.924v%203.179q%200%200.418%20-0.077%200.7755q%20-0.077%200.3575%20-0.3355%200.5775q%20-0.2585%200.22%20-0.7865%200.22q%20-0.671%200%20-1.056%20-0.4565q%20-0.385%20-0.4565%20-0.385%20-1.3365v%20-2.959h%20-0.924Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5C3AABF9E729631755B8B12BA5F35AAD%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.299%20-0.132q%20-0.517%200%20-0.946%200.187q%20-0.429%200.187%20-0.682%200.539q%20-0.253%200.352%20-0.253%200.847q%200%200.649%200.4565%201.023q%200.4565%200.374%201.287%200.5775q%200.8305%200.2035%201.9415%200.3245q%200.022%200.693%20-0.275%201.067q%20-0.297%200.374%20-0.957%200.374q%20-0.495%200%20-0.8085%20-0.2255q%20-0.3135%20-0.2255%20-0.4015%20-0.6215l%20-0.891%200.264q%200.22%200.627%200.7865%200.9735q%200.5665%200.3465%201.3035%200.3465q%201.133%200%201.6555%20-0.5335q%200.5225%20-0.5335%200.5225%20-1.6775v%20-1.276q%200%20-0.682%200.055%20-1.177q%200.055%20-0.495%200.132%20-0.88h%20-0.847l%20-0.22%200.748q%20-0.242%20-0.407%20-0.693%20-0.6435q%20-0.451%20-0.2365%20-1.166%20-0.2365Z%20m%200.198%200.737q%200.429%200%200.814%200.154q%200.385%200.154%200.627%200.5225q%200.242%200.3685%200.242%201.0065v%200.341q%20-0.836%20-0.088%20-1.452%20-0.2145q%20-0.616%20-0.1265%20-0.9515%20-0.352q%20-0.3355%20-0.2255%20-0.3355%20-0.5995q%200%20-0.385%200.2805%20-0.6215q%200.2805%20-0.2365%200.7755%20-0.2365Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gEB5211937D607FFB591FCEE3719D218E%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.431%200q%20-0.517%200%20-0.7975%200.1045q%20-0.2805%200.1045%20-0.385%200.4015q%20-0.1045%200.297%20-0.1045%200.858v%203.355h%20-0.924v%200.737h%200.924v%201.375h%200.924v%20-1.375h%201.056v%20-0.737h%20-1.056v%20-3.201q%200%20-0.418%200.0825%20-0.561q%200.0825%20-0.143%200.4785%20-0.143h%200.495v%20-0.814h%20-0.693Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gB4C902E48C8D391C4615AFFB0E611714%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.497%20-0.132q%20-0.638%200%20-1.023%200.2695q%20-0.385%200.2695%20-0.5555%200.748q%20-0.1705%200.4785%20-0.1705%201.0945v%203.487h%200.924v%20-3.267q%200%20-0.605%200.143%20-0.935q%200.143%20-0.33%200.4015%20-0.4565q%200.2585%20-0.1265%200.5995%20-0.1265q%200.649%200%201.0175%200.4565q%200.3685%200.4565%200.3685%201.3255v%203.003h%200.924v%20-5.467h%20-0.693l%20-0.231%200.792q%20-0.231%20-0.396%20-0.627%20-0.66q%20-0.396%20-0.264%20-1.078%20-0.264Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gAB87DF46BD16BB429BA1A7AAD7177B35%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.77%200v%205.456h%200.671l%200.297%20-1.012q%200.286%200.495%200.7755%200.7975q%200.4895%200.3025%201.1715%200.3025v%20-0.957q%20-0.077%200%20-0.1595%200q%20-0.0825%200%20-0.1595%20-0.011q%20-0.935%20-0.077%20-1.3035%20-0.649q%20-0.3685%20-0.572%20-0.3685%20-1.584v%20-2.343h%20-0.924Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g2DC51706BC3B9B574727AA30C0F19912%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.057%200q%20-0.517%200%20-0.7975%200.1045q%20-0.2805%200.1045%20-0.385%200.4015q%20-0.1045%200.297%20-0.1045%200.858v%205.973h%200.924v%20-5.819q%200%20-0.418%200.088%20-0.561q%200.088%20-0.143%200.473%20-0.143h%200.209v%20-0.814h%20-0.407Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gE05D5D7294E0599B8CEF8A16665A3920%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.77%200v%205.456h%200.682l%200.242%20-0.825q%200.231%200.385%200.6325%200.649q%200.4015%200.264%201.0065%200.264q%200.627%200%201.012%20-0.253q%200.385%20-0.253%200.561%20-0.704q%200.33%200.506%200.7975%200.7315q%200.4675%200.2255%201.0395%200.2255q%200.946%200%201.353%20-0.5775q%200.407%20-0.5775%200.407%20-1.5125v%20-3.454h%20-0.924v%203.179q%200%200.418%20-0.0825%200.7755q%20-0.0825%200.3575%20-0.33%200.5775q%20-0.2475%200.22%20-0.7535%200.22q%20-0.594%200%20-0.9515%20-0.4565q%20-0.3575%20-0.4565%20-0.3575%20-1.3365v%20-2.959h%20-0.924v%203.179q%200%200.418%20-0.0825%200.7755q%20-0.0825%200.3575%20-0.33%200.5775q%20-0.2475%200.22%20-0.7535%200.22q%20-0.594%200%20-0.957%20-0.4565q%20-0.363%20-0.4565%20-0.363%20-1.3365v%20-2.959h%20-0.924Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g45C37C2E3D74B42AC20B9E6C65A434E4%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.465%20-0.132q%20-0.638%200%20-1.078%200.2585q%20-0.44%200.2585%20-0.693%200.6985l%20-0.242%20-0.825h%20-0.682v%207.348h%200.924v%20-2.75q%200.253%200.429%200.693%200.6875q%200.44%200.2585%201.078%200.2585q%200.627%200%201.1605%20-0.3355q%200.5335%20-0.3355%200.858%20-0.968q%200.3245%20-0.6325%200.3245%20-1.5345q%200%20-0.902%20-0.3245%20-1.5345q%20-0.3245%20-0.6325%20-0.858%20-0.968q%20-0.5335%20-0.3355%20-1.1605%20-0.3355Z%20m%20-0.242%200.792q%200.704%200%201.1275%200.539q%200.4235%200.539%200.4235%201.507q%200%200.979%20-0.4235%201.5125q%20-0.4235%200.5335%20-1.1275%200.5335q%20-0.704%200%20-1.1275%20-0.5335q%20-0.4235%20-0.5335%20-0.4235%20-1.5125q%200%20-0.968%200.4235%20-1.507q%200.4235%20-0.539%201.1275%20-0.539Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gF7AC29E1E5FA5B1D800F0E84A8D3FE3D%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.091%20-0.132q%20-0.858%200%20-1.452%200.3795q%20-0.594%200.3795%20-0.9075%201.023q%20-0.3135%200.6435%20-0.3135%201.4465q%200%200.869%200.352%201.5015q%200.352%200.6325%200.9515%200.979q%200.5995%200.3465%201.3475%200.3465q%200.649%200%201.144%20-0.2585q%200.495%20-0.2585%200.8195%20-0.693q%200.3245%20-0.4345%200.473%20-0.9845q%200.1485%20-0.55%200.1045%20-1.133h%20-4.202q%200.022%20-0.682%200.3025%20-1.078q%200.2805%20-0.396%200.6655%20-0.5555q%200.385%20-0.1595%200.715%20-0.1595q%200.462%200%200.7755%200.1485q%200.3135%200.1485%200.5005%200.3905l%200.891%20-0.264q%20-0.297%20-0.473%20-0.847%20-0.781q%20-0.55%20-0.308%20-1.32%20-0.308Z%20m%20-1.672%203.344h%203.212q%200%200.385%20-0.1925%200.737q%20-0.1925%200.352%20-0.539%200.5775q%20-0.3465%200.2255%20-0.8305%200.2255q%20-0.407%200%20-0.77%20-0.154q%20-0.363%20-0.154%20-0.5995%20-0.495q%20-0.2365%20-0.341%20-0.2805%20-0.891Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gC7F2A8BD7C0771BB10ADE18F2DA062E4%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.629%20-0.132q%20-0.473%200%20-0.9295%200.1485q%20-0.4565%200.1485%20-0.814%200.451q%20-0.3575%200.3025%20-0.5445%200.7645l%200.891%200.33q%200.121%20-0.484%200.5335%20-0.6985q%200.4125%20-0.2145%200.8635%20-0.2145q%200.33%200%200.6215%200.099q%200.2915%200.099%200.4785%200.286q%200.187%200.187%200.187%200.429q%200%200.451%20-0.3575%200.638q%20-0.3575%200.187%20-0.8525%200.286l%20-0.759%200.154q%20-0.396%200.088%20-0.737%200.2475q%20-0.341%200.1595%20-0.55%200.4565q%20-0.209%200.297%20-0.209%200.792q%200%200.495%200.308%200.8305q%200.308%200.3355%200.7865%200.5115q%200.4785%200.176%201.0065%200.176q%200.649%200%201.2265%20-0.2695q%200.5775%20-0.2695%200.8195%20-0.8415l%20-0.869%20-0.319q%20-0.143%200.33%20-0.5005%200.4895q%20-0.3575%200.1595%20-0.7425%200.1595q%20-0.418%200%20-0.759%20-0.187q%20-0.341%20-0.187%20-0.341%20-0.539q%200%20-0.352%200.2915%20-0.5115q%200.2915%20-0.1595%200.7205%20-0.2475l%200.715%20-0.143q%200.44%20-0.088%200.836%20-0.253q%200.396%20-0.165%200.649%20-0.4895q%200.253%20-0.3245%200.253%20-0.9075q%200%20-0.517%20-0.319%20-0.88q%20-0.319%20-0.363%20-0.825%20-0.5555q%20-0.506%20-0.1925%20-1.078%20-0.1925Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g8C5DE8B42A8F44179A2C3172A23CB10B%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%207.678%202.97h%20-6.798c%20-0.176%200%20-0.264%20-0.077%20-0.264%20-0.22c%200%20-0.143%200.088%20-0.22%200.264%20-0.22h%206.798c%200.176%200%200.264%200.077%200.264%200.22c%200%200.132%20-0.132%200.22%20-0.264%200.22Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g74C12D21CC092D37E7D4D70E34ADCA23%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%204.114%20-0.121l%201.683%200.121v%200.418c%20-0.396%200%20-0.627%200.022%20-0.715%200.088c%20-0.088%200.066%20-0.132%200.231%20-0.132%200.484v%206.644l%20-1.639%20-0.121v%20-0.418c%200.385%200%200.627%20-0.033%200.715%20-0.099c%200.088%20-0.066%200.121%20-0.22%200.121%20-0.473v%20-2.233c%20-0.352%200.407%20-0.792%200.605%20-1.32%200.605c%20-0.682%200%20-1.265%20-0.242%20-1.738%20-0.737c%20-0.473%20-0.495%20-0.715%20-1.089%20-0.715%20-1.782c%200%20-0.671%200.22%20-1.254%200.671%20-1.749c%200.451%20-0.495%201.001%20-0.748%201.672%20-0.748c%200.561%200%201.034%200.209%201.397%200.638Z%20m%20-1.243%204.686c%200.473%200%200.858%20-0.209%201.133%20-0.627c%200.077%20-0.121%200.11%20-0.242%200.11%20-0.385v%20-2.222c%200%20-0.143%20-0.033%20-0.264%20-0.11%20-0.385c%20-0.308%20-0.495%20-0.726%20-0.737%20-1.243%20-0.737c%20-0.451%200%20-0.814%200.22%20-1.1%200.671c%20-0.198%200.33%20-0.297%200.825%20-0.297%201.485c%200%201.199%200.407%202.2%201.507%202.2Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gF7A93543484FC37935C78A5D1F5B2EC6%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.134%206.611c%200%200.33%20-0.275%200.616%20-0.605%200.616c%20-0.33%200%20-0.616%20-0.286%20-0.616%20-0.616c%200%20-0.33%200.275%20-0.627%200.605%20-0.627c%200.341%200%200.616%200.286%200.616%200.627Z%20m%20-0.561%20-6.578l%201.144%20-0.033v%200.429c%20-0.363%200%20-0.583%200.022%20-0.649%200.066c%20-0.066%200.044%20-0.088%200.165%20-0.088%200.363v%204.037l%20-1.573%20-0.132v%20-0.418c%200.363%200%200.594%20-0.033%200.671%20-0.088c%200.077%20-0.055%200.11%20-0.209%200.11%20-0.462v%20-2.926c%200%20-0.209%20-0.033%20-0.341%20-0.11%20-0.385c%20-0.077%20-0.044%20-0.319%20-0.055%20-0.715%20-0.055v%20-0.429Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gE86F840DDA400091B8324095DD2EC20C%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%204.741%204.983c%20-0.418%200%20-0.803%20-0.165%20-1.155%20-0.495c%20-0.33%200.253%20-0.704%200.374%20-1.133%200.374c%20-0.946%200%20-1.804%20-0.704%20-1.804%20-1.628c%200%20-0.462%200.165%20-0.836%200.495%20-1.122c%20-0.209%20-0.264%20-0.319%20-0.561%20-0.319%20-0.902c%200%20-0.418%200.143%20-0.737%200.418%20-0.946c%20-0.462%20-0.154%20-0.935%20-0.55%20-0.935%20-1.111c%200%20-0.473%200.308%20-0.847%200.913%20-1.111c%200.462%20-0.209%200.968%20-0.308%201.518%20-0.308c%200.561%200%201.078%200.099%201.54%200.308c%200.605%200.264%200.902%200.638%200.902%201.133c%200%200.583%20-0.242%201.012%20-0.726%201.287c%20-0.506%200.275%20-1.067%200.308%20-1.881%200.308c%20-0.484%200%20-0.748%200%20-0.803%200.011c%20-0.308%200.044%20-0.528%200.341%20-0.528%200.682c%200%200.165%200.044%200.319%200.143%200.451c%200.308%20-0.209%200.66%20-0.319%201.067%20-0.319c%200.946%200%201.793%200.704%201.793%201.628c%200%200.429%20-0.143%200.781%20-0.429%201.056c%200.275%200.253%200.572%200.374%200.891%200.374c%20-0.055%20-0.055%20-0.088%20-0.143%20-0.088%20-0.253c%200%20-0.242%200.121%20-0.363%200.363%20-0.363c%200.231%200%200.352%200.121%200.352%200.374c%200%200.341%20-0.264%200.572%20-0.594%200.572Z%20m%20-2.288%20-0.462c%200.594%200%200.891%20-0.429%200.891%20-1.287c%200%20-0.869%20-0.297%20-1.309%20-0.891%20-1.309c%20-0.605%200%20-0.902%200.429%20-0.902%201.298c%200%200.869%200.297%201.298%200.902%201.298Z%20m%20-0.649%20-4.477h%200.638c%200.572%200%201.034%20-0.033%201.386%20-0.11c%200.473%20-0.099%200.704%20-0.363%200.704%20-0.781c%200%20-0.352%20-0.22%20-0.627%20-0.66%20-0.836c%20-0.341%20-0.165%20-0.715%20-0.242%20-1.122%20-0.242c%20-0.396%200%20-0.77%200.077%20-1.122%200.242c%20-0.451%200.209%20-0.671%200.484%20-0.671%200.836c%200%200.462%200.396%200.891%200.847%200.891Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gED093E24411CDC16AD008BFA8D8A65C1%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.652%201.386v%200.66h%20-0.352v%20-0.638c%200%20-0.55%20-0.198%20-1.166%20-0.682%20-1.166c%20-0.451%200%20-0.671%200.374%20-0.671%201.122v%202.981h%201.529v%200.418h%20-1.529v%202.002h%20-0.352c%20-0.011%20-0.363%20-0.044%20-0.682%20-0.121%20-0.968c%20-0.187%20-0.726%20-0.616%20-1.1%20-1.265%20-1.133v%20-0.319h%200.913v%20-2.959c%200%20-0.649%200.198%20-1.067%200.583%20-1.276c%200.297%20-0.154%200.572%20-0.231%200.847%20-0.231c%200.726%200%201.1%200.726%201.1%201.507Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g332FEE9CAEF879E7D01E038ACA245048%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.121%202.057h%202.915v%200.638h%20-2.915Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gCBAED53C5EB8EDED597F84071DCE9968%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.278%20-0.143c%200.682%200%201.265%200.242%201.738%200.737c%200.473%200.495%200.715%201.078%200.715%201.771c%200%200.671%20-0.22%201.243%20-0.649%201.727c%20-0.451%200.517%20-1.001%200.77%20-1.661%200.77c%20-0.561%200%20-1.045%20-0.22%20-1.463%20-0.649v%200.649l%20-1.65%20-0.121v%20-0.418c%200.407%200%200.649%20-0.022%200.726%20-0.077c%200.077%20-0.055%200.121%20-0.198%200.121%20-0.429v%20-5.082c%200%20-0.209%20-0.044%20-0.341%20-0.121%20-0.385c%20-0.077%20-0.044%20-0.319%20-0.055%20-0.726%20-0.055v%20-0.429l%201.254%200.033l%201.265%20-0.033v%200.429c%20-0.407%200%20-0.638%200.011%20-0.715%200.055c%20-0.077%200.044%20-0.121%200.176%20-0.121%200.385v%201.749c%200.242%20-0.341%200.715%20-0.627%201.287%20-0.627Z%20m%200.066%204.642c%200.451%200%200.803%20-0.253%201.078%20-0.759c%200.209%20-0.429%200.319%20-0.88%200.319%20-1.375c%200%20-0.517%20-0.121%20-0.99%20-0.363%20-1.419c%20-0.286%20-0.517%20-0.671%20-0.77%20-1.144%20-0.77c%20-0.462%200%20-0.825%200.22%20-1.1%200.649c%20-0.099%200.143%20-0.143%200.286%20-0.143%200.429v%202.409c%200.319%200.561%200.77%200.836%201.353%200.836Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gF1018D9EAD0D6A7C348C4064F39364A9%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.739%20-0.121c%200.682%200%201.254%200.242%201.727%200.726c%200.473%200.484%200.715%201.067%200.715%201.749c%200%200.693%20-0.231%201.298%20-0.693%201.804c%20-0.462%200.506%20-1.045%200.77%20-1.738%200.77c%20-0.693%200%20-1.265%20-0.264%20-1.738%20-0.77c%20-0.473%20-0.506%20-0.704%20-1.111%20-0.704%20-1.804c%200%20-0.682%200.231%20-1.265%200.704%20-1.749c%200.473%20-0.484%201.056%20-0.726%201.727%20-0.726Z%20m%200.011%200.352c%20-0.528%200%20-0.924%200.231%20-1.199%200.704c%20-0.176%200.308%20-0.264%200.814%20-0.264%201.507c%200%200.671%200.088%201.155%200.253%201.463c%200.264%200.473%200.66%200.704%201.199%200.704c%200.517%200%200.913%20-0.231%201.188%20-0.682c%200.187%20-0.308%200.275%20-0.803%200.275%20-1.485c%200%20-1.276%20-0.374%20-2.211%20-1.452%20-2.211Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5EB396CD9EB516C004A1674D88B874CA%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%206.82%203.652c%200.154%200.429%200.462%200.66%200.913%200.671v%200.418c%20-0.341%20-0.033%20-0.627%20-0.044%20-0.836%20-0.033l%20-1.056%200.033v%20-0.418c%200.418%20-0.011%200.627%20-0.176%200.627%20-0.484c%200%20-0.044%20-0.011%20-0.11%20-0.044%20-0.209l%20-0.957%20-2.651l%20-1.034%202.904c%20-0.033%200.099%20-0.044%200.154%20-0.044%200.187c%200%200.165%200.209%200.253%200.638%200.253v%200.418l%20-1.177%20-0.033c%20-0.22%20-0.011%20-0.561%200%20-1.012%200.033v%20-0.418c%200.385%200%200.616%20-0.055%200.693%20-0.154c%200.033%20-0.033%200.121%20-0.22%200.242%20-0.561l%20-0.891%20-2.486l%20-0.99%202.772c%20-0.033%200.099%20-0.055%200.154%20-0.055%200.176c%200%200.165%200.22%200.253%200.649%200.253v%200.418l%20-1.232%20-0.033l%20-1.056%200.033v%20-0.418c%200.539%200%200.682%200.011%200.803%20-0.352l%201.375%20-3.828c%200.066%20-0.176%200.154%20-0.264%200.264%20-0.264c%200.121%200%200.209%200.077%200.264%200.242l%201.056%202.948l%201.067%20-2.959c%200.055%20-0.154%200.143%20-0.231%200.264%20-0.231c%200.077%200.011%200.165%200.088%200.253%200.231Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g4F15B44AD1AAE7906B9D9F9C3850F14B%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%204.565%202.761c%200%201.265%20-0.737%202.167%20-1.969%202.167c%20-0.66%200%20-1.21%20-0.253%20-1.661%20-0.77c%20-0.418%20-0.484%20-0.627%20-1.067%20-0.627%20-1.738c%200%20-0.693%200.231%20-1.276%200.693%20-1.782c%200.462%20-0.506%201.034%20-0.759%201.716%20-0.759c%200.627%200%201.111%200.22%201.441%200.649c%200.275%200.363%200.407%200.627%200.407%200.803c%200%200.11%20-0.066%200.165%20-0.187%200.165c%20-0.088%200%20-0.143%20-0.055%20-0.176%20-0.176c%20-0.242%20-0.726%20-0.715%20-1.089%20-1.419%20-1.089c%20-0.495%200%20-0.88%200.231%20-1.177%200.704c%20-0.209%200.341%20-0.308%200.858%20-0.319%201.562h%202.97c%200.242%200%200.308%200.022%200.308%200.264Z%20m%20-0.979%201.078c%200.121%20-0.363%200.176%20-0.715%200.176%20-1.034h%20-2.464c%200.033%200.726%200.22%201.221%200.55%201.474c%200.275%200.22%200.517%200.33%200.748%200.33c%200.495%200%200.825%20-0.253%200.99%20-0.77Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gA1583A9D47A5AF176809D99838F34700%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%204.004%204.158c%200%200.429%20-0.407%200.704%20-0.836%200.704c%20-0.561%200%20-0.99%20-0.33%20-1.276%20-1.001v%201.001l%20-1.584%20-0.121v%20-0.418c%200.385%200%200.616%20-0.033%200.704%20-0.099c%200.088%20-0.066%200.132%20-0.209%200.132%20-0.462v%20-2.893c%200%20-0.209%20-0.033%20-0.341%20-0.11%20-0.385c%20-0.077%20-0.044%20-0.319%20-0.066%20-0.726%20-0.066v%20-0.418l%201.265%200.033c%200.462%200.011%200.935%200%201.408%20-0.033v%200.418h%20-0.264c%20-0.363%200%20-0.594%200.033%20-0.671%200.088c%20-0.077%200.055%20-0.11%200.187%20-0.11%200.385v%201.661c%200%200.473%200.088%200.902%200.253%201.265c%200.22%200.473%200.539%200.715%200.968%200.726c%20-0.11%20-0.11%20-0.165%20-0.242%20-0.165%20-0.396c%200%20-0.341%200.165%20-0.506%200.506%20-0.506c%200.297%200%200.506%200.231%200.506%200.517Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g67E0717D063DE91831D2A23981510B8D%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.96%201.43c%200%200.836%20-0.572%201.364%20-1.705%201.584c%20-0.517%200.099%20-0.847%200.22%20-1.023%200.341c%20-0.176%200.121%20-0.264%200.297%20-0.264%200.506c%200%200.517%200.385%200.77%201.155%200.77c%200.748%200%201.155%20-0.418%201.21%20-1.265c%200.011%20-0.088%200.066%20-0.132%200.176%20-0.132c%200.121%200%200.187%200.099%200.187%200.297v%201.089c%200%200.209%20-0.055%200.308%20-0.165%200.308c%20-0.121%200%20-0.286%20-0.198%20-0.396%20-0.286c%20-0.275%200.187%20-0.616%200.286%20-1.012%200.286c%20-0.979%200%20-1.76%20-0.44%20-1.76%20-1.375c%200%20-0.374%200.154%20-0.693%200.473%20-0.946c%200.385%20-0.319%200.748%20-0.385%201.441%20-0.506c%200.715%20-0.143%201.078%20-0.462%201.078%20-0.957c%200%20-0.627%20-0.385%20-0.946%20-1.166%20-0.946c%20-0.759%200%20-1.243%200.506%20-1.452%201.507c%20-0.033%200.143%20-0.088%200.22%20-0.187%200.22c%20-0.121%200%20-0.187%20-0.11%20-0.187%20-0.319v%20-1.419c%200%20-0.209%200.055%20-0.308%200.165%20-0.308c%200.033%200%200.088%200.033%200.176%200.11c%200.198%200.176%200.11%200.143%200.308%200.341c%200.319%20-0.297%200.715%20-0.451%201.177%20-0.451c%201.045%200%201.771%200.539%201.771%201.551Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g53741DD6BA4504AC32BDC384B8913A03%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.937%200.198c%20-0.759%200%20-0.902%200.319%20-0.902%201.034v%203.63l%20-1.683%20-0.121v%20-0.418c%200.429%200%200.682%20-0.044%200.748%20-0.121c%200.066%20-0.077%200.099%20-0.352%200.099%20-0.836v%20-1.617c%200%20-0.429%200.033%20-0.759%200.11%20-1.012c%200.165%20-0.572%200.77%20-0.858%201.573%20-0.858c%200.594%200%201.045%200.275%201.353%200.836v%20-0.836l%201.65%200.121v%200.418c%20-0.396%200%20-0.627%200.022%20-0.715%200.088c%20-0.088%200.066%20-0.132%200.22%20-0.132%200.473v%203.883l%20-1.672%20-0.121v%20-0.418c%200.385%200%200.616%20-0.033%200.704%20-0.099c%200.088%20-0.066%200.132%20-0.209%200.132%20-0.462v%20-1.925c%200%20-0.869%20-0.462%20-1.639%20-1.265%20-1.639Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5EF7A2FE47BCD00C1DDF63F6B87CC52A%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.465%204.543c%200.506%200%200.759%20-0.385%200.759%20-1.166v%20-2.508c%200%20-0.209%20-0.033%20-0.341%20-0.11%20-0.385c%20-0.077%20-0.044%20-0.33%20-0.066%20-0.737%20-0.066v%20-0.418l%201.276%200.033l%201.265%20-0.033v%200.418c%20-0.407%200%20-0.649%200.022%20-0.726%200.066c%20-0.077%200.044%20-0.121%200.176%20-0.121%200.385v%201.98c%200%200.88%200.572%201.694%201.419%201.694c%200.517%200%200.77%20-0.385%200.77%20-1.166v%20-2.508c%200%20-0.209%20-0.044%20-0.341%20-0.121%20-0.385c%20-0.077%20-0.044%20-0.33%20-0.066%20-0.737%20-0.066v%20-0.418l%201.276%200.033l%201.265%20-0.033v%200.418c%20-0.352%200%20-0.583%200.011%20-0.693%200.044c%20-0.11%200.033%20-0.154%200.11%20-0.154%200.242v%202.057c%200%200.517%20-0.022%200.88%20-0.055%201.089c%20-0.11%200.671%20-0.605%201.012%20-1.474%201.012c%20-0.693%200%20-1.21%20-0.319%20-1.562%20-0.968c%20-0.154%200.649%20-0.638%200.968%20-1.463%200.968c%20-0.693%200%20-1.221%20-0.33%20-1.573%20-0.99v%200.99l%20-1.617%20-0.121v%20-0.418c%200.396%200%200.638%20-0.033%200.726%20-0.099c%200.088%20-0.066%200.121%20-0.209%200.121%20-0.462v%20-2.893c%200%20-0.209%20-0.044%20-0.341%20-0.121%20-0.385c%20-0.077%20-0.044%20-0.319%20-0.066%20-0.726%20-0.066v%20-0.418l%201.276%200.033l%201.265%20-0.033v%200.418c%20-0.407%200%20-0.66%200.022%20-0.737%200.066c%20-0.077%200.044%20-0.121%200.176%20-0.121%200.385v%201.98c%200%200.891%200.583%201.694%201.43%201.694Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gCBFDB4FAA60E8030E7B751E03D6CAAA6%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.498%20-2.728c%200.099%200%200.154%200.055%200.154%200.154c%200%200.033%20-0.022%200.077%20-0.055%200.121c%20-0.572%200.44%20-1.034%201.166%20-1.375%202.167c%20-0.297%200.869%20-0.451%201.727%20-0.451%202.574v%200.924c%200%200.847%200.154%201.705%200.451%202.574c%200.341%201.001%200.803%201.727%201.375%202.167c%200.033%200.033%200.055%200.077%200.055%200.121c%200%200.099%20-0.055%200.154%20-0.154%200.154c%20-0.011%200%20-0.044%20-0.011%20-0.077%20-0.033c%20-0.66%20-0.506%20-1.21%20-1.254%20-1.661%20-2.255c%20-0.429%20-0.957%20-0.649%20-1.859%20-0.649%20-2.728v%20-0.924c%200%20-0.869%200.22%20-1.771%200.649%20-2.728c%200.451%20-1.001%201.001%20-1.749%201.661%20-2.255c%200.033%20-0.022%200.066%20-0.033%200.077%20-0.033Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g46A72DF51926ABBEA5282E072AF79004%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%205.907%201.507c%20-0.253%20-0.869%20-0.616%20-1.309%20-1.067%20-1.309c%20-0.143%200%20-0.22%200.11%20-0.22%200.319c%200%200.154%200.066%200.407%200.198%200.748c%200.44%201.199%200.66%201.991%200.66%202.398c%200%200.77%20-0.517%201.199%20-1.287%201.199c%20-0.649%200%20-1.21%20-0.286%20-1.661%20-0.869c%20-0.088%200.484%20-0.473%200.869%20-1.034%200.869c%20-0.616%200%20-0.858%20-0.572%20-1.012%20-1.067c%20-0.11%20-0.352%20-0.165%20-0.561%20-0.165%20-0.638c%200%20-0.099%200.055%20-0.154%200.176%20-0.154c%200.055%200%200.088%200.011%200.121%200.033c%200.055%200.099%200.088%200.176%200.099%200.253c%200.198%200.836%200.451%201.254%200.748%201.254c%200.198%200%200.297%20-0.154%200.297%20-0.462c%200%20-0.143%20-0.055%20-0.44%20-0.176%20-0.891l%20-0.627%20-2.497c%20-0.033%20-0.143%20-0.099%20-0.429%20-0.099%20-0.484c%200%20-0.22%200.121%20-0.33%200.363%20-0.33c%200.209%200%200.363%200.11%200.44%200.33c%200.022%200.055%200.088%200.33%200.209%200.803l%200.231%200.979l%200.33%201.254c%200.121%200.253%200.308%200.506%200.539%200.77c%200.319%200.352%200.715%200.528%201.188%200.528c%200.363%200%200.539%20-0.242%200.539%20-0.715c%200%20-0.418%20-0.231%20-1.254%20-0.704%20-2.508c%20-0.077%20-0.198%20-0.11%20-0.363%20-0.11%20-0.506c%200%20-0.539%200.407%20-0.935%200.935%20-0.935c%200.484%200%200.869%200.275%201.144%200.825c%200.209%200.44%200.319%200.737%200.319%200.88c%200%200.099%20-0.055%200.154%20-0.176%200.154c%20-0.033%200%20-0.198%20-0.099%20-0.198%20-0.231Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g11C1096A524ED08942C2BB5E0564A17C%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.858%20-2.695c%200.66%200.506%201.21%201.254%201.661%202.255c%200.429%200.957%200.649%201.859%200.649%202.728v%200.924c%200%200.869%20-0.22%201.771%20-0.649%202.728c%20-0.451%201.001%20-1.001%201.749%20-1.661%202.255c%20-0.033%200.022%20-0.066%200.033%20-0.077%200.033c%20-0.099%200%20-0.154%20-0.055%20-0.154%20-0.154c%200%20-0.044%200.022%20-0.088%200.055%20-0.121c%200.572%20-0.44%201.034%20-1.166%201.375%20-2.167c%200.297%20-0.869%200.451%20-1.727%200.451%20-2.574v%20-0.924c%200%20-0.847%20-0.154%20-1.705%20-0.451%20-2.574c%20-0.341%20-1.001%20-0.803%20-1.727%20-1.375%20-2.167c%20-0.033%20-0.044%20-0.055%20-0.088%20-0.055%20-0.121c%200%20-0.099%200.055%20-0.154%200.154%20-0.154c%200.011%200%200.044%200.011%200.077%200.033Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3C%2Fdefs%3E%3Cdefs%3E%3Cclippath%20id%3D%22cB43DEB99DE931151D6B0B15873618090%22%3E%3Cpath%20d%3D%22M%200%200h%20350v%20200h%20-350Z%20%22%20%2F%3E%3C%2Fclippath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"></figure><p>This graph helped me realize was that <strong>lower-place digits have the largest impact on the digit-power-sum</strong> because they are powered to the highest number. In the graph, we can see distinct groups of 10 numbers, each abruptly ending with a jump downwards when the 9 digit turns into a 0. We can explain these groups by remembering the digit-power-sum formula; the last digit will always be powered to the highest power, so it has the biggest impact.</p><p>Because lower-place digits have the biggest impact, I decided to see how isolating numbers ending in the same digit—for example, digit 8—would look.</p><figure aria-label="Graph of n subtracted from digit-power-sum(n) shown on the y-axis for integers in [0, 100] on the x-axis, with digits ending with 8 highlighted. The graph shows only a small window where the differences are close to zero."><img src="data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20390.271%20228.061%22%20width%3D%22390.271pt%22%20height%3D%22228.061pt%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20xmlns%3Ah5%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%3E%3Crect%20fill%3D%22%231a1a1a%22%20height%3D%22100%25%22%20width%3D%22100%25%22%3E%3C%2Frect%3E%3Cg%3E%3Cg%20transform%3D%22translate(40.271)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(50.315656566)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(81.881313131)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(113.446969697)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(145.012626263)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(176.578282828)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(208.143939394)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(239.70959596)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(271.275252525)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(302.840909091)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(334.406565657)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20188.045634921)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20163.244047619)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20138.442460317)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20113.640873016)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2088.839285714)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2064.037698413)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2039.236111111)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2014.43452381)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cg%20clip-path%3D%22url(%23cB43DEB99DE931151D6B0B15873618090)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(21.906565657%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(25.063131313%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(28.21969697%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(31.376262626%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(34.532828283%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(37.689393939%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(40.845959596%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(44.002525253%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(47.159090909%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(50.315656566%2088.839285714)%22%20d%3D%22M%200%200v%2011.160714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(53.472222222%2088.839285714)%22%20d%3D%22M%200%200v%2011.160714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(56.628787879%2088.839285714)%22%20d%3D%22M%200%200v%208.680555556%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(59.785353535%2088.839285714)%22%20d%3D%22M%200%200v%203.720238095%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(62.941919192%2088.839285714)%22%20d%3D%22M%200%200v%20-3.720238095%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(66.098484848%2088.839285714)%22%20d%3D%22M%200%200v%20-13.640873016%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(69.255050505%2088.839285714)%22%20d%3D%22M%200%200v%20-26.041666667%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(72.411616162%2088.839285714)%22%20d%3D%22M%200%200v%20-40.922619048%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(75.568181818%2088.839285714)%22%20d%3D%22M%200%200v%20-58.283730159%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(78.724747475%2088.839285714)%22%20d%3D%22M%200%200v%20-78.125%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(81.881313131%2088.839285714)%22%20d%3D%22M%200%200v%2022.321428571%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(85.037878788%2088.839285714)%22%20d%3D%22M%200%200v%2022.321428571%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(88.194444444%2088.839285714)%22%20d%3D%22M%200%200v%2019.841269841%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(91.351010101%2088.839285714)%22%20d%3D%22M%200%200v%2014.880952381%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(94.507575758%2088.839285714)%22%20d%3D%22M%200%200v%207.44047619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(97.664141414%2088.839285714)%22%20d%3D%22M%200%200v%20-2.48015873%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(100.820707071%2088.839285714)%22%20d%3D%22M%200%200v%20-14.880952381%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(103.977272727%2088.839285714)%22%20d%3D%22M%200%200v%20-29.761904762%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(107.133838384%2088.839285714)%22%20d%3D%22M%200%200v%20-47.123015873%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(110.29040404%2088.839285714)%22%20d%3D%22M%200%200v%20-66.964285714%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(113.446969697%2088.839285714)%22%20d%3D%22M%200%200v%2033.482142857%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(116.603535354%2088.839285714)%22%20d%3D%22M%200%200v%2033.482142857%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(119.76010101%2088.839285714)%22%20d%3D%22M%200%200v%2031.001984127%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(122.916666667%2088.839285714)%22%20d%3D%22M%200%200v%2026.041666667%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(126.073232323%2088.839285714)%22%20d%3D%22M%200%200v%2018.601190476%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(129.22979798%2088.839285714)%22%20d%3D%22M%200%200v%208.680555556%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(132.386363636%2088.839285714)%22%20d%3D%22M%200%200v%20-3.720238095%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(135.542929293%2088.839285714)%22%20d%3D%22M%200%200v%20-18.601190476%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(138.699494949%2088.839285714)%22%20d%3D%22M%200%200v%20-35.962301587%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(141.856060606%2088.839285714)%22%20d%3D%22M%200%200v%20-55.803571429%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(145.012626263%2088.839285714)%22%20d%3D%22M%200%200v%2044.642857143%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(148.169191919%2088.839285714)%22%20d%3D%22M%200%200v%2044.642857143%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(151.325757576%2088.839285714)%22%20d%3D%22M%200%200v%2042.162698413%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(154.482323232%2088.839285714)%22%20d%3D%22M%200%200v%2037.202380952%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(157.638888889%2088.839285714)%22%20d%3D%22M%200%200v%2029.761904762%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(160.795454545%2088.839285714)%22%20d%3D%22M%200%200v%2019.841269841%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(163.952020202%2088.839285714)%22%20d%3D%22M%200%200v%207.44047619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(167.108585859%2088.839285714)%22%20d%3D%22M%200%200v%20-7.44047619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(170.265151515%2088.839285714)%22%20d%3D%22M%200%200v%20-24.801587302%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(173.421717172%2088.839285714)%22%20d%3D%22M%200%200v%20-44.642857143%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(176.578282828%2088.839285714)%22%20d%3D%22M%200%200v%2055.803571429%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(179.734848485%2088.839285714)%22%20d%3D%22M%200%200v%2055.803571429%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(182.891414141%2088.839285714)%22%20d%3D%22M%200%200v%2053.323412698%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(186.047979798%2088.839285714)%22%20d%3D%22M%200%200v%2048.363095238%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(189.204545455%2088.839285714)%22%20d%3D%22M%200%200v%2040.922619048%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(192.361111111%2088.839285714)%22%20d%3D%22M%200%200v%2031.001984127%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(195.517676768%2088.839285714)%22%20d%3D%22M%200%200v%2018.601190476%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(198.674242424%2088.839285714)%22%20d%3D%22M%200%200v%203.720238095%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(201.830808081%2088.839285714)%22%20d%3D%22M%200%200v%20-13.640873016%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(204.987373737%2088.839285714)%22%20d%3D%22M%200%200v%20-33.482142857%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(208.143939394%2088.839285714)%22%20d%3D%22M%200%200v%2066.964285714%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(211.300505051%2088.839285714)%22%20d%3D%22M%200%200v%2066.964285714%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(214.457070707%2088.839285714)%22%20d%3D%22M%200%200v%2064.484126984%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(217.613636364%2088.839285714)%22%20d%3D%22M%200%200v%2059.523809524%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(220.77020202%2088.839285714)%22%20d%3D%22M%200%200v%2052.083333333%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(223.926767677%2088.839285714)%22%20d%3D%22M%200%200v%2042.162698413%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(227.083333333%2088.839285714)%22%20d%3D%22M%200%200v%2029.761904762%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(230.23989899%2088.839285714)%22%20d%3D%22M%200%200v%2014.880952381%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(233.396464646%2088.839285714)%22%20d%3D%22M%200%200v%20-2.48015873%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(236.553030303%2088.839285714)%22%20d%3D%22M%200%200v%20-22.321428571%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(239.70959596%2088.839285714)%22%20d%3D%22M%200%200v%2078.125%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(242.866161616%2088.839285714)%22%20d%3D%22M%200%200v%2078.125%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(246.022727273%2088.839285714)%22%20d%3D%22M%200%200v%2075.64484127%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(249.179292929%2088.839285714)%22%20d%3D%22M%200%200v%2070.68452381%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(252.335858586%2088.839285714)%22%20d%3D%22M%200%200v%2063.244047619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(255.492424242%2088.839285714)%22%20d%3D%22M%200%200v%2053.323412698%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(258.648989899%2088.839285714)%22%20d%3D%22M%200%200v%2040.922619048%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(261.805555556%2088.839285714)%22%20d%3D%22M%200%200v%2026.041666667%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(264.962121212%2088.839285714)%22%20d%3D%22M%200%200v%208.680555556%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(268.118686869%2088.839285714)%22%20d%3D%22M%200%200v%20-11.160714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(271.275252525%2088.839285714)%22%20d%3D%22M%200%200v%2089.285714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(274.431818182%2088.839285714)%22%20d%3D%22M%200%200v%2089.285714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(277.588383838%2088.839285714)%22%20d%3D%22M%200%200v%2086.805555556%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(280.744949495%2088.839285714)%22%20d%3D%22M%200%200v%2081.845238095%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(283.901515152%2088.839285714)%22%20d%3D%22M%200%200v%2074.404761905%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(287.058080808%2088.839285714)%22%20d%3D%22M%200%200v%2064.484126984%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(290.214646465%2088.839285714)%22%20d%3D%22M%200%200v%2052.083333333%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(293.371212121%2088.839285714)%22%20d%3D%22M%200%200v%2037.202380952%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(296.527777778%2088.839285714)%22%20d%3D%22M%200%200v%2019.841269841%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(299.684343434%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(302.840909091%2088.839285714)%22%20d%3D%22M%200%200v%20100.446428571%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(305.997474747%2088.839285714)%22%20d%3D%22M%200%200v%20100.446428571%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(309.154040404%2088.839285714)%22%20d%3D%22M%200%200v%2097.966269841%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(312.310606061%2088.839285714)%22%20d%3D%22M%200%200v%2093.005952381%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(315.467171717%2088.839285714)%22%20d%3D%22M%200%200v%2085.56547619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(318.623737374%2088.839285714)%22%20d%3D%22M%200%200v%2075.64484127%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(321.78030303%2088.839285714)%22%20d%3D%22M%200%200v%2063.244047619%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(324.936868687%2088.839285714)%22%20d%3D%22M%200%200v%2048.363095238%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(328.093434343%2088.839285714)%22%20d%3D%22M%200%200v%2031.001984127%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(331.25%2088.839285714)%22%20d%3D%22M%200%200v%2011.160714286%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ff4136%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75%2088.839285714)%22%20d%3D%22M%200%200h%20312.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20clip-path%3D%22url(%23cB43DEB99DE931151D6B0B15873618090)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(21.906565657%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(25.063131313%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(28.21969697%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(31.376262626%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(34.532828283%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(37.689393939%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(40.845959596%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(44.002525253%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(47.159090909%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(50.315656566%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(53.472222222%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(56.628787879%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(59.785353535%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(62.941919192%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(66.098484848%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(69.255050505%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(72.411616162%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(75.568181818%2088.839285714)%22%20d%3D%22M%200%200v%20-58.283730159%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(78.724747475%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(81.881313131%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(85.037878788%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(88.194444444%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(91.351010101%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(94.507575758%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(97.664141414%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(100.820707071%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(103.977272727%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(107.133838384%2088.839285714)%22%20d%3D%22M%200%200v%20-47.123015873%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(110.29040404%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(113.446969697%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(116.603535354%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(119.76010101%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(122.916666667%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(126.073232323%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(129.22979798%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(132.386363636%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(135.542929293%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(138.699494949%2088.839285714)%22%20d%3D%22M%200%200v%20-35.962301587%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(141.856060606%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(145.012626263%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(148.169191919%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(151.325757576%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(154.482323232%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(157.638888889%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(160.795454545%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(163.952020202%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(167.108585859%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(170.265151515%2088.839285714)%22%20d%3D%22M%200%200v%20-24.801587302%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(173.421717172%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(176.578282828%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(179.734848485%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(182.891414141%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(186.047979798%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(189.204545455%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(192.361111111%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(195.517676768%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(198.674242424%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(201.830808081%2088.839285714)%22%20d%3D%22M%200%200v%20-13.640873016%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(204.987373737%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(208.143939394%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(211.300505051%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(214.457070707%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(217.613636364%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(220.77020202%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(223.926767677%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(227.083333333%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(230.23989899%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(233.396464646%2088.839285714)%22%20d%3D%22M%200%200v%20-2.48015873%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(236.553030303%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(239.70959596%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(242.866161616%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(246.022727273%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(249.179292929%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(252.335858586%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(255.492424242%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(258.648989899%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(261.805555556%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(264.962121212%2088.839285714)%22%20d%3D%22M%200%200v%208.680555556%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(268.118686869%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(271.275252525%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(274.431818182%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(277.588383838%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(280.744949495%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(283.901515152%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(287.058080808%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(290.214646465%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(293.371212121%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(296.527777778%2088.839285714)%22%20d%3D%22M%200%200v%2019.841269841%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(299.684343434%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(302.840909091%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(305.997474747%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(309.154040404%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(312.310606061%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(315.467171717%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(318.623737374%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(321.78030303%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(324.936868687%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(328.093434343%2088.839285714)%22%20d%3D%22M%200%200v%2031.001984127%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(331.25%2088.839285714)%22%20d%3D%22M%200%200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ff4136%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75%2088.839285714)%22%20d%3D%22M%200%200h%20312.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2016%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(50.315656566%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2044.815656566%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g3E2A4E29F5F78B7482203F9341039E72%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2050.315656566%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(81.881313131%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2076.381313131%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5037E03A0CBEB30198DBAC9F97CDF04F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2081.881313131%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(113.446969697%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20107.946969697%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gC63E28D2FF745BC8AEDEB058F758CC95%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20113.446969697%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(145.012626263%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20139.512626263%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5B440C03A6991C2AE1CF687F6CF909A%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20145.012626263%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(176.578282828%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20171.078282828%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gE3AFFB6D3A6969089B1BA192752CE6D1%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20176.578282828%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(208.143939394%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20202.643939394%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gBD401770F8867B490949D5AE1AB3F82%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20208.143939394%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(239.70959596%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20234.13809596%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8B3FA07D93F5CD200BBF8A3D70170575%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20239.78109596%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(271.275252525%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20265.775252525%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gD42E3B394D6850BF8C4865F4AE3B1088%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20271.275252525%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(302.840909091%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20297.340909091%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gA22B31529741E8678957AE18B36D082F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20302.840909091%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(334.406565657%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20326.156565657%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g3E2A4E29F5F78B7482203F9341039E72%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20331.656565657%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20337.156565657%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(6.123737374%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(12.436868687%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(25.063131313%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(31.376262626%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(37.689393939%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(44.002525253%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(56.628787879%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(62.941919192%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(69.255050505%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(75.568181818%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(88.194444444%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(94.507575758%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(100.820707071%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(107.133838384%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(119.76010101%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(126.073232323%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(132.386363636%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(138.699494949%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(151.325757576%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(157.638888889%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(163.952020202%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(170.265151515%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(182.891414141%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(189.204545455%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(195.517676768%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(201.830808081%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(214.457070707%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(220.77020202%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(227.083333333%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(233.396464646%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(246.022727273%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(252.335858586%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(258.648989899%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(264.962121212%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(277.588383838%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(283.901515152%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(290.214646465%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(296.527777778%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(309.154040404%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(315.467171717%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(321.78030303%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(328.093434343%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(340.71969697%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(347.032828283%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20220.713)%22%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20135.7245%207.348)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g4B491C9D0EAFB09ABAB1AC7BC9DFA911%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g5C3AABF9E729631755B8B12BA5F35AAD%22%20x%3D%226.006%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gEB5211937D607FFB591FCEE3719D218E%22%20x%3D%2211.792%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gB4C902E48C8D391C4615AFFB0E611714%22%20x%3D%2215.356%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gAB87DF46BD16BB429BA1A7AAD7177B35%22%20x%3D%2221.252%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g5C3AABF9E729631755B8B12BA5F35AAD%22%20x%3D%2224.827%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g2DC51706BC3B9B574727AA30C0F19912%22%20x%3D%2230.613%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g4B491C9D0EAFB09ABAB1AC7BC9DFA911%22%20x%3D%2236.322%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gB4C902E48C8D391C4615AFFB0E611714%22%20x%3D%2242.328%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gE05D5D7294E0599B8CEF8A16665A3920%22%20x%3D%2248.224%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g45C37C2E3D74B42AC20B9E6C65A434E4%22%20x%3D%2257.475%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gF7AC29E1E5FA5B1D800F0E84A8D3FE3D%22%20x%3D%2263.701%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gAB87DF46BD16BB429BA1A7AAD7177B35%22%20x%3D%2269.63%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gC7F2A8BD7C0771BB10ADE18F2DA062E4%22%20x%3D%2273.37%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%20%2F%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(50.315656566)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(81.881313131)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(113.446969697)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(145.012626263)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(176.578282828)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(208.143939394)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(239.70959596)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(271.275252525)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(302.840909091)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(334.406565657)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(6.123737374)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(12.436868687)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(25.063131313)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(31.376262626)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(37.689393939)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(44.002525253)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(56.628787879)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(62.941919192)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(69.255050505)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(75.568181818)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(88.194444444)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(94.507575758)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(100.820707071)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(107.133838384)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(119.76010101)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(126.073232323)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(132.386363636)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(138.699494949)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(151.325757576)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(157.638888889)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(163.952020202)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(170.265151515)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(182.891414141)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(189.204545455)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(195.517676768)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(201.830808081)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(214.457070707)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(220.77020202)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(227.083333333)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(233.396464646)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(246.022727273)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(252.335858586)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(258.648989899)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(264.962121212)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(277.588383838)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(283.901515152)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(290.214646465)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(296.527777778)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(309.154040404)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(315.467171717)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(321.78030303)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(328.093434343)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(340.71969697)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(347.032828283)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20%2F%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200l%200%20200%22%20%2F%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20188.045634921)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-25.058%20191.802134921)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8C5DE8B42A8F44179A2C3172A23CB10B%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%20191.802134921)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gD42E3B394D6850BF8C4865F4AE3B1088%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20191.802134921)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20163.244047619)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-25.058%20167.000547619)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8C5DE8B42A8F44179A2C3172A23CB10B%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%20167.000547619)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gBD401770F8867B490949D5AE1AB3F82%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20167.000547619)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20138.442460317)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-25.058%20142.198960317)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8C5DE8B42A8F44179A2C3172A23CB10B%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%20142.198960317)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5B440C03A6991C2AE1CF687F6CF909A%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20142.198960317)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20113.640873016)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-25.058%20117.397373016)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8C5DE8B42A8F44179A2C3172A23CB10B%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%20117.397373016)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5037E03A0CBEB30198DBAC9F97CDF04F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20117.397373016)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2088.839285714)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2092.595785714)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2064.037698413)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%2067.794198413)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5037E03A0CBEB30198DBAC9F97CDF04F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2067.794198413)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2039.236111111)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%2042.992611111)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5B440C03A6991C2AE1CF687F6CF909A%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2042.992611111)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2014.43452381)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-16.5%2018.19102381)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gBD401770F8867B490949D5AE1AB3F82%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2018.19102381)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20194.246031746)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20181.845238095)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20175.64484127)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20169.444444444)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20157.043650794)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20150.843253968)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20144.642857143)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20132.242063492)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20126.041666667)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20119.841269841)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20107.44047619)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20101.240079365)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2095.03968254)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2082.638888889)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2076.438492063)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2070.238095238)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2057.837301587)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2051.636904762)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2045.436507937)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2033.035714286)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2026.83531746)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2020.634920635)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%208.234126984)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%202.033730159)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(-40.271)%22%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%20156.454444444)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g74C12D21CC092D37E7D4D70E34ADCA23%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gF7A93543484FC37935C78A5D1F5B2EC6%22%20x%3D%226.116%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gE86F840DDA400091B8324095DD2EC20C%22%20x%3D%229.174%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gF7A93543484FC37935C78A5D1F5B2EC6%22%20x%3D%2214.674%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gED093E24411CDC16AD008BFA8D8A65C1%22%20x%3D%2217.732%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g332FEE9CAEF879E7D01E038ACA245048%22%20x%3D%2222.011%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gCBAED53C5EB8EDED597F84071DCE9968%22%20x%3D%2225.674%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gF1018D9EAD0D6A7C348C4064F39364A9%22%20x%3D%2231.79%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g5EB396CD9EB516C004A1674D88B874CA%22%20x%3D%2237.29%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g4F15B44AD1AAE7906B9D9F9C3850F14B%22%20x%3D%2245.232%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gA1583A9D47A5AF176809D99838F34700%22%20x%3D%2250.116%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g332FEE9CAEF879E7D01E038ACA245048%22%20x%3D%2254.428%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g67E0717D063DE91831D2A23981510B8D%22%20x%3D%2258.091%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g53741DD6BA4504AC32BDC384B8913A03%22%20x%3D%2262.425%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g5EF7A2FE47BCD00C1DDF63F6B87CC52A%22%20x%3D%2268.541%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%2078.750444444)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gCBFDB4FAA60E8030E7B751E03D6CAAA6%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%2074.471444444)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g46A72DF51926ABBEA5282E072AF79004%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%2067.871444444)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g11C1096A524ED08942C2BB5E0564A17C%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%2061.148)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g8C5DE8B42A8F44179A2C3172A23CB10B%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%2050.145555556)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g46A72DF51926ABBEA5282E072AF79004%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20%2F%3E%3Cg%20transform%3D%22translate(350)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200l%200%20200%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(350)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20188.045634921)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20163.244047619)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20138.442460317)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20113.640873016)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2088.839285714)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2064.037698413)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2039.236111111)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2014.43452381)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(350)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20194.246031746)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20181.845238095)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20175.64484127)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20169.444444444)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20157.043650794)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20150.843253968)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20144.642857143)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20132.242063492)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20126.041666667)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20119.841269841)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20107.44047619)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20101.240079365)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2095.03968254)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2082.638888889)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2076.438492063)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2070.238095238)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2057.837301587)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2051.636904762)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2045.436507937)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2033.035714286)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2026.83531746)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2020.634920635)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%208.234126984)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%202.033730159)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(350)%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cdefs%3E%3Csymbol%20id%3D%22g18E9A2F0F5286FD67B2F2437F78BB061%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.739%20-0.242c%201.551%200%202.321%201.254%202.321%203.762c%200%201.683%20-0.352%202.805%20-1.045%203.355c%20-0.385%200.297%20-0.814%200.451%20-1.265%200.451c%20-1.551%200%20-2.321%20-1.265%20-2.321%20-3.806c%200%20-2.024%200.539%20-3.762%202.31%20-3.762Z%20m%201.232%206.006c%200.077%20-0.385%200.11%20-1.089%200.11%20-2.112c%200%20-1.012%20-0.044%20-1.76%20-0.121%20-2.244c%20-0.143%20-0.88%20-0.55%20-1.32%20-1.221%20-1.32c%20-0.253%200%20-0.506%200.099%20-0.737%200.286c%20-0.297%200.253%20-0.473%200.77%20-0.55%201.562c%20-0.033%200.275%20-0.044%200.847%20-0.044%201.716c%200%200.957%200.033%201.628%200.088%201.991c%200.099%200.605%200.297%200.99%200.605%201.155c%200.242%200.132%200.451%200.198%200.638%200.198c%200.715%200%201.111%20-0.583%201.232%20-1.232Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g3E2A4E29F5F78B7482203F9341039E72%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.959%207.326c%20-0.451%20-0.462%20-1.111%20-0.693%20-1.98%20-0.693v%20-0.429c%200.572%200%201.045%200.088%201.408%200.264v%20-5.566c%200%20-0.198%20-0.044%20-0.33%20-0.143%20-0.385c%20-0.099%20-0.055%20-0.374%20-0.088%20-0.814%20-0.088h%20-0.385v%20-0.429c%200.275%200.022%200.869%200.033%201.782%200.033c%200.913%200%201.507%20-0.011%201.782%20-0.033v%200.429h%20-0.385c%20-0.451%200%20-0.726%200.033%20-0.814%200.088c%20-0.088%200.055%20-0.143%200.187%20-0.143%200.385v%206.094c%200%200.264%20-0.022%200.33%20-0.308%200.33Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5037E03A0CBEB30198DBAC9F97CDF04F%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.607%207.326c%20-0.561%200%20-1.034%20-0.198%20-1.441%20-0.594c%20-0.407%20-0.396%20-0.616%20-0.858%20-0.616%20-1.419c%200%20-0.374%200.275%20-0.649%200.616%20-0.649c%200.33%200%200.605%200.286%200.605%200.616c%200%200.363%20-0.264%200.616%20-0.616%200.616c%20-0.033%200%20-0.055%200%20-0.077%20-0.011c%200.209%200.539%200.693%201.012%201.386%201.012c%200.902%200%201.408%20-0.781%201.408%20-1.727c%200%20-0.737%20-0.374%20-1.529%20-1.122%20-2.365l%20-2.068%20-2.332c%20-0.143%20-0.165%20-0.132%20-0.154%20-0.132%20-0.473h%204.081l%200.319%201.98h%20-0.363c%20-0.088%20-0.561%20-0.165%20-0.88%20-0.231%20-0.979c%20-0.055%20-0.055%20-0.385%20-0.077%20-0.99%20-0.077h%20-1.837l%201.067%201.045c%200.748%200.704%201.694%201.463%202.013%202.046c%200.22%200.385%200.33%200.77%200.33%201.155c%200%201.298%20-1.012%202.156%20-2.332%202.156Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gC63E28D2FF745BC8AEDEB058F758CC95%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.333%203.883c%200.726%200.275%201.408%200.968%201.408%201.903c%200%200.473%20-0.231%200.858%20-0.682%201.155c%20-0.396%200.253%20-0.847%200.385%20-1.353%200.385c%20-0.495%200%20-0.924%20-0.132%20-1.309%20-0.385c%20-0.429%20-0.286%20-0.649%20-0.66%20-0.649%20-1.133c%200%20-0.363%200.242%20-0.616%200.594%20-0.616c%200.352%200%200.594%200.253%200.594%200.605c%200%200.363%20-0.209%200.561%20-0.627%200.583c%200.286%200.385%200.737%200.583%201.353%200.583c%200.66%200%200.99%20-0.385%200.99%20-1.166c%200%20-0.462%20-0.088%20-0.847%20-0.253%20-1.166c%20-0.297%20-0.528%20-0.704%20-0.627%20-1.386%20-0.627c%20-0.132%20-0.022%20-0.198%20-0.077%20-0.198%20-0.176c%200%20-0.165%200.077%20-0.165%200.297%20-0.165h%200.473c%200.825%200%201.243%20-0.583%201.243%20-1.76c%200%20-0.935%20-0.341%20-1.749%20-1.177%20-1.749c%20-0.715%200%20-1.243%200.242%20-1.562%200.726c%200.385%20-0.011%200.671%200.275%200.671%200.649c%200%200.374%20-0.275%200.649%20-0.649%200.649c%20-0.429%200%20-0.649%20-0.22%20-0.649%20-0.671c%200%20-0.539%200.242%20-0.968%200.726%20-1.309c%200.429%20-0.297%200.935%20-0.44%201.496%20-0.44c%200.627%200%201.166%200.209%201.639%200.616c%200.473%200.407%200.704%200.913%200.704%201.529c%200%201.034%20-0.814%201.749%20-1.694%201.98Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5B440C03A6991C2AE1CF687F6CF909A%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.883%207.447c%20-0.099%200%20-0.187%20-0.055%20-0.253%20-0.154l%20-3.322%20-5.104v%20-0.396h%202.871v%20-0.902c%200%20-0.198%20-0.044%20-0.33%20-0.121%20-0.385c%20-0.077%20-0.055%20-0.286%20-0.077%20-0.649%20-0.077h%20-0.275v%20-0.429c%200.319%200.022%200.825%200.033%201.507%200.033c%200.682%200%201.188%20-0.011%201.507%20-0.033v%200.429h%20-0.275c%20-0.363%200%20-0.572%200.022%20-0.649%200.077c%20-0.077%200.055%20-0.121%200.187%20-0.121%200.385v%200.902h%201.078v%200.429h%20-1.078v%205.038c%200%200.11%20-0.077%200.187%20-0.22%200.187Z%20m%20-0.638%20-1.364v%20-3.861h%20-2.508Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gE3AFFB6D3A6969089B1BA192752CE6D1%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%201.298%203.465c%200.055%200%200.121%200.044%200.176%200.121c%200.33%200.495%200.781%200.737%201.353%200.737c%200.385%200%200.682%20-0.22%200.88%20-0.671c%200.121%20-0.297%200.187%20-0.748%200.187%20-1.353c%200%20-0.693%20-0.088%20-1.177%20-0.253%20-1.463c%20-0.275%20-0.451%20-0.649%20-0.682%20-1.122%20-0.682c%20-0.737%200%20-1.32%200.528%20-1.518%201.1c%200.033%20-0.011%200.055%200%200.099%200c%200.33%200%200.605%200.253%200.605%200.583c%200%200.341%20-0.275%200.572%20-0.605%200.572c%20-0.385%200%20-0.55%20-0.209%20-0.55%20-0.616c%200%20-1.1%200.891%20-2.035%201.991%20-2.035c%200.671%200%201.243%200.242%201.705%200.726c%200.462%200.484%200.693%201.067%200.693%201.738c%200%200.638%20-0.187%201.188%20-0.561%201.661c%20-0.407%200.517%20-0.913%200.77%20-1.529%200.77c%20-0.517%200%20-0.968%20-0.165%20-1.331%20-0.495v%201.958c%200.297%20-0.088%200.583%20-0.132%200.88%20-0.132c%200.506%200%200.946%200.121%201.32%200.374c%200.341%200.209%200.572%200.418%200.704%200.616c%200.066%200.088%200.099%200.154%200.099%200.187c%200%200.11%20-0.055%200.165%20-0.165%200.165c%20-0.605%20-0.231%20-1.122%20-0.352%20-1.54%20-0.352c%20-0.495%200%20-0.968%200.099%20-1.419%200.308c%20-0.055%200.022%20-0.099%200.033%20-0.143%200.033c%20-0.099%200%20-0.154%20-0.099%20-0.154%20-0.308v%20-3.212c%200%20-0.231%200%20-0.33%200.198%20-0.33Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gBD401770F8867B490949D5AE1AB3F82%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%204.213%205.544c%200.363%200%200.539%200.187%200.539%200.561c%200%200.792%20-0.594%201.221%20-1.408%201.221c%20-0.913%200%20-1.639%20-0.429%20-2.178%20-1.298c%20-0.473%20-0.748%20-0.704%20-1.595%20-0.704%20-2.552c%200%20-1.397%200.253%20-2.376%200.77%20-2.959c%200.44%20-0.506%200.946%20-0.759%201.529%20-0.759c%200.671%200%201.221%200.253%201.65%200.759c%200.407%200.484%200.616%201.067%200.616%201.738c%200%200.671%20-0.198%201.243%20-0.594%201.716c%20-0.418%200.506%20-0.957%200.77%20-1.606%200.77c%20-0.572%200%20-1.012%20-0.319%20-1.309%20-0.935v%200.066c%200%201.243%200.308%202.299%200.968%202.783c%200.286%200.209%200.583%200.308%200.88%200.308c%200.396%200%200.682%20-0.11%200.869%20-0.341c%20-0.374%200%20-0.561%20-0.209%20-0.561%20-0.539c%200%20-0.308%200.231%20-0.539%200.539%20-0.539Z%20m%20-0.429%20-1.804c%200.121%20-0.253%200.187%20-0.748%200.187%20-1.474c%200%20-0.715%20-0.055%20-1.188%20-0.176%20-1.43c%20-0.22%20-0.451%20-0.561%20-0.682%20-1.034%20-0.682c%20-0.319%200%20-0.561%200.11%20-0.737%200.33c%20-0.143%200.176%20-0.242%200.33%20-0.286%200.451c%20-0.132%200.341%20-0.198%200.858%20-0.198%201.562c%200%200.308%200.044%200.605%200.121%200.891c%200.143%200.517%200.55%201.001%201.155%201.001c%200.429%200%200.759%20-0.22%200.968%20-0.649Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g8B3FA07D93F5CD200BBF8A3D70170575%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%205.225%206.644c%200.077%200.099%200.11%200.242%200.11%200.44h%20-2.662c%20-0.759%200%20-1.188%200.044%20-1.265%200.143c%20-0.033%200.033%20-0.066%200.11%20-0.088%200.209h%20-0.341l%20-0.374%20-2.332h%200.363c%200.11%200.616%200.198%200.946%200.264%201.001c%200.033%200.033%200.374%200.055%201.023%200.055h%202.156l%20-1.166%20-1.65c%20-0.891%20-1.265%20-1.331%20-2.629%20-1.331%20-4.114c%200%20-0.429%200.176%20-0.638%200.539%20-0.638c%200.363%200%200.539%200.209%200.539%200.638v%200.561c%200%201.672%200.264%202.882%200.781%203.619Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gD42E3B394D6850BF8C4865F4AE3B1088%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.75%207.326c%20-0.539%200%20-1.012%20-0.176%20-1.408%20-0.528c%20-0.396%20-0.352%20-0.594%20-0.792%20-0.594%20-1.331c%200%20-0.451%200.165%20-0.858%200.495%20-1.221c%200.077%20-0.088%200.319%20-0.275%200.726%20-0.561c%20-1.001%20-0.517%20-1.507%20-1.188%20-1.507%20-2.002c%200%20-0.583%200.242%20-1.056%200.715%20-1.419c%200.44%20-0.341%200.957%20-0.506%201.562%20-0.506c%200.616%200%201.155%200.198%201.606%200.594c%200.451%200.396%200.682%200.913%200.682%201.518c%200%200.506%20-0.176%200.957%20-0.539%201.364c%20-0.132%200.143%20-0.473%200.396%20-1.012%200.737c%200.847%200.451%201.265%201.023%201.265%201.694c%200%201.001%20-0.957%201.661%20-1.991%201.661Z%20m%201.419%20-1.661c%200%20-0.572%20-0.341%20-1.067%20-1.023%20-1.474l%20-1.309%200.858c%20-0.341%200.22%20-0.517%200.506%20-0.517%200.847c%200%200.66%200.715%201.067%201.419%201.067c%200.759%200%201.43%20-0.539%201.43%20-1.298Z%20m%20-1.419%20-5.511c%20-0.902%200%20-1.661%200.649%20-1.661%201.529c%200%200.737%200.407%201.331%201.221%201.782l%201.298%20-0.825c%200.528%20-0.341%200.792%20-0.726%200.792%20-1.166c%200%20-0.792%20-0.825%20-1.32%20-1.65%20-1.32Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gA22B31529741E8678957AE18B36D082F%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%201.276%201.54c%20-0.363%200%20-0.539%20-0.187%20-0.539%20-0.561c%200%20-0.825%200.671%20-1.221%201.54%20-1.221c%200.88%200%201.584%200.44%202.101%201.331c%200.429%200.737%200.649%201.584%200.649%202.53c%200%201.397%20-0.253%202.387%20-0.759%202.97c%20-0.429%200.495%20-0.924%200.737%20-1.485%200.737c%20-0.649%200%20-1.188%20-0.231%20-1.617%20-0.704c%20-0.473%20-0.495%20-0.704%20-1.089%20-0.704%20-1.782c%200%20-0.671%200.198%20-1.243%200.594%20-1.716c%200.418%20-0.506%200.957%20-0.759%201.606%20-0.759c%200.572%200%201.012%200.308%201.309%200.924v%20-0.143c%200%20-1.199%20-0.209%20-2.013%20-0.638%20-2.453c%20-0.341%20-0.363%20-0.704%20-0.539%20-1.067%20-0.539c%20-0.44%200%20-0.759%200.099%20-0.968%200.308c%200.341%200%200.517%200.198%200.517%200.539c%200%200.308%20-0.231%200.539%20-0.539%200.539Z%20m%201.397%201.166c%20-0.429%200%20-0.748%200.22%20-0.968%200.66c%20-0.121%200.253%20-0.187%200.748%20-0.187%201.463c%200%200.715%200.077%201.199%200.22%201.474c%200.242%200.44%200.594%200.66%201.045%200.66c%200.451%200%200.781%20-0.275%200.99%20-0.825c%200.121%20-0.297%200.198%20-0.803%200.198%20-1.518c%200%20-0.957%20-0.429%20-1.914%20-1.298%20-1.914Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g4B491C9D0EAFB09ABAB1AC7BC9DFA911%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.77%200v%205.456h%200.682l%200.242%20-0.825q%200.231%200.385%200.649%200.649q%200.418%200.264%201.111%200.264q%200.99%200%201.397%20-0.5775q%200.407%20-0.5775%200.407%20-1.5125v%20-3.454h%20-0.924v%203.179q%200%200.418%20-0.077%200.7755q%20-0.077%200.3575%20-0.3355%200.5775q%20-0.2585%200.22%20-0.7865%200.22q%20-0.671%200%20-1.056%20-0.4565q%20-0.385%20-0.4565%20-0.385%20-1.3365v%20-2.959h%20-0.924Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5C3AABF9E729631755B8B12BA5F35AAD%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.299%20-0.132q%20-0.517%200%20-0.946%200.187q%20-0.429%200.187%20-0.682%200.539q%20-0.253%200.352%20-0.253%200.847q%200%200.649%200.4565%201.023q%200.4565%200.374%201.287%200.5775q%200.8305%200.2035%201.9415%200.3245q%200.022%200.693%20-0.275%201.067q%20-0.297%200.374%20-0.957%200.374q%20-0.495%200%20-0.8085%20-0.2255q%20-0.3135%20-0.2255%20-0.4015%20-0.6215l%20-0.891%200.264q%200.22%200.627%200.7865%200.9735q%200.5665%200.3465%201.3035%200.3465q%201.133%200%201.6555%20-0.5335q%200.5225%20-0.5335%200.5225%20-1.6775v%20-1.276q%200%20-0.682%200.055%20-1.177q%200.055%20-0.495%200.132%20-0.88h%20-0.847l%20-0.22%200.748q%20-0.242%20-0.407%20-0.693%20-0.6435q%20-0.451%20-0.2365%20-1.166%20-0.2365Z%20m%200.198%200.737q%200.429%200%200.814%200.154q%200.385%200.154%200.627%200.5225q%200.242%200.3685%200.242%201.0065v%200.341q%20-0.836%20-0.088%20-1.452%20-0.2145q%20-0.616%20-0.1265%20-0.9515%20-0.352q%20-0.3355%20-0.2255%20-0.3355%20-0.5995q%200%20-0.385%200.2805%20-0.6215q%200.2805%20-0.2365%200.7755%20-0.2365Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gEB5211937D607FFB591FCEE3719D218E%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.431%200q%20-0.517%200%20-0.7975%200.1045q%20-0.2805%200.1045%20-0.385%200.4015q%20-0.1045%200.297%20-0.1045%200.858v%203.355h%20-0.924v%200.737h%200.924v%201.375h%200.924v%20-1.375h%201.056v%20-0.737h%20-1.056v%20-3.201q%200%20-0.418%200.0825%20-0.561q%200.0825%20-0.143%200.4785%20-0.143h%200.495v%20-0.814h%20-0.693Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gB4C902E48C8D391C4615AFFB0E611714%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.497%20-0.132q%20-0.638%200%20-1.023%200.2695q%20-0.385%200.2695%20-0.5555%200.748q%20-0.1705%200.4785%20-0.1705%201.0945v%203.487h%200.924v%20-3.267q%200%20-0.605%200.143%20-0.935q%200.143%20-0.33%200.4015%20-0.4565q%200.2585%20-0.1265%200.5995%20-0.1265q%200.649%200%201.0175%200.4565q%200.3685%200.4565%200.3685%201.3255v%203.003h%200.924v%20-5.467h%20-0.693l%20-0.231%200.792q%20-0.231%20-0.396%20-0.627%20-0.66q%20-0.396%20-0.264%20-1.078%20-0.264Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gAB87DF46BD16BB429BA1A7AAD7177B35%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.77%200v%205.456h%200.671l%200.297%20-1.012q%200.286%200.495%200.7755%200.7975q%200.4895%200.3025%201.1715%200.3025v%20-0.957q%20-0.077%200%20-0.1595%200q%20-0.0825%200%20-0.1595%20-0.011q%20-0.935%20-0.077%20-1.3035%20-0.649q%20-0.3685%20-0.572%20-0.3685%20-1.584v%20-2.343h%20-0.924Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g2DC51706BC3B9B574727AA30C0F19912%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.057%200q%20-0.517%200%20-0.7975%200.1045q%20-0.2805%200.1045%20-0.385%200.4015q%20-0.1045%200.297%20-0.1045%200.858v%205.973h%200.924v%20-5.819q%200%20-0.418%200.088%20-0.561q%200.088%20-0.143%200.473%20-0.143h%200.209v%20-0.814h%20-0.407Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gE05D5D7294E0599B8CEF8A16665A3920%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.77%200v%205.456h%200.682l%200.242%20-0.825q%200.231%200.385%200.6325%200.649q%200.4015%200.264%201.0065%200.264q%200.627%200%201.012%20-0.253q%200.385%20-0.253%200.561%20-0.704q%200.33%200.506%200.7975%200.7315q%200.4675%200.2255%201.0395%200.2255q%200.946%200%201.353%20-0.5775q%200.407%20-0.5775%200.407%20-1.5125v%20-3.454h%20-0.924v%203.179q%200%200.418%20-0.0825%200.7755q%20-0.0825%200.3575%20-0.33%200.5775q%20-0.2475%200.22%20-0.7535%200.22q%20-0.594%200%20-0.9515%20-0.4565q%20-0.3575%20-0.4565%20-0.3575%20-1.3365v%20-2.959h%20-0.924v%203.179q%200%200.418%20-0.0825%200.7755q%20-0.0825%200.3575%20-0.33%200.5775q%20-0.2475%200.22%20-0.7535%200.22q%20-0.594%200%20-0.957%20-0.4565q%20-0.363%20-0.4565%20-0.363%20-1.3365v%20-2.959h%20-0.924Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g45C37C2E3D74B42AC20B9E6C65A434E4%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.465%20-0.132q%20-0.638%200%20-1.078%200.2585q%20-0.44%200.2585%20-0.693%200.6985l%20-0.242%20-0.825h%20-0.682v%207.348h%200.924v%20-2.75q%200.253%200.429%200.693%200.6875q%200.44%200.2585%201.078%200.2585q%200.627%200%201.1605%20-0.3355q%200.5335%20-0.3355%200.858%20-0.968q%200.3245%20-0.6325%200.3245%20-1.5345q%200%20-0.902%20-0.3245%20-1.5345q%20-0.3245%20-0.6325%20-0.858%20-0.968q%20-0.5335%20-0.3355%20-1.1605%20-0.3355Z%20m%20-0.242%200.792q%200.704%200%201.1275%200.539q%200.4235%200.539%200.4235%201.507q%200%200.979%20-0.4235%201.5125q%20-0.4235%200.5335%20-1.1275%200.5335q%20-0.704%200%20-1.1275%20-0.5335q%20-0.4235%20-0.5335%20-0.4235%20-1.5125q%200%20-0.968%200.4235%20-1.507q%200.4235%20-0.539%201.1275%20-0.539Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gF7AC29E1E5FA5B1D800F0E84A8D3FE3D%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.091%20-0.132q%20-0.858%200%20-1.452%200.3795q%20-0.594%200.3795%20-0.9075%201.023q%20-0.3135%200.6435%20-0.3135%201.4465q%200%200.869%200.352%201.5015q%200.352%200.6325%200.9515%200.979q%200.5995%200.3465%201.3475%200.3465q%200.649%200%201.144%20-0.2585q%200.495%20-0.2585%200.8195%20-0.693q%200.3245%20-0.4345%200.473%20-0.9845q%200.1485%20-0.55%200.1045%20-1.133h%20-4.202q%200.022%20-0.682%200.3025%20-1.078q%200.2805%20-0.396%200.6655%20-0.5555q%200.385%20-0.1595%200.715%20-0.1595q%200.462%200%200.7755%200.1485q%200.3135%200.1485%200.5005%200.3905l%200.891%20-0.264q%20-0.297%20-0.473%20-0.847%20-0.781q%20-0.55%20-0.308%20-1.32%20-0.308Z%20m%20-1.672%203.344h%203.212q%200%200.385%20-0.1925%200.737q%20-0.1925%200.352%20-0.539%200.5775q%20-0.3465%200.2255%20-0.8305%200.2255q%20-0.407%200%20-0.77%20-0.154q%20-0.363%20-0.154%20-0.5995%20-0.495q%20-0.2365%20-0.341%20-0.2805%20-0.891Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gC7F2A8BD7C0771BB10ADE18F2DA062E4%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.629%20-0.132q%20-0.473%200%20-0.9295%200.1485q%20-0.4565%200.1485%20-0.814%200.451q%20-0.3575%200.3025%20-0.5445%200.7645l%200.891%200.33q%200.121%20-0.484%200.5335%20-0.6985q%200.4125%20-0.2145%200.8635%20-0.2145q%200.33%200%200.6215%200.099q%200.2915%200.099%200.4785%200.286q%200.187%200.187%200.187%200.429q%200%200.451%20-0.3575%200.638q%20-0.3575%200.187%20-0.8525%200.286l%20-0.759%200.154q%20-0.396%200.088%20-0.737%200.2475q%20-0.341%200.1595%20-0.55%200.4565q%20-0.209%200.297%20-0.209%200.792q%200%200.495%200.308%200.8305q%200.308%200.3355%200.7865%200.5115q%200.4785%200.176%201.0065%200.176q%200.649%200%201.2265%20-0.2695q%200.5775%20-0.2695%200.8195%20-0.8415l%20-0.869%20-0.319q%20-0.143%200.33%20-0.5005%200.4895q%20-0.3575%200.1595%20-0.7425%200.1595q%20-0.418%200%20-0.759%20-0.187q%20-0.341%20-0.187%20-0.341%20-0.539q%200%20-0.352%200.2915%20-0.5115q%200.2915%20-0.1595%200.7205%20-0.2475l%200.715%20-0.143q%200.44%20-0.088%200.836%20-0.253q%200.396%20-0.165%200.649%20-0.4895q%200.253%20-0.3245%200.253%20-0.9075q%200%20-0.517%20-0.319%20-0.88q%20-0.319%20-0.363%20-0.825%20-0.5555q%20-0.506%20-0.1925%20-1.078%20-0.1925Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g8C5DE8B42A8F44179A2C3172A23CB10B%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%207.678%202.97h%20-6.798c%20-0.176%200%20-0.264%20-0.077%20-0.264%20-0.22c%200%20-0.143%200.088%20-0.22%200.264%20-0.22h%206.798c%200.176%200%200.264%200.077%200.264%200.22c%200%200.132%20-0.132%200.22%20-0.264%200.22Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g74C12D21CC092D37E7D4D70E34ADCA23%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%204.114%20-0.121l%201.683%200.121v%200.418c%20-0.396%200%20-0.627%200.022%20-0.715%200.088c%20-0.088%200.066%20-0.132%200.231%20-0.132%200.484v%206.644l%20-1.639%20-0.121v%20-0.418c%200.385%200%200.627%20-0.033%200.715%20-0.099c%200.088%20-0.066%200.121%20-0.22%200.121%20-0.473v%20-2.233c%20-0.352%200.407%20-0.792%200.605%20-1.32%200.605c%20-0.682%200%20-1.265%20-0.242%20-1.738%20-0.737c%20-0.473%20-0.495%20-0.715%20-1.089%20-0.715%20-1.782c%200%20-0.671%200.22%20-1.254%200.671%20-1.749c%200.451%20-0.495%201.001%20-0.748%201.672%20-0.748c%200.561%200%201.034%200.209%201.397%200.638Z%20m%20-1.243%204.686c%200.473%200%200.858%20-0.209%201.133%20-0.627c%200.077%20-0.121%200.11%20-0.242%200.11%20-0.385v%20-2.222c%200%20-0.143%20-0.033%20-0.264%20-0.11%20-0.385c%20-0.308%20-0.495%20-0.726%20-0.737%20-1.243%20-0.737c%20-0.451%200%20-0.814%200.22%20-1.1%200.671c%20-0.198%200.33%20-0.297%200.825%20-0.297%201.485c%200%201.199%200.407%202.2%201.507%202.2Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gF7A93543484FC37935C78A5D1F5B2EC6%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.134%206.611c%200%200.33%20-0.275%200.616%20-0.605%200.616c%20-0.33%200%20-0.616%20-0.286%20-0.616%20-0.616c%200%20-0.33%200.275%20-0.627%200.605%20-0.627c%200.341%200%200.616%200.286%200.616%200.627Z%20m%20-0.561%20-6.578l%201.144%20-0.033v%200.429c%20-0.363%200%20-0.583%200.022%20-0.649%200.066c%20-0.066%200.044%20-0.088%200.165%20-0.088%200.363v%204.037l%20-1.573%20-0.132v%20-0.418c%200.363%200%200.594%20-0.033%200.671%20-0.088c%200.077%20-0.055%200.11%20-0.209%200.11%20-0.462v%20-2.926c%200%20-0.209%20-0.033%20-0.341%20-0.11%20-0.385c%20-0.077%20-0.044%20-0.319%20-0.055%20-0.715%20-0.055v%20-0.429Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gE86F840DDA400091B8324095DD2EC20C%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%204.741%204.983c%20-0.418%200%20-0.803%20-0.165%20-1.155%20-0.495c%20-0.33%200.253%20-0.704%200.374%20-1.133%200.374c%20-0.946%200%20-1.804%20-0.704%20-1.804%20-1.628c%200%20-0.462%200.165%20-0.836%200.495%20-1.122c%20-0.209%20-0.264%20-0.319%20-0.561%20-0.319%20-0.902c%200%20-0.418%200.143%20-0.737%200.418%20-0.946c%20-0.462%20-0.154%20-0.935%20-0.55%20-0.935%20-1.111c%200%20-0.473%200.308%20-0.847%200.913%20-1.111c%200.462%20-0.209%200.968%20-0.308%201.518%20-0.308c%200.561%200%201.078%200.099%201.54%200.308c%200.605%200.264%200.902%200.638%200.902%201.133c%200%200.583%20-0.242%201.012%20-0.726%201.287c%20-0.506%200.275%20-1.067%200.308%20-1.881%200.308c%20-0.484%200%20-0.748%200%20-0.803%200.011c%20-0.308%200.044%20-0.528%200.341%20-0.528%200.682c%200%200.165%200.044%200.319%200.143%200.451c%200.308%20-0.209%200.66%20-0.319%201.067%20-0.319c%200.946%200%201.793%200.704%201.793%201.628c%200%200.429%20-0.143%200.781%20-0.429%201.056c%200.275%200.253%200.572%200.374%200.891%200.374c%20-0.055%20-0.055%20-0.088%20-0.143%20-0.088%20-0.253c%200%20-0.242%200.121%20-0.363%200.363%20-0.363c%200.231%200%200.352%200.121%200.352%200.374c%200%200.341%20-0.264%200.572%20-0.594%200.572Z%20m%20-2.288%20-0.462c%200.594%200%200.891%20-0.429%200.891%20-1.287c%200%20-0.869%20-0.297%20-1.309%20-0.891%20-1.309c%20-0.605%200%20-0.902%200.429%20-0.902%201.298c%200%200.869%200.297%201.298%200.902%201.298Z%20m%20-0.649%20-4.477h%200.638c%200.572%200%201.034%20-0.033%201.386%20-0.11c%200.473%20-0.099%200.704%20-0.363%200.704%20-0.781c%200%20-0.352%20-0.22%20-0.627%20-0.66%20-0.836c%20-0.341%20-0.165%20-0.715%20-0.242%20-1.122%20-0.242c%20-0.396%200%20-0.77%200.077%20-1.122%200.242c%20-0.451%200.209%20-0.671%200.484%20-0.671%200.836c%200%200.462%200.396%200.891%200.847%200.891Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gED093E24411CDC16AD008BFA8D8A65C1%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.652%201.386v%200.66h%20-0.352v%20-0.638c%200%20-0.55%20-0.198%20-1.166%20-0.682%20-1.166c%20-0.451%200%20-0.671%200.374%20-0.671%201.122v%202.981h%201.529v%200.418h%20-1.529v%202.002h%20-0.352c%20-0.011%20-0.363%20-0.044%20-0.682%20-0.121%20-0.968c%20-0.187%20-0.726%20-0.616%20-1.1%20-1.265%20-1.133v%20-0.319h%200.913v%20-2.959c%200%20-0.649%200.198%20-1.067%200.583%20-1.276c%200.297%20-0.154%200.572%20-0.231%200.847%20-0.231c%200.726%200%201.1%200.726%201.1%201.507Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g332FEE9CAEF879E7D01E038ACA245048%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.121%202.057h%202.915v%200.638h%20-2.915Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gCBAED53C5EB8EDED597F84071DCE9968%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.278%20-0.143c%200.682%200%201.265%200.242%201.738%200.737c%200.473%200.495%200.715%201.078%200.715%201.771c%200%200.671%20-0.22%201.243%20-0.649%201.727c%20-0.451%200.517%20-1.001%200.77%20-1.661%200.77c%20-0.561%200%20-1.045%20-0.22%20-1.463%20-0.649v%200.649l%20-1.65%20-0.121v%20-0.418c%200.407%200%200.649%20-0.022%200.726%20-0.077c%200.077%20-0.055%200.121%20-0.198%200.121%20-0.429v%20-5.082c%200%20-0.209%20-0.044%20-0.341%20-0.121%20-0.385c%20-0.077%20-0.044%20-0.319%20-0.055%20-0.726%20-0.055v%20-0.429l%201.254%200.033l%201.265%20-0.033v%200.429c%20-0.407%200%20-0.638%200.011%20-0.715%200.055c%20-0.077%200.044%20-0.121%200.176%20-0.121%200.385v%201.749c%200.242%20-0.341%200.715%20-0.627%201.287%20-0.627Z%20m%200.066%204.642c%200.451%200%200.803%20-0.253%201.078%20-0.759c%200.209%20-0.429%200.319%20-0.88%200.319%20-1.375c%200%20-0.517%20-0.121%20-0.99%20-0.363%20-1.419c%20-0.286%20-0.517%20-0.671%20-0.77%20-1.144%20-0.77c%20-0.462%200%20-0.825%200.22%20-1.1%200.649c%20-0.099%200.143%20-0.143%200.286%20-0.143%200.429v%202.409c%200.319%200.561%200.77%200.836%201.353%200.836Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gF1018D9EAD0D6A7C348C4064F39364A9%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.739%20-0.121c%200.682%200%201.254%200.242%201.727%200.726c%200.473%200.484%200.715%201.067%200.715%201.749c%200%200.693%20-0.231%201.298%20-0.693%201.804c%20-0.462%200.506%20-1.045%200.77%20-1.738%200.77c%20-0.693%200%20-1.265%20-0.264%20-1.738%20-0.77c%20-0.473%20-0.506%20-0.704%20-1.111%20-0.704%20-1.804c%200%20-0.682%200.231%20-1.265%200.704%20-1.749c%200.473%20-0.484%201.056%20-0.726%201.727%20-0.726Z%20m%200.011%200.352c%20-0.528%200%20-0.924%200.231%20-1.199%200.704c%20-0.176%200.308%20-0.264%200.814%20-0.264%201.507c%200%200.671%200.088%201.155%200.253%201.463c%200.264%200.473%200.66%200.704%201.199%200.704c%200.517%200%200.913%20-0.231%201.188%20-0.682c%200.187%20-0.308%200.275%20-0.803%200.275%20-1.485c%200%20-1.276%20-0.374%20-2.211%20-1.452%20-2.211Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5EB396CD9EB516C004A1674D88B874CA%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%206.82%203.652c%200.154%200.429%200.462%200.66%200.913%200.671v%200.418c%20-0.341%20-0.033%20-0.627%20-0.044%20-0.836%20-0.033l%20-1.056%200.033v%20-0.418c%200.418%20-0.011%200.627%20-0.176%200.627%20-0.484c%200%20-0.044%20-0.011%20-0.11%20-0.044%20-0.209l%20-0.957%20-2.651l%20-1.034%202.904c%20-0.033%200.099%20-0.044%200.154%20-0.044%200.187c%200%200.165%200.209%200.253%200.638%200.253v%200.418l%20-1.177%20-0.033c%20-0.22%20-0.011%20-0.561%200%20-1.012%200.033v%20-0.418c%200.385%200%200.616%20-0.055%200.693%20-0.154c%200.033%20-0.033%200.121%20-0.22%200.242%20-0.561l%20-0.891%20-2.486l%20-0.99%202.772c%20-0.033%200.099%20-0.055%200.154%20-0.055%200.176c%200%200.165%200.22%200.253%200.649%200.253v%200.418l%20-1.232%20-0.033l%20-1.056%200.033v%20-0.418c%200.539%200%200.682%200.011%200.803%20-0.352l%201.375%20-3.828c%200.066%20-0.176%200.154%20-0.264%200.264%20-0.264c%200.121%200%200.209%200.077%200.264%200.242l%201.056%202.948l%201.067%20-2.959c%200.055%20-0.154%200.143%20-0.231%200.264%20-0.231c%200.077%200.011%200.165%200.088%200.253%200.231Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g4F15B44AD1AAE7906B9D9F9C3850F14B%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%204.565%202.761c%200%201.265%20-0.737%202.167%20-1.969%202.167c%20-0.66%200%20-1.21%20-0.253%20-1.661%20-0.77c%20-0.418%20-0.484%20-0.627%20-1.067%20-0.627%20-1.738c%200%20-0.693%200.231%20-1.276%200.693%20-1.782c%200.462%20-0.506%201.034%20-0.759%201.716%20-0.759c%200.627%200%201.111%200.22%201.441%200.649c%200.275%200.363%200.407%200.627%200.407%200.803c%200%200.11%20-0.066%200.165%20-0.187%200.165c%20-0.088%200%20-0.143%20-0.055%20-0.176%20-0.176c%20-0.242%20-0.726%20-0.715%20-1.089%20-1.419%20-1.089c%20-0.495%200%20-0.88%200.231%20-1.177%200.704c%20-0.209%200.341%20-0.308%200.858%20-0.319%201.562h%202.97c%200.242%200%200.308%200.022%200.308%200.264Z%20m%20-0.979%201.078c%200.121%20-0.363%200.176%20-0.715%200.176%20-1.034h%20-2.464c%200.033%200.726%200.22%201.221%200.55%201.474c%200.275%200.22%200.517%200.33%200.748%200.33c%200.495%200%200.825%20-0.253%200.99%20-0.77Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gA1583A9D47A5AF176809D99838F34700%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%204.004%204.158c%200%200.429%20-0.407%200.704%20-0.836%200.704c%20-0.561%200%20-0.99%20-0.33%20-1.276%20-1.001v%201.001l%20-1.584%20-0.121v%20-0.418c%200.385%200%200.616%20-0.033%200.704%20-0.099c%200.088%20-0.066%200.132%20-0.209%200.132%20-0.462v%20-2.893c%200%20-0.209%20-0.033%20-0.341%20-0.11%20-0.385c%20-0.077%20-0.044%20-0.319%20-0.066%20-0.726%20-0.066v%20-0.418l%201.265%200.033c%200.462%200.011%200.935%200%201.408%20-0.033v%200.418h%20-0.264c%20-0.363%200%20-0.594%200.033%20-0.671%200.088c%20-0.077%200.055%20-0.11%200.187%20-0.11%200.385v%201.661c%200%200.473%200.088%200.902%200.253%201.265c%200.22%200.473%200.539%200.715%200.968%200.726c%20-0.11%20-0.11%20-0.165%20-0.242%20-0.165%20-0.396c%200%20-0.341%200.165%20-0.506%200.506%20-0.506c%200.297%200%200.506%200.231%200.506%200.517Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g67E0717D063DE91831D2A23981510B8D%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.96%201.43c%200%200.836%20-0.572%201.364%20-1.705%201.584c%20-0.517%200.099%20-0.847%200.22%20-1.023%200.341c%20-0.176%200.121%20-0.264%200.297%20-0.264%200.506c%200%200.517%200.385%200.77%201.155%200.77c%200.748%200%201.155%20-0.418%201.21%20-1.265c%200.011%20-0.088%200.066%20-0.132%200.176%20-0.132c%200.121%200%200.187%200.099%200.187%200.297v%201.089c%200%200.209%20-0.055%200.308%20-0.165%200.308c%20-0.121%200%20-0.286%20-0.198%20-0.396%20-0.286c%20-0.275%200.187%20-0.616%200.286%20-1.012%200.286c%20-0.979%200%20-1.76%20-0.44%20-1.76%20-1.375c%200%20-0.374%200.154%20-0.693%200.473%20-0.946c%200.385%20-0.319%200.748%20-0.385%201.441%20-0.506c%200.715%20-0.143%201.078%20-0.462%201.078%20-0.957c%200%20-0.627%20-0.385%20-0.946%20-1.166%20-0.946c%20-0.759%200%20-1.243%200.506%20-1.452%201.507c%20-0.033%200.143%20-0.088%200.22%20-0.187%200.22c%20-0.121%200%20-0.187%20-0.11%20-0.187%20-0.319v%20-1.419c%200%20-0.209%200.055%20-0.308%200.165%20-0.308c%200.033%200%200.088%200.033%200.176%200.11c%200.198%200.176%200.11%200.143%200.308%200.341c%200.319%20-0.297%200.715%20-0.451%201.177%20-0.451c%201.045%200%201.771%200.539%201.771%201.551Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g53741DD6BA4504AC32BDC384B8913A03%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.937%200.198c%20-0.759%200%20-0.902%200.319%20-0.902%201.034v%203.63l%20-1.683%20-0.121v%20-0.418c%200.429%200%200.682%20-0.044%200.748%20-0.121c%200.066%20-0.077%200.099%20-0.352%200.099%20-0.836v%20-1.617c%200%20-0.429%200.033%20-0.759%200.11%20-1.012c%200.165%20-0.572%200.77%20-0.858%201.573%20-0.858c%200.594%200%201.045%200.275%201.353%200.836v%20-0.836l%201.65%200.121v%200.418c%20-0.396%200%20-0.627%200.022%20-0.715%200.088c%20-0.088%200.066%20-0.132%200.22%20-0.132%200.473v%203.883l%20-1.672%20-0.121v%20-0.418c%200.385%200%200.616%20-0.033%200.704%20-0.099c%200.088%20-0.066%200.132%20-0.209%200.132%20-0.462v%20-1.925c%200%20-0.869%20-0.462%20-1.639%20-1.265%20-1.639Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5EF7A2FE47BCD00C1DDF63F6B87CC52A%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.465%204.543c%200.506%200%200.759%20-0.385%200.759%20-1.166v%20-2.508c%200%20-0.209%20-0.033%20-0.341%20-0.11%20-0.385c%20-0.077%20-0.044%20-0.33%20-0.066%20-0.737%20-0.066v%20-0.418l%201.276%200.033l%201.265%20-0.033v%200.418c%20-0.407%200%20-0.649%200.022%20-0.726%200.066c%20-0.077%200.044%20-0.121%200.176%20-0.121%200.385v%201.98c%200%200.88%200.572%201.694%201.419%201.694c%200.517%200%200.77%20-0.385%200.77%20-1.166v%20-2.508c%200%20-0.209%20-0.044%20-0.341%20-0.121%20-0.385c%20-0.077%20-0.044%20-0.33%20-0.066%20-0.737%20-0.066v%20-0.418l%201.276%200.033l%201.265%20-0.033v%200.418c%20-0.352%200%20-0.583%200.011%20-0.693%200.044c%20-0.11%200.033%20-0.154%200.11%20-0.154%200.242v%202.057c%200%200.517%20-0.022%200.88%20-0.055%201.089c%20-0.11%200.671%20-0.605%201.012%20-1.474%201.012c%20-0.693%200%20-1.21%20-0.319%20-1.562%20-0.968c%20-0.154%200.649%20-0.638%200.968%20-1.463%200.968c%20-0.693%200%20-1.221%20-0.33%20-1.573%20-0.99v%200.99l%20-1.617%20-0.121v%20-0.418c%200.396%200%200.638%20-0.033%200.726%20-0.099c%200.088%20-0.066%200.121%20-0.209%200.121%20-0.462v%20-2.893c%200%20-0.209%20-0.044%20-0.341%20-0.121%20-0.385c%20-0.077%20-0.044%20-0.319%20-0.066%20-0.726%20-0.066v%20-0.418l%201.276%200.033l%201.265%20-0.033v%200.418c%20-0.407%200%20-0.66%200.022%20-0.737%200.066c%20-0.077%200.044%20-0.121%200.176%20-0.121%200.385v%201.98c%200%200.891%200.583%201.694%201.43%201.694Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gCBFDB4FAA60E8030E7B751E03D6CAAA6%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.498%20-2.728c%200.099%200%200.154%200.055%200.154%200.154c%200%200.033%20-0.022%200.077%20-0.055%200.121c%20-0.572%200.44%20-1.034%201.166%20-1.375%202.167c%20-0.297%200.869%20-0.451%201.727%20-0.451%202.574v%200.924c%200%200.847%200.154%201.705%200.451%202.574c%200.341%201.001%200.803%201.727%201.375%202.167c%200.033%200.033%200.055%200.077%200.055%200.121c%200%200.099%20-0.055%200.154%20-0.154%200.154c%20-0.011%200%20-0.044%20-0.011%20-0.077%20-0.033c%20-0.66%20-0.506%20-1.21%20-1.254%20-1.661%20-2.255c%20-0.429%20-0.957%20-0.649%20-1.859%20-0.649%20-2.728v%20-0.924c%200%20-0.869%200.22%20-1.771%200.649%20-2.728c%200.451%20-1.001%201.001%20-1.749%201.661%20-2.255c%200.033%20-0.022%200.066%20-0.033%200.077%20-0.033Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g46A72DF51926ABBEA5282E072AF79004%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%205.907%201.507c%20-0.253%20-0.869%20-0.616%20-1.309%20-1.067%20-1.309c%20-0.143%200%20-0.22%200.11%20-0.22%200.319c%200%200.154%200.066%200.407%200.198%200.748c%200.44%201.199%200.66%201.991%200.66%202.398c%200%200.77%20-0.517%201.199%20-1.287%201.199c%20-0.649%200%20-1.21%20-0.286%20-1.661%20-0.869c%20-0.088%200.484%20-0.473%200.869%20-1.034%200.869c%20-0.616%200%20-0.858%20-0.572%20-1.012%20-1.067c%20-0.11%20-0.352%20-0.165%20-0.561%20-0.165%20-0.638c%200%20-0.099%200.055%20-0.154%200.176%20-0.154c%200.055%200%200.088%200.011%200.121%200.033c%200.055%200.099%200.088%200.176%200.099%200.253c%200.198%200.836%200.451%201.254%200.748%201.254c%200.198%200%200.297%20-0.154%200.297%20-0.462c%200%20-0.143%20-0.055%20-0.44%20-0.176%20-0.891l%20-0.627%20-2.497c%20-0.033%20-0.143%20-0.099%20-0.429%20-0.099%20-0.484c%200%20-0.22%200.121%20-0.33%200.363%20-0.33c%200.209%200%200.363%200.11%200.44%200.33c%200.022%200.055%200.088%200.33%200.209%200.803l%200.231%200.979l%200.33%201.254c%200.121%200.253%200.308%200.506%200.539%200.77c%200.319%200.352%200.715%200.528%201.188%200.528c%200.363%200%200.539%20-0.242%200.539%20-0.715c%200%20-0.418%20-0.231%20-1.254%20-0.704%20-2.508c%20-0.077%20-0.198%20-0.11%20-0.363%20-0.11%20-0.506c%200%20-0.539%200.407%20-0.935%200.935%20-0.935c%200.484%200%200.869%200.275%201.144%200.825c%200.209%200.44%200.319%200.737%200.319%200.88c%200%200.099%20-0.055%200.154%20-0.176%200.154c%20-0.033%200%20-0.198%20-0.099%20-0.198%20-0.231Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g11C1096A524ED08942C2BB5E0564A17C%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.858%20-2.695c%200.66%200.506%201.21%201.254%201.661%202.255c%200.429%200.957%200.649%201.859%200.649%202.728v%200.924c%200%200.869%20-0.22%201.771%20-0.649%202.728c%20-0.451%201.001%20-1.001%201.749%20-1.661%202.255c%20-0.033%200.022%20-0.066%200.033%20-0.077%200.033c%20-0.099%200%20-0.154%20-0.055%20-0.154%20-0.154c%200%20-0.044%200.022%20-0.088%200.055%20-0.121c%200.572%20-0.44%201.034%20-1.166%201.375%20-2.167c%200.297%20-0.869%200.451%20-1.727%200.451%20-2.574v%20-0.924c%200%20-0.847%20-0.154%20-1.705%20-0.451%20-2.574c%20-0.341%20-1.001%20-0.803%20-1.727%20-1.375%20-2.167c%20-0.033%20-0.044%20-0.055%20-0.088%20-0.055%20-0.121c%200%20-0.099%200.055%20-0.154%200.154%20-0.154c%200.011%200%200.044%200.011%200.077%200.033Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3C%2Fdefs%3E%3Cdefs%3E%3Cclippath%20id%3D%22cB43DEB99DE931151D6B0B15873618090%22%3E%3Cpath%20d%3D%22M%200%200h%20350v%20200h%20-350Z%20%22%20%2F%3E%3C%2Fclippath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"></figure><p>This isolation reveals a pattern: it looks like for two-digit numbers ending with 8, there’s only a small window between about 60 and 80 where finding a disarium number is possible. Going backwards from the window, the difference seems to get larger and larger. We see a similar pattern going forwards, where the difference seems to get larger in the negative direction.</p><p>We can justify this intuition mathematically. For two-digit numbers ending with 8, we can calculate the minimum possible digit-power-sum by minimizing the unknown first digit. The minimum possible first digit that doesn’t make the number a one-digit number is 1.</p><math display="block"><mtext>digit-power-sum</mtext><mrow><mo>(</mo><mn>18</mn><mo>)</mo></mrow><mo>=</mo><msup><mn>1</mn><mn>1</mn></msup><mo>+</mo><msup><mn>8</mn><mn>2</mn></msup><mo>=</mo><mn>65</mn></math><p>Because the minimum possible number we can make is 65, there’s no reason to check 58, 48, or any other number below 65 that has two digits and ends with 8.</p><p>We can also find an upper bound by maximizing the first digit, setting it to 9 instead of 1.</p><math display="block"><mtext>digit-power-sum</mtext><mrow><mo>(</mo><mn>98</mn><mo>)</mo></mrow><mo>=</mo><msup><mn>9</mn><mn>1</mn></msup><mo>+</mo><msup><mn>8</mn><mn>2</mn></msup><mo>=</mo><mn>73</mn></math><p>By the same logic as before, it makes no sense to check 78, 88, or any other number larger than 73 (that has two digits and ends with 8).</p><p>Thus, we have mathematically proven that the only possible disarium candidates for two-digit numbers ending in eight must be in the range <math><mrow><mo>[</mo><mrow><mn>65</mn><mo>,</mo><mn>73</mn></mrow><mo>]</mo></mrow></math>. The only number we have to check is 68, reducing our work from checking 9 different numbers to just checking 1.</p><p>We can generalize this approach to work on multiple low-place digits. Whenever we want to check all <math><mi>𝑛</mi></math>-digit numbers,</p><ol><li><strong>We choose some integer <math><mi>𝑚</mi></math>, where <math><mi>𝑚</mi><mo>≤</mo><mi>𝑛</mi></math>, for the number of low-place digits we want to “freeze”.</strong> For example, for 5-digit numbers, we could choose to “freeze” 2 digits.</li><li><strong>We go through all possible frozen digits.</strong> Continuing our example, all possible pairs of 2 digits are <math><mrow><mo>(</mo><mrow><mn>0</mn><mo>,</mo><mn>0</mn></mrow><mo>)</mo></mrow><mo>,</mo><mrow><mo>(</mo><mrow><mn>0</mn><mo>,</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>,</mo><mrow><mo>(</mo><mrow><mn>0</mn><mo>,</mo><mn>2</mn></mrow><mo>)</mo></mrow><mo>,</mo><mi>…</mi><mo>,</mo><mrow><mo>(</mo><mrow><mn>9</mn><mo>,</mo><mn>9</mn></mrow><mo>)</mo></mrow></math>.</li><li><p><strong>For each frozen digit set…</strong></p><ol><li><strong>We calculate the minimum and maximum digit-power-sums.</strong> If our digits are <math><mrow><mo>(</mo><mrow><mn>8</mn><mo>,</mo><mn>9</mn></mrow><mo>)</mo></mrow></math>, then our minimum is <math><mtext>digit-power-sum</mtext><mrow><mo>(</mo><mn>10089</mn><mo>)</mo></mrow><mo>=</mo><mn>63146</mn></math> and our maximum is <math><mtext>digit-power-sum</mtext><mrow><mo>(</mo><mn>99989</mn><mo>)</mo></mrow><mo>=</mo><mn>63964</mn></math>.</li><li><strong>We check only numbers in [minimum, maximum]</strong>. For our example, we would only have to check numbers in the range <math><mrow><mo>[</mo><mrow><mn>63146</mn><mo>,</mo><mn>63964</mn></mrow><mo>]</mo></mrow></math>. This reduces the number of numbers we need to check from 900 to just 8.</li></ol></li></ol><p>You can see how many checks we save for different digit amounts and frozen digits with the calculator below.</p><noscript><div class="warning svelte-acoy0h"><p class="svelte-acoy0h"><strong>Interactive frozen-digit-savings calculator</strong> requires JavaScript to work properly, but you've disabled
      JavaScript, so I've hidden it.</p></div></noscript> <div class="hider svelte-acoy0h"><div class="top svelte-tqao3c"><div class="row svelte-tqao3c"><label for="digits">number of digits</label> <input type="range" placeholder="number of digits" name="digits" min="1" max="22" value="5"> <input type="text" inputmode="numeric" min="1" max="22" value="5"></div> <div class="row svelte-tqao3c"><label for="digits">frozen digits</label> <input type="text" value="89"></div></div> <div class="top svelte-tqao3c"><div class="out"><p>min digits: 10089 with digit-power-sum of 63146</p> <p>max digits: 99989 with digit-power-sum of 63964</p> <p>original check count: 900</p> <p>new check count: 8</p> <p>fraction of original: 0.008888888888888889</p></div></div></div><p>Implementing this algorithm was the most significant optimization in the project. The actual implementation was cumbersome, requiring splitting the numbers into different digit count buckets and dealing with correctly handling maximum and minimum bounds. To simplify the code, I created a <code class="shiki-inline"><span>Digit</span></code> struct that encapsulated some of the number methods.</p><p>Here’s the most important snippet, the function that calculates the maximum and minimum bounds given some frozen digits and searches that range for disarium numbers.</p><p>src/lib.rs:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">fn</span><span style="color:#61AFEF"> disarium_for_digit_count_with_frozen</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#E06C75">    digit_count_unfrozen</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">u32</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">    bound</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">u64</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">    frozen_digits</span><span style="color:#ABB2BF">: [</span><span style="color:#E5C07B">Digit</span><span style="color:#ABB2BF">; </span><span style="color:#D19A66">NUM_FROZEN</span><span style="color:#ABB2BF">],</span></span>
<span class="line"><span style="color:#ABB2BF">) -&gt; </span><span style="color:#E5C07B">Vec</span><span style="color:#ABB2BF">&lt;</span><span style="color:#E5C07B">u64</span><span style="color:#ABB2BF">&gt; {</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> digit_count</span><span style="color:#56B6C2"> =</span><span style="color:#E06C75"> digit_count_unfrozen</span><span style="color:#ABB2BF"> + </span><span style="color:#D19A66">NUM_FROZEN</span><span style="color:#C678DD"> as</span><span style="color:#E5C07B"> u32</span><span style="color:#ABB2BF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> min_digits</span><span style="color:#56B6C2"> =</span></span>
<span class="line"><span style="color:#E5C07B">        Digits</span><span style="color:#ABB2BF">::</span><span style="color:#61AFEF">from_number</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66">10</span><span style="color:#E5C07B">u64</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">pow</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">digit_count</span><span style="color:#ABB2BF"> - </span><span style="color:#D19A66">1</span><span style="color:#ABB2BF">)).</span><span style="color:#61AFEF">with_overwritten</span><span style="color:#ABB2BF">(&amp;</span><span style="color:#E06C75">frozen_digits</span><span style="color:#ABB2BF">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> max_digits</span><span style="color:#56B6C2"> =</span></span>
<span class="line"><span style="color:#E5C07B">        Digits</span><span style="color:#ABB2BF">::</span><span style="color:#61AFEF">from_number</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66">10</span><span style="color:#E5C07B">u64</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">pow</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">digit_count</span><span style="color:#ABB2BF">) - </span><span style="color:#D19A66">1</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">with_overwritten</span><span style="color:#ABB2BF">(&amp;</span><span style="color:#E06C75">frozen_digits</span><span style="color:#ABB2BF">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> start_digits</span><span style="color:#56B6C2"> =</span></span>
<span class="line"><span style="color:#E5C07B">        Digits</span><span style="color:#ABB2BF">::</span><span style="color:#61AFEF">from_number</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">min_digits</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">exp_by_index</span><span style="color:#ABB2BF">()).</span><span style="color:#61AFEF">with_overwritten</span><span style="color:#ABB2BF">(&amp;</span><span style="color:#E06C75">frozen_digits</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> end_digits</span><span style="color:#56B6C2"> =</span></span>
<span class="line"><span style="color:#E5C07B">        Digits</span><span style="color:#ABB2BF">::</span><span style="color:#61AFEF">from_number</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">max_digits</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">exp_by_index</span><span style="color:#ABB2BF">()).</span><span style="color:#61AFEF">with_overwritten</span><span style="color:#ABB2BF">(&amp;</span><span style="color:#E06C75">frozen_digits</span><span style="color:#ABB2BF">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> start</span><span style="color:#56B6C2"> =</span><span style="color:#E06C75"> start_digits</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">to_number</span><span style="color:#ABB2BF">().</span><span style="color:#61AFEF">max</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">min_digits</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">to_number</span><span style="color:#ABB2BF">());</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> end</span><span style="color:#56B6C2"> =</span><span style="color:#E06C75"> end_digits</span></span>
<span class="line"><span style="color:#ABB2BF">        .</span><span style="color:#61AFEF">to_number</span><span style="color:#ABB2BF">()</span></span>
<span class="line"><span style="color:#ABB2BF">        .</span><span style="color:#61AFEF">min</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">max_digits</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">to_number</span><span style="color:#ABB2BF">())</span></span>
<span class="line"><span style="color:#ABB2BF">        .</span><span style="color:#61AFEF">min</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">bound</span><span style="color:#ABB2BF">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">    search_range</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">start</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">end</span><span style="color:#ABB2BF">, </span><span style="color:#D19A66">NUM_FROZEN</span><span style="color:#C678DD"> as</span><span style="color:#E5C07B"> u32</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>Our cumbersome implementing is rewarded by criterion with more beautiful green numbers!</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#98c379">disarium 1 mil          </span><span style="color:#abb2bf">time:   [</span><span style="color:#abb2bf80">33.079 µs </span><span style="color:#abb2bf;font-weight:bold">33.174 µs </span><span style="color:#abb2bf80">33.260 µs</span><span style="color:#abb2bf">]</span></span>
<span class="line"><span style="color:#abb2bf">                        change: [</span><span style="color:#abb2bf80">−98.354% </span><span style="color:#98c379;font-weight:bold">−98.350% </span><span style="color:#abb2bf80">−98.346%</span><span style="color:#abb2bf">] (p = 0.00 &lt; 0.05)</span></span>
<span class="line"><span style="color:#abb2bf">                        Performance has </span><span style="color:#98c379">improved</span><span style="color:#abb2bf">.</span></span></code></pre></div><h2>Parallel processing</h2><p>After implementing the more optimized algorithm, I decided to improve performance by splitting my work across multiple threads. For every digit length <math><mi>𝑛</mi></math>, I split the <math><msup><mn>10</mn><mi>𝑚</mi></msup></math> frozen digits into 10 different buckets by deciding the first frozen digit in a parallelized outer loop.<sup><a id="footnote-return-2" href="#footnote-2" role="doc-noteref" aria-label="footnote 2">2</a></sup></p><p>src/lib.rs:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">use</span><span style="color:#E5C07B"> rayon</span><span style="color:#ABB2BF">::</span><span style="color:#E5C07B">prelude</span><span style="color:#ABB2BF">::*;</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">// ...</span></span>
<span class="line"><span style="color:#C678DD">let</span><span style="color:#C678DD"> mut</span><span style="color:#E06C75"> res</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">Vec</span><span style="color:#ABB2BF">&lt;</span><span style="color:#E06C75">_</span><span style="color:#ABB2BF">&gt; </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> (</span><span style="color:#D19A66">0</span><span style="color:#ABB2BF">..(</span><span style="color:#D19A66">10</span><span style="color:#C678DD"> as</span><span style="color:#E5C07B"> Number</span><span style="color:#ABB2BF">))</span></span>
<span class="line"><span style="color:#ABB2BF">    .</span><span style="color:#61AFEF">into_par_iter</span><span style="color:#ABB2BF">()</span></span>
<span class="line"><span style="color:#ABB2BF">    .</span><span style="color:#61AFEF">flat_map</span><span style="color:#ABB2BF">(</span><span style="color:#56B6C2">|</span><span style="color:#E06C75">i</span><span style="color:#56B6C2">|</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#ABB2BF">        (</span><span style="color:#D19A66">0</span><span style="color:#ABB2BF">..(</span><span style="color:#D19A66">10</span><span style="color:#C678DD"> as</span><span style="color:#E5C07B"> Number</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">pow</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66">NUM_FROZEN</span><span style="color:#C678DD"> as</span><span style="color:#E5C07B"> u32</span><span style="color:#ABB2BF"> - </span><span style="color:#D19A66">1</span><span style="color:#ABB2BF">))</span></span>
<span class="line"><span style="color:#ABB2BF">            .</span><span style="color:#61AFEF">flat_map</span><span style="color:#ABB2BF">(</span><span style="color:#56B6C2">|</span><span style="color:#E06C75">frozen_number_lower</span><span style="color:#56B6C2">|</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">                let</span><span style="color:#E06C75"> frozen_number</span><span style="color:#56B6C2"> =</span></span>
<span class="line"><span style="color:#E06C75">                    frozen_number_lower</span><span style="color:#ABB2BF"> + </span><span style="color:#E06C75">i</span><span style="color:#ABB2BF"> * (</span><span style="color:#D19A66">10</span><span style="color:#C678DD"> as</span><span style="color:#E5C07B"> Number</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">pow</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66">NUM_FROZEN</span><span style="color:#C678DD"> as</span><span style="color:#E5C07B"> u32</span><span style="color:#ABB2BF"> - </span><span style="color:#D19A66">1</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">                let</span><span style="color:#E06C75"> frozen_digits</span><span style="color:#56B6C2"> =</span><span style="color:#61AFEF"> num_to_digits</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">frozen_number</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#61AFEF">                disarium_for_digit_count_with_frozen</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#E06C75">                    digit_count_unfrozen</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">                    bound</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">                    frozen_digits</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#ABB2BF">                )</span></span>
<span class="line"><span style="color:#ABB2BF">            })</span></span>
<span class="line"><span style="color:#ABB2BF">            .</span><span style="color:#61AFEF">collect</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#E5C07B">Vec</span><span style="color:#ABB2BF">&lt;</span><span style="color:#E06C75">_</span><span style="color:#ABB2BF">&gt;&gt;()</span></span>
<span class="line"><span style="color:#ABB2BF">    })</span></span>
<span class="line"><span style="color:#ABB2BF">    .</span><span style="color:#61AFEF">collect</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#E06C75">res</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">sort</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#E06C75">res</span></span></code></pre></div><p>Using the wonderful <a href="https://docs.rs/rayon/latest/rayon/">rayon</a> library made this code trivial to write. Because of the nondeterministic order introduced by multithreading, I also sorted the result <code class="shiki-inline"><span>Vec</span></code> to make the output look nice.<sup><a id="footnote-return-3" href="#footnote-3" role="doc-noteref" aria-label="footnote 3">3</a></sup></p><h2>Optimizing digit-freezing amounts</h2><p>When I initially implemented digit freezing, I chose <math><mi>𝑚</mi></math>,the number of digits to freeze, arbitrarily. Increasing <math><mi>𝑚</mi></math> would eventually converge to just checking each number slowly, and decreasing <math><mi>𝑚</mi></math> would also converge to just checking all numbers, so I knew that the approach needed to be somewhere in the middle. Thus, I decided to benchmark what value of <math><mi>𝑚</mi></math> was fastest for each digit count, hoping to find some kind of pattern.</p><p>Previously, <code class="shiki-inline"><span>NUM_FROZEN</span></code> had been a constant. I decided to preserve this behavior by using Rust’s const generics to create an array of different variants of the <code class="shiki-inline"><span>freeze_and_split</span></code> functions, each with different constant <code class="shiki-inline"><span>NUM_FROZEN</span></code> sizes, allowing the frozen digits array to be perfectly sized for all variants of the function.<sup><a id="footnote-return-4" href="#footnote-4" role="doc-noteref" aria-label="footnote 4">4</a></sup></p><p>src/lib.rs:</p> <div class="raw"><pre class="shiki one-dark-pro has-diff" style="color:#abb2bf" tabindex="0"><code><span class="line diff add"><span style="color:#C678DD">fn</span><span style="color:#61AFEF"> freeze_and_split</span><span style="color:#ABB2BF">&lt;</span><span style="color:#C678DD">const</span><span style="color:#D19A66"> NUM_FROZEN</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">usize</span><span style="color:#ABB2BF">&gt;(</span><span style="color:#E06C75">digit_count</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">u32</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">bound</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">Number</span><span style="color:#ABB2BF">) -&gt; </span><span style="color:#E5C07B">Vec</span><span style="color:#ABB2BF">&lt;</span><span style="color:#E5C07B">Number</span><span style="color:#ABB2BF">&gt; { </span></span>
<span class="line diff remove"><span style="color:#C678DD">fn</span><span style="color:#61AFEF"> freeze_and_split</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">digit_count</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">u32</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">bound</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">Number</span><span style="color:#ABB2BF">) -&gt; </span><span style="color:#E5C07B">Vec</span><span style="color:#ABB2BF">&lt;</span><span style="color:#E5C07B">Number</span><span style="color:#ABB2BF">&gt; { </span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">    // ...</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">// ...</span></span>
<span class="line diff add"><span style="color:#C678DD">pub</span><span style="color:#C678DD"> const</span><span style="color:#D19A66"> FREEZE_AND_SPLIT_VARIANTS</span><span style="color:#ABB2BF">: [</span><span style="color:#61AFEF">fn</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">u32</span><span style="color:#ABB2BF">, </span><span style="color:#E5C07B">Number</span><span style="color:#ABB2BF">) -&gt; </span><span style="color:#E5C07B">Vec</span><span style="color:#ABB2BF">&lt;</span><span style="color:#E5C07B">Number</span><span style="color:#ABB2BF">&gt;; </span><span style="color:#D19A66">18</span><span style="color:#ABB2BF">] </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> [</span></span>
<span class="line diff add"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">2</span><span style="color:#ABB2BF">&gt;,</span></span>
<span class="line diff add"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">3</span><span style="color:#ABB2BF">&gt;,</span></span>
<span class="line diff add"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">4</span><span style="color:#ABB2BF">&gt;,</span></span>
<span class="line diff add"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">5</span><span style="color:#ABB2BF">&gt;,</span></span>
<span class="line diff add"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">6</span><span style="color:#ABB2BF">&gt;,</span></span>
<span class="line diff add"><span style="color:#7F848E;font-style:italic">    // ...</span></span>
<span class="line diff add"><span style="color:#ABB2BF">];</span></span></code></pre></div><p>Then, I wrote some code to manually benchmark each of these variants, improperly writing my own warm-up code instead of using criterion because I just wanted to see if I could find any patterns in what <code class="shiki-inline"><span>NUM_FROZEN</span></code> value resulted in the fastest performance.</p><p>src/main.rs:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">fn</span><span style="color:#61AFEF"> time_digit_count</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">digit_count</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">u32</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> max</span><span style="color:#56B6C2"> =</span><span style="color:#ABB2BF"> (</span><span style="color:#D19A66">10</span><span style="color:#C678DD"> as</span><span style="color:#E5C07B"> u128</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">pow</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">digit_count</span><span style="color:#ABB2BF">) - </span><span style="color:#D19A66">1</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#61AFEF">    println!</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"warming up..."</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> start</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> Instant</span><span style="color:#ABB2BF">::</span><span style="color:#61AFEF">now</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#C678DD">    for</span><span style="color:#E06C75"> _</span><span style="color:#C678DD"> in</span><span style="color:#D19A66"> 0</span><span style="color:#ABB2BF">..</span><span style="color:#D19A66">1000</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#D19A66">        FREEZE_AND_SPLIT_VARIANTS</span><span style="color:#ABB2BF">[</span><span style="color:#D19A66">5</span><span style="color:#ABB2BF">](</span><span style="color:#E06C75">digit_count</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">max</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#ABB2BF">    }</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> duration</span><span style="color:#56B6C2"> =</span><span style="color:#E06C75"> start</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elapsed</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#61AFEF">    println!</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"warm up for: {}"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">duration</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">as_nanos</span><span style="color:#ABB2BF">());</span></span>
<span class="line"><span style="color:#61AFEF">    println!</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"testing digit count: {}"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">digit_count</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">    for</span><span style="color:#E06C75"> i</span><span style="color:#C678DD"> in</span><span style="color:#ABB2BF"> (</span><span style="color:#D19A66">0</span><span style="color:#ABB2BF">..</span><span style="color:#D19A66">FREEZE_AND_SPLIT_VARIANTS</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">len</span><span style="color:#ABB2BF">()) {</span></span>
<span class="line"><span style="color:#C678DD">        let</span><span style="color:#E06C75"> variant</span><span style="color:#56B6C2"> =</span><span style="color:#D19A66"> FREEZE_AND_SPLIT_VARIANTS</span><span style="color:#ABB2BF">[</span><span style="color:#E06C75">i</span><span style="color:#ABB2BF">];</span></span>
<span class="line"><span style="color:#C678DD">        let</span><span style="color:#E06C75"> start</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> Instant</span><span style="color:#ABB2BF">::</span><span style="color:#61AFEF">now</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#C678DD">        for</span><span style="color:#E06C75"> _</span><span style="color:#C678DD"> in</span><span style="color:#D19A66"> 0</span><span style="color:#ABB2BF">..</span><span style="color:#D19A66">100</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#61AFEF">            variant</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">digit_count</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">max</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#ABB2BF">        }</span></span>
<span class="line"><span style="color:#C678DD">        let</span><span style="color:#E06C75"> duration</span><span style="color:#56B6C2"> =</span><span style="color:#E06C75"> start</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elapsed</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#61AFEF">        println!</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#98C379">            "duration of variant {i} (number {}): {} nanosecs"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">            i</span><span style="color:#ABB2BF"> + </span><span style="color:#D19A66">2</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">            duration</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">as_nanos</span><span style="color:#ABB2BF">()</span></span>
<span class="line"><span style="color:#ABB2BF">        );</span></span>
<span class="line"><span style="color:#ABB2BF">    }</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>After manually trying digit counts 1 to 15, I found that beyond very low digit counts, the best <code class="shiki-inline"><span>NUM_FROZEN</span></code> value seemed to consistently be</p><math display="block"><mrow><mo>⌊</mo><mfrac><mrow><mtext>digit_count</mtext><mo>−</mo><mn>2</mn></mrow><mn>2</mn></mfrac><mo>⌋</mo></mrow></math><p>The differences in times consistently stayed above 2 or 3x slower for increasing or decreasing the <code class="shiki-inline"><span>NUM_FROZEN</span></code> value by 1, whittling away doubts about my improper benchmarking methods and giving me reasonable confidence in this pattern.</p><p>Using my knowledge, I created an array indexed by <code class="shiki-inline"><span>digit_count</span></code> of <code class="shiki-inline"><span>freeze_and_split</span></code> functions with optimal <code class="shiki-inline"><span>FROZEN_DIGIT</span></code>s.</p><p>src/lib.rs:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">const</span><span style="color:#D19A66"> FREEZE_AND_SPLIT_FUNCS</span><span style="color:#ABB2BF">: [</span><span style="color:#61AFEF">fn</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">u32</span><span style="color:#ABB2BF">, </span><span style="color:#E5C07B">Number</span><span style="color:#ABB2BF">) -&gt; </span><span style="color:#E5C07B">Vec</span><span style="color:#ABB2BF">&lt;</span><span style="color:#E5C07B">Number</span><span style="color:#ABB2BF">&gt;; </span><span style="color:#D19A66">26</span><span style="color:#ABB2BF">] </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> [</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">    // ... (low digit counts)</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">2</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 6</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">2</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 7</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">3</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 8</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">3</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 9</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">4</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 10</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">4</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 11</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">5</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 12</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">5</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 13</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">6</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 14</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">6</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 15</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">7</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 16</span></span>
<span class="line"><span style="color:#E5C07B">    freeze_and_split</span><span style="color:#ABB2BF">::&lt;</span><span style="color:#D19A66">7</span><span style="color:#ABB2BF">&gt;,  </span><span style="color:#7F848E;font-style:italic">// 17</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">    // ...</span></span>
<span class="line"><span style="color:#ABB2BF">]</span></span></code></pre></div><p>A reasonable next step would be to find a mathematical explanation for this pattern. I did not do this because that would be hard.</p><h2>Other optimizations</h2><p>Besides these important speed-ups, I also fiddled around with smaller optimizations that improved speed slighly, such as</p><ul><li>making all <code class="shiki-inline"><span>digit_count</span></code> inputs const generics, to allow for perfectly-sized arrays at compile time</li><li>improving the digit to integer algorithm by copying ideas from <a href="https://crates.io/crates/itoa">itoa</a></li><li>turning off parallel processing for smaller <code class="shiki-inline"><span>digit_count</span></code>s to reduce unecessary overhead</li><li>minimizing integer-to-digit and digit-to-integer conversions</li></ul><h2>Results</h2><p>The program can check all <code class="shiki-inline"><span>u64</span></code>s in 12423617458 ns, or 12423 ms, or 12 secs! Here’s the terminal output:</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span>0</span></span>
<span class="line"><span>1</span></span>
<span class="line"><span>2</span></span>
<span class="line"><span>3</span></span>
<span class="line"><span>4</span></span>
<span class="line"><span>5</span></span>
<span class="line"><span>6</span></span>
<span class="line"><span>7</span></span>
<span class="line"><span>8</span></span>
<span class="line"><span>9</span></span>
<span class="line"><span>89</span></span>
<span class="line"><span>135</span></span>
<span class="line"><span>175</span></span>
<span class="line"><span>518</span></span>
<span class="line"><span>598</span></span>
<span class="line"><span>1306</span></span>
<span class="line"><span>1676</span></span>
<span class="line"><span>2427</span></span>
<span class="line"><span>2646798</span></span>
<span class="line"><span>12157692622039623539</span></span>
<span class="line"><span>found numbers in 12423617458 ns, or 12423 ms, or 12 secs</span></span></code></pre></div><p>I’ve also run the program on <code class="shiki-inline"><span>u128</span></code>s, checking up to an upper bound of 9999999999999999999999 to check all numbers up to 22 digits if you want to be really sure, achieving a much more tragic time of 377064379625 ns, or 377064 ms, or 377 secs.</p><p>This project helped me learn about the importance of</p><ul><li>benchmarking: many optimizations that I was sure would lead to speedups made no difference or made the program slower</li><li>just looking at a dataset and using your brain to try and find patterns</li></ul><p>The code, with somewhat reasonable commit messages, lives <a href="https://github.com/Ashwagandhae/disarium/">on Github</a>.</p><footer><ol><li id="footnote-1" role="doc-footnote">I have tragically prematurely optimized without benchmarking, fertilizing the roots of <a href="https://en.wikipedia.org/wiki/Program_optimization#When_to_optimize">the tree of all evil</a>. <a href="#footnote-return-1" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-2" role="doc-footnote">I eventually switched to 100 buckets because it performed better, likely because smaller units of work improved load balancing. <a href="#footnote-return-2" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-3" role="doc-footnote">Although sorting might techically reduce the program’s speed without adding any crucial functionality, the guarantee of <math><mo lspace="0em" rspace="0em">≤</mo></math> 20 items in the <code class="shiki-inline"><span>Vec</span></code> makes the slowdown very small and worth the nicer output. <a href="#footnote-return-3" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-4" role="doc-footnote">(Ab)using generics like this might make compile times slower because you create many copies of the <code class="shiki-inline"><span>freeze_and_split</span></code> function. However, it theoretically also has the benefit of allowing the compiler to optimize for each individual array size. <a href="#footnote-return-4" role="doc-backlink" aria-label="Back to content">↩︎</a></li></ol></footer>]]></content>
    </entry>
  
    <entry>
      <title><![CDATA[SvelteKit blog with Typst as markup language]]></title>
      <link href="https://julianlbauer.com/writing/sveltekit-typst-blog" />
      <id>https://julianlbauer.com/writing/sveltekit-typst-blog</id>
      <published>2025-12-19T00:00:00.000Z</published>
      <updated>2025-12-19T00:00:00.000Z</updated>
      <summary><![CDATA[Guide to making a SvelteKit blog with Typst as the markup language.]]></summary>
      <content type="html"><![CDATA[<p>As of December 2025, Typst’s <a href="https://typst.app/docs/reference/html/">documentation for HTML export</a> states:</p><blockquote>Typst’s HTML export is currently under active development. The feature is still very incomplete and only available for experimentation behind a feature flag. Do not use this feature for production use cases.</blockquote><p>Seems like a great time to create a blog that relies on Typst HTML export!</p><h2>Introduction</h2><p>This article acts as a guide to building a bare-bones blog website with SvelteKit and Typst, based on my experience making the website you’re currently looking at, with support for code blocks, math, footnotes, and other rich content. I focus on getting the website to function, omitting the styling that makes it look nice.</p><p>Because of the experimental nature of Typst’s HTML export, much of this article consists of code that patches unsupported elements into Typst and SvelteKit. If you have a popular blog with billions of important serious users, I probably can’t safely recommend this setup. However, if you really like Typst, really like Svelte, and don’t really mind an unstable setup for your website, this guide is for you.</p><h2>Why</h2><p>Because SvelteKit and Typst are both very good.</p><p><strong>SvelteKit</strong> is built on Svelte, a JavaScript framework that’s extremely simple and focused on developer experience. It also supports static site generation with <code class="shiki-inline"><span>adapter-static</span></code>, prerendering each page at compile time for blazingly fast loading speeds on any static website hosting service, such as GitHub pages.</p><p><strong>Typst</strong> has beautiful markdown-inspired syntax that makes reading the source almost as easy as reading the output. The biggest reason Typst is better than Markdown for a blog is that it is also a fully-featured programming language, allowing you to run arbitrary code to generate your markup.<sup><a id="footnote-return-1" href="#footnote-1" role="doc-noteref" aria-label="footnote 1">1</a></sup></p><h2>Setup</h2><p>To generate a SvelteKit project named <code class="shiki-inline"><span>sveltekit-typst-blog</span></code>, open your terminal and run</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">npx</span><span style="color:#98C379"> sv</span><span style="color:#98C379"> create</span><span style="color:#98C379"> sveltekit-typst-blog</span></span></code></pre></div><p>Then, when prompted, choose <code class="shiki-inline"><span>SvelteKit minimal</span></code> as your template, add TypeScript type checking, and don’t add anything else to your project.<sup><a id="footnote-return-2" href="#footnote-2" role="doc-noteref" aria-label="footnote 2">2</a></sup> Now, run</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#56B6C2">cd</span><span style="color:#98C379"> sveltkit-typst-blog</span></span>
<span class="line"><span style="color:#61AFEF">npm</span><span style="color:#98C379"> run</span><span style="color:#98C379"> dev</span><span style="color:#D19A66"> --</span><span style="color:#D19A66"> --open</span></span></code></pre></div><p>You should see your website running in your browser!</p><img alt="Screenshot of rendered SvelteKit starter project, with simple 'Welcome to SvelteKit' header." src="https://julianlbauer.com/_app/immutable/assets/svelkit-starter.D5H9mMPc.png"><h2>Strategy</h2><p>I’ll discuss the strategy we’ll use to render Typst in our website. We will</p><ol><li>Write our blog posts in Typst.</li><li>Use the Typst compiler to convert all Typst files into HTML files.</li><li>Parse the HTML files server-side to extract metadata, like the post title and publish date.</li><li>Render the HTML on the frontend with the Svelte <a href="https://svelte.dev/docs/svelte/@html"><code class="shiki-inline"><span>@html</span></code> template syntax</a>.</li></ol><h2>Posts folder</h2><p>We’ll start by creating a folder to hold our blog posts. Create a folder <code class="shiki-inline"><span>src/posts</span></code>. Inside this folder, create</p><ol><li>a folder named <code class="shiki-inline"><span>lib</span></code> with a file <code class="shiki-inline"><span>lib.typ</span></code>, which we will use to create shared code for all articles</li><li>a folder named <code class="shiki-inline"><span>target</span></code> which will contain the generated HTML</li><li>a file <code class="shiki-inline"><span>test.typ</span></code> that we’ll use to test different content types</li></ol><h3><code class="shiki-inline"><span>lib.typ</span></code> article function</h3><p>In our <code class="shiki-inline"><span>lib.typ</span></code> file, we’ll create a function called <code class="shiki-inline"><span>article</span></code> that we’ll wrap all future articles in using show rules:</p><p>src/posts/lib/lib.typ:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">#let</span><span style="color:#61AFEF"> article</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#E5C07B">  content</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">  title</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"Article title"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">  date</span><span style="color:#ABB2BF">: </span><span style="color:#61AFEF">datetime</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">year</span><span style="color:#ABB2BF">: </span><span style="color:#D19A66">2025</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">month</span><span style="color:#ABB2BF">: </span><span style="color:#D19A66">12</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">day</span><span style="color:#ABB2BF">: </span><span style="color:#D19A66">14</span><span style="color:#ABB2BF">),</span></span>
<span class="line"><span style="color:#ABB2BF">) </span><span style="color:#56B6C2">= </span><span style="color:#ABB2BF">{</span></span>
<span class="line"><span style="color:#E06C75">  html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"html"</span><span style="color:#ABB2BF">)[</span></span>
<span class="line"><span style="color:#E06C75">    #html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"head"</span><span style="color:#ABB2BF">)[</span></span>
<span class="line"><span style="color:#E06C75">      #html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"title"</span><span style="color:#ABB2BF">)[</span><span style="color:#E06C75">#title</span><span style="color:#ABB2BF">]</span></span>
<span class="line"><span style="color:#E06C75">      #html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"meta"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">attrs</span><span style="color:#ABB2BF">: (</span><span style="color:#E06C75">property</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"article:published_time"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">content</span><span style="color:#ABB2BF">: </span><span style="color:#E06C75">date</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">display</span><span style="color:#ABB2BF">()))</span></span>
<span class="line"><span style="color:#ABB2BF">    ]</span></span>
<span class="line"><span style="color:#E06C75">    #html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"body"</span><span style="color:#ABB2BF">)[</span></span>
<span class="line"><span style="color:#E5C07B">      #content</span></span>
<span class="line"><span style="color:#ABB2BF">    ]</span></span>
<span class="line"><span style="color:#ABB2BF">  ]</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>Here, we allow users to specify we use Typst’s HTML <code class="shiki-inline"><span>elem</span></code> function to generate the basic structure of our document, including metadata in the <code class="shiki-inline"><span>head</span></code> element.<sup><a id="footnote-return-3" href="#footnote-3" role="doc-noteref" aria-label="footnote 3">3</a></sup></p><h3><code class="shiki-inline"><span>test.typ</span></code> content types</h3><p>Now, we can use our newly-created <code class="shiki-inline"><span>article</span></code> function in our test article:</p><p>src/posts/test.typ:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">#import</span><span style="color:#98C379"> "lib/lib.typ"</span><span style="color:#ABB2BF">: *</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">#show</span><span style="color:#ABB2BF">: </span><span style="color:#E06C75">article</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">with</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#E06C75">  title</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"Test article"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">  date</span><span style="color:#ABB2BF">: </span><span style="color:#61AFEF">datetime</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">year</span><span style="color:#ABB2BF">: </span><span style="color:#D19A66">2025</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">month</span><span style="color:#ABB2BF">: </span><span style="color:#D19A66">12</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">day</span><span style="color:#ABB2BF">: </span><span style="color:#D19A66">14</span><span style="color:#ABB2BF">),</span></span>
<span class="line"><span style="color:#ABB2BF">)</span></span></code></pre></div><p>We’ll also include examples of different types content we want to support in our blog.</p><p>src/posts/test.typ:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#7F848E;font-style:italic">// ...</span></span>
<span class="line"><span style="color:#61AFEF">=</span><span style="color:#E06C75"> Paragraph</span></span>
<span class="line"><span style="color:#61AFEF">#lorem</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66">67</span><span style="color:#ABB2BF">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">=</span><span style="color:#E06C75"> Marks</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">Marks:</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">- </span><span style="color:#E5C07B">*</span><span style="color:#D19A66">bold text</span><span style="color:#E5C07B">*</span></span>
<span class="line"><span style="color:#ABB2BF">- </span><span style="color:#C678DD">_italic text_</span></span>
<span class="line"><span style="color:#ABB2BF">- </span><span style="color:#61AFEF">#underline</span><span style="color:#ABB2BF">[underline text]</span></span>
<span class="line"><span style="color:#ABB2BF">- </span><span style="color:#98C379">`code text`</span></span>
<span class="line"><span style="color:#ABB2BF">- </span><span style="color:#61AFEF">#link</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"https://www.google.com/"</span><span style="color:#ABB2BF">)[link to google]</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">=</span><span style="color:#E06C75"> Headings</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">==</span><span style="color:#E06C75"> Heading 2</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">===</span><span style="color:#E06C75"> Heading 3</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">====</span><span style="color:#E06C75"> Heading 4</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">=====</span><span style="color:#E06C75"> Heading 5</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">=</span><span style="color:#E06C75"> Lists</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">==</span><span style="color:#E06C75"> Unordered</span></span>
<span class="line"><span style="color:#ABB2BF">- unordered list</span></span>
<span class="line"><span style="color:#ABB2BF">  - that goes</span></span>
<span class="line"><span style="color:#ABB2BF">    - like this</span></span>
<span class="line"><span style="color:#ABB2BF">- and also has item</span></span>
<span class="line"><span style="color:#ABB2BF">- hello</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">==</span><span style="color:#E06C75"> Ordered</span></span>
<span class="line"><span style="color:#ABB2BF">+ ordered list</span></span>
<span class="line"><span style="color:#ABB2BF">+ that goes</span></span>
<span class="line"><span style="color:#ABB2BF">+ like this</span></span>
<span class="line"><span style="color:#ABB2BF">  + and has</span></span>
<span class="line"><span style="color:#ABB2BF">    + nestings</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">=</span><span style="color:#E06C75"> Code</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">```python</span></span>
<span class="line"><span style="color:#ABB2BF">import math</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">def code_block(with_syntax_highlight):</span></span>
<span class="line"><span style="color:#ABB2BF">print("hello world")</span></span>
<span class="line"><span style="color:#ABB2BF">x = {"hello": (1, 2), "goodbye": (3, 4)}</span></span>
<span class="line"><span style="color:#ABB2BF">return f"hello {1}"</span></span>
<span class="line"><span style="color:#ABB2BF">```</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">=</span><span style="color:#E06C75"> Blockquote</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">#quote</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">block</span><span style="color:#ABB2BF">: </span><span style="color:#D19A66">true</span><span style="color:#ABB2BF">)[</span></span>
<span class="line"><span style="color:#ABB2BF">  Blockquote that is pretty long and contains </span><span style="color:#E5C07B">*</span><span style="color:#D19A66">rich content</span><span style="color:#E5C07B">*</span><span style="color:#ABB2BF">.</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">  And can be multiline.</span></span>
<span class="line"><span style="color:#ABB2BF">]</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF">=</span><span style="color:#E06C75"> Math</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">Inline math </span><span style="color:#ABB2BF">$</span><span style="color:#ABB2BF">(1 + 3 + 3^4 / 1) / 2 x y z</span><span style="color:#ABB2BF">$</span><span style="color:#ABB2BF"> wow that was cool math.</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">Block math:</span></span>
<span class="line"><span style="color:#ABB2BF">$</span></span>
<span class="line"><span style="color:#61AFEF">  cases</span><span style="color:#ABB2BF">(1 + 1, </span><span style="color:#61AFEF">hat</span><span style="color:#ABB2BF">(2 + 2), 3 + 3/2)</span></span>
<span class="line"><span style="color:#ABB2BF">$</span></span></code></pre></div><h3>Compile to HTML</h3><p>Now, we can compile our file to HTML! Install the <a href="https://typst.app/open-source/">Typst compiler</a> if you haven’t already, then open your terminal and run</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">typst</span><span style="color:#98C379"> compile</span><span style="color:#98C379"> src/posts/test.typ</span><span style="color:#98C379"> src/posts/target/test.html</span><span style="color:#D19A66"> --format</span><span style="color:#98C379"> html</span><span style="color:#D19A66"> --features</span><span style="color:#98C379"> html</span></span></code></pre></div><p>You should see a newly created <code class="shiki-inline"><span>test.html</span></code> in <code class="shiki-inline"><span>src/posts/target/test.html</span></code>! Ignore any warnings you get for now, we will fix them later.</p><h2>Post rendering</h2><p>Now, let’s display our posts in SvelteKit!</p><h3>Extraction functions</h3><p>First, we’ll create some utility functions to extract the metadata and content out of our generated HTML files. To parse our HTML on the server, which doesn’t have access to the browser’s DOM API, we need to install <a href="https://github.com/WebReflection/linkedom">linkedom</a>. To do that, run</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">npm</span><span style="color:#98C379"> i</span><span style="color:#98C379"> linkedom</span></span></code></pre></div><p>Now, create a new file <code class="shiki-inline"><span>posts.ts</span></code> in <code class="shiki-inline"><span>src/lib</span></code> for our extraction functions. We’ll first create a <code class="shiki-inline"><span>PostMeta</span></code> type to group each post’s metadata:</p><p>src/lib/posts.ts:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">export</span><span style="color:#C678DD"> type</span><span style="color:#E5C07B"> PostMeta</span><span style="color:#56B6C2"> =</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">  title</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">string</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#E06C75">  date</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">string</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#ABB2BF">};</span></span></code></pre></div><p>Then, we’ll create a function to extract that metadata, using the <code class="shiki-inline"><span>parseHTML</span></code> function from <code class="shiki-inline"><span>linkedom</span></code>.</p><p>src/lib/posts.ts:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">export</span><span style="color:#C678DD"> function</span><span style="color:#61AFEF"> extractMeta</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75;font-style:italic">html</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">string</span><span style="color:#ABB2BF">): </span><span style="color:#E5C07B">PostMeta</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#ABB2BF"> { </span><span style="color:#E5C07B">document</span><span style="color:#ABB2BF"> } </span><span style="color:#56B6C2">=</span><span style="color:#61AFEF"> parseHTML</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">html</span><span style="color:#ABB2BF">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> title</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> document</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">title</span><span style="color:#56B6C2"> ??</span><span style="color:#98C379"> "no title"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> dateMeta</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> document</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">querySelector</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#98C379">    'meta[property="article:published_time"]'</span></span>
<span class="line"><span style="color:#ABB2BF">  );</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> date</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> dateMeta</span><span style="color:#ABB2BF">?.</span><span style="color:#61AFEF">getAttribute</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"content"</span><span style="color:#ABB2BF">) </span><span style="color:#56B6C2">??</span><span style="color:#98C379"> "2000-1-1"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">  return</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">    title</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">    date</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#ABB2BF">  };</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>Finally, we’ll create a symmetrical function to extract the article’s content.</p><p>src/lib/posts.ts:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">export</span><span style="color:#C678DD"> function</span><span style="color:#61AFEF"> extractContent</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75;font-style:italic">html</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">string</span><span style="color:#ABB2BF">): </span><span style="color:#E5C07B">string</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#ABB2BF"> { </span><span style="color:#E5C07B">document</span><span style="color:#ABB2BF"> } </span><span style="color:#56B6C2">=</span><span style="color:#61AFEF"> parseHTML</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">html</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">  return</span><span style="color:#E5C07B"> document</span><span style="color:#ABB2BF">.</span><span style="color:#E5C07B">body</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">innerHTML</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><h3>Post listing</h3><p>We’ll make the website’s homepage display a list of links to all blog posts. In <code class="shiki-inline"><span>src/routes</span></code>, create a new file <code class="shiki-inline"><span>+page.server.ts</span></code>. This file will load all HTML files in our target directory and extract the metadata from each one.</p><p>src/routes/+page.server.ts:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">import</span><span style="color:#ABB2BF"> { </span><span style="color:#E06C75">extractMeta</span><span style="color:#ABB2BF"> } </span><span style="color:#C678DD">from</span><span style="color:#98C379"> "$lib/posts"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">export</span><span style="color:#C678DD"> async</span><span style="color:#C678DD"> function</span><span style="color:#61AFEF"> load</span><span style="color:#ABB2BF">() {</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> allPostFiles</span><span style="color:#56B6C2"> =</span><span style="color:#C678DD"> import</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">meta</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">glob</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"/src/posts/target/*.html"</span><span style="color:#ABB2BF">, {</span></span>
<span class="line"><span style="color:#E06C75">    query</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"?raw"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">    import</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"default"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#ABB2BF">  });</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> posts</span><span style="color:#56B6C2"> =</span><span style="color:#C678DD"> await</span><span style="color:#E5C07B"> Promise</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">all</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#E5C07B">    Object</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">entries</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">allPostFiles</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">map</span><span style="color:#ABB2BF">(</span><span style="color:#C678DD">async</span><span style="color:#ABB2BF"> ([</span><span style="color:#E06C75;font-style:italic">path</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75;font-style:italic">resolver</span><span style="color:#ABB2BF">]) </span><span style="color:#C678DD">=&gt;</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">      const</span><span style="color:#E5C07B"> html</span><span style="color:#56B6C2"> =</span><span style="color:#ABB2BF"> (</span><span style="color:#C678DD">await</span><span style="color:#61AFEF"> resolver</span><span style="color:#ABB2BF">()) </span><span style="color:#C678DD">as</span><span style="color:#E5C07B"> string</span><span style="color:#ABB2BF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">      const</span><span style="color:#E5C07B"> slug</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> path</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">split</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"/"</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">pop</span><span style="color:#ABB2BF">()?.</span><span style="color:#61AFEF">replace</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">".html"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">""</span><span style="color:#ABB2BF">) </span><span style="color:#56B6C2">??</span><span style="color:#98C379"> "unknown"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">      return</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">        meta</span><span style="color:#ABB2BF">: </span><span style="color:#61AFEF">extractMeta</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">html</span><span style="color:#ABB2BF">),</span></span>
<span class="line"><span style="color:#E06C75">        path</span><span style="color:#ABB2BF">: </span><span style="color:#E06C75">slug</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#ABB2BF">      };</span></span>
<span class="line"><span style="color:#ABB2BF">    })</span></span>
<span class="line"><span style="color:#ABB2BF">  );</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">  return</span><span style="color:#ABB2BF"> { </span><span style="color:#E06C75">posts</span><span style="color:#ABB2BF"> };</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>Then, we’ll edit the existing <code class="shiki-inline"><span>src/routes/+page.svelte</span></code> to display a list of links to all posts.</p><p>src/routes/+page.svelte:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#ABB2BF">&lt;</span><span style="color:#E06C75">script</span><span style="color:#D19A66"> lang</span><span style="color:#ABB2BF">=</span><span style="color:#98C379">"ts"</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"><span style="color:#C678DD">  let</span><span style="color:#ABB2BF"> { </span><span style="color:#E06C75">data</span><span style="color:#ABB2BF"> } </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> $</span><span style="color:#61AFEF">props</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#ABB2BF">&lt;/</span><span style="color:#E06C75">script</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">&lt;</span><span style="color:#E06C75">h1</span><span style="color:#ABB2BF">&gt;Posts&lt;/</span><span style="color:#E06C75">h1</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">&lt;</span><span style="color:#E06C75">ul</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">  {#</span><span style="color:#C678DD">each</span><span style="color:#E5C07B"> data</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">posts</span><span style="color:#C678DD"> as</span><span style="color:#E06C75"> post</span><span style="color:#ABB2BF">}</span></span>
<span class="line"><span style="color:#ABB2BF">    &lt;</span><span style="color:#E06C75">li</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">      &lt;</span><span style="color:#E06C75">a</span><span style="color:#D19A66"> href</span><span style="color:#ABB2BF">=</span><span style="color:#98C379">"./</span><span style="color:#C678DD">{</span><span style="color:#E5C07B">post</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">path</span><span style="color:#C678DD">}</span><span style="color:#98C379">"</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"><span style="color:#C678DD">        {</span><span style="color:#E5C07B">post</span><span style="color:#ABB2BF">.</span><span style="color:#E5C07B">meta</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">title</span><span style="color:#C678DD">}</span><span style="color:#ABB2BF"> - </span><span style="color:#C678DD">{</span><span style="color:#E5C07B">post</span><span style="color:#ABB2BF">.</span><span style="color:#E5C07B">meta</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">date</span><span style="color:#C678DD">}</span></span>
<span class="line"><span style="color:#ABB2BF">      &lt;/</span><span style="color:#E06C75">a</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">    &lt;/</span><span style="color:#E06C75">li</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">  {/</span><span style="color:#C678DD">each</span><span style="color:#ABB2BF">}</span></span>
<span class="line"><span style="color:#ABB2BF">&lt;/</span><span style="color:#E06C75">ul</span><span style="color:#ABB2BF">&gt;</span></span></code></pre></div><h3>Post display</h3><p>In <code class="shiki-inline"><span>src/routes</span></code>, create a folder called <code class="shiki-inline"><span>[slug]</span></code>. Inside that folder, first create a file <code class="shiki-inline"><span>+page.server.ts</span></code>. This file will get our HTML file, extract the metadata, and send both the metadata and the article contents to the frontend.</p><p>We’ll define a function called <code class="shiki-inline"><span>load</span></code>, whose return value SvelteKit will automatically pass to the frontend.</p><p>src/routes/[slug]/+page.server.ts:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">import</span><span style="color:#ABB2BF"> { </span><span style="color:#E06C75">extractContent</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">extractMeta</span><span style="color:#ABB2BF"> } </span><span style="color:#C678DD">from</span><span style="color:#98C379"> "$lib/posts"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#C678DD">import</span><span style="color:#ABB2BF"> { </span><span style="color:#E06C75">error</span><span style="color:#ABB2BF"> } </span><span style="color:#C678DD">from</span><span style="color:#98C379"> "@sveltejs/kit"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">export</span><span style="color:#C678DD"> async</span><span style="color:#C678DD"> function</span><span style="color:#61AFEF"> load</span><span style="color:#ABB2BF">({ </span><span style="color:#E06C75;font-style:italic">params</span><span style="color:#ABB2BF"> }) {</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> slug</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> params</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">slug</span><span style="color:#ABB2BF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> module</span><span style="color:#56B6C2"> =</span><span style="color:#C678DD"> await</span><span style="color:#61AFEF"> import</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">`../../posts/target/</span><span style="color:#C678DD">${</span><span style="color:#E06C75">slug</span><span style="color:#C678DD">}</span><span style="color:#98C379">.html?raw`</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> html</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> module</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">default</span><span style="color:#ABB2BF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">  if</span><span style="color:#ABB2BF"> (</span><span style="color:#56B6C2">!</span><span style="color:#E06C75">html</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#C678DD">    throw</span><span style="color:#61AFEF"> error</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66">404</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"Post not found"</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#ABB2BF">  }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">  return</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">    content</span><span style="color:#ABB2BF">: </span><span style="color:#61AFEF">extractContent</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">html</span><span style="color:#ABB2BF">),</span></span>
<span class="line"><span style="color:#E06C75">    meta</span><span style="color:#ABB2BF">: </span><span style="color:#61AFEF">extractMeta</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">html</span><span style="color:#ABB2BF">),</span></span>
<span class="line"><span style="color:#ABB2BF">  };</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>Here, we first load the HTML by <code class="shiki-inline"><span>import</span></code>ing it from the target directory based on the URL’s slug (the slug is the part after the last <code class="shiki-inline"><span>/</span></code> in the URL, which should match the name of our file, see the <a href="https://svelte.dev/docs/kit/routing">SvelteKit routing docs</a> for more information). Then, we use our extraction functions to return the post’s content and metadata.</p><p>With all the data we need extracted, rendering it becomes quite easy. Create another file <code class="shiki-inline"><span>+page.svelte</span></code> in our <code class="shiki-inline"><span>[slug]</span></code> folder. In that file, we’ll write some simple rendering code:</p><p>src/routes/[slug]/+page.svelte:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#ABB2BF">&lt;</span><span style="color:#E06C75">script</span><span style="color:#D19A66"> lang</span><span style="color:#ABB2BF">=</span><span style="color:#98C379">"ts"</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"><span style="color:#C678DD">  let</span><span style="color:#ABB2BF"> { </span><span style="color:#E06C75">data</span><span style="color:#ABB2BF"> } </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> $</span><span style="color:#61AFEF">props</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#ABB2BF">&lt;/</span><span style="color:#E06C75">script</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">&lt;</span><span style="color:#E06C75">h1</span><span style="color:#ABB2BF">&gt;Title: </span><span style="color:#C678DD">{</span><span style="color:#E5C07B">data</span><span style="color:#ABB2BF">.</span><span style="color:#E5C07B">meta</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">title</span><span style="color:#C678DD">}</span><span style="color:#ABB2BF">&lt;/</span><span style="color:#E06C75">h1</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">&lt;</span><span style="color:#E06C75">p</span><span style="color:#ABB2BF">&gt;Published on </span><span style="color:#C678DD">{</span><span style="color:#E5C07B">data</span><span style="color:#ABB2BF">.</span><span style="color:#E5C07B">meta</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">date</span><span style="color:#C678DD">}</span><span style="color:#ABB2BF">&lt;/</span><span style="color:#E06C75">p</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">&lt;</span><span style="color:#E06C75">article</span><span style="color:#ABB2BF">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF">  {@</span><span style="color:#C678DD">html</span><span style="color:#E5C07B"> data</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">content</span><span style="color:#ABB2BF">}</span></span>
<span class="line"><span style="color:#ABB2BF">&lt;/</span><span style="color:#E06C75">article</span><span style="color:#ABB2BF">&gt;</span></span></code></pre></div><p>Now, all the pieces are in place! Run <code class="shiki-inline"><span style="color:#61AFEF">npm</span><span style="color:#98C379"> run</span><span style="color:#98C379"> dev</span></code>, and go to <code class="shiki-inline"><span>localhost:????/test</span></code> to view the rendered <code class="shiki-inline"><span>test.typ</span></code> blog post!</p><img alt="Screenshot of rendered blog post, with the title and date displayed at the top, followed by sample headings, paragraphs, and lists." src="https://julianlbauer.com/_app/immutable/assets/first-post-render.CSw9JZKo.png"><h2>Developer experience</h2><p>Although the current setup works, the developer experience is not good. Currently, to see changes in your blog post, you have to manually rerun <code class="shiki-inline"><span>typst compile</span></code> and reload the website. We’ll fix this by automatically recompiling Typst files when they change, and automatically reloading the website when the source HTML files change in <code class="shiki-inline"><span>dev</span></code> mode.</p><h3>File watcher</h3><p>First, to install the libraries we need for our file watcher, run</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">npm</span><span style="color:#98C379"> install</span><span style="color:#D19A66"> --save</span><span style="color:#98C379"> @types/node</span></span>
<span class="line"><span style="color:#61AFEF">npm</span><span style="color:#98C379"> i</span><span style="color:#D19A66"> -D</span><span style="color:#98C379"> chokidar</span></span>
<span class="line"><span style="color:#61AFEF">npm</span><span style="color:#98C379"> i</span><span style="color:#D19A66"> -D</span><span style="color:#98C379"> concurrently</span></span></code></pre></div><p>Then, create a new file <code class="shiki-inline"><span>scripts/typst-manager.ts</span></code>. This script has two modes, <code class="shiki-inline"><span>dev</span></code> and <code class="shiki-inline"><span>build</span></code>, corresponding to <code class="shiki-inline"><span>vite dev</span></code> and <code class="shiki-inline"><span>vite build</span></code>.</p><ul><li>in <code class="shiki-inline"><span>build</span></code> mode, it just runs <code class="shiki-inline"><span>typst compile</span></code> for all <code class="shiki-inline"><span>.typ</span></code> files in <code class="shiki-inline"><span>src/posts</span></code></li><li><p>in <code class="shiki-inline"><span>dev</span></code> mode, it builds all <code class="shiki-inline"><span>.typ</span></code> files <em>and</em> checks for updates to <code class="shiki-inline"><span>.typ</span></code> files</p><ul><li>if a <code class="shiki-inline"><span>.typ</span></code> file is modified, then the script runs <code class="shiki-inline"><span>typst watch</span></code> for that file, which will instantly update the HTML whenever the Typst content changes. The approach prevents spawning hundreds of <code class="shiki-inline"><span>typst watch</span></code> processes if you have hundreds of <code class="shiki-inline"><span>.typ</span></code> files (assuming that you will likely only edit one blog post at a time).</li></ul></li></ul><p>I won’t go into much more detail about the script. Here’s the code:</p><p>scripts/typst-manager.ts:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">import</span><span style="color:#ABB2BF"> { </span><span style="color:#E06C75">spawn</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">execSync</span><span style="color:#ABB2BF"> } </span><span style="color:#C678DD">from</span><span style="color:#98C379"> "node:child_process"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#C678DD">import</span><span style="color:#E06C75"> fs</span><span style="color:#C678DD"> from</span><span style="color:#98C379"> "node:fs"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#C678DD">import</span><span style="color:#E06C75"> path</span><span style="color:#C678DD"> from</span><span style="color:#98C379"> "node:path"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#C678DD">import</span><span style="color:#E06C75"> chokidar</span><span style="color:#C678DD"> from</span><span style="color:#98C379"> "chokidar"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">const</span><span style="color:#E5C07B"> ROOT</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> process</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">cwd</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#C678DD">const</span><span style="color:#E5C07B"> SOURCE_DIR</span><span style="color:#56B6C2"> =</span><span style="color:#98C379"> "src/posts"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#C678DD">const</span><span style="color:#E5C07B"> TARGET_DIR</span><span style="color:#56B6C2"> =</span><span style="color:#98C379"> "src/posts/target"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#C678DD">const</span><span style="color:#E5C07B"> EXCLUDE</span><span style="color:#56B6C2"> =</span><span style="color:#ABB2BF"> [</span><span style="color:#98C379">"lib.typ"</span><span style="color:#ABB2BF">];</span></span>
<span class="line"><span style="color:#C678DD">const</span><span style="color:#E5C07B"> ABS_TARGET</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> path</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">resolve</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">ROOT</span><span style="color:#ABB2BF">, </span><span style="color:#E5C07B">TARGET_DIR</span><span style="color:#ABB2BF">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">if</span><span style="color:#ABB2BF"> (</span><span style="color:#56B6C2">!</span><span style="color:#E5C07B">fs</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">existsSync</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">path</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">join</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">ROOT</span><span style="color:#ABB2BF">, </span><span style="color:#E5C07B">TARGET_DIR</span><span style="color:#ABB2BF">))) {</span></span>
<span class="line"><span style="color:#E5C07B">  fs</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">mkdirSync</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">path</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">join</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">ROOT</span><span style="color:#ABB2BF">, </span><span style="color:#E5C07B">TARGET_DIR</span><span style="color:#ABB2BF">), { </span><span style="color:#E06C75">recursive</span><span style="color:#ABB2BF">: </span><span style="color:#D19A66">true</span><span style="color:#ABB2BF"> });</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">const</span><span style="color:#E5C07B"> activeWatchers</span><span style="color:#56B6C2"> =</span><span style="color:#C678DD"> new</span><span style="color:#61AFEF"> Map</span><span style="color:#ABB2BF">();</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">const</span><span style="color:#E5C07B"> mode</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> process</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">argv</span><span style="color:#ABB2BF">[</span><span style="color:#D19A66">2</span><span style="color:#ABB2BF">] </span><span style="color:#56B6C2">||</span><span style="color:#98C379"> "build"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">if</span><span style="color:#ABB2BF"> (</span><span style="color:#E06C75">mode</span><span style="color:#56B6C2"> ===</span><span style="color:#98C379"> "build"</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#61AFEF">  buildAll</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#ABB2BF">} </span><span style="color:#C678DD">else</span><span style="color:#C678DD"> if</span><span style="color:#ABB2BF"> (</span><span style="color:#E06C75">mode</span><span style="color:#56B6C2"> ===</span><span style="color:#98C379"> "dev"</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#61AFEF">  buildAll</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#61AFEF">  startDevMode</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">function</span><span style="color:#61AFEF"> getTypstFiles</span><span style="color:#ABB2BF">() {</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> dir</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> path</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">join</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">ROOT</span><span style="color:#ABB2BF">, </span><span style="color:#E5C07B">SOURCE_DIR</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">  return</span><span style="color:#E06C75"> fs</span></span>
<span class="line"><span style="color:#ABB2BF">    .</span><span style="color:#61AFEF">readdirSync</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">dir</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">    .</span><span style="color:#61AFEF">filter</span><span style="color:#ABB2BF">((</span><span style="color:#E06C75;font-style:italic">f</span><span style="color:#ABB2BF">) </span><span style="color:#C678DD">=&gt;</span><span style="color:#E5C07B"> f</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">endsWith</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">".typ"</span><span style="color:#ABB2BF">) </span><span style="color:#56B6C2">&amp;&amp;</span><span style="color:#56B6C2"> !</span><span style="color:#E5C07B">EXCLUDE</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">includes</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">f</span><span style="color:#ABB2BF">));</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">function</span><span style="color:#61AFEF"> compileFile</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75;font-style:italic">fileName</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">string</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> source</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> path</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">join</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">SOURCE_DIR</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">fileName</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> target</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> path</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">join</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">TARGET_DIR</span><span style="color:#ABB2BF">, </span><span style="color:#E5C07B">fileName</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">replace</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">".typ"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">".html"</span><span style="color:#ABB2BF">));</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">  try</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#61AFEF">    execSync</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#98C379">      `typst compile "</span><span style="color:#C678DD">${</span><span style="color:#E06C75">source</span><span style="color:#C678DD">}</span><span style="color:#98C379">" "</span><span style="color:#C678DD">${</span><span style="color:#E06C75">target</span><span style="color:#C678DD">}</span><span style="color:#98C379">" --format html --features html`</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#ABB2BF">      { </span><span style="color:#E06C75">stdio</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"inherit"</span><span style="color:#ABB2BF"> }</span></span>
<span class="line"><span style="color:#ABB2BF">    );</span></span>
<span class="line"><span style="color:#E5C07B">    console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">`built </span><span style="color:#C678DD">${</span><span style="color:#E06C75">fileName</span><span style="color:#C678DD">}</span><span style="color:#98C379">`</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#ABB2BF">  } </span><span style="color:#C678DD">catch</span><span style="color:#ABB2BF"> (</span><span style="color:#E06C75">e</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#E5C07B">    console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">error</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">`failed to build </span><span style="color:#C678DD">${</span><span style="color:#E06C75">fileName</span><span style="color:#C678DD">}</span><span style="color:#98C379">`</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#ABB2BF">  }</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">function</span><span style="color:#61AFEF"> buildAll</span><span style="color:#ABB2BF">() {</span></span>
<span class="line"><span style="color:#E5C07B">  console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"</span><span style="color:#56B6C2">\n</span><span style="color:#98C379">starting full typst build..."</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> files</span><span style="color:#56B6C2"> =</span><span style="color:#61AFEF"> getTypstFiles</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#E5C07B">  files</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">forEach</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">compileFile</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#E5C07B">  console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"build complete.</span><span style="color:#56B6C2">\n</span><span style="color:#98C379">"</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">function</span><span style="color:#61AFEF"> startDevMode</span><span style="color:#ABB2BF">() {</span></span>
<span class="line"><span style="color:#E5C07B">  console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"watching for changes..."</span><span style="color:#ABB2BF">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> watcher</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> chokidar</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">watch</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">SOURCE_DIR</span><span style="color:#ABB2BF">, {</span></span>
<span class="line"><span style="color:#E06C75">    persistent</span><span style="color:#ABB2BF">: </span><span style="color:#D19A66">true</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">    ignoreInitial</span><span style="color:#ABB2BF">: </span><span style="color:#D19A66">true</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">    ignored</span><span style="color:#ABB2BF">: [</span><span style="color:#E5C07B">ABS_TARGET</span><span style="color:#ABB2BF">],</span></span>
<span class="line"><span style="color:#ABB2BF">  });</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E5C07B">  watcher</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">on</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"all"</span><span style="color:#ABB2BF">, (</span><span style="color:#E06C75;font-style:italic">event</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75;font-style:italic">filePath</span><span style="color:#ABB2BF">) </span><span style="color:#C678DD">=&gt;</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">    const</span><span style="color:#E5C07B"> fileName</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> path</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">basename</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">filePath</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">    const</span><span style="color:#E5C07B"> ext</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> path</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">extname</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">filePath</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">toLowerCase</span><span style="color:#ABB2BF">();</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">    if</span><span style="color:#ABB2BF"> (</span><span style="color:#56B6C2">!</span><span style="color:#E5C07B">filePath</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">endsWith</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">".typ"</span><span style="color:#ABB2BF">) </span><span style="color:#56B6C2">||</span><span style="color:#E5C07B"> EXCLUDE</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">includes</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">fileName</span><span style="color:#ABB2BF">)) {</span></span>
<span class="line"><span style="color:#C678DD">      return</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#ABB2BF">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">    if</span><span style="color:#ABB2BF"> (</span><span style="color:#E5C07B">activeWatchers</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">has</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">fileName</span><span style="color:#ABB2BF">)) {</span></span>
<span class="line"><span style="color:#C678DD">      return</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#ABB2BF">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">    if</span><span style="color:#ABB2BF"> (</span><span style="color:#E06C75">event</span><span style="color:#56B6C2"> ===</span><span style="color:#98C379"> "change"</span><span style="color:#56B6C2"> ||</span><span style="color:#E06C75"> event</span><span style="color:#56B6C2"> ===</span><span style="color:#98C379"> "add"</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#61AFEF">      spawnDedicatedWatcher</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">fileName</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#ABB2BF">    }</span></span>
<span class="line"><span style="color:#ABB2BF">  });</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E5C07B">  process</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">on</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"SIGINT"</span><span style="color:#ABB2BF">, () </span><span style="color:#C678DD">=&gt;</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E5C07B">    console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"</span><span style="color:#56B6C2">\n</span><span style="color:#98C379">stopping all typst watchers..."</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#E5C07B">    activeWatchers</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">forEach</span><span style="color:#ABB2BF">((</span><span style="color:#E06C75;font-style:italic">child</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75;font-style:italic">name</span><span style="color:#ABB2BF">) </span><span style="color:#C678DD">=&gt;</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E5C07B">      child</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">kill</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#ABB2BF">    });</span></span>
<span class="line"><span style="color:#E5C07B">    process</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">exit</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#ABB2BF">  });</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">function</span><span style="color:#61AFEF"> spawnDedicatedWatcher</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75;font-style:italic">fileName</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">string</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#E5C07B">  console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">`spawning dedicated watcher for: </span><span style="color:#C678DD">${</span><span style="color:#E06C75">fileName</span><span style="color:#C678DD">}</span><span style="color:#98C379">`</span><span style="color:#ABB2BF">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> source</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> path</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">join</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">SOURCE_DIR</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">fileName</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> target</span><span style="color:#56B6C2"> =</span><span style="color:#E5C07B"> path</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">join</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">TARGET_DIR</span><span style="color:#ABB2BF">, </span><span style="color:#E5C07B">fileName</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">replace</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">".typ"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">".html"</span><span style="color:#ABB2BF">));</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD">  const</span><span style="color:#E5C07B"> child</span><span style="color:#56B6C2"> =</span><span style="color:#61AFEF"> spawn</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#98C379">    "typst"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#ABB2BF">    [</span><span style="color:#98C379">"watch"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">source</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">target</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"--format"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"html"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"--features"</span><span style="color:#ABB2BF">, </span><span style="color:#98C379">"html"</span><span style="color:#ABB2BF">],</span></span>
<span class="line"><span style="color:#ABB2BF">    {</span></span>
<span class="line"><span style="color:#E06C75">      stdio</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"inherit"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">      shell</span><span style="color:#ABB2BF">: </span><span style="color:#D19A66">true</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#ABB2BF">    }</span></span>
<span class="line"><span style="color:#ABB2BF">  );</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E5C07B">  activeWatchers</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">set</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">fileName</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">child</span><span style="color:#ABB2BF">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E5C07B">  child</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">on</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"close"</span><span style="color:#ABB2BF">, () </span><span style="color:#C678DD">=&gt;</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E5C07B">    activeWatchers</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">delete</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">fileName</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#ABB2BF">  });</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>Now, we’ll modify our <code class="shiki-inline"><span>package.json</span></code> to run <code class="shiki-inline"><span>typst-manager.ts</span></code> whenever we run <code class="shiki-inline"><span>dev</span></code> or <code class="shiki-inline"><span>build</span></code>. Modify the <code class="shiki-inline"><span>scripts</span></code> section of <code class="shiki-inline"><span>package.json</span></code>:</p><p>package.json:</p> <div class="raw"><pre class="shiki one-dark-pro has-diff" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#ABB2BF">{</span></span>
<span class="line"><span style="color:#FFFFFF">  ...</span></span>
<span class="line"><span style="color:#E06C75">  "scripts"</span><span style="color:#ABB2BF">: {</span></span>
<span class="line diff add"><span style="color:#E06C75">    "typst:dev"</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"node scripts/typst-manager.ts dev"</span><span style="color:#ABB2BF">, </span></span>
<span class="line diff add"><span style="color:#E06C75">    "typst:build"</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"node scripts/typst-manager.ts build"</span><span style="color:#ABB2BF">, </span></span>
<span class="line"></span>
<span class="line diff remove"><span style="color:#E06C75">    "dev"</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"vite dev"</span><span style="color:#ABB2BF">,</span></span>
<span class="line diff add"><span style="color:#E06C75">    "dev"</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"concurrently </span><span style="color:#56B6C2">\"</span><span style="color:#98C379">npm run typst:dev</span><span style="color:#56B6C2">\"</span><span style="color:#56B6C2"> \"</span><span style="color:#98C379">vite dev</span><span style="color:#56B6C2">\"</span><span style="color:#98C379">"</span><span style="color:#ABB2BF">, </span></span>
<span class="line diff remove"><span style="color:#E06C75">    "build"</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"vite build"</span><span style="color:#ABB2BF">, </span></span>
<span class="line diff add"><span style="color:#E06C75">    "build"</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"npm run typst:build &amp;&amp; vite build"</span><span style="color:#ABB2BF">, </span></span>
<span class="line"><span style="color:#FFFFFF">    ...</span></span>
<span class="line"><span style="color:#ABB2BF">  },</span></span>
<span class="line"><span style="color:#FFFFFF">  ...</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>Now, if you run <code class="shiki-inline"><span style="color:#61AFEF">npm</span><span style="color:#98C379"> run</span><span style="color:#98C379"> dev</span></code>, any changes to <code class="shiki-inline"><span>test.typ</span></code> should be reflected in <code class="shiki-inline"><span>test.html</span></code> on save.</p><h3>Hot reloading</h3><p>Even though our HTML files change in sync with our Typst files, we have to manually reload our blog in <code class="shiki-inline"><span>dev</span></code> mode if we want to see how those changes will look on our website. Let’s fix that!</p><p>In <code class="shiki-inline"><span>vite.config.ts</span></code>, we’ll create a new custom plugin that notifies the frontend whenever HTML files change.</p><p>vite.config.ts:</p> <div class="raw"><pre class="shiki one-dark-pro has-diff" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">export</span><span style="color:#C678DD"> default</span><span style="color:#61AFEF"> defineConfig</span><span style="color:#ABB2BF">({</span></span>
<span class="line diff remove"><span style="color:#E06C75">	plugins</span><span style="color:#ABB2BF">: [</span><span style="color:#61AFEF">sveltekit</span><span style="color:#ABB2BF">()] </span></span>
<span class="line diff add"><span style="color:#E06C75">  plugins</span><span style="color:#ABB2BF">: [</span></span>
<span class="line diff add"><span style="color:#61AFEF">    sveltekit</span><span style="color:#ABB2BF">(),</span></span>
<span class="line diff add"><span style="color:#ABB2BF">    {</span></span>
<span class="line diff add"><span style="color:#E06C75">      name</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"watch-content"</span><span style="color:#ABB2BF">,</span></span>
<span class="line diff add"><span style="color:#61AFEF">      handleHotUpdate</span><span style="color:#ABB2BF">({ </span><span style="color:#E06C75;font-style:italic">file</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75;font-style:italic">server</span><span style="color:#ABB2BF"> }) {</span></span>
<span class="line diff add"><span style="color:#C678DD">        if</span><span style="color:#ABB2BF"> (</span><span style="color:#E5C07B">file</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">endsWith</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">".html"</span><span style="color:#ABB2BF">)) {</span></span>
<span class="line diff add"><span style="color:#E5C07B">          server</span><span style="color:#ABB2BF">.</span><span style="color:#E5C07B">ws</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">send</span><span style="color:#ABB2BF">({ </span><span style="color:#E06C75">type</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"custom"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">event</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"content-update"</span><span style="color:#ABB2BF"> });</span></span>
<span class="line diff add"><span style="color:#ABB2BF">        }</span></span>
<span class="line diff add"><span style="color:#ABB2BF">      },</span></span>
<span class="line diff add"><span style="color:#ABB2BF">    },</span></span>
<span class="line diff add"><span style="color:#ABB2BF">  ],</span></span>
<span class="line"><span style="color:#ABB2BF">});</span></span></code></pre></div><p>We can listen for these changes on the frontend by modifying <code class="shiki-inline"><span>src/routes/+layout.svelte</span></code>. Add the following snippet to the <code class="shiki-inline"><span>script</span></code> section of your <code class="shiki-inline"><span>+layout.svelte</span></code> file:</p><p>src/routes/+layout.svelte:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">import</span><span style="color:#ABB2BF"> { </span><span style="color:#E06C75">invalidateAll</span><span style="color:#ABB2BF"> } </span><span style="color:#C678DD">from</span><span style="color:#98C379"> "$app/navigation"</span><span style="color:#ABB2BF">;</span></span>
<span class="line"><span style="color:#C678DD">if</span><span style="color:#ABB2BF"> (</span><span style="color:#C678DD">import</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">meta</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">hot</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#C678DD">   import</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">meta</span><span style="color:#ABB2BF">.</span><span style="color:#E5C07B">hot</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">on</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"content-update"</span><span style="color:#ABB2BF">, () </span><span style="color:#C678DD">=&gt;</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#61AFEF">     invalidateAll</span><span style="color:#ABB2BF">();</span></span>
<span class="line"><span style="color:#ABB2BF">   });</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>Now, when you’re running <code class="shiki-inline"><span style="color:#61AFEF">npm</span><span style="color:#98C379"> run</span><span style="color:#98C379"> dev</span></code>, any changes to <code class="shiki-inline"><span>test.typ</span></code> should be reflected in your browser on save!</p><h2>Math</h2><p>Clever observers might have noticed that Typst has been furiously emitting warnings about our use of math blocks in our <code class="shiki-inline"><span>test.typ</span></code> file. Even cleverer observers might have noticed that our output HTML currently contains no math—Typst currently removes math elements because it doesn’t know how to display them. Let’s fix this!</p><p>In the article function, we’ll create a show rule that changes the way Typst renders math equations:</p><p>src/posts/lib/lib.typ:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">#let</span><span style="color:#61AFEF"> article</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  // ...</span></span>
<span class="line"><span style="color:#ABB2BF">) </span><span style="color:#56B6C2">= </span><span style="color:#C678DD">context</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">  show</span><span style="color:#E06C75"> math</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">equation</span><span style="color:#ABB2BF">: </span><span style="color:#E06C75">it</span><span style="color:#C678DD"> =&gt;</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">    show</span><span style="color:#ABB2BF">: </span><span style="color:#C678DD">if</span><span style="color:#E06C75"> it</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">block</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">      it</span><span style="color:#C678DD"> =&gt;</span><span style="color:#E06C75"> html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"div"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">attrs</span><span style="color:#ABB2BF">: (</span><span style="color:#E06C75">class</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"math"</span><span style="color:#ABB2BF">), </span><span style="color:#E06C75">it</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">    } </span><span style="color:#C678DD">else</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">      it</span><span style="color:#C678DD"> =&gt;</span><span style="color:#E06C75"> html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"span"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">attrs</span><span style="color:#ABB2BF">: (</span><span style="color:#E06C75">class</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"math"</span><span style="color:#ABB2BF">), </span><span style="color:#E06C75">it</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">    }</span></span>
<span class="line"><span style="color:#E06C75">    html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">frame</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">it</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">  }</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  // ...</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>Our show rule maps block math in <code class="shiki-inline"><span>div</span></code>s and inline math in <code class="shiki-inline"><span>span</span></code>s. Most importantly, it wraps the whole element in a <code class="shiki-inline"><span>frame</span></code>, which makes Typst render the contained content as an SVG. Typst doesn’t currently have built-in HTML rendering for math, but it can render any part of the document as SVG, so we just wrap all our math equations with <code class="shiki-inline"><span>frame</span></code>s to show them as SVGs instead.<sup><a id="footnote-return-4" href="#footnote-4" role="doc-noteref" aria-label="footnote 4">4</a></sup></p><p>Now, math displays correctly!</p><img alt="Screenshot of rendered blog post, with math section containing inline and block equations." src="https://julianlbauer.com/_app/immutable/assets/math.C6Ew0DBI.png"><h2>Footnotes</h2><p>Let’s add support for footnotes!<sup><a id="footnote-return-5" href="#footnote-5" role="doc-noteref" aria-label="footnote 5">5</a></sup> We want numbered superscripts that link to numbered footnotes at the bottom of the article which all also have backlinks. First, create another show rule:</p><p>src/posts/lib/lib.typ:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">#let</span><span style="color:#61AFEF"> article</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  // ...</span></span>
<span class="line"><span style="color:#ABB2BF">) </span><span style="color:#56B6C2">= </span><span style="color:#C678DD">context</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">  show</span><span style="color:#E06C75"> footnote</span><span style="color:#ABB2BF">: </span><span style="color:#E06C75">it</span><span style="color:#C678DD"> =&gt;</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> count</span><span style="color:#56B6C2"> = </span><span style="color:#61AFEF">counter</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">footnote</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">display</span><span style="color:#ABB2BF">()</span></span>
<span class="line"><span style="color:#61AFEF">    super</span><span style="color:#ABB2BF">([</span><span style="color:#C678DD">#</span><span style="color:#ABB2BF">{</span></span>
<span class="line"><span style="color:#C678DD">        show</span><span style="color:#E06C75"> html</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">elem</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">where</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">tag</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"a"</span><span style="color:#ABB2BF">): </span><span style="color:#E06C75">it</span><span style="color:#C678DD"> =&gt;</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">          if</span><span style="color:#E06C75"> it</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">attrs</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">at</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"role"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">default</span><span style="color:#ABB2BF">: </span><span style="color:#C678DD">none</span><span style="color:#ABB2BF">) </span><span style="color:#56B6C2">==</span><span style="color:#C678DD"> none</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">            html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"a"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">attrs</span><span style="color:#ABB2BF">: (..</span><span style="color:#E06C75">it</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">attrs</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">role</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"doc-noteref"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">aria-label</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"footnote "</span><span style="color:#56B6C2"> +</span><span style="color:#E06C75"> count</span><span style="color:#ABB2BF">), </span><span style="color:#E06C75">it</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">body</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">          } </span><span style="color:#C678DD">else</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">            it</span></span>
<span class="line"><span style="color:#ABB2BF">          }</span></span>
<span class="line"><span style="color:#ABB2BF">        }</span></span>
<span class="line"><span style="color:#61AFEF">        link</span><span style="color:#ABB2BF">(</span><span style="color:#61AFEF">label</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"footnote-"</span><span style="color:#56B6C2"> +</span><span style="color:#E06C75"> count</span><span style="color:#ABB2BF">), </span><span style="color:#E06C75">count</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">      } </span><span style="color:#61AFEF">#label</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"footnote-return-"</span><span style="color:#56B6C2"> +</span><span style="color:#E06C75"> count</span><span style="color:#ABB2BF">)])</span></span>
<span class="line"><span style="color:#ABB2BF">  }</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic">  // ...</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><p>This show rule uses Typst’s <code class="shiki-inline"><span>counter</span></code> function to display numbered footnotes linked to their sources, and also sets up backlink targets so that readers can return to the article after reading the footnote. We use a show rule to add accessible attributes to the generated <code class="shiki-inline"><span>a</span></code> element.</p><p>Then, let’s update the <code class="shiki-inline"><span>html.body</span></code> function to display each footnote, using Typst’s <code class="shiki-inline"><span>query</span></code> function to find each footnote’s content.</p><p>src/posts/lib/lib.typ:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#E06C75">#html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"body"</span><span style="color:#ABB2BF">)[</span></span>
<span class="line"><span style="color:#E5C07B">  #content</span></span>
<span class="line"><span style="color:#C678DD">  #context</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">    let</span><span style="color:#E06C75"> footnotes</span><span style="color:#56B6C2"> = </span><span style="color:#61AFEF">query</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">footnote</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">    if</span><span style="color:#E06C75"> footnotes</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">len</span><span style="color:#ABB2BF">() </span><span style="color:#56B6C2">!=</span><span style="color:#D19A66"> 0</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">      html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"footer"</span><span style="color:#ABB2BF">)[</span></span>
<span class="line"><span style="color:#E06C75">        #html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"ol"</span><span style="color:#ABB2BF">)[</span></span>
<span class="line"><span style="color:#C678DD">          #for</span><span style="color:#ABB2BF"> (</span><span style="color:#E06C75">i</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">footnote</span><span style="color:#ABB2BF">) </span><span style="color:#C678DD">in</span><span style="color:#E06C75"> footnotes</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">enumerate</span><span style="color:#ABB2BF">() {</span></span>
<span class="line"><span style="color:#C678DD">            let</span><span style="color:#E06C75"> count</span><span style="color:#56B6C2"> = </span><span style="color:#E5C07B">str</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">i</span><span style="color:#56B6C2"> +</span><span style="color:#D19A66"> 1</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">            [</span><span style="color:#E06C75">#html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"li"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">attrs</span><span style="color:#ABB2BF">: (</span><span style="color:#E06C75">role</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"doc-footnote"</span><span style="color:#ABB2BF">))[</span></span>
<span class="line"><span style="color:#E06C75">                #footnote</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">body</span><span style="color:#C678DD"> #</span><span style="color:#ABB2BF">{</span></span>
<span class="line"><span style="color:#C678DD">                  show</span><span style="color:#E06C75"> html</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">elem</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">where</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">tag</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"a"</span><span style="color:#ABB2BF">): </span><span style="color:#E06C75">it</span><span style="color:#C678DD"> =&gt;</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#C678DD">                    if</span><span style="color:#E06C75"> it</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">attrs</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">at</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"role"</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">default</span><span style="color:#ABB2BF">: </span><span style="color:#C678DD">none</span><span style="color:#ABB2BF">) </span><span style="color:#56B6C2">==</span><span style="color:#C678DD"> none</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">                      html</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">elem</span><span style="color:#ABB2BF">(</span></span>
<span class="line"><span style="color:#98C379">                        "a"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">                        attrs</span><span style="color:#ABB2BF">: (</span></span>
<span class="line"><span style="color:#ABB2BF">                          ..</span><span style="color:#E06C75">it</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">attrs</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">                          role</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"doc-backlink"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#E06C75">                          aria-label</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">"Back to content"</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#ABB2BF">                        ),</span></span>
<span class="line"><span style="color:#E06C75">                        it</span><span style="color:#ABB2BF">.</span><span style="color:#E06C75">body</span><span style="color:#ABB2BF">,</span></span>
<span class="line"><span style="color:#ABB2BF">                      )</span></span>
<span class="line"><span style="color:#ABB2BF">                    } </span><span style="color:#C678DD">else</span><span style="color:#ABB2BF"> {</span></span>
<span class="line"><span style="color:#E06C75">                      it</span></span>
<span class="line"><span style="color:#ABB2BF">                    }</span></span>
<span class="line"><span style="color:#ABB2BF">                  }</span></span>
<span class="line"><span style="color:#61AFEF">                  link</span><span style="color:#ABB2BF">(</span><span style="color:#61AFEF">label</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"footnote-return-"</span><span style="color:#56B6C2"> +</span><span style="color:#E06C75"> count</span><span style="color:#ABB2BF">))[↩︎]</span></span>
<span class="line"><span style="color:#ABB2BF">                }] </span><span style="color:#61AFEF">#label</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"footnote-"</span><span style="color:#56B6C2"> +</span><span style="color:#E06C75"> count</span><span style="color:#ABB2BF">)]</span></span>
<span class="line"><span style="color:#ABB2BF">          }</span></span>
<span class="line"><span style="color:#ABB2BF">        ]</span></span>
<span class="line"><span style="color:#ABB2BF">      ]</span></span>
<span class="line"><span style="color:#ABB2BF">    }</span></span>
<span class="line"><span style="color:#ABB2BF">  }</span></span>
<span class="line"><span style="color:#ABB2BF">]</span></span></code></pre></div><p>Here, we create the targets for the links we set up in our show rule, and create backlinks with the <code class="shiki-inline"><span>↩︎</span></code> symbol at the end of each footnote. We also use another show rule to add accessible attributes to our links.</p><p>We can our implementation by modifying our <code class="shiki-inline"><span>test.typ</span></code> file to include some example footnotes:</p><p>src/posts/test.typ:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#7F848E;font-style:italic">// ...</span></span>
<span class="line"><span style="color:#61AFEF">=</span><span style="color:#E06C75"> Footnote</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF">Let's make footnotes</span><span style="color:#61AFEF">#footnote</span><span style="color:#ABB2BF">[An example footnote]</span></span>
<span class="line"><span style="color:#ABB2BF">and more footnotes</span><span style="color:#61AFEF">#footnote</span><span style="color:#ABB2BF">[</span></span>
<span class="line"><span style="color:#ABB2BF">  Another example footnote with </span><span style="color:#E5C07B">*</span><span style="color:#D19A66">rich content</span><span style="color:#E5C07B">*</span></span>
<span class="line"><span style="color:#ABB2BF">]</span></span></code></pre></div><p>Now, we have support for footnotes!</p><img alt="Screenshot of rendered blog post, with footnotes where clickable superscript links correspond to a numbered footnote list." src="https://julianlbauer.com/_app/immutable/assets/footnote.CEcyq68Q.png"><h2>Conclusion</h2><p>I hope this article provided a good guide for the basics of setting up a SvelteKit + Typst blog. Other features, like support for arbitrary figures or images that aren’t just embedded into the HTML can be implemented pretty easily with more show rules and some extra JavaScript. You can find the code <a href="https://github.com/Ashwagandhae/sveltekit-typst-blog">on Github</a>.</p><p>The approach I used has good developer experience but is somewhat fragile; future solutions could use <a href="https://github.com/Myriad-Dreamin/typst.ts">typst.ts</a> to make a proper Vite plugin.</p><footer><ol><li id="footnote-1" role="doc-footnote"><p>For example, if I wanted to list out the first 40 fibonacci numbers, which are 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, and 63245986, I can do it by writing code like this:</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">#let</span><span style="color:#61AFEF"> fibs</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">n</span><span style="color:#ABB2BF">) </span><span style="color:#56B6C2">= </span><span style="color:#ABB2BF">{</span></span>
<span class="line"><span style="color:#C678DD">  let</span><span style="color:#E06C75"> ret</span><span style="color:#56B6C2"> = </span><span style="color:#ABB2BF">(</span><span style="color:#D19A66">0</span><span style="color:#ABB2BF">, </span><span style="color:#D19A66">1</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">  for</span><span style="color:#E06C75"> _</span><span style="color:#C678DD"> in</span><span style="color:#56B6C2"> range</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75">n</span><span style="color:#56B6C2"> -</span><span style="color:#D19A66"> 2</span><span style="color:#ABB2BF">) {</span></span>
<span class="line"><span style="color:#E06C75">    ret</span><span style="color:#56B6C2"> =</span><span style="color:#ABB2BF"> (..</span><span style="color:#E06C75">ret</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">ret</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">at</span><span style="color:#ABB2BF">(</span><span style="color:#56B6C2">-</span><span style="color:#D19A66">1</span><span style="color:#ABB2BF">) </span><span style="color:#56B6C2">+</span><span style="color:#E06C75"> ret</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">at</span><span style="color:#ABB2BF">(</span><span style="color:#56B6C2">-</span><span style="color:#D19A66">2</span><span style="color:#ABB2BF">))</span></span>
<span class="line"><span style="color:#ABB2BF">  }</span></span>
<span class="line"><span style="color:#E06C75">  ret</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span>
<span class="line"><span style="color:#ABB2BF">For example, if I wanted to list out the first 40 fibonacci numbers,</span></span>
<span class="line"><span style="color:#ABB2BF">which are </span><span style="color:#61AFEF">#fibs</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66">40</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">map</span><span style="color:#ABB2BF">(</span><span style="color:#E5C07B">str</span><span style="color:#ABB2BF">).</span><span style="color:#61AFEF">join</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">", "</span><span style="color:#ABB2BF">, </span><span style="color:#E06C75">last</span><span style="color:#ABB2BF">: </span><span style="color:#98C379">", and "</span><span style="color:#ABB2BF">), I can do it by</span></span>
<span class="line"><span style="color:#ABB2BF">writing code like this:</span></span></code></pre></div><a href="#footnote-return-1" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-2" role="doc-footnote"><p>You can also just run</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#61AFEF">npx</span><span style="color:#98C379"> sv</span><span style="color:#98C379"> create</span><span style="color:#D19A66"> --template</span><span style="color:#98C379"> minimal</span><span style="color:#D19A66"> --types</span><span style="color:#98C379"> ts</span><span style="color:#D19A66"> --install</span><span style="color:#98C379"> npm</span><span style="color:#98C379"> sveltkit-typst-blog</span></span></code></pre></div>to skip manually selecting settings. <a href="#footnote-return-2" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-3" role="doc-footnote">Typst automatically generates the basic <code class="shiki-inline"><span>html</span></code>, <code class="shiki-inline"><span>head</span></code> and <code class="shiki-inline"><span>body</span></code> if you don’t create your own <code class="shiki-inline"><span>html</span></code> element. However, we’re manually specifying the structure to give us more control over metadata. <a href="#footnote-return-3" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-4" role="doc-footnote">There are other approaches to rendering math, like using <a href="https://codeberg.org/akida/mathyml">mathyml</a> to convert equations to MathML Core or <a href="https://github.com/qwinsi/tex2typst">convert to LaTeX</a> and render with <a href="https://www.mathjax.org/">MathJax</a> or <a href="https://katex.org/">KaTeX</a>. I decided to use SVG rendering because of simplicity and visual accuracy. <a href="#footnote-return-4" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-5" role="doc-footnote">Typst already supports footnotes if you don’t override the default <code class="shiki-inline"><span>html</span></code> and <code class="shiki-inline"><span>body</span></code> element creation. Because we did override it, we have to implement footnotes manually. Manual implementation has the benefit of more customization, like allowing for backlinks. <a href="#footnote-return-5" role="doc-backlink" aria-label="Back to content">↩︎</a></li></ol></footer>]]></content>
    </entry>
  
    <entry>
      <title><![CDATA[Test article]]></title>
      <link href="https://julianlbauer.com/writing/test" />
      <id>https://julianlbauer.com/writing/test</id>
      <published>2025-12-14T00:00:00.000Z</published>
      <updated>2025-12-14T00:00:00.000Z</updated>
      <summary><![CDATA[An article to test different content types, such as headings, equations, and code blocks.]]></summary>
      <content type="html"><![CDATA[<p>I use this article as a test for all the different content types this website should support, ranging from simple paragraphs and lists to code blocks, images, and embedded components.</p><h2>Paragraph and marks</h2><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre audiebam facete.</p><p>Footnote that shows up<sup><a id="footnote-return-1" href="#footnote-1" role="doc-noteref" aria-label="footnote 1">1</a></sup>, and then after that, another interesting<sup><a id="footnote-return-2" href="#footnote-2" role="doc-noteref" aria-label="footnote 2">2</a></sup> group<sup><a id="footnote-return-3" href="#footnote-3" role="doc-noteref" aria-label="footnote 3">3</a></sup> of footnotes<sup><a id="footnote-return-4" href="#footnote-4" role="doc-noteref" aria-label="footnote 4">4</a></sup>.</p><p>Marks:</p><ul><li><strong>bold text</strong></li><li><em>italic text</em></li><li><span style="text-decoration: underline">underline text</span></li><li><code class="shiki-inline"><span>code text</span></code></li><li><a href="https://www.google.com/">link to google</a></li></ul><h2>Headings</h2><h3>Heading 2</h3><h4>Heading 3</h4><h5>Heading 4</h5><h6>Heading 5</h6><h3>Duplicate heading</h3><h3>Duplicate heading</h3><h3>Rich heading with <em>strange</em> <code class="shiki-inline"><span style="color:#56B6C2">print</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"rich content"</span><span style="color:#ABB2BF">)</span></code></h3><h2>Lists</h2><h3>Unordered</h3><ul><li><p>unordered list</p><ul><li><p>that goes</p><ul><li>like this</li></ul></li></ul></li><li>and also has item</li><li>hello</li></ul><h3>Ordered</h3><ol><li>ordered list</li><li>that goes</li><li><p>like this</p><ol><li><p>and has</p><ol><li>nesings</li></ol></li></ol></li></ol><h2>Code</h2><p>Inline code like <code class="shiki-inline"><span style="color:#56B6C2">print</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"hello world"</span><span style="color:#ABB2BF">)</span></code> is very beautiful.</p><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span>raw text</span></span>
<span class="line"><span>wow raw text is so good</span></span>
<span class="line"><span></span></span>
<span class="line"><span>look at this raw text</span></span></code></pre></div><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">import</span><span style="color:#ABB2BF"> math</span></span>
<span class="line"><span style="color:#C678DD">def</span><span style="color:#61AFEF"> code_block</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66;font-style:italic">with_syntax_highlight</span><span style="color:#ABB2BF">):</span></span>
<span class="line"><span style="color:#56B6C2">	print</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"hello world"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#ABB2BF">	x </span><span style="color:#56B6C2">=</span><span style="color:#ABB2BF"> {</span><span style="color:#98C379">"hello"</span><span style="color:#ABB2BF">: (</span><span style="color:#D19A66">1</span><span style="color:#ABB2BF">, </span><span style="color:#D19A66">2</span><span style="color:#ABB2BF">), </span><span style="color:#98C379">"goodbye"</span><span style="color:#ABB2BF">: (</span><span style="color:#D19A66">3</span><span style="color:#ABB2BF">, </span><span style="color:#D19A66">4</span><span style="color:#ABB2BF">)}</span></span>
<span class="line"><span style="color:#C678DD">	return</span><span style="color:#C678DD"> f</span><span style="color:#98C379">"hello </span><span style="color:#D19A66">{1}</span><span style="color:#98C379">"</span></span></code></pre></div><h3>Ansi</h3><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#abb2bf">* </span><span style="color:#e5c07b">366a8c3 (</span><span style="color:#56b6c2;font-weight:bold">HEAD </span><span style="color:#e5c07b">-&gt; </span><span style="color:#98c379;font-weight:bold">main</span><span style="color:#e5c07b">, </span><span style="color:#e06c75;font-weight:bold">origin/main</span><span style="color:#e5c07b">) </span><span style="color:#abb2bf">add toc</span></span>
<span class="line"><span style="color:#abb2bf">* </span><span style="color:#e5c07b">10075bd </span><span style="color:#abb2bf">add shiki transformers</span></span>
<span class="line"><span style="color:#abb2bf">* </span><span style="color:#e5c07b">482914a </span><span style="color:#abb2bf">marginally improve syntax highlighting with shiki</span></span></code></pre></div><h3>File display</h3><p>hello-world.py:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#56B6C2">print</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"hello world"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">for</span><span style="color:#ABB2BF"> i </span><span style="color:#C678DD">in</span><span style="color:#56B6C2"> range</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66">0</span><span style="color:#ABB2BF">, </span><span style="color:#D19A66">10</span><span style="color:#ABB2BF">):</span></span>
<span class="line"><span style="color:#56B6C2">  print</span><span style="color:#ABB2BF">(i)</span></span></code></pre></div><p>src/main/long/path/that/is/very/long/and/extremely/long/hello-world.py:</p> <div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#56B6C2">print</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"hello world"</span><span style="color:#ABB2BF">)</span></span>
<span class="line"><span style="color:#C678DD">for</span><span style="color:#ABB2BF"> i </span><span style="color:#C678DD">in</span><span style="color:#56B6C2"> range</span><span style="color:#ABB2BF">(</span><span style="color:#D19A66">0</span><span style="color:#ABB2BF">, </span><span style="color:#D19A66">10</span><span style="color:#ABB2BF">):</span></span>
<span class="line"><span style="color:#56B6C2">  print</span><span style="color:#ABB2BF">(i)</span></span></code></pre></div><h3>Annotations</h3><div class="raw"><pre class="shiki one-dark-pro has-diff has-highlighted" style="color:#abb2bf" tabindex="0"><code><span class="line diff remove"><span style="color:#E5C07B">console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"remove"</span><span style="color:#ABB2BF">); </span></span>
<span class="line"><span style="color:#E5C07B">console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"normal"</span><span style="color:#ABB2BF">);</span></span>
<span class="line diff add"><span style="color:#E5C07B">console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"add"</span><span style="color:#ABB2BF">); </span></span>
<span class="line"><span style="color:#E5C07B">console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"normal"</span><span style="color:#ABB2BF">);</span></span>
<span class="line highlighted"><span style="color:#E5C07B">console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"highlight"</span><span style="color:#ABB2BF">); </span></span>
<span class="line"><span style="color:#E5C07B">console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"normal"</span><span style="color:#ABB2BF">);</span></span>
<span class="line highlighted error"><span style="color:#E5C07B">console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">error</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"error"</span><span style="color:#ABB2BF">); </span></span>
<span class="line"><span style="color:#E5C07B">console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"normal"</span><span style="color:#ABB2BF">);</span></span>
<span class="line highlighted warning"><span style="color:#E5C07B">console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">warn</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"warning"</span><span style="color:#ABB2BF">); </span></span>
<span class="line"><span style="color:#E5C07B">console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"normal"</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#C678DD">let</span><span style="color:#E06C75"> x</span><span style="color:#56B6C2"> =</span><span style="color:#ABB2BF"> [</span><span style="color:#D19A66">1</span><span style="color:#ABB2BF">, </span><span style="color:#D19A66">2</span><span style="color:#ABB2BF">, </span><span style="color:#D19A66">3</span><span style="color:#ABB2BF">, </span><span style="color:#ABB2BF" class="highlighted-word">(</span><span style="color:#D19A66" class="highlighted-word">4</span><span style="color:#56B6C2" class="highlighted-word"> +</span><span style="color:#D19A66" class="highlighted-word"> 5</span><span style="color:#ABB2BF" class="highlighted-word">)</span><span style="color:#ABB2BF">]; </span></span></code></pre></div><div class="raw"><pre class="shiki one-dark-pro has-focused" style="color:#abb2bf" tabindex="0"><code><span class="line"><span style="color:#C678DD">function</span><span style="color:#61AFEF"> helloWorld</span><span style="color:#ABB2BF">() {</span></span>
<span class="line"><span style="color:#E5C07B">  console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"not important"</span><span style="color:#ABB2BF">);</span></span>
<span class="line focused"><span style="color:#E5C07B">  console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"focused"</span><span style="color:#ABB2BF">); </span></span>
<span class="line"><span style="color:#E5C07B">  console</span><span style="color:#ABB2BF">.</span><span style="color:#61AFEF">log</span><span style="color:#ABB2BF">(</span><span style="color:#98C379">"not important"</span><span style="color:#ABB2BF">);</span></span>
<span class="line"><span style="color:#ABB2BF">}</span></span></code></pre></div><h2>Table</h2><table><thead><tr><th>hello</th><th>hi</th><th><strong>hello</strong></th></tr></thead><tbody><tr><td>this</td><td>table</td><td>is cool</td></tr><tr><td>this</td><td>table</td><td>is cool</td></tr></tbody></table><h2>Blockquote</h2><blockquote><p>Blockquote that is pretty long and contains <strong>rich content</strong>.</p><p>And can be multiline.</p></blockquote><h2>Math</h2><p>Inline math <math><mfrac><mrow><mn>1</mn><mo lspace="0em" rspace="0em">+</mo><mn>3</mn><mo lspace="0em" rspace="0em">+</mo><mfrac><msup><mn>3</mn><mn>4</mn></msup><mn>1</mn></mfrac></mrow><mn>2</mn></mfrac><mi>𝑥</mi><mi>𝑦</mi><mi>𝑧</mi></math> wow that was cool math.</p><p>Block math:</p><math display="block"><mrow><mo>{</mo><mtable class="cases"><mtr><mtd><mn>1</mn><mo>+</mo><mn>1</mn></mtd></mtr><mtr><mtd><mover accent="true"><mrow><mn>2</mn><mo>+</mo><mn>2</mn></mrow><mo>̂</mo></mover></mtd></mtr><mtr><mtd><mn>3</mn><mo>+</mo><mfrac><mn>3</mn><mn>2</mn></mfrac></mtd></mtr></mtable></mrow></math><h2>Embedded components</h2><div>Epic and cool click counter: 67 <button>increase the count</button> Celebration: yay</div><div class="raw"><pre class="shiki one-dark-pro" style="color:#abb2bf" tabindex="0"><code><span class="line"><span>Lorem</span></span>
<span class="line"><span>ipsum</span></span>
<span class="line"><span>dolor</span></span>
<span class="line"><span>sit</span></span>
<span class="line"><span>amet,</span></span>
<span class="line"><span>consectetur</span></span>
<span class="line"><span>adipiscing</span></span>
<span class="line"><span>elit,</span></span>
<span class="line"><span>sed</span></span>
<span class="line"><span>do</span></span>
<span class="line"><span>eiusmod</span></span>
<span class="line"><span>tempor</span></span>
<span class="line"><span>incididunt</span></span>
<span class="line"><span>ut</span></span>
<span class="line"><span>labore</span></span>
<span class="line"><span>et</span></span>
<span class="line"><span>dolore</span></span>
<span class="line"><span>magnam</span></span>
<span class="line"><span>aliquam</span></span>
<span class="line"><span>quaerat</span></span>
<span class="line"><span>voluptatem.</span></span>
<span class="line"><span>Ut</span></span>
<span class="line"><span>enim</span></span>
<span class="line"><span>aeque</span></span>
<span class="line"><span>doleamus</span></span>
<span class="line"><span>animo,</span></span>
<span class="line"><span>cum</span></span>
<span class="line"><span>corpore</span></span>
<span class="line"><span>dolemus,</span></span>
<span class="line"><span>fieri</span></span>
<span class="line"><span>tamen</span></span>
<span class="line"><span>permagna</span></span>
<span class="line"><span>accessio</span></span>
<span class="line"><span>potest,</span></span>
<span class="line"><span>si</span></span>
<span class="line"><span>aliquod</span></span>
<span class="line"><span>aeternum</span></span>
<span class="line"><span>et</span></span>
<span class="line"><span>infinitum</span></span>
<span class="line"><span>impendere</span></span>
<span class="line"><span>malum</span></span>
<span class="line"><span>nobis</span></span>
<span class="line"><span>opinemur.</span></span>
<span class="line"><span>Quod</span></span>
<span class="line"><span>idem</span></span>
<span class="line"><span>licet</span></span>
<span class="line"><span>transferre</span></span>
<span class="line"><span>in</span></span>
<span class="line"><span>voluptatem,</span></span>
<span class="line"><span>ut.</span></span></code></pre></div><h2>Images</h2><img alt="San Francisco road with trees in the background" src="https://julianlbauer.com/_app/immutable/assets/san-francisco.BGepHSlO.png"><h2>Figure</h2><figure aria-label=""><img src="data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20384.771%20241.074%22%20width%3D%22384.771pt%22%20height%3D%22241.074pt%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20xmlns%3Ah5%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%3E%3Crect%20fill%3D%22%231a1a1a%22%20height%3D%22100%25%22%20width%3D%22100%25%22%3E%3C%2Frect%3E%3Cg%3E%3Cg%20transform%3D%22translate(34.771%2012.848)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(57.8125)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(96.875)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(135.9375)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(175)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(214.0625)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(253.125)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(292.1875)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(331.25)%22%20d%3D%22M%200%200v%20200%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20190.183734847)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20167.750053705)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20145.316372564)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20122.882691422)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20100.449010281)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2078.015329139)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2055.581647997)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2033.147966856)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%234c4c4c%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2010.714285714)%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3Cg%20clip-path%3D%22url(%23cB43DEB99DE931151D6B0B15873618090)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200m%2018.75%20100.449010281l%2078.125%20-89.734724566l%2078.125%2044.867362283l%2078.125%2089.734724566l%2078.125%20-44.867362283%22%20%2F%3E%3Cpath%20fill%3D%22%233f90da%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(17.05%2098.749010281)%22%20d%3D%22M%200%200v%203.4h%203.4v%20-3.4Z%20%22%20%2F%3E%3Cpath%20fill%3D%22%233f90da%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(95.175%209.014285714)%22%20d%3D%22M%200%200v%203.4h%203.4v%20-3.4Z%20%22%20%2F%3E%3Cpath%20fill%3D%22%233f90da%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(173.3%2053.881647997)%22%20d%3D%22M%200%200v%203.4h%203.4v%20-3.4Z%20%22%20%2F%3E%3Cpath%20fill%3D%22%233f90da%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(251.425%20143.616372564)%22%20d%3D%22M%200%200v%203.4h%203.4v%20-3.4Z%20%22%20%2F%3E%3Cpath%20fill%3D%22%233f90da%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(329.55%2098.749010281)%22%20d%3D%22M%200%200v%203.4h%203.4v%20-3.4Z%20%22%20%2F%3E%3C%2Fg%3E%3Cg%20clip-path%3D%22url(%23cB43DEB99DE931151D6B0B15873618090)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200m%2018.75%2010.714285714l%2078.125%2041.250845967l%2078.125%2085.826700356l%2078.125%2051.493882248l%2078.125%20-30.182173722%22%20%2F%3E%3Cpath%20fill%3D%22%23ffa90e%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(16.75%208.714285714)%22%20d%3D%22M%200%200m%200%202c%200%20-1.103568%200.896432%20-2%202%20-2c%201.103568%200%202%200.896432%202%202c%200%201.103568%20-0.896432%202%20-2%202c%20-1.103568%200%20-2%20-0.896432%20-2%20-2%22%20%2F%3E%3Cpath%20fill%3D%22%23ffa90e%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(94.875%2049.965131681)%22%20d%3D%22M%200%200m%200%202c%200%20-1.103568%200.896432%20-2%202%20-2c%201.103568%200%202%200.896432%202%202c%200%201.103568%20-0.896432%202%20-2%202c%20-1.103568%200%20-2%20-0.896432%20-2%20-2%22%20%2F%3E%3Cpath%20fill%3D%22%23ffa90e%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(173%20135.791832037)%22%20d%3D%22M%200%200m%200%202c%200%20-1.103568%200.896432%20-2%202%20-2c%201.103568%200%202%200.896432%202%202c%200%201.103568%20-0.896432%202%20-2%202c%20-1.103568%200%20-2%20-0.896432%20-2%20-2%22%20%2F%3E%3Cpath%20fill%3D%22%23ffa90e%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(251.125%20187.285714286)%22%20d%3D%22M%200%200m%200%202c%200%20-1.103568%200.896432%20-2%202%20-2c%201.103568%200%202%200.896432%202%202c%200%201.103568%20-0.896432%202%20-2%202c%20-1.103568%200%20-2%20-0.896432%20-2%20-2%22%20%2F%3E%3Cpath%20fill%3D%22%23ffa90e%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(329.25%20157.103540563)%22%20d%3D%22M%200%200m%200%202c%200%20-1.103568%200.896432%20-2%202%20-2c%201.103568%200%202%200.896432%202%202c%200%201.103568%20-0.896432%202%20-2%202c%20-1.103568%200%20-2%20-0.896432%20-2%20-2%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(304.514%202)%22%3E%3Cg%3E%3Cpath%20fill%3D%22%23000000b2%22%20fill-rule%3D%22nonzero%22%20d%3D%22M%200%200m%200%202.75c%200%20-1.518783062%201.231216938%20-2.75%202.75%20-2.75h%2037.986c%201.518783062%200%202.75%201.231216938%202.75%202.75v%2024.5c%200%201.518783062%20-1.231216938%202.75%20-2.75%202.75h%20-37.986c%20-1.518783062%200%20-2.75%20-1.231216938%20-2.75%20-2.75Z%20%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23aaaaaa%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200m%202.75%200h%2037.986c%201.518783062%200%202.75%201.231216938%202.75%202.75v%2024.5c%200%201.518783062%20-1.231216938%202.75%20-2.75%202.75h%20-37.986c%20-1.518783062%200%20-2.75%20-1.231216938%20-2.75%20-2.75v%20-24.5c%200%20-1.518783062%201.231216938%20-2.75%202.75%20-2.75%22%20%2F%3E%3Cg%20transform%3D%22translate(5.3%205.3)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200m%200%203.85h%2022%22%20%2F%3E%3Cpath%20fill%3D%22%233f90da%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%233f90da%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(9.3%202.15)%22%20d%3D%22M%200%200v%203.4h%203.4v%20-3.4Z%20%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2031.3%2012.824)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g75F1368ED30813D60646BC4123723559%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(5.3%2017)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200m%200%203.85h%2022%22%20%2F%3E%3Cpath%20fill%3D%22%23ffa90e%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%23ffa90e%22%20stroke-width%3D%220.7%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(9%201.85)%22%20d%3D%22M%200%200m%200%202c%200%20-1.103568%200.896432%20-2%202%20-2c%201.103568%200%202%200.896432%202%202c%200%201.103568%20-0.896432%202%20-2%202c%20-1.103568%200%20-2%20-0.896432%20-2%20-2%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2031.3%2024.524)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g517FCA4667A4735143D28F1C7280BE58%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2011.721%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2017.221%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2020.279%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(57.8125%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2050.7835%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2056.2835%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2059.3415%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gE3AFFB6D3A6969089B1BA192752CE6D1%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(96.875%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2089.846%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g3E2A4E29F5F78B7482203F9341039E72%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2095.346%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%2098.404%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(135.9375%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20128.9085%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g3E2A4E29F5F78B7482203F9341039E72%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20134.4085%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20137.4665%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gE3AFFB6D3A6969089B1BA192752CE6D1%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(175%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20167.971%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5037E03A0CBEB30198DBAC9F97CDF04F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20173.471%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20176.529%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(214.0625%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20207.0335%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5037E03A0CBEB30198DBAC9F97CDF04F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20212.5335%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20215.5915%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gE3AFFB6D3A6969089B1BA192752CE6D1%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(253.125%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20246.096%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gC63E28D2FF745BC8AEDEB058F758CC95%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20251.596%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20254.654%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(292.1875%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20285.1585%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gC63E28D2FF745BC8AEDEB058F758CC95%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20290.6585%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20293.7165%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gE3AFFB6D3A6969089B1BA192752CE6D1%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(331.25%20-3)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20324.221%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5B440C03A6991C2AE1CF687F6CF909A%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20329.721%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20332.779%2013.013)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(3.125%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(10.9375%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(26.5625%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(34.375%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(42.1875%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(50%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(65.625%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(73.4375%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(81.25%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(89.0625%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(104.6875%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(112.5%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(120.3125%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(128.125%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(143.75%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(151.5625%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(159.375%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(167.1875%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(182.8125%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(190.625%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(198.4375%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(206.25%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(221.875%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(229.6875%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(237.5%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(245.3125%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(260.9375%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(268.75%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(276.5625%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(284.375%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(300%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(307.8125%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(315.625%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(323.4375%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(339.0625%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(346.875%20-1.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20220.713)%22%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20171.854%207.513)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gA4AC33BF76001B15D203F6668E9483BD%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(0%20200)%22%20%2F%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200h%20350%22%20%2F%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(18.75)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(57.8125)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(96.875)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(135.9375)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(175)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(214.0625)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(253.125)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(292.1875)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(331.25)%22%20d%3D%22M%200%200l%200%203%22%20%2F%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(3.125)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(10.9375)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(26.5625)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(34.375)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(42.1875)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(50)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(65.625)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(73.4375)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(81.25)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(89.0625)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(104.6875)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(112.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(120.3125)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(128.125)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(143.75)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(151.5625)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(159.375)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(167.1875)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(182.8125)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(190.625)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(198.4375)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(206.25)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(221.875)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(229.6875)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(237.5)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(245.3125)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(260.9375)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(268.75)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(276.5625)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(284.375)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(300)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(307.8125)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(315.625)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(323.4375)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(339.0625)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(346.875)%22%20d%3D%22M%200%200l%200%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20%2F%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200l%200%20200%22%20%2F%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20190.183734847)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-19.558%20193.940234847)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g3E2A4E29F5F78B7482203F9341039E72%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-14.058%20193.940234847)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20193.940234847)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20167.750053705)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-19.558%20171.506553705)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g3E2A4E29F5F78B7482203F9341039E72%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-14.058%20171.506553705)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20171.506553705)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gE3AFFB6D3A6969089B1BA192752CE6D1%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20145.316372564)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-19.558%20149.072872564)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5037E03A0CBEB30198DBAC9F97CDF04F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-14.058%20149.072872564)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20149.072872564)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20122.882691422)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-19.558%20126.639191422)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5037E03A0CBEB30198DBAC9F97CDF04F%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-14.058%20126.639191422)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20126.639191422)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gE3AFFB6D3A6969089B1BA192752CE6D1%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20100.449010281)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-19.558%20104.205510281)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gC63E28D2FF745BC8AEDEB058F758CC95%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-14.058%20104.205510281)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%20104.205510281)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2078.015329139)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-19.558%2081.771829139)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gC63E28D2FF745BC8AEDEB058F758CC95%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-14.058%2081.771829139)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2081.771829139)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gE3AFFB6D3A6969089B1BA192752CE6D1%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2055.581647997)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-19.558%2059.338147997)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5B440C03A6991C2AE1CF687F6CF909A%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-14.058%2059.338147997)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2059.338147997)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2033.147966856)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-19.558%2036.904466856)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g5B440C03A6991C2AE1CF687F6CF909A%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-14.058%2036.904466856)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2036.904466856)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gE3AFFB6D3A6969089B1BA192752CE6D1%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2010.714285714)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-19.558%2014.470785714)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gE3AFFB6D3A6969089B1BA192752CE6D1%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-14.058%2014.470785714)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20-11%2014.470785714)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g18E9A2F0F5286FD67B2F2437F78BB061%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20199.157207303)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20194.670471075)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20185.696998619)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20181.21026239)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20176.723526162)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20172.236789934)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20163.263317477)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20158.776581249)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20154.28984502)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20149.803108792)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20140.829636335)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20136.342900107)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20131.856163879)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20127.36942765)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20118.395955194)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20113.909218966)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20109.422482737)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%20104.935746509)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2095.962274052)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2091.475537824)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2086.988801596)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2082.502065367)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2073.528592911)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2069.041856682)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2064.555120454)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2060.068384226)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2051.094911769)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2046.608175541)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2042.121439312)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2037.634703084)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2028.661230628)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2024.174494399)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2019.687758171)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%2015.201021943)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%206.227549486)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(0%201.740813258)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(-34.771)%22%3E%3Cg%20transform%3D%22matrix(0%20-1%20-1%200%207.513%20102.849)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23gC4346895D6C96E8B0D9A48E3FDBF3CF0%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20%2F%3E%3Cg%20transform%3D%22translate(350)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20d%3D%22M%200%200l%200%20200%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(350)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20190.183734847)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20167.750053705)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20145.316372564)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20122.882691422)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%20100.449010281)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2078.015329139)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2055.581647997)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2033.147966856)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-3%2010.714285714)%22%20d%3D%22M%200%200h%203%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(350)%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20199.157207303)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20194.670471075)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20185.696998619)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20181.21026239)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20176.723526162)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20172.236789934)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20163.263317477)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20158.776581249)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20154.28984502)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20149.803108792)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20140.829636335)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20136.342900107)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20131.856163879)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20127.36942765)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20118.395955194)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20113.909218966)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20109.422482737)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%20104.935746509)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2095.962274052)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2091.475537824)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2086.988801596)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2082.502065367)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2073.528592911)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2069.041856682)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2064.555120454)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2060.068384226)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2051.094911769)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2046.608175541)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2042.121439312)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2037.634703084)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2028.661230628)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2024.174494399)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2019.687758171)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%2015.201021943)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%206.227549486)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.5%22%20stroke-linecap%3D%22butt%22%20stroke-linejoin%3D%22miter%22%20stroke-miterlimit%3D%224%22%20transform%3D%22translate(-1.5%201.740813258)%22%20d%3D%22M%200%200h%201.5%22%20%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(350)%22%20%2F%3E%3Cg%20transform%3D%22translate(0%20-12.848)%22%3E%3Cg%20transform%3D%22matrix(1%200%200%20-1%20141.7965%207.348)%22%3E%3Cuse%20xlink%3Ahref%3D%22%23g7BBCA3A6E8F7C4EFED08401CADD05022%22%20x%3D%220%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gAB87DF46BD16BB429BA1A7AAD7177B35%22%20x%3D%226.611%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gF7AC29E1E5FA5B1D800F0E84A8D3FE3D%22%20x%3D%2210.351%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g9EF63D054B583A6C046C6561E44D1A02%22%20x%3D%2216.28%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g57D3529217C3A6743CC82693749EA69E%22%20x%3D%2221.78%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gE5F280739ED3D38E7C118623375A336C%22%20x%3D%2224.838%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gB4C902E48C8D391C4615AFFB0E611714%22%20x%3D%2230.91%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gC7F2A8BD7C0771BB10ADE18F2DA062E4%22%20x%3D%2236.806%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g893222D8CF08D9CD9F08DB357E0DE2B9%22%20x%3D%2245.067%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g5C3AABF9E729631755B8B12BA5F35AAD%22%20x%3D%2251.271%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23gEB5211937D607FFB591FCEE3719D218E%22%20x%3D%2257.057%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3Cuse%20xlink%3Ahref%3D%22%23g5C3AABF9E729631755B8B12BA5F35AAD%22%20x%3D%2260.621%22%20y%3D%220%22%20fill%3D%22%23ffffff%22%20fill-rule%3D%22nonzero%22%20%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cdefs%3E%3Csymbol%20id%3D%22g75F1368ED30813D60646BC4123723559%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.11%200l%202.761%207.359h%201.155l%202.75%20-7.359h%20-1.1l%20-0.561%201.606h%20-3.344l%20-0.561%20-1.606h%20-1.1Z%20m%201.98%202.497h%202.706l%20-1.353%203.817l%20-1.353%20-3.817Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g517FCA4667A4735143D28F1C7280BE58%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.836%200v%207.348h%202.959q%200.803%200%201.3035%20-0.264q%200.5005%20-0.264%200.737%20-0.6765q%200.2365%20-0.4125%200.2365%20-0.8855q%200%20-0.44%20-0.198%20-0.869q%20-0.198%20-0.429%20-0.572%20-0.748q%200.55%20-0.286%200.8195%20-0.7755q%200.2695%20-0.4895%200.2695%20-1.0175q%200%20-0.528%20-0.2695%20-1.012q%20-0.2695%20-0.484%20-0.8085%20-0.792q%20-0.539%20-0.308%20-1.342%20-0.308h%20-3.135Z%20m%201.034%204.202h%202.035q%200.561%200%200.8415%200.352q%200.2805%200.352%200.2805%200.77q%200%200.286%20-0.1265%200.55q%20-0.1265%200.264%20-0.374%200.4345q%20-0.2475%200.1705%20-0.6215%200.1705h%20-2.035v%20-2.277Z%20m%200%20-3.333h%202.211q%200.407%200%200.682%200.187q%200.275%200.187%200.418%200.4785q%200.143%200.2915%200.143%200.6105q%200%200.319%20-0.1375%200.5995q%20-0.1375%200.2805%20-0.418%200.462q%20-0.2805%200.1815%20-0.6985%200.1815h%20-2.2v%20-2.519Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g18E9A2F0F5286FD67B2F2437F78BB061%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.739%20-0.242c%201.551%200%202.321%201.254%202.321%203.762c%200%201.683%20-0.352%202.805%20-1.045%203.355c%20-0.385%200.297%20-0.814%200.451%20-1.265%200.451c%20-1.551%200%20-2.321%20-1.265%20-2.321%20-3.806c%200%20-2.024%200.539%20-3.762%202.31%20-3.762Z%20m%201.232%206.006c%200.077%20-0.385%200.11%20-1.089%200.11%20-2.112c%200%20-1.012%20-0.044%20-1.76%20-0.121%20-2.244c%20-0.143%20-0.88%20-0.55%20-1.32%20-1.221%20-1.32c%20-0.253%200%20-0.506%200.099%20-0.737%200.286c%20-0.297%200.253%20-0.473%200.77%20-0.55%201.562c%20-0.033%200.275%20-0.044%200.847%20-0.044%201.716c%200%200.957%200.033%201.628%200.088%201.991c%200.099%200.605%200.297%200.99%200.605%201.155c%200.242%200.132%200.451%200.198%200.638%200.198c%200.715%200%201.111%20-0.583%201.232%20-1.232Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g1F4E5D3D42AC9A300E88B8C6DDEDA935%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.112%200.583c%200%200.319%20-0.264%200.583%20-0.583%200.583c%20-0.319%200%20-0.583%20-0.264%20-0.583%20-0.583c%200%20-0.319%200.264%20-0.583%200.583%20-0.583c%200.319%200%200.583%200.264%200.583%200.583Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gE3AFFB6D3A6969089B1BA192752CE6D1%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%201.298%203.465c%200.055%200%200.121%200.044%200.176%200.121c%200.33%200.495%200.781%200.737%201.353%200.737c%200.385%200%200.682%20-0.22%200.88%20-0.671c%200.121%20-0.297%200.187%20-0.748%200.187%20-1.353c%200%20-0.693%20-0.088%20-1.177%20-0.253%20-1.463c%20-0.275%20-0.451%20-0.649%20-0.682%20-1.122%20-0.682c%20-0.737%200%20-1.32%200.528%20-1.518%201.1c%200.033%20-0.011%200.055%200%200.099%200c%200.33%200%200.605%200.253%200.605%200.583c%200%200.341%20-0.275%200.572%20-0.605%200.572c%20-0.385%200%20-0.55%20-0.209%20-0.55%20-0.616c%200%20-1.1%200.891%20-2.035%201.991%20-2.035c%200.671%200%201.243%200.242%201.705%200.726c%200.462%200.484%200.693%201.067%200.693%201.738c%200%200.638%20-0.187%201.188%20-0.561%201.661c%20-0.407%200.517%20-0.913%200.77%20-1.529%200.77c%20-0.517%200%20-0.968%20-0.165%20-1.331%20-0.495v%201.958c%200.297%20-0.088%200.583%20-0.132%200.88%20-0.132c%200.506%200%200.946%200.121%201.32%200.374c%200.341%200.209%200.572%200.418%200.704%200.616c%200.066%200.088%200.099%200.154%200.099%200.187c%200%200.11%20-0.055%200.165%20-0.165%200.165c%20-0.605%20-0.231%20-1.122%20-0.352%20-1.54%20-0.352c%20-0.495%200%20-0.968%200.099%20-1.419%200.308c%20-0.055%200.022%20-0.099%200.033%20-0.143%200.033c%20-0.099%200%20-0.154%20-0.099%20-0.154%20-0.308v%20-3.212c%200%20-0.231%200%20-0.33%200.198%20-0.33Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g3E2A4E29F5F78B7482203F9341039E72%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.959%207.326c%20-0.451%20-0.462%20-1.111%20-0.693%20-1.98%20-0.693v%20-0.429c%200.572%200%201.045%200.088%201.408%200.264v%20-5.566c%200%20-0.198%20-0.044%20-0.33%20-0.143%20-0.385c%20-0.099%20-0.055%20-0.374%20-0.088%20-0.814%20-0.088h%20-0.385v%20-0.429c%200.275%200.022%200.869%200.033%201.782%200.033c%200.913%200%201.507%20-0.011%201.782%20-0.033v%200.429h%20-0.385c%20-0.451%200%20-0.726%200.033%20-0.814%200.088c%20-0.088%200.055%20-0.143%200.187%20-0.143%200.385v%206.094c%200%200.264%20-0.022%200.33%20-0.308%200.33Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5037E03A0CBEB30198DBAC9F97CDF04F%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.607%207.326c%20-0.561%200%20-1.034%20-0.198%20-1.441%20-0.594c%20-0.407%20-0.396%20-0.616%20-0.858%20-0.616%20-1.419c%200%20-0.374%200.275%20-0.649%200.616%20-0.649c%200.33%200%200.605%200.286%200.605%200.616c%200%200.363%20-0.264%200.616%20-0.616%200.616c%20-0.033%200%20-0.055%200%20-0.077%20-0.011c%200.209%200.539%200.693%201.012%201.386%201.012c%200.902%200%201.408%20-0.781%201.408%20-1.727c%200%20-0.737%20-0.374%20-1.529%20-1.122%20-2.365l%20-2.068%20-2.332c%20-0.143%20-0.165%20-0.132%20-0.154%20-0.132%20-0.473h%204.081l%200.319%201.98h%20-0.363c%20-0.088%20-0.561%20-0.165%20-0.88%20-0.231%20-0.979c%20-0.055%20-0.055%20-0.385%20-0.077%20-0.99%20-0.077h%20-1.837l%201.067%201.045c%200.748%200.704%201.694%201.463%202.013%202.046c%200.22%200.385%200.33%200.77%200.33%201.155c%200%201.298%20-1.012%202.156%20-2.332%202.156Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gC63E28D2FF745BC8AEDEB058F758CC95%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.333%203.883c%200.726%200.275%201.408%200.968%201.408%201.903c%200%200.473%20-0.231%200.858%20-0.682%201.155c%20-0.396%200.253%20-0.847%200.385%20-1.353%200.385c%20-0.495%200%20-0.924%20-0.132%20-1.309%20-0.385c%20-0.429%20-0.286%20-0.649%20-0.66%20-0.649%20-1.133c%200%20-0.363%200.242%20-0.616%200.594%20-0.616c%200.352%200%200.594%200.253%200.594%200.605c%200%200.363%20-0.209%200.561%20-0.627%200.583c%200.286%200.385%200.737%200.583%201.353%200.583c%200.66%200%200.99%20-0.385%200.99%20-1.166c%200%20-0.462%20-0.088%20-0.847%20-0.253%20-1.166c%20-0.297%20-0.528%20-0.704%20-0.627%20-1.386%20-0.627c%20-0.132%20-0.022%20-0.198%20-0.077%20-0.198%20-0.176c%200%20-0.165%200.077%20-0.165%200.297%20-0.165h%200.473c%200.825%200%201.243%20-0.583%201.243%20-1.76c%200%20-0.935%20-0.341%20-1.749%20-1.177%20-1.749c%20-0.715%200%20-1.243%200.242%20-1.562%200.726c%200.385%20-0.011%200.671%200.275%200.671%200.649c%200%200.374%20-0.275%200.649%20-0.649%200.649c%20-0.429%200%20-0.649%20-0.22%20-0.649%20-0.671c%200%20-0.539%200.242%20-0.968%200.726%20-1.309c%200.429%20-0.297%200.935%20-0.44%201.496%20-0.44c%200.627%200%201.166%200.209%201.639%200.616c%200.473%200.407%200.704%200.913%200.704%201.529c%200%201.034%20-0.814%201.749%20-1.694%201.98Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5B440C03A6991C2AE1CF687F6CF909A%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.883%207.447c%20-0.099%200%20-0.187%20-0.055%20-0.253%20-0.154l%20-3.322%20-5.104v%20-0.396h%202.871v%20-0.902c%200%20-0.198%20-0.044%20-0.33%20-0.121%20-0.385c%20-0.077%20-0.055%20-0.286%20-0.077%20-0.649%20-0.077h%20-0.275v%20-0.429c%200.319%200.022%200.825%200.033%201.507%200.033c%200.682%200%201.188%20-0.011%201.507%20-0.033v%200.429h%20-0.275c%20-0.363%200%20-0.572%200.022%20-0.649%200.077c%20-0.077%200.055%20-0.121%200.187%20-0.121%200.385v%200.902h%201.078v%200.429h%20-1.078v%205.038c%200%200.11%20-0.077%200.187%20-0.22%200.187Z%20m%20-0.638%20-1.364v%20-3.861h%20-2.508Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gA4AC33BF76001B15D203F6668E9483BD%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%205.797%204.103c%200%200.506%20-0.495%200.759%20-1.045%200.759c%20-0.473%200%20-0.847%20-0.253%20-1.133%20-0.759c%20-0.231%200.506%20-0.616%200.759%20-1.177%200.759c%20-0.539%200%20-0.979%20-0.253%20-1.331%20-0.748c%20-0.297%20-0.429%20-0.451%20-0.748%20-0.451%20-0.957c%200%20-0.099%200.055%20-0.154%200.165%20-0.154c%200.099%200%200.165%200.055%200.187%200.154c%200.209%200.638%200.671%201.386%201.408%201.386c%200.363%200%200.539%20-0.231%200.539%20-0.682c%200%20-0.231%20-0.198%20-1.089%20-0.583%20-2.563c%20-0.187%20-0.737%20-0.517%20-1.1%20-0.99%20-1.1c%20-0.154%200%20-0.297%200.033%20-0.418%200.088c%200.286%200.11%200.429%200.308%200.429%200.594c%200%200.286%20-0.143%200.429%20-0.44%200.429c%20-0.363%200%20-0.638%20-0.308%20-0.638%20-0.671c%200%20-0.506%200.517%20-0.759%201.056%20-0.759c%200.462%200%200.836%200.253%201.133%200.759c%200.209%20-0.506%200.605%20-0.759%201.177%20-0.759c%200.528%200%200.968%200.253%201.32%200.748c%200.297%200.429%200.451%200.748%200.451%200.957c%200%200.099%20-0.055%200.154%20-0.165%200.154c%20-0.099%200%20-0.154%20-0.055%20-0.187%20-0.154c%20-0.187%20-0.627%20-0.682%20-1.386%20-1.397%20-1.386c%20-0.363%200%20-0.55%200.22%20-0.55%200.671c%200%200.143%200.055%200.451%200.176%200.946l%200.374%201.485c%200.209%200.825%200.55%201.243%201.034%201.243c%200.154%200%200.297%20-0.033%200.418%20-0.088c%20-0.297%20-0.099%20-0.44%20-0.297%20-0.44%20-0.594c%200%20-0.286%200.154%20-0.429%200.451%20-0.429c%200.352%200%200.627%200.319%200.627%200.671Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gC4346895D6C96E8B0D9A48E3FDBF3CF0%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%201.793%204.862c%20-0.495%200%20-0.88%20-0.275%20-1.155%20-0.825c%20-0.209%20-0.429%20-0.319%20-0.726%20-0.319%20-0.891c%200%20-0.099%200.055%20-0.154%200.176%20-0.154c%200.154%200%200.165%200.066%200.209%200.231c%200.253%200.869%200.605%201.309%201.056%201.309c%200.143%200%200.22%20-0.099%200.22%20-0.297c%200%20-0.176%20-0.055%20-0.429%20-0.176%20-0.748c%20-0.418%20-1.133%20-0.627%20-1.892%20-0.627%20-2.299c%200%20-0.836%200.517%20-1.331%201.364%20-1.331c%200.363%200%200.704%200.132%201.012%200.396c%20-0.385%20-1.452%20-0.99%20-2.178%20-1.815%20-2.178c%20-0.374%200%20-0.627%200.121%20-0.759%200.363c%200.44%200.022%200.66%200.231%200.66%200.627c%200%200.275%20-0.143%200.418%20-0.44%200.418c%20-0.407%200%20-0.649%20-0.341%20-0.649%20-0.748c%200%20-0.605%200.55%20-0.99%201.188%20-0.99c%201.265%200%202.299%201.166%202.574%202.244l%201.034%204.158c%200.033%200.121%200.044%200.209%200.044%200.264c%200%200.22%20-0.121%200.33%20-0.352%200.33c%20-0.176%200%20-0.319%20-0.088%20-0.418%20-0.253c%20-0.066%20-0.231%20-0.121%20-0.429%20-0.154%20-0.594l%20-0.704%20-2.827c%20-0.11%20-0.396%20-0.693%20-0.891%20-1.188%20-0.891c%20-0.418%200%20-0.627%200.275%20-0.627%200.836c%200%200.462%200.187%201.166%200.55%202.112c%200.143%200.385%200.22%200.649%200.22%200.803c%200%200.539%20-0.385%200.935%20-0.924%200.935Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g7BBCA3A6E8F7C4EFED08401CADD05022%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.836%200.011v%207.337h%202.299q%200.902%200%201.5895%20-0.176q%200.6875%20-0.176%201.078%20-0.6545q%200.3905%20-0.4785%200.3905%20-1.3915q%200%20-0.902%20-0.3905%20-1.3805q%20-0.3905%20-0.4785%20-1.078%20-0.649q%20-0.6875%20-0.1705%20-1.5895%20-0.1705h%20-1.265v%20-2.915h%20-1.034Z%20m%201.034%203.806h%201.353q%200.539%200%200.968%200.077q%200.429%200.077%200.6875%200.3575q%200.2585%200.2805%200.2585%200.8745q%200%200.605%20-0.2585%200.891q%20-0.2585%200.286%20-0.6875%200.374q%20-0.429%200.088%20-0.968%200.088h%20-1.353v%20-2.662Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gAB87DF46BD16BB429BA1A7AAD7177B35%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%200.77%200v%205.456h%200.671l%200.297%20-1.012q%200.286%200.495%200.7755%200.7975q%200.4895%200.3025%201.1715%200.3025v%20-0.957q%20-0.077%200%20-0.1595%200q%20-0.0825%200%20-0.1595%20-0.011q%20-0.935%20-0.077%20-1.3035%20-0.649q%20-0.3685%20-0.572%20-0.3685%20-1.584v%20-2.343h%20-0.924Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gF7AC29E1E5FA5B1D800F0E84A8D3FE3D%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.091%20-0.132q%20-0.858%200%20-1.452%200.3795q%20-0.594%200.3795%20-0.9075%201.023q%20-0.3135%200.6435%20-0.3135%201.4465q%200%200.869%200.352%201.5015q%200.352%200.6325%200.9515%200.979q%200.5995%200.3465%201.3475%200.3465q%200.649%200%201.144%20-0.2585q%200.495%20-0.2585%200.8195%20-0.693q%200.3245%20-0.4345%200.473%20-0.9845q%200.1485%20-0.55%200.1045%20-1.133h%20-4.202q%200.022%20-0.682%200.3025%20-1.078q%200.2805%20-0.396%200.6655%20-0.5555q%200.385%20-0.1595%200.715%20-0.1595q%200.462%200%200.7755%200.1485q%200.3135%200.1485%200.5005%200.3905l%200.891%20-0.264q%20-0.297%20-0.473%20-0.847%20-0.781q%20-0.55%20-0.308%20-1.32%20-0.308Z%20m%20-1.672%203.344h%203.212q%200%200.385%20-0.1925%200.737q%20-0.1925%200.352%20-0.539%200.5775q%20-0.3465%200.2255%20-0.8305%200.2255q%20-0.407%200%20-0.77%20-0.154q%20-0.363%20-0.154%20-0.5995%20-0.495q%20-0.2365%20-0.341%20-0.2805%20-0.891Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g9EF63D054B583A6C046C6561E44D1A02%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.959%20-0.132q%20-0.781%200%20-1.353%200.3685q%20-0.572%200.3685%20-0.88%201.0065q%20-0.308%200.638%20-0.308%201.463q%200%200.814%200.3245%201.4575q%200.3245%200.6435%200.9185%201.012q%200.594%200.3685%201.397%200.3685q%200.737%200%201.265%20-0.363q%200.528%20-0.363%200.792%20-0.869l%20-0.847%20-0.308q%20-0.176%200.33%20-0.517%200.528q%20-0.341%200.198%20-0.759%200.198q%20-0.407%200%20-0.77%20-0.2145q%20-0.363%20-0.2145%20-0.583%20-0.66q%20-0.22%20-0.4455%20-0.22%20-1.1385q%200%20-0.682%200.2255%20-1.1385q%200.2255%20-0.4565%200.583%20-0.6765q%200.3575%20-0.22%200.7645%20-0.22q%200.451%200%200.7865%200.2035q%200.3355%200.2035%200.5115%200.5115l%200.847%20-0.308q%20-0.308%20-0.528%20-0.88%20-0.8745q%20-0.572%20-0.3465%20-1.298%20-0.3465Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g57D3529217C3A6743CC82693749EA69E%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%201.716%206.49q%20-0.275%200%20-0.4785%200.2035q%20-0.2035%200.2035%20-0.2035%200.4895q%200%200.286%200.2035%200.484q%200.2035%200.198%200.4785%200.198q%200.286%200%200.4895%20-0.198q%200.2035%20-0.198%200.2035%20-0.484q%200%20-0.286%20-0.2035%20-0.4895q%20-0.2035%20-0.2035%20-0.4895%20-0.2035Z%20m%20-0.462%20-6.49v%204.719h%20-0.759v%200.737h%201.683v%20-5.456h%20-0.924Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gE5F280739ED3D38E7C118623375A336C%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%203.036%20-0.132q%20-0.473%200%20-0.935%200.165q%20-0.462%200.165%20-0.8415%200.5115q%20-0.3795%200.3465%20-0.6105%200.8855q%20-0.231%200.539%20-0.231%201.276q%200%200.737%200.231%201.276q%200.231%200.539%200.6105%200.8855q%200.3795%200.3465%200.8415%200.5115q%200.462%200.165%200.935%200.165q%200.473%200%200.9405%20-0.165q%200.4675%20-0.165%200.847%20-0.5115q%200.3795%20-0.3465%200.605%20-0.8855q%200.2255%20-0.539%200.2255%20-1.276q%200%20-0.737%20-0.2255%20-1.276q%20-0.2255%20-0.539%20-0.605%20-0.8855q%20-0.3795%20-0.3465%20-0.847%20-0.5115q%20-0.4675%20-0.165%20-0.9405%20-0.165Z%20m%200%200.814q%200.396%200%200.77%200.2145q%200.374%200.2145%200.616%200.66q%200.242%200.4455%200.242%201.1495q%200%200.704%20-0.242%201.1495q%20-0.242%200.4455%20-0.616%200.66q%20-0.374%200.2145%20-0.77%200.2145q%20-0.385%200%20-0.7645%20-0.2145q%20-0.3795%20-0.2145%20-0.6215%20-0.66q%20-0.242%20-0.4455%20-0.242%20-1.1495q%200%20-0.704%200.242%20-1.1495q%200.242%20-0.4455%200.6215%20-0.66q%200.3795%20-0.2145%200.7645%20-0.2145Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gB4C902E48C8D391C4615AFFB0E611714%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.497%20-0.132q%20-0.638%200%20-1.023%200.2695q%20-0.385%200.2695%20-0.5555%200.748q%20-0.1705%200.4785%20-0.1705%201.0945v%203.487h%200.924v%20-3.267q%200%20-0.605%200.143%20-0.935q%200.143%20-0.33%200.4015%20-0.4565q%200.2585%20-0.1265%200.5995%20-0.1265q%200.649%200%201.0175%200.4565q%200.3685%200.4565%200.3685%201.3255v%203.003h%200.924v%20-5.467h%20-0.693l%20-0.231%200.792q%20-0.231%20-0.396%20-0.627%20-0.66q%20-0.396%20-0.264%20-1.078%20-0.264Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gC7F2A8BD7C0771BB10ADE18F2DA062E4%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.629%20-0.132q%20-0.473%200%20-0.9295%200.1485q%20-0.4565%200.1485%20-0.814%200.451q%20-0.3575%200.3025%20-0.5445%200.7645l%200.891%200.33q%200.121%20-0.484%200.5335%20-0.6985q%200.4125%20-0.2145%200.8635%20-0.2145q%200.33%200%200.6215%200.099q%200.2915%200.099%200.4785%200.286q%200.187%200.187%200.187%200.429q%200%200.451%20-0.3575%200.638q%20-0.3575%200.187%20-0.8525%200.286l%20-0.759%200.154q%20-0.396%200.088%20-0.737%200.2475q%20-0.341%200.1595%20-0.55%200.4565q%20-0.209%200.297%20-0.209%200.792q%200%200.495%200.308%200.8305q%200.308%200.3355%200.7865%200.5115q%200.4785%200.176%201.0065%200.176q%200.649%200%201.2265%20-0.2695q%200.5775%20-0.2695%200.8195%20-0.8415l%20-0.869%20-0.319q%20-0.143%200.33%20-0.5005%200.4895q%20-0.3575%200.1595%20-0.7425%200.1595q%20-0.418%200%20-0.759%20-0.187q%20-0.341%20-0.187%20-0.341%20-0.539q%200%20-0.352%200.2915%20-0.5115q%200.2915%20-0.1595%200.7205%20-0.2475l%200.715%20-0.143q%200.44%20-0.088%200.836%20-0.253q%200.396%20-0.165%200.649%20-0.4895q%200.253%20-0.3245%200.253%20-0.9075q%200%20-0.517%20-0.319%20-0.88q%20-0.319%20-0.363%20-0.825%20-0.5555q%20-0.506%20-0.1925%20-1.078%20-0.1925Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g893222D8CF08D9CD9F08DB357E0DE2B9%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.761%20-0.132q%20-0.616%200%20-1.155%200.3355q%20-0.539%200.3355%20-0.8635%200.968q%20-0.3245%200.6325%20-0.3245%201.5345q%200%200.902%200.3245%201.5345q%200.3245%200.6325%200.8635%200.968q%200.539%200.3355%201.155%200.3355q%200.649%200%201.089%20-0.2585q%200.44%20-0.2585%200.682%20-0.6875v%202.75h%200.924v%20-5.291q%200%20-0.275%200.022%20-0.8085q%200.022%20-0.5335%200.165%20-1.2485h%20-0.869l%20-0.242%200.825q%20-0.242%20-0.44%20-0.682%20-0.6985q%20-0.44%20-0.2585%20-1.089%20-0.2585Z%20m%200.242%200.792q%200.704%200%201.1275%200.539q%200.4235%200.539%200.4235%201.507q%200%200.979%20-0.4235%201.5125q%20-0.4235%200.5335%20-1.1275%200.5335q%20-0.704%200%20-1.1275%20-0.5335q%20-0.4235%20-0.5335%20-0.4235%20-1.5125q%200%20-0.968%200.4235%20-1.507q%200.4235%20-0.539%201.1275%20-0.539Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22g5C3AABF9E729631755B8B12BA5F35AAD%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.299%20-0.132q%20-0.517%200%20-0.946%200.187q%20-0.429%200.187%20-0.682%200.539q%20-0.253%200.352%20-0.253%200.847q%200%200.649%200.4565%201.023q%200.4565%200.374%201.287%200.5775q%200.8305%200.2035%201.9415%200.3245q%200.022%200.693%20-0.275%201.067q%20-0.297%200.374%20-0.957%200.374q%20-0.495%200%20-0.8085%20-0.2255q%20-0.3135%20-0.2255%20-0.4015%20-0.6215l%20-0.891%200.264q%200.22%200.627%200.7865%200.9735q%200.5665%200.3465%201.3035%200.3465q%201.133%200%201.6555%20-0.5335q%200.5225%20-0.5335%200.5225%20-1.6775v%20-1.276q%200%20-0.682%200.055%20-1.177q%200.055%20-0.495%200.132%20-0.88h%20-0.847l%20-0.22%200.748q%20-0.242%20-0.407%20-0.693%20-0.6435q%20-0.451%20-0.2365%20-1.166%20-0.2365Z%20m%200.198%200.737q%200.429%200%200.814%200.154q%200.385%200.154%200.627%200.5225q%200.242%200.3685%200.242%201.0065v%200.341q%20-0.836%20-0.088%20-1.452%20-0.2145q%20-0.616%20-0.1265%20-0.9515%20-0.352q%20-0.3355%20-0.2255%20-0.3355%20-0.5995q%200%20-0.385%200.2805%20-0.6215q%200.2805%20-0.2365%200.7755%20-0.2365Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3Csymbol%20id%3D%22gEB5211937D607FFB591FCEE3719D218E%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M%200%200m%202.431%200q%20-0.517%200%20-0.7975%200.1045q%20-0.2805%200.1045%20-0.385%200.4015q%20-0.1045%200.297%20-0.1045%200.858v%203.355h%20-0.924v%200.737h%200.924v%201.375h%200.924v%20-1.375h%201.056v%20-0.737h%20-1.056v%20-3.201q%200%20-0.418%200.0825%20-0.561q%200.0825%20-0.143%200.4785%20-0.143h%200.495v%20-0.814h%20-0.693Z%20%22%20%2F%3E%3C%2Fsymbol%3E%3C%2Fdefs%3E%3Cdefs%3E%3Cclippath%20id%3D%22cB43DEB99DE931151D6B0B15873618090%22%3E%3Cpath%20d%3D%22M%200%200h%20350v%20200h%20-350Z%20%22%20%2F%3E%3C%2Fclippath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E"><figcaption><figcaption>Figure&#160;1: Cool data</figcaption></figcaption></figure><h2>Ending paragraph</h2><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique.</p><footer><ol><li id="footnote-1" role="doc-footnote">wow what an interesting footnote with some <strong>formatting</strong> <a href="#footnote-return-1" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-2" role="doc-footnote">wow how interesting so good and interesting <a href="https://typst.app">https://typst.app</a> <a href="#footnote-return-2" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-3" role="doc-footnote"><math><mn>6</mn><mo>+</mo><mn>7</mn></math> wow good footnote <a href="#footnote-return-3" role="doc-backlink" aria-label="Back to content">↩︎</a></li><li id="footnote-4" role="doc-footnote">extremely long footnote Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre audiebam facete. <a href="#footnote-return-4" role="doc-backlink" aria-label="Back to content">↩︎</a></li></ol></footer>]]></content>
    </entry>
  
    </feed>