/* ==UserStyle== @name Dark-Telegram @namespace github.com/Barina/Dark-Telegram @homepageURL https://github.com/Barina/Dark-Telegram @supportURL https://github.com/Barina/Dark-Telegram/issues @updateURL https://raw.githubusercontent.com/Barina/Dark-Telegram/master/Dark-Telegram.user.styl @version 1.14.48 @description Customizable theme for telegram web. @author Roy Barina @license MIT @preprocessor stylus @var select browser 'Browser'{ 'Chromium (Chrome, Edge etc) *': 'chromium', 'FireFox ': 'firefox', 'Other ': 'other', } @var text windowwidth 'Window width' 75% @var range contactlistwidth 'Contact list width' [31, 5, 80, 1, "%"] @var color textc2 'Headers text color' #fff @var color textc1 'Primary text color' #ccccca @var color textc3 'Secondary text color' #6e6e6e @var checkbox customFont 'Use custom font' 0 @var text ui_font 'Font family' 'sans-serif' @var range msgb 'Messages bubble corner size' [10, 1, 100, 1, "px"] @var color msg-in-bg 'Incoming message background color' #3c434f @var color msg-out-bg 'Outgoing message background color' #333a47 @var select inpos 'Incoming bubble position'{ 'Left *': 'left', 'Right ': 'right', 'Stretch ': 'stretch' } @var select outpos 'Outgoing bubble position'{ 'Left ': 'left', 'Right *': 'right', 'Stretch ': 'stretch' } @var select tail 'Messages tail' { 'None ': 'notail', 'Round Corner *': 'roundtail', 'Triangle ': 'tritail', 'Sharp Corner ': 'recttail', } @var text msgwmax-in 'Incoming message maximum width' 750px @var text msgwmax-out 'Outgoing message maximum width' 550px @var text prevw 'Media preview width' 350px @var text prevh 'Media preview height' 220px @var checkbox prevs 'Keep media previews squared (height will use width value so it will not work when using percentage)' 0 @var checkbox centerauthor 'Center author name within chat bubbles' 0 @var select texta 'Messages text align' { 'Auto ': 'textaauto', 'Unset ': 'unset', 'Start *': 'Start', 'End ': 'end', 'Center ': 'center', 'Left ': 'left', 'Right ': 'right', } @var checkbox hideothericon 'Hide other contact user photo from chat window' 1 @var checkbox hideownicon 'Hide own user photo from chat window' 1 @var checkbox hideownname 'Hide own name from private chat bubbles' 1 @var checkbox hideothername 'Hide other name from private chat bubbles' 1 @var checkbox hideownnamegr 'Hide own name from group chat bubbles' 1 @var checkbox hideothernamegr 'Hide other name from group chat bubbles' 0 @var checkbox shownamehover 'Show name when hover on chat bubbles' 0 @var checkbox showothernamehover 'Show other names when hover on chat bubbles' 1 @var checkbox autohidedata 'Auto hide extra message data' 1 @var color bgcolor 'Background color' #1f232a @var color border 'Border color' #333943 @var range border-size 'Border size' [3, 0, 50, 1, "px"] @var color control 'Base control color' #252A33 @var color control-hover 'Control hover color' #292f38 @var color control-active 'Control active color' #343b46 @var color inputbg 'Input background color' #1c2026 @var color shadow 'Shadow color' #00000040 @var color btn-bg 'Buttons color' #2b313b @var color btn-bg-h 'Hover buttons color' #363d4a @var color accent 'Accent color' #7289da @var range round 'User photo round' [25, 0, 50, 1, "%"] @var checkbox enableCompact 'Enable compact mode' 1 @var text compactBreak 'Compact mode breakpoint' 1080px @var text compactDelayOn 'Compact mode hover-on delay' 0.25s @var text compactDelayOff 'Compact mode hover-off delay' 1s @var range comTranDurOn 'Compact mode transition on duration' [0.7, 0, 5, .1, "s"] @var range comTranDurOff 'Compact mode transition off duration' [1.2, 0, 5, .1, "s"] @var checkbox useChatSize 'Use custom chat width' 0 @var number chatSize 'Chat width in px' [780, 0] @var color bgccolor 'Chat background color' #1f232a @var checkbox showchatbg 'Enable chat background image' 1 @var text chatbg 'Custom image for chat' url('https://web.whatsapp.com/img/bg-chat-tile_9e8a2898faedb7db9bf5638405cf81ae.png') @var range chatbg-o 'Chat background image opacity' [0.15, 0.0, 1, 0.01] @var range chatbg-i 'Chat background image inverted colors' [0.6, 0.0, 1, 0.1] @var select app_image 'Custom app background' { 'Default background *': 'default', 'None ': 'none', } @var text bgimage 'Custom background image' url('https://images.unsplash.com/photo-1434569117012-ce134ee1a088?fit=crop&w=1280&h=720&q=80') @var range bgopacity 'Background image opacity' [0.4, 0.0, 1, 0.01] @var range bgblur 'Background image blur size' [12, 0, 50, 1, 'px'] @var range bghue 'Background image hue' [320, 0, 360, 1, 'deg'] @var range bginvert 'Background image invert colors' [0, 0.0, 1, 0.1] @var checkbox noise 'Enable noise' 0 @var text noiseimg 'Noise image' url('https://raw.githubusercontent.com/Barina/Dark-Telegram/master/Resources/noise.png') @var checkbox vign 'Vignette effect on media previews' 1 @var range emoj-scale 'Emoji panel scale' [1, .5, 3, .01] @var range emojo 'Emoji and sticker icons opacity' [.6, 0, 1, .01] @var select emoj-pos 'Emoji and sticker popup position' { 'Center *': 'center', 'Right ': 'right', 'Left ': 'left', } @var checkbox private 'Enable private mode' 0 @var checkbox shift-anim 'Enable contacts shift animation on mouse hover' 1 @var checkbox hideinitials 'Hide contact initials' 1 @var checkbox useicons 'Enable custom contact icons' 1 @var text contacticon 'Contact icon url' url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxz%0D%0AdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxu%0D%0AczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6%0D%0ALy93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0%0D%0AcDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw%0D%0AL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQv%0D%0ARFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2Fw%0D%0AZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAwIDIxMiAyMTIiCiAgIHdp%0D%0AZHRoPSIyMTIiCiAgIGhlaWdodD0iMjEyIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczNzI5%0D%0AIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjb250YWN0LWljb24uc3ZnIgogICBpbmtzY2FwZTp2ZXJz%0D%0AaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIj4KICA8bWV0YWRhdGEKICAgICBp%0D%0AZD0ibWV0YWRhdGEzNzM1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICBy%0D%0AZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+%0D%0ACiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9y%0D%0AZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpS%0D%0AREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzMzczMyIgLz4KICA8c29kaXBv%0D%0AZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIj%0D%0ANjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIK%0D%0AICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5r%0D%0Ac2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBp%0D%0AbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0i%0D%0AMTM2MSIKICAgICBpZD0ibmFtZWR2aWV3MzczMSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAg%0D%0AaW5rc2NhcGU6c25hcC1nbG9iYWw9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1iYm94PSJ0cnVl%0D%0AIgogICAgIGlua3NjYXBlOmJib3gtcGF0aHM9InRydWUiCiAgICAgaW5rc2NhcGU6YmJveC1ub2Rl%0D%0Acz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLWJib3gtZWRnZS1taWRwb2ludHM9InRydWUiCiAg%0D%0AICAgaW5rc2NhcGU6c25hcC1iYm94LW1pZHBvaW50cz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFw%0D%0ALWludGVyc2VjdGlvbi1wYXRocz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLXNtb290aC1ub2Rl%0D%0Acz0idHJ1ZSIKICAgICBpbmtzY2FwZTp6b29tPSI0IgogICAgIGlua3NjYXBlOmN4PSIxMTAuMTgx%0D%0AMzYiCiAgICAgaW5rc2NhcGU6Y3k9Ijk5LjU3MDIyOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0i%0D%0ALTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhp%0D%0AbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMzcyOSIgLz4KICA8cmVj%0D%0AdAogICAgIGZpbGw9IiMxZjIzMmEiCiAgICAgd2lkdGg9IjIxMiIKICAgICBoZWlnaHQ9IjIxMiIK%0D%0AICAgICBpZD0icmVjdDM3MjUiIC8+CiAgPHBhdGgKICAgICBjbGFzcz0icHJpbWFyeSIKICAgICBk%0D%0APSJtIDE3My41NjEsMTcxLjYxNSBjIC0wLjY1OTksLTEuMDA0NTcgLTEuMzQ4NTIsLTEuOTg5OTcg%0D%0ALTIuMDY1LC0yLjk1NSAtMC44MzQ5NiwtMS4xMjY0MSAtMS43MDQ3MSwtMi4yMjY2MSAtMi42MDgs%0D%0ALTMuMjk5IC0xLjAyMTE4LC0xLjIxMTMgLTIuMDgzMTIsLTIuMzg3NjUgLTMuMTg0LC0zLjUyNyAt%0D%0AMS44Njk2LC0xLjkzMzkzIC0zLjg0NzQ1LC0zLjc2MDIgLTUuOTI0LC01LjQ3IC0zLjE5NDUxLC0y%0D%0ALjYyOTAyIC02LjYwODMyLC00Ljk3OTYxIC0xMC4yMDQsLTcuMDI2IC0xLjk0Njg1LC0xLjEwNjg3%0D%0AIC0zLjk0MjE3LC0yLjEyNjIyIC01Ljk4LC0zLjA1NSAtMC4wNjIsLTAuMDI4IC0wLjExOCwtMC4w%0D%0ANTkgLTAuMTgsLTAuMDg3IC05Ljc5MiwtNC40NCAtMjIuMTA2LC03LjUyOSAtMzcuNDE2LC03LjUy%0D%0AOSAtMTUuMzEsMCAtMjcuNjI0LDMuMDg5IC0zNy40MTYsNy41MjkgLTAuMzM4LDAuMTUzIC0wLjY1%0D%0AMywwLjMxOCAtMC45ODUsMC40NzQgLTIuMTI2NjI3LDEuMDAxNTkgLTQuMjA1MjMzLDIuMTAyMTMg%0D%0ALTYuMjI5LDMuMjk4IC0zLjIwOTYzMywxLjg5MzYzIC02LjI2ODY3Niw0LjAzMTYyIC05LjE1LDYu%0D%0AMzk1IC0yLjA3NjM0NywxLjcxMDA0IC00LjA1NDE4LDMuNTM2MjkgLTUuOTI0LDUuNDcgLTEuMTAw%0D%0AOTA1LDEuMTM5MzMgLTIuMTYyODQ5LDIuMzE1NjcgLTMuMTg0LDMuNTI3IC0wLjkwMzkwNSwxLjA3%0D%0AMjE1IC0xLjc3Mzk5OCwyLjE3MjM2IC0yLjYwOSwzLjI5OSAtMC43MTYyNTIsMC45NjUxOSAtMS40%0D%0AMDQ4NjQsMS45NTA1OSAtMi4wNjUsMi45NTUgQyAzMC4xNjczMjYsMTg0LjAyMDIzIDI1LjkzNDQx%0D%0ANiwxOTYuOTgyNzUgMjMuODc5NzI5LDIxMiBIIDEwNS45NDQgMTg2Ljk3MjM2IGMgLTIuMDU0ODgs%0D%0ALTEzLjQ0ODA3IC01LjA0Nzk1LC0yNi4yMjk3NiAtMTEuOTY1MzYsLTM4LjA2Mjk5IC0wLjQ2Mzc5%0D%0ALC0wLjc4NTE5IC0wLjk0NTkyLC0xLjU1OTQxIC0xLjQ0NiwtMi4zMjIgeiBNIDEwNi4wMDIsMTI1%0D%0ALjUgYyAyLjY0NSwwIDUuMjEyLC0wLjI1MyA3LjY4LC0wLjczNyAxLjIyMTg2LC0wLjIzOTU0IDIu%0D%0ANDMxMjksLTAuNTM4NTYgMy42MjQsLTAuODk2IDEuNzUyNTksLTAuNTI1NiAzLjQ2MzkyLC0xLjE4%0D%0AMDA1IDUuMTIsLTEuOTU4IDIuMTY1OTQsLTEuMDE3NjYgNC4yMjU5NiwtMi4yNDY5NyA2LjE1LC0z%0D%0ALjY3IDMuODI1OTcsLTIuODMwMyA3LjA1MTQyLC02LjM5MjYxIDkuNDg5LC0xMC40OCAwLjkyNTgx%0D%0ALC0xLjU1MTI3IDEuNzM1MzYsLTMuMTY5MDQgMi40MjIsLTQuODQgMC43MDE4MiwtMS43MDQ4NyAx%0D%0ALjI3NTQyLC0zLjQ1OTc0MyAxLjcxNiwtNS4yNSAwLjI5OSwtMS4yMDggMC41NDIsLTIuNDQzIDAu%0D%0ANzI1LC0zLjcwMSAwLjI3NSwtMS44ODcgMC40MTcsLTMuODI3IDAuNDE3LC01LjgxMSAwLC0xLjk4%0D%0ANCAtMC4xNDIsLTMuOTI1IC0wLjQxNywtNS44MTEgLTAuMjcxMjcsLTEuODU4MzY3IC0wLjY3NzM0%0D%0ALC0zLjY5NDU0NCAtMS4yMTUsLTUuNDk0IC0wLjg2ODI0LC0yLjkwNjE5IC0yLjA5MzU5LC01LjY5%0D%0AMzQ2OCAtMy42NDgsLTguMjk4IC0yLjQzNzU4LC00LjA4NzM5NCAtNS42NjMwMywtNy42NDk3MDIg%0D%0ALTkuNDg5LC0xMC40OCAtMS45MjQxOCwtMS40MjI4MDkgLTMuOTg0MTgsLTIuNjUyMTA4IC02LjE1%0D%0ALC0zLjY3IC0xLjY1NjA4LC0wLjc3Nzk0OCAtMy4zNjc0MSwtMS40MzIzOTggLTUuMTIsLTEuOTU4%0D%0AIC0xLjE5MjQ1LC0wLjM1ODM3NyAtMi40MDE5MywtMC42NTc0MSAtMy42MjQsLTAuODk2IC0yLjUz%0D%0AMDE2LC0wLjQ5MzMzNCAtNS4xMDIyLC0wLjc0MDE1NiAtNy42OCwtMC43MzcgLTIxLjE2MiwwIC0z%0D%0ANy4zNDUsMTYuMTgzIC0zNy4zNDUsMzcuMzQ1IDAsMjEuMTU5IDE2LjE4MywzNy4zNDIgMzcuMzQ1%0D%0ALDM3LjM0MiB6IgogICAgIGlkPSJwYXRoMzcyNyIKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3Vy%0D%0AdmF0dXJlPSIwIgogICAgIHN0eWxlPSJmaWxsOiNhMWExYTEiCiAgICAgc29kaXBvZGk6bm9kZXR5%0D%0AcGVzPSJzY2NjY2NjY3NjY2NjY2NjY2NjY2Njc3NjY2NjY2Njc2NjY2NjY2Njc3NzIiAvPgo8L3N2%0D%0AZz4K") @var text groupicon 'Group icon url' url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmOCI/Pg0KPHN2ZyB4bWxucz0iaHR0cDov%0D%0AL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMTIgMjEyIiB3aWR0aD0iMjEyIiBo%0D%0AZWlnaHQ9IjIxMiI+DQogICAgPHJlY3QgZmlsbD0iIzFmMjMyYSIgd2lkdGg9IjIxMiIgaGVpZ2h0%0D%0APSIyMTIiLz4NCiAgICA8cGF0aCBmaWxsPSIjYTFhMWExIiBjbGFzcz0icHJpbWFyeSIgZD0iTTYx%0D%0ALjU0MyAxMDAuOTg4YzguMDczIDAgMTQuMjQ2LTYuMTc0IDE0LjI0Ni0xNC4yNDZzLTYuMTczLTE0%0D%0ALjI0Ni0xNC4yNDYtMTQuMjQ2LTE0LjI0NiA2LjE3My0xNC4yNDYgMTQuMjQ2IDYuMTc0IDE0LjI0%0D%0ANiAxNC4yNDYgMTQuMjQ2em04LjE1OSAxNy41NDFhNDguMTkyIDQ4LjE5MiAwIDAgMSA4LjU0NS02%0D%0ALjA2MmMtNC4xNzQtMi4yMTctOS42NDEtMy44NTktMTYuNzA0LTMuODU5LTIxLjg0NCAwLTI4LjQ5%0D%0AMiAxNS42Ny0yOC40OTIgMTUuNjd2OC4wNzNoMjYuMTgxbC4xMDUtLjI0OGMuMzAzLS43MTMgMy4x%0D%0ANjQtNy4xNTEgMTAuMzY1LTEzLjU3NHptODAuNzU1LTkuOTIxYy02Ljg1NCAwLTEyLjIxIDEuNTQz%0D%0ALTE2LjMzNiAzLjY2MWE0OC4yMjMgNDguMjIzIDAgMCAxIDguOTAzIDYuMjZjNy4yMDEgNi40MjIg%0D%0AMTAuMDYxIDEyLjg2MSAxMC4zNjQgMTMuNTc0bC4xMDUuMjQ4aDI1LjQ1NnYtOC4wNzNjLS4wMDEg%0D%0AMC02LjY0OS0xNS42Ny0yOC40OTItMTUuNjd6bTAtNy42MmM4LjA3MyAwIDE0LjI0Ni02LjE3NCAx%0D%0ANC4yNDYtMTQuMjQ2cy02LjE3My0xNC4yNDYtMTQuMjQ2LTE0LjI0Ni0xNC4yNDYgNi4xNzMtMTQu%0D%0AMjQ2IDE0LjI0NiA2LjE3MyAxNC4yNDYgMTQuMjQ2IDE0LjI0NnptLTQ0LjA5MyAzLjIxYTIzLjIx%0D%0AIDIzLjIxIDAgMCAwIDQuNDY0LS40MjhjLjcxNy0uMTQgMS40MTktLjMxNSAyLjEwNi0uNTIxIDEu%0D%0AMDMtLjMwOSAyLjAyMy0uNjkgMi45NzYtMS4xMzhhMjEuMDk5IDIxLjA5OSAwIDAgMCAzLjU3NC0y%0D%0ALjEzMyAyMC44NzIgMjAuODcyIDAgMCAwIDUuNTE1LTYuMDkxIDIxLjI4MyAyMS4yODMgMCAwIDAg%0D%0AMi4xMjEtNC44MjMgMjIuMTYgMjIuMTYgMCAwIDAgLjcwNi0zLjE5M2MuMTYtMS4wOTcuMjQyLTIu%0D%0AMjI0LjI0Mi0zLjM3N3MtLjA4My0yLjI4MS0uMjQyLTMuMzc3YTIyLjc3OCAyMi43NzggMCAwIDAt%0D%0ALjcwNi0zLjE5MyAyMS4yODMgMjEuMjgzIDAgMCAwLTMuMjcyLTYuNTUgMjAuODQ4IDIwLjg0OCAw%0D%0AIDAgMC00LjM2NC00LjM2NCAyMS4wOTkgMjEuMDk5IDAgMCAwLTMuNTc0LTIuMTMzIDIxLjQ4OCAy%0D%0AMS40ODggMCAwIDAtMi45NzYtMS4xMzggMjIuMzMgMjIuMzMgMCAwIDAtMi4xMDYtLjUyMSAyMy4y%0D%0AMDIgMjMuMjAyIDAgMCAwLTQuNDY0LS40MjhjLTEyLjI5OSAwLTIxLjcwNSA5LjQwNS0yMS43MDUg%0D%0AMjEuNzA0IDAgMTIuMjk5IDkuNDA2IDIxLjcwNCAyMS43MDUgMjEuNzA0ek0xNDUuNjI5IDEzMWEz%0D%0ANi43MzkgMzYuNzM5IDAgMCAwLTEuMi0xLjcxOCAzOS44MDQgMzkuODA0IDAgMCAwLTMuMzY3LTMu%0D%0AOTY3IDQxLjQ4MSA0MS40ODEgMCAwIDAtMy40NDItMy4xNzkgNDIuMDc4IDQyLjA3OCAwIDAgMC01%0D%0ALjkzMS00LjA4MyA0My43MjUgNDMuNzI1IDAgMCAwLTMuNDc2LTEuNzc2Yy0uMDM2LS4wMTYtLjA2%0D%0AOS0uMDM0LS4xMDQtLjA1LTUuNjkyLTIuNTgxLTEyLjg0OS00LjM3Ni0yMS43NDYtNC4zNzYtOC44%0D%0AOTggMC0xNi4wNTUgMS43OTUtMjEuNzQ2IDQuMzc2LS4xOTYuMDg5LS4zNzkuMTg1LS41NzIuMjc2%0D%0AYTQzLjMxNiA0My4zMTYgMCAwIDAtMy42MiAxLjkxNyA0Mi4zMiA0Mi4zMiAwIDAgMC01LjMxOCAz%0D%0ALjcxNiA0MS41MDEgNDEuNTAxIDAgMCAwLTMuNDQzIDMuMTc5IDQwLjYzMiA0MC42MzIgMCAwIDAt%0D%0AMy4zNjYgMy45NjdjLS40NTIuNjEtLjg1MSAxLjE4Ni0xLjIgMS43MTgtLjMyNC40OTMtLjYuOTQz%0D%0ALS44NDEgMS4zNTFsLS4wNjEuMTAxYTI3Ljk2IDI3Ljk2IDAgMCAwLS42MjIgMS4xMTljLS4zMjUu%0D%0ANjIxLS40NzUuOTc1LS40NzUuOTc1djExLjY5Mmg4Mi41M3YtMTEuNjkycy0uMzYtLjg0Mi0xLjE1%0D%0AOC0yLjE5NWEzNS40MTcgMzUuNDE3IDAgMCAwLS44NDItMS4zNTF6Ii8+DQo8L3N2Zz4=") @var checkbox fullscreen 'Enable fullscreen' 0 @var checkbox fancyselect 'Enable fancy selection mode' 1 @var range clight 'Colors lightness' [0.75, 0, 2, 0.01] @var range chue 'Colors hue' [320, 0, 360, 1, 'deg'] @var range ccon 'Colors contrast' [50, 0, 100, 1, "%"] @var checkbox customcolors 'Enable custom colors' 0 @var color usrc1 'User color 1' #6f5c8a @var color usrc2 'User color 2' #476845 @var color usrc3 'User color 3' #817356 @var color usrc4 'User color 4' #4e6274 @var color usrc5 'User color 5' #815956 @var color usrc6 'User color 6' #7d5464 @var color usrc7 'User color 7' #4e6974 @var color usrc8 'User color 8' #745e4e @var color usrbgc1 'User bg color 1' #9978a5 @var color usrbgc2 'User bg color 2' #6e9362 @var color usrbgc3 'User bg color 3' #9d926c @var color usrbgc4 'User bg color 4' #668399 @var color usrbgc5 'User bg color 5' #906060 @var color usrbgc6 'User bg color 6' #a37584 @var color usrbgc7 'User bg color 7' #669799 @var color usrbgc8 'User bg color 8' #9d806c @var text blurbehind 'Blur amount behind focused media' 8px @var checkbox poseon 'Enable pose mode' 0 ==/UserStyle== */ @-moz-document domain("web.telegram.org") { :root { /* auto generated line below. please do not delete or modify! */ --version "Dark-Telegram v1.14.48 -- February 19th, 2021" --message "Scan to report any issues on GitHub." --link "https://github.com/Barina/Dark-Telegram" --notice "Ported from: https://github.com/vednoc/dark-whatsapp" } /* ================================== * Basic Mixins & Functions * =================================== */ shad(){ -webkit-box-shadow arguments -moz-box-shadow arguments -webkit-shadow arguments -moz-shadow arguments box-shadow arguments } /* background */ bg() { Background arguments } bgc() { background-color arguments } bgi() { background-image arguments } bgs() { background-size arguments } /* * set a textured color for a given control * c: control color to use (default = control) */ bgTex(c = control) { bgc c i if(noise) { bgi noiseimg i } } /* border */ brad() { border-radius arguments } /* Clamping a given value by a given minimum and maximum. */ clamp(value, minimum, maximum){ max(minimum, min(maximum, value)) } /* colorize with the given arguments taking care when in posing mode. to ignore posing mode use 'color' instead of this. */ col(col, shrink = true){ if(poseon){ color transparent i bgi none i bgc col brad 4px if(shrink){ width max-content max-width min(chatSize, min(msgwmax-in, msgwmax-out)) - 100px } } else { color col } } /* override methods */ mask-image(){ -webkit-mask-image arguments -o-mask-image arguments -moz-mask-image arguments mask-image arguments } mask-position(){ mask-position arguments -webkit-mask-position arguments -o-mask-position arguments -moz-mask-position arguments } mask-repeat(){ mask-repeat arguments -webkit-mask-repeat arguments -o-mask-repeat arguments -moz-mask-repeat arguments } mask-size(){ mask-size arguments -webkit-mask-size arguments -o-mask-size arguments -moz-mask-size arguments } anim(){ animation arguments -webkit-animation arguments -o-animation arguments -moz-animation arguments -ms-animation arguments } /* ================================== * Variables * =================================== */ // this is important ;P i = !important uifont = ui_font 'Segoe UI' 'Helvetica Neue' Helvetica 'Lucida Grande' Arial Ubuntu Cantarell 'Fira Sans' sans-serif control-t = rgba(control, .5) control-t-hover = rgba(control-hover, .5) control-t-active = rgba(control-active, .5) vignette = (vign is 1 ? visible : hidden) version = var(--version) message = var(--message) link = var(--link) notice = var(--notice) t-in = .1s t-out = 1s msgb-thumb = msgb - 5 msgbgi = msg-in-bg msgbgo = msg-out-bg msgbgih = msgbgi + 10% msgbgoh = msgbgo + 10% msgbgis = msgbgi + 33% msgbgos = msgbgo + 33% // chat border size cbs = 3px accent-alt = accent + 33% accent-t = rgba(accent, .3) privateblur = (private is 1 ? 10px : 0) border-t = rgba(border, .1) icon-size = 42px if(prevs){ prevh = prevw } if(unit(msgwmax-in) != unit(prevw) and unit(prevw) == "%"){ prevwin = msgwmax-in * (prevw / 100) } else if(unit(msgwmax-in) == "%" and unit(prevw) != "%"){ prevwin = 100% } else if(unit(msgwmax-in) == "%" and unit(prevw) == "%"){ prevwin = prevw } else { prevwin = min(prevw, msgwmax-in) } if(unit(msgwmax-out) != unit(prevw) and unit(prevw) == "%"){ prevwout = msgwmax-out * (prevw / 100) } else if(unit(msgwmax-out) == "%" and unit(prevw) != "%"){ prevwout = 100% } else if(unit(msgwmax-out) == "%" and unit(prevw) == "%"){ prevwout = prevw } else { prevwout = min(prevw, msgwmax-out) } if(prevwin != unset and unit(prevwin) != "%"){ prevwin -= 26px } if(prevwout != unset and unit(prevwout) != "%"){ prevwout -= 26px } // set emoji popup position if(emoj-pos is right) { emoj-anchor-x = 12px emoj-l = -1px emoj-t-l = initial emoj-t-r = 260px } else if(emoj-pos is left) { emoj-anchor-x = 273px emoj-l = -263px emoj-t-l = initial emoj-t-r = -1px } else { /* center */ emoj-anchor-x = (286 / 2)px emoj-l = -133px emoj-t-l = 50% emoj-t-r = initial } /* setting up icon and contact name colors */ colors1 = usrc1 usrc2 usrc3 usrc4 usrc5 usrc6 usrc7 usrc8 colors2 = usrbgc1 usrbgc2 usrbgc3 usrbgc4 usrbgc5 usrbgc6 usrbgc7 usrbgc8 ch = hue-rotate(chue) cc = contrast(ccon) for c, n in colors1{ if(not customcolors){ c = hue(accent, 40 * n) } .user_color_{n+1} .user_color_{n+1}:hover{ col(c * clight i) filter ch cc } } for c, n in colors2{ if(not customcolors){ c = hue(accent, 40 * n) + 25% } .user_bgcolor_{n+1}{ bg c * clight i filter ch cc } } /* SVG icons */ bellSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZyB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIAogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAKICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiAKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIgCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIiAKICAgd2lkdGg9IjguODcyNDIxM21tIiAKICAgaGVpZ2h0PSIxMC42NTEwNDJtbSIgCiAgIHZpZXdCb3g9IjAgMCA4Ljg3MjQyMTMgMTAuNjUxMDQyIiAKICAgdmVyc2lvbj0iMS4xIiAKICAgaWQ9InN2ZzQ5MTYiIAogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIiAKICAgc29kaXBvZGk6ZG9jbmFtZT0iYmVsbC5zdmciPgogICA8ZGVmcyBpZD0iZGVmczQ5MTAiIC8+CiAgIDxzb2RpcG9kaTpuYW1lZHZpZXcgaWQ9ImJhc2UiIAogICAgICBwYWdlY29sb3I9IiNmZmZmZmYiIAogICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIgCiAgICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIgCiAgICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiIAogICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIiAKICAgICAgaW5rc2NhcGU6em9vbT0iNy45MTk1OTU5IiAKICAgICAgaW5rc2NhcGU6Y3g9IjM1LjkzMzE0MSIgCiAgICAgIGlua3NjYXBlOmN5PSI0MC4wMDIxOTUiIAogICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iIAogICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiIAogICAgICBzaG93Z3JpZD0iZmFsc2UiIAogICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiIAogICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIiAKICAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IiAKICAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IiAKICAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICAgPG1ldGFkYXRhIGlkPSJtZXRhZGF0YTQ5MTMiPgogICAgICA8cmRmOlJERj4KICAgICAgICAgPGNjOldvcmsgcmRmOmFib3V0PSIiPgogICAgICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICAgICAgPGRjOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgICAgIDwvY2M6V29yaz4KICAgICAgPC9yZGY6UkRGPgogICA8L21ldGFkYXRhPgogICA8ZyBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIgCiAgICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiIAogICAgICBpZD0ibGF5ZXIxIiAKICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAuODk0NTUyLC0yNTkuOTI0NDcpIj4KICAgICAgPHBhdGggc3R5bGU9ImZpbGw6IzdmN2Y3ZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIAogICAgICAgICBkPSJtIC0yNi40MjE0MzUsMjU5LjkyNDUgYyAtMC42NDMyNSwtMC4wMDUgLTAuODE2NDg4LDAuNTg1NSAtMC44MTY0ODgsMC41ODU1IGwgLTAuMDM3MjEsMC43NDcyNCBjIC0wLjg4Mjk4NSwwIC0yLjU0NDczNCwwLjgxNjA2IC0yLjU5NTE5LDIuNTY1MjIgMCwwIC0wLjA3MjQsMS42MDU1OCAtMC4wNzA4LDMuMzkzMDcgMi4zM2UtNCwwLjI2MTE0IC0wLjkzNDYxLDAuOTcyMzYgLTAuOTI5NjU5LDEuMTUyMzggMC4wMDQ2LDAuMTY2NjMgLTAuMDIzNzcsMC41NzUxNiAtMC4wMjM3NywwLjU3NTE2IGwgOC44NjA0NDEsMC4wMzYyIGMgMCwwIDAuMDAxOSwtMC4zNjUxNCAwLjAxMTg4LC0wLjU0NzI2IDAuMDExNSwtMC4yMDg2IC0wLjk3MTIwMiwtMC44MDkyNyAtMC45NzU2NTEsLTEuMDQ4NTEgLTAuMDE4MjksLTAuOTgzNDYgMC4wMjMyNSwtMy43NDE4OSAwLjAyMzI1LC0zLjc0MTg5IDAuMDE2ODIsLTEuMDc2NCAtMS4zNTMzMjUsLTIuNDAxMDMgLTIuNjgyMDA3LC0yLjM5MjYyIGwgLTAuMDAyNiwtMC43MzU4NyBjIDAsMCAtMC4xMjk1MSwtMC41ODM3OCAtMC43NjIyMjcsLTAuNTg4NiB6IG0gMC45NTIzOTYsOS42MTY0NyAtMi4wMTg0ODEsMC4wMjUzIGMgMCwwIC0wLjAyOTksMS4wMDkyNCAxLjAwOTI0MSwxLjAwOTI0IDAuOTk1NDIsMCAxLjAwOTI0LC0xLjAzNDU2IDEuMDA5MjQsLTEuMDM0NTYgeiIgCiAgICAgICAgIGlkPSJwYXRoNDcyNSIgCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIAogICAgICAgICBpbmtzY2FwZTpsYWJlbD0iYmVsbCIgLz4KICAgPC9nPgo8L3N2Zz4K') bubbleSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTAuNDkzOTMzbW0iCiAgIGhlaWdodD0iMTAuNTMwMW1tIgogICB2aWV3Qm94PSIwIDAgMTAuNDkzOTMzIDEwLjUzMDEiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzUwNTQiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImJ1YmJsZS5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM1MDQ4IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIxNS44MzkxOTIiCiAgICAgaW5rc2NhcGU6Y3g9IjI1LjI5MjIwOCIKICAgICBpbmtzY2FwZTpjeT0iMjAuNDEwNTY2IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE1MDUxIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjguODM2NDAyLC0xNjguNTE0NzEpIj4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojN2Y3ZjdmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2Mzg0NDA3O3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDcwLjAwNjMyMywxNjguNTE0NzIgYyAtMC42NDU3MjgsMCAtMS4xNjU4MjEsMC41MjAwOSAtMS4xNjU4MjEsMS4xNjU4MiB2IDYuMDY4MzcgbCAtMC4wMDQxLC01LjNlLTQgdiAzLjI5NjQzIGwgMS44NzI3NTQsLTIuMTE2MTQgaCA3LjQ1NTg3NSBjIDAuNjQ1NzI4LDAgMS4xNjUzMDQsLTAuNTE5NTggMS4xNjUzMDQsLTEuMTY1MzEgdiAtNi4wODI4MyBjIDAsLTAuNjQ1NzMgLTAuNTE5NTc2LC0xLjE2NTgyIC0xLjE2NTMwNCwtMS4xNjU4MiB6IgogICAgICAgaWQ9InJlY3Q0ODA5IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmxhYmVsPSJidWJibGUiIC8+CiAgPC9nPgo8L3N2Zz4K') cameraSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZyB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIAogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAKICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiAKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIgCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIiAKICAgd2lkdGg9IjEwLjY2NzU2bW0iIAogICBoZWlnaHQ9IjkuNTAwMTk2NW1tIiAKICAgdmlld0JveD0iMCAwIDEwLjY2NzU2IDkuNTAwMTk2NSIgCiAgIHZlcnNpb249IjEuMSIgCiAgIGlkPSJzdmc1MDMxIiAKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIgCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNhbWVyYS5zdmciPgogICA8ZGVmcyBpZD0iZGVmczUwMjUiIC8+CiAgIDxzb2RpcG9kaTpuYW1lZHZpZXcgaWQ9ImJhc2UiIAogICAgICBwYWdlY29sb3I9IiNmZmZmZmYiIAogICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIgCiAgICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIgCiAgICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiIAogICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIiAKICAgICAgaW5rc2NhcGU6em9vbT0iMjIuNCIgCiAgICAgIGlua3NjYXBlOmN4PSIzMi4wNzgyNjciIAogICAgICBpbmtzY2FwZTpjeT0iMTguMjU4MTk5IiAKICAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIiAKICAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIiAKICAgICAgc2hvd2dyaWQ9ImZhbHNlIiAKICAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIiAKICAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIgCiAgICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIgCiAgICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIgCiAgICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgIDxtZXRhZGF0YSBpZD0ibWV0YWRhdGE1MDI4Ij4KICAgICAgPHJkZjpSREY+CiAgICAgICAgIDxjYzpXb3JrIHJkZjphYm91dD0iIj4KICAgICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICAgICA8L2NjOldvcms+CiAgICAgIDwvcmRmOlJERj4KICAgPC9tZXRhZGF0YT4KICAgPGcgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiIAogICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIiAKICAgICAgaWQ9ImxheWVyMSIgCiAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU3OS44NTc1OSw4OC43NTAwOTgpIj4KICAgICAgPHBhdGggZD0ibSAtNTc2LjAxNTk3LC04OC43NTAwOTggLTAuOTI3NTksMS4wMzI0OTQgaCAtMS43NDIwMSBjIC0wLjY0OTM1LDAgLTEuMTcyMDIsMC41MjI2NzIgLTEuMTcyMDIsMS4xNzIwMjMgdiA2LjEyMzY1NyBjIDAsMC42NDkzNTEgMC41MjI2NywxLjE3MjAyMiAxLjE3MjAyLDEuMTcyMDIyIGggOC4zMjM1MiBjIDAuNjQ5MzUsMCAxLjE3MjAyLC0wLjUyMjY3MSAxLjE3MjAyLC0xLjE3MjAyMiB2IC02LjEyMzY1NyBjIDAsLTAuNjQ5MzUxIC0wLjUyMjY3LC0xLjE3MjAyMyAtMS4xNzIwMiwtMS4xNzIwMjMgaCAtMS43MTg3NiBsIC0wLjg5NTAzLC0xLjAzMjQ5NCB6IG0gMS40Mzg2OCwyLjU1NDg4MyBhIDIuNjg3NzQwNywyLjY4Nzc0MDcgMCAwIDEgMi42ODc2OSwyLjY4NzY5MSAyLjY4Nzc0MDcsMi42ODc3NDA3IDAgMCAxIC0yLjY4NzY5LDIuNjg3NjkgMi42ODc3NDA3LDIuNjg3NzQwNyAwIDAgMSAtMi42ODc3LC0yLjY4NzY5IDIuNjg3NzQwNywyLjY4Nzc0MDcgMCAwIDEgMi42ODc3LC0yLjY4NzY5MSB6IG0gMC4wMjM4LDEuMDcwMjE5IGEgMS41Njk4MzA5LDEuNTY5ODMwOSAwIDAgMCAtMS41Njk5MywxLjU2OTkyOSAxLjU2OTgzMDksMS41Njk4MzA5IDAgMCAwIDEuNTY5OTMsMS41Njk5MzEgMS41Njk4MzA5LDEuNTY5ODMwOSAwIDAgMCAxLjU2OTkzLC0xLjU2OTkzMSAxLjU2OTgzMDksMS41Njk4MzA5IDAgMCAwIC0xLjU2OTkzLC0xLjU2OTkyOSB6IiAKICAgICAgICAgaWQ9ImNhbWVyYSIgCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIAogICAgICAgICBpbmtzY2FwZTpsYWJlbD0iY2FtZXJhIiAvPgogICA8L2c+Cjwvc3ZnPgo=') contactSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOC4zOTAxOTAxbW0iCiAgIGhlaWdodD0iOC40NTg5M21tIgogICB2aWV3Qm94PSIwIDAgOC4zOTAxOTAxIDguNDU4OTMiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzQ5NjIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImNvbnRhY3Quc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzNDk1NiIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMjIuNCIKICAgICBpbmtzY2FwZTpjeD0iMTkuODAyNDU3IgogICAgIGlua3NjYXBlOmN5PSIxNS4wMTA3NDkiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzNjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTQ5NTkiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMjguMDk2NTcsLTEwNi4wNTAzMSkiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM3ZjdmN2Y7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTMyLjMzMzAxLDEwNi4wNTAzMSBhIDIuMTE0OTU4OSwyLjA5ODE0MDEgMCAwIDAgLTIuMTE1MTIsMi4wOTgwNiAyLjExNDk1ODksMi4wOTgxNDAxIDAgMCAwIDIuMTE1MTIsMi4wOTgwNiAyLjExNDk1ODksMi4wOTgxNDAxIDAgMCAwIDIuMTE1MTEsLTIuMDk4MDYgMi4xMTQ5NTg5LDIuMDk4MTQwMSAwIDAgMCAtMi4xMTUxMSwtMi4wOTgwNiB6IG0gLTAuMDU2Myw1LjMyNTI1IGMgLTMuNzYwMzYsMCAtNC4xNTYzNCwxLjYzNTA1IC00LjE1NjM0LDEuNjM1MDUgbCAtMC4wMjM4LDEuNDg2NzMgOC4zOTAxOSwwLjAxMTkgLTAuMDE4MSwtMS40MDM1NCBjIDAsMCAtMC40OTIwMiwtMS43MzAxMiAtNC4xOTE5OSwtMS43MzAxMiB6IgogICAgICAgaWQ9InBhdGg0NzM3IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmxhYmVsPSJjb250YWN0IiAvPgogIDwvZz4KPC9zdmc+Cg==') groupSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTEuNjEyNzU2bW0iCiAgIGhlaWdodD0iNy4zNzkzNDAybW0iCiAgIHZpZXdCb3g9IjAgMCAxMS42MTI3NTYgNy4zNzkzNDAyIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc0OTg1IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJncm91cC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0OTc5IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyMi40IgogICAgIGlua3NjYXBlOmN4PSIzMi43NDQ5MzMiCiAgICAgaW5rc2NhcGU6Y3k9IjEyLjYwNDA1IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE0OTgyIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtOTYuMjQ3MjA0LC0xNjQuNzk4NCkiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM3ZjdmN2Y7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTA0LjE2MTQ1LDE2NC43OTg0IGEgMS41NjM4ODQ1LDEuNTYzODg0NSAwIDAgMCAtMS41NjM3MywxLjU2NDI0IDEuNTYzODg0NSwxLjU2Mzg4NDUgMCAwIDAgMS41NjM3MywxLjU2MzczIDEuNTYzODg0NSwxLjU2Mzg4NDUgMCAwIDAgMS41NjM3MywtMS41NjM3MyAxLjU2Mzg4NDUsMS41NjM4ODQ1IDAgMCAwIC0xLjU2MzczLC0xLjU2NDI0IHogbSAtNC4yMjc2NDYsMC4wNDc1IGEgMS41NDAwOTkyLDEuNTQwMDk5MiAwIDAgMCAtMS41NDA0NzQsMS41NDA0NyAxLjU0MDA5OTIsMS41NDAwOTkyIDAgMCAwIDEuNTQwNDc0LDEuNTM5OTYgMS41NDAwOTkyLDEuNTQwMDk5MiAwIDAgMCAxLjUzOTk1NiwtMS41Mzk5NiAxLjU0MDA5OTIsMS41NDAwOTkyIDAgMCAwIC0xLjUzOTk1NiwtMS41NDA0NyB6IG0gNC42MDE3ODYsNC4xNDQ0NSBjIC0wLjI3Nzk2LDAuMDAzIC0wLjU2ODEsMC4wMzk4IC0wLjg2NzY1LDAuMTE5MzcgMS4xMTc5MSwwLjcwNzYyIDAuOTg3MDIsMS40MTQ5IDAuOTg3MDIsMS40MTQ5IGwgMC4wMywxLjYwNTU5IDMuMTc1LDAuMDA2IC0wLjAxNzYsLTEuNTQ2MTYgYyAwLDAgLTEuMzYxMDksLTEuNjIwOTYgLTMuMzA2NzgsLTEuNTk5OSB6IG0gLTQuNTQ4NTU5LDAuMDU5OSBjIC0zLjE4NTY5NCwwIC0zLjY4NjU5NywxLjMzMTcxIC0zLjY4NjU5NywxLjMzMTcxIGwgLTAuMDUzMjMsMS43NzgxOCA3LjM1NTEwNiwwLjAxNzYgLTAuMDM1NywtMS42MjkzNiBjIDAsMCAtMC41NjcwNSwtMS40OTgxIC0zLjU3OTYzMiwtMS40OTgxIHoiCiAgICAgICBpZD0icGF0aDQ3NDQiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6bGFiZWw9Imdyb3VwIiAvPgogIDwvZz4KPC9zdmc+Cg==') infoSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTAuODMxMzhtbSIKICAgaGVpZ2h0PSIxMC44MzEzOG1tIgogICB2aWV3Qm94PSIwIDAgMTAuODMxMzggMTAuODMxMzgiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzUxMDAiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImluZm8uc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzNTA5NCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMTUuODM5MTkyIgogICAgIGlua3NjYXBlOmN4PSIyOC4wNzk4NjciCiAgICAgaW5rc2NhcGU6Y3k9IjEyLjQ0NjcxOCIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNTA5NyI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg2LjgxMDUsLTE0Ni40NDE0NSkiPgogICAgPHBhdGgKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzdHlsZT0iZmlsbDojN2Y3ZjdmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDkyLjIyNjE5MSwxNDYuNDQxNDUgYSA1LjQxNTY0MDEsNS40MTU2NDAxIDAgMCAwIC01LjQxNTY5MSw1LjQxNTY5IDUuNDE1NjQwMSw1LjQxNTY0MDEgMCAwIDAgNS40MTU2OTEsNS40MTU2OSA1LjQxNTY0MDEsNS40MTU2NDAxIDAgMCAwIDUuNDE1Njg5LC01LjQxNTY5IDUuNDE1NjQwMSw1LjQxNTY0MDEgMCAwIDAgLTUuNDE1Njg5LC01LjQxNTY5IHogbSAtMC40MzY2NjYsMi42NDA2NyBoIDAuODk4MTM2IGMgMC4wOTgzNiwwIDAuMTc3MjUsMC4wNzg5IDAuMTc3MjUsMC4xNzcyNSB2IDAuOTIzNDYgYyAwLDAuMDk4NCAtMC4wNzg4OSwwLjE3NzI1IC0wLjE3NzI1LDAuMTc3MjUgaCAtMC44OTgxMzYgYyAtMC4wOTgzNiwwIC0wLjE3NzI1MSwtMC4wNzg5IC0wLjE3NzI1MSwtMC4xNzcyNSB2IC0wLjkyMzQ2IGMgMCwtMC4wOTg0IDAuMDc4ODksLTAuMTc3MjUgMC4xNzcyNTEsLTAuMTc3MjUgeiBtIC0wLjAxNjU0LDIuMTA5OTUgaCAwLjkzNDgyNyBjIDAuMDk4MzYsMCAwLjE3Nzc2NiwwLjA3OTQgMC4xNzc3NjYsMC4xNzc3NiB2IDMuMDI4MjQgYyAwLDAuMDk4NCAtMC4wNzk0LDAuMTc3MjUgLTAuMTc3NzY2LDAuMTc3MjUgaCAtMC45MzQ4MjggYyAtMC4wOTgzNiwwIC0wLjE3Nzc2NywtMC4wNzg5IC0wLjE3Nzc2NywtMC4xNzcyNSB2IC0zLjAyODI0IGMgMCwtMC4wOTg0IDAuMDc5NCwtMC4xNzc3NiAwLjE3Nzc2OCwtMC4xNzc3NiB6IgogICAgICAgaWQ9InJlY3Q0ODM3IgogICAgICAgaW5rc2NhcGU6bGFiZWw9ImluZm8iIC8+CiAgPC9nPgo8L3N2Zz4K') keyboardSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTAuNTYwNTk2bW0iCiAgIGhlaWdodD0iNy41MjgyMjAybW0iCiAgIHZpZXdCb3g9IjAgMCAxMC41NjA1OTYgNy41MjgyMjAyIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc1MDA4IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJrZXlib2FyZC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM1MDAyIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIxNS44MzkxOTIiCiAgICAgaW5rc2NhcGU6Y3g9IjI1Ljk1MDQzNyIKICAgICBpbmtzY2FwZTpjeT0iMTQuODQ2NzIiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzNjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTUwMDUiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NS4wMjMyNzMsLTEyMS42MzQ3KSI+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzdmN2Y3ZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMjtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA2NS45MTgzMDksMTIxLjYzNDcgYyAtMC40OTU3NzEsMCAtMC44OTUwMzYsMC4zOTkyNiAtMC44OTUwMzYsMC44OTUwMyB2IDUuNzM4MTYgYyAwLDAuNDk1NzcgMC4zOTkyNjUsMC44OTUwMyAwLjg5NTAzNiwwLjg5NTAzIGggOC43NzEwNDEgYyAwLjQ5NTc3MSwwIDAuODk0NTE5LC0wLjM5OTI2IDAuODk0NTE5LC0wLjg5NTAzIHYgLTUuNzM4MTYgYyAwLC0wLjQ5NTc3IC0wLjM5ODc0OCwtMC44OTUwMyAtMC44OTQ1MTksLTAuODk1MDMgeiBtIDIuMzU2OTYyLDEuNTM2ODUgaCAwLjg4NDE4NCBjIDAuMTA5MDkyLDAgMC4xOTY4ODcsMC4wODc4IDAuMTk2ODg3LDAuMTk2ODkgdiAwLjg5NzEgYyAwLDAuMTA5MSAtMC4wODc4LDAuMTk2ODkgLTAuMTk2ODg3LDAuMTk2ODkgaCAtMC44ODQxODQgYyAtMC4xMDkwOTEsMCAtMC4xOTY4ODcsLTAuMDg3OCAtMC4xOTY4ODcsLTAuMTk2ODkgdiAtMC44OTcxIGMgMCwtMC4xMDkwOSAwLjA4NzgsLTAuMTk2ODkgMC4xOTY4ODcsLTAuMTk2ODkgeiBtIC0xLjU5MzcwMSwwLjAwNCBoIDAuODg0MTg0IGMgMC4xMDkwOTEsMCAwLjE5Njg4NywwLjA4NzggMC4xOTY4ODcsMC4xOTY4OSB2IDAuODg4ODQgYyAwLDAuMTA5MDkgLTAuMDg3OCwwLjE5Njg4IC0wLjE5Njg4NywwLjE5Njg4IEggNjYuNjgxNTcgYyAtMC4xMDkwOTEsMCAtMC4xOTY4ODcsLTAuMDg3OCAtMC4xOTY4ODcsLTAuMTk2ODggdiAtMC44ODg4NCBjIDAsLTAuMTA5MDkgMC4wODc4LC0wLjE5Njg5IDAuMTk2ODg3LC0wLjE5Njg5IHogbSAzLjE3NDQ4MywwIGggMC44ODgzMTggYyAwLjEwOTA5MiwwIDAuMTk3NDA0LDAuMDg3OCAwLjE5NzQwNCwwLjE5Njg5IHYgMC44ODA1NyBjIDAsMC4xMDkwOSAtMC4wODgzMSwwLjE5Njg5IC0wLjE5NzQwNCwwLjE5Njg5IGggLTAuODg4MzE4IGMgLTAuMTA5MDkxLDAgLTAuMTk2ODg3LC0wLjA4NzggLTAuMTk2ODg3LC0wLjE5Njg5IHYgLTAuODgwNTcgYyAwLC0wLjEwOTA5IDAuMDg3OCwtMC4xOTY4OSAwLjE5Njg4NywtMC4xOTY4OSB6IG0gMS41ODA3ODIsMCBoIDAuOTA1MzcxIGMgMC4xMDkwOTIsMCAwLjE5Njg4OCwwLjA4NzggMC4xOTY4ODgsMC4xOTY4OSB2IDAuODg4ODQgYyAwLDAuMTA5MDkgLTAuMDg3OCwwLjE5Njg4IC0wLjE5Njg4OCwwLjE5Njg4IGggLTAuOTA1MzcxIGMgLTAuMTA5MDkxLDAgLTAuMTk2ODg3LC0wLjA4NzggLTAuMTk2ODg3LC0wLjE5Njg4IHYgLTAuODg4ODQgYyAwLC0wLjEwOTA5IDAuMDg3OCwtMC4xOTY4OSAwLjE5Njg4NywtMC4xOTY4OSB6IG0gMS41ODU0MzMsMC4wMDUgaCAwLjg5NzEwMyBjIDAuMTA5MDkyLDAgMC4xOTY4ODgsMC4wODc4IDAuMTk2ODg3LDAuMTk2ODkgdiAwLjg3NTkyIGMgMCwwLjEwOTA5IC0wLjA4NzgsMC4xOTY4OSAtMC4xOTY4ODcsMC4xOTY4OSBoIC0wLjg5NzEwMyBjIC0wLjEwOTA5MSwwIC0wLjE5Njg4NywtMC4wODc4IC0wLjE5Njg4NywtMC4xOTY4OSB2IC0wLjg3NTkyIGMgMCwtMC4xMDkwOSAwLjA4NzgsLTAuMTk2ODkgMC4xOTY4ODcsLTAuMTk2ODkgeiBtIC02LjM0ODk2NiwxLjU3MjUyIGggMC44ODQxODQgYyAwLjEwOTA5MSwwIDAuMTk2ODg3LDAuMDg3OCAwLjE5Njg4NywwLjE5Njg5IHYgMC45MDk1IGMgMCwwLjEwOTA5IC0wLjA4NzgsMC4xOTY4OSAtMC4xOTY4ODcsMC4xOTY4OSBoIC0wLjg4NDE4NCBjIC0wLjEwOTA5MiwwIC0wLjE5NzQwNCwtMC4wODc4IC0wLjE5NzQwNCwtMC4xOTY4OSB2IC0wLjkwOTUxIGMgMCwtMC4xMDkwOSAwLjA4ODMxLC0wLjE5Njg5IDAuMTk3NDA0LC0wLjE5Njg5IHogbSAzLjE4Mjc1MSwwLjAwOCBoIDAuODg4MzE4IGMgMC4xMDkwOTIsMCAwLjE5NzQwNCwwLjA4NzggMC4xOTc0MDQsMC4xOTY4OSB2IDAuODkyOTYgYyAwLDAuMTA5MSAtMC4wODgzMSwwLjE5Njg5IC0wLjE5NzQwNCwwLjE5Njg5IGggLTAuODg4MzE4IGMgLTAuMTA5MDkxLDAgLTAuMTk2ODg3LC0wLjA4NzggLTAuMTk2ODg3LC0wLjE5Njg5IFYgMTI0Ljk1OCBjIDAsLTAuMTA5MSAwLjA4NzgsLTAuMTk2ODkgMC4xOTY4ODcsLTAuMTk2ODkgeiBtIDMuMTQ5MTYyLDAgaCAwLjkyMjQyNSBjIDAuMTA5MDkxLDAgMC4xOTY4ODcsMC4wODc4IDAuMTk2ODg3LDAuMTk2ODkgdiAwLjg5NzEgYyAwLDAuMTA5MDkgLTAuMDg3OCwwLjE5Njg5IC0wLjE5Njg4NywwLjE5Njg5IGggLTAuOTIyNDI1IGMgLTAuMTA5MDkxLDAgLTAuMTk2ODg3LC0wLjA4NzggLTAuMTk2ODg3LC0wLjE5Njg5IFYgMTI0Ljk1OCBjIDAsLTAuMTA5MSAwLjA4NzgsLTAuMTk2ODkgMC4xOTY4ODcsLTAuMTk2ODkgeiBtIC0xLjU3MjUxNCwwLjAwNCBoIDAuOTAxMjM3IGMgMC4xMDkwOTIsMCAwLjE5Njg4OCwwLjA4NzggMC4xOTY4ODgsMC4xOTY4OSB2IDAuODg4ODMgYyAwLDAuMTA5MDkgLTAuMDg3OCwwLjE5Njg5IC0wLjE5Njg4OCwwLjE5Njg5IGggLTAuOTAxMjM3IGMgLTAuMTA5MDkxLDAgLTAuMTk2ODg3LC0wLjA4NzggLTAuMTk2ODg3LC0wLjE5Njg5IHYgLTAuODg4ODUgYyAwLC0wLjEwOTA5IDAuMDg3OCwtMC4xOTY4OCAwLjE5Njg4NywtMC4xOTY4OCB6IG0gLTMuMTc0NDgzLDAuMDA4IGggMC45MTgyOSBjIDAuMTA5MDkyLDAgMC4xOTY4ODcsMC4wODc4IDAuMTk2ODg3LDAuMTk2ODkgdiAwLjg2NzY0IGMgMCwwLjEwOTA5IC0wLjA4NzgsMC4xOTY4OSAtMC4xOTY4ODcsMC4xOTY4OSBoIC0wLjkxODI5IGMgLTAuMTA5MDkxLDAgLTAuMTk2ODg3LC0wLjA4NzggLTAuMTk2ODg3LC0wLjE5Njg5IHYgLTAuODY3NjYgYyAwLC0wLjEwOTEgMC4wODc4LC0wLjE5Njg5IDAuMTk2ODg3LC0wLjE5Njg5IHogbSAwLjA2NjE1LDIuMTIzOSBoIDQuMDAwMjczIGMgMC4xMDkwOTEsMCAwLjE5Njg4NywwLjA4NzggMC4xOTY4ODcsMC4xOTY4OSB2IDAuODQ5MDQgYyAwLDAuMTA5MDkgLTAuMDg3OCwwLjE5Njg5IC0wLjE5Njg4NywwLjE5Njg5IGggLTQuMDAwMjczIGMgLTAuMTA5MDkyLDAgLTAuMTk2ODg3LC0wLjA4NzggLTAuMTk2ODg3LC0wLjE5Njg5IHYgLTAuODQ5MDYgYyAwLC0wLjEwOTA5IDAuMDg3OCwtMC4xOTY4OSAwLjE5Njg4NywtMC4xOTY4OSB6IgogICAgICAgaWQ9InJlY3Q0NzUzIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmxhYmVsPSJrZXlib2FyZCIgLz4KICA8L2c+Cjwvc3ZnPgo=') menuSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOS40OTM5ODk5bW0iCiAgIGhlaWdodD0iNi4zNzQyOW1tIgogICB2aWV3Qm94PSIwIDAgOS40OTM5ODk5IDYuMzc0MjkiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzQ5MzkiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9Im1lbnUuc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzNDkzMyIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMjIuNCIKICAgICBpbmtzY2FwZTpjeD0iMjUuNzQwMTA4IgogICAgIGlua3NjYXBlOmN5PSIxMy4zMzUyOTQiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzNjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTQ5MzYiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNDIuNjYzNzEsLTI4MC4yMDU3MSkiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM3ZjdmN2Y7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTQyLjk2MTg5LDI4MC4yMDU3MSBjIC0wLjE0NjU4LDAgLTAuMjY0NTgsMC4xMTgwMSAtMC4yNjQ1OCwwLjI2NDU5IHYgMC41MjE5MyBjIDAsMC4xNDY1OCAwLjExOCwwLjI2NDU4IDAuMjY0NTgsMC4yNjQ1OCBoIDguOTA1OTIgYyAwLjE0NjU3LDAgMC4yNjQ1OCwtMC4xMTggMC4yNjQ1OCwtMC4yNjQ1OCB2IC0wLjUyMTkzIGMgMCwtMC4xNDY1OCAtMC4xMTgwMSwtMC4yNjQ1OSAtMC4yNjQ1OCwtMC4yNjQ1OSB6IG0gLTAuMDE3MSwyLjY1NzIxIGMgLTAuMTQ2NTgsMCAtMC4yNjQ1OSwwLjExOCAtMC4yNjQ1OSwwLjI2NDU4IHYgMC41MTM2NiBjIDAsMC4xNDY1OCAwLjExODAxLDAuMjY0NTkgMC4yNjQ1OSwwLjI2NDU5IGggOC45MjI5NyBjIDAuMTQ2NTgsMCAwLjI2NDU4LC0wLjExODAxIDAuMjY0NTgsLTAuMjY0NTkgdiAtMC41MTM2NiBjIDAsLTAuMTQ2NTggLTAuMTE4LC0wLjI2NDU4IC0wLjI2NDU4LC0wLjI2NDU4IHogbSAtMC4wMTY1LDIuNjI0MTIgYyAtMC4xNDY1OCwwIC0wLjI2NDU4LDAuMTE4MDEgLTAuMjY0NTgsMC4yNjQ1OSB2IDAuNTYzNzkgYyAwLDAuMTQ2NTggMC4xMTgsMC4yNjQ1OCAwLjI2NDU4LDAuMjY0NTggaCA4Ljk2NDgzIGMgMC4xNDY1OCwwIDAuMjY0NTgsLTAuMTE4IDAuMjY0NTgsLTAuMjY0NTggdiAtMC41NjM3OSBjIDAsLTAuMTQ2NTggLTAuMTE4LC0wLjI2NDU5IC0wLjI2NDU4LC0wLjI2NDU5IHoiCiAgICAgICBpZD0icmVjdDQ3MzAiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6bGFiZWw9Im1lbnUiIC8+CiAgPC9nPgo8L3N2Zz4K') phoneSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMzUuNTE3ODM4IgogICBoZWlnaHQ9IjM1Ljc0NTMyMyIKICAgdmlld0JveD0iMCAwIDkuMzk3NDI3NSA5LjQ1NzYxNjUiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzQ4ODMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InBob25lLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczQ4NzciIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjUuNiIKICAgICBpbmtzY2FwZTpjeD0iMjguMTc5NzQyIgogICAgIGlua3NjYXBlOmN5PSIxNy4wOTM4NjciCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzQ4ODMiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIHVuaXRzPSJweCIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNDg4MCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuNTA2NjQxMiwtMjgwLjk3OTE2KSI+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzdmN2Y3ZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMnB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDUuNTIwNzYwOSwyODEuMDE0ODYgMi42NzU4NDgsLTAuMDM1NyAwLjQxNjI0NCwyLjY4Nzc0IC0xLjIyNDk0NCwxLjQwMzMzIGMgMS4wMzQ2NjEsMi4yMzU4MiAzLjQ4NDU0OTEsMy40OTY0NSAzLjQ4NDU0OTEsMy40OTY0NSBsIDEuMjAxMTU4LC0xLjIzNjg0IDIuODMwNDUzLDAuMzU2NzggLTAuMDIzNzksMi43NDcyIGMgMCwwIC00LjA3Njc2OCwwLjIxMDM1IC03LjA5NjA1NjEsLTIuOTE3NDYgLTIuNTk4ODUzLC0yLjY5MjI2IC0yLjI2MzQ2NiwtNi41MDE1MiAtMi4yNjM0NjYsLTYuNTAxNTIgeiIKICAgICAgIGlkPSJwYXRoNDcyMiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2Njc2MiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0icGhvbmUiIC8+CiAgPC9nPgo8L3N2Zz4K') twitSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZyB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIAogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAKICAgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiAKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIgCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIiAKICAgd2lkdGg9IjE0LjMzMDg2bW0iIAogICBoZWlnaHQ9IjExLjQ3NDkyNm1tIiAKICAgdmlld0JveD0iMCAwIDE0LjMzMDg2IDExLjQ3NDkyNiIgCiAgIHZlcnNpb249IjEuMSIgCiAgIGlkPSJzdmc1MDc3IiAKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIgCiAgIHNvZGlwb2RpOmRvY25hbWU9InR3aXR0ZXIuc3ZnIj4KICAgPGRlZnMgaWQ9ImRlZnM1MDcxIiAvPgogICA8c29kaXBvZGk6bmFtZWR2aWV3IGlkPSJiYXNlIiAKICAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIiAKICAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiIAogICAgICBib3JkZXJvcGFjaXR5PSIxLjAiIAogICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIiAKICAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgCiAgICAgIGlua3NjYXBlOnpvb209IjExLjIiIAogICAgICBpbmtzY2FwZTpjeD0iMzMuMjc1MTg5IiAKICAgICAgaW5rc2NhcGU6Y3k9IjI1LjU2MDI3OCIgCiAgICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIgCiAgICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIgCiAgICAgIHNob3dncmlkPSJmYWxzZSIgCiAgICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIgCiAgICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzNjEiIAogICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiIAogICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiIAogICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogICA8bWV0YWRhdGEgaWQ9Im1ldGFkYXRhNTA3NCI+CiAgICAgIDxyZGY6UkRGPgogICAgICAgICA8Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgICAgICA8ZGM6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgICAgPC9jYzpXb3JrPgogICAgICA8L3JkZjpSREY+CiAgIDwvbWV0YWRhdGE+CiAgIDxnIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIiAKICAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIgCiAgICAgIGlkPSJsYXllcjEiIAogICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTgxLjA2NjczLC0yMjguNTE4NDcpIj4KICAgICAgPHBhdGggc3R5bGU9ImZpbGw6IzdmN2Y3ZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMjtzdHJva2Utb3BhY2l0eToxIiAKICAgICAgICAgZD0ibSAxOTEuMDMzMDEsMjI4LjUxODUxIGMgLTEuNTQzNjQsLTIuMmUtNCAtMi43OTUxNCwxLjIyNDQ0IC0yLjc5NTE4LDIuNzM1MjMgMC4wMDEsMC4yMzcwNSAwLjAyMTksMC42NTEzNCAwLjA4NTMsMC44ODAxNiAtMy45OTA3MSwtMC4xNDE3MSAtNS40MjczNSwtMS45MzU3MiAtNi4xMDI5OCwtMy4xNTE4NiAtMC42MzU4OCwwLjk4OTE0IC0wLjU0OTM1LDIuNjYyNzggMC45MDk1LDMuOTAzMTIgLTAuNDEyOTksMC4wMTA5IC0wLjk3OTYsLTAuMDY3NCAtMS40NjgxMywtMC40ODk4OSAwLjM0NTQyLDEuNjgxMzQgMS4yOTA2NywyLjYxOTAxIDIuNDk1NDYsMy4wNTgyMSAtMC41MzYyLDAuMzcwNDkgLTAuOTA3MTMsMC4wMTg3IC0xLjQyNTI0LDAuMTUyOTcgMC45NjAyNywxLjM5MTE1IDEuODI5NDQsMS45MjA4NyAyLjgzMDg0LDEuOTY3MzIgLTEuNzk2MSwxLjYxNzY0IC00LjQ5NTg1LDEuMjc5NSAtNC40OTU4NSwxLjI3OTUgNy42OTY3NywzLjcxODM4IDEzLjAzNDksLTIuNDY5MjEgMTIuNjc1NzEsLTYuOTQzMjQgMC4wNDg5LC0wLjE5MjM4IDAuMDc2MywtMC4zODkzOSAwLjA4MTYsLTAuNTg3NTYgbCAxLjU3MzU1LC0xLjQwMDk1IC0xLjcwNDgxLDAuNTAzODUgYyAtMC4wMDQsLTAuMDExOSAtMC4wMDgsLTAuMDIzOCAtMC4wMTE5LC0wLjAzNTcgbCAxLjQ0MjgxLC0xLjY1NzI2IC0xLjg1MzYzLDAuODg3MjggYyAtMC41MjY1NSwtMC42OTE3OSAtMS4zNTU2OCwtMS4wOTk5MyAtMi4yMzcwNywtMS4xMDEyMiB6IiAKICAgICAgICAgaWQ9InBhdGg0ODE0IiAKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjY2NjY2NjY2NjY2NjIiAKICAgICAgICAgaW5rc2NhcGU6bGFiZWw9InR3aXR0ZXIiIC8+CiAgIDwvZz4KPC9zdmc+Cg==') verifiedSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOC40Njc3bW0iCiAgIGhlaWdodD0iOC40NjcxODAzbW0iCiAgIHZpZXdCb3g9IjAgMCA4LjQ2NzcgOC40NjcxODAzIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc1MTIzIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJ2ZXJpZmllZC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM1MTE3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyMi40IgogICAgIGlua3NjYXBlOmN4PSIyMi41NTk3NDEiCiAgICAgaW5rc2NhcGU6Y3k9IjEzLjE5MTA1NSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNTEyMCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTExMy42OTQ3MiwtMTYwLjQ3NDc0KSI+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzdmN2Y3ZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMjtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAxMTcuOTI4NTcsMTYwLjQ3NDc0IGMgLTAuNTg0NTYsMCAtMC45OTU0NSwwLjY0NTE4IC0xLjQzNzEyLDAuODMxOTkgLTAuNDQxNjcsMC4xODY4MSAtMS4xNzM0MSwwLjAyNDYgLTEuNTU2NDksMC40MDc3MyAtMC4zODMwOSwwLjM4MzA4IC0wLjIyMDkyLDEuMTE1MzQgLTAuNDA3NzMsMS41NTcwMSAtMC4xODY4MSwwLjQ0MTY3IC0wLjgzMjUxLDAuODUyNTYgLTAuODMyNTEsMS40MzcxMiAwLDAuNTg0NTcgMC42NDU3LDAuOTk0OTQgMC44MzI1MSwxLjQzNjYxIDAuMTg2ODEsMC40NDE2NyAwLjAyNDYsMS4xNzM5MiAwLjQwNzczLDEuNTU3MDEgMC4zODMwOCwwLjM4MzA4IDEuMTE0ODIsMC4yMjA5MSAxLjU1NjQ5LDAuNDA3NzIgMC40NDE2NywwLjE4NjgxIDAuODUyNTYsMC44MzE5OSAxLjQzNzEyLDAuODMxOTkgMC41ODQ1NywwIDAuOTk1NDUsLTAuNjQ1MTggMS40MzcxMiwtMC44MzE5OSAwLjQ0MTY3LC0wLjE4NjgxIDEuMTczNDEsLTAuMDI0NiAxLjU1NjUsLTAuNDA3NzIgMC4zODMwOCwtMC4zODMwOSAwLjIyMTQzLC0xLjExNTM0IDAuNDA4MjQsLTEuNTU3MDEgMC4xODY4MSwtMC40NDE2NyAwLjgzMTk5LC0wLjg1MjA0IDAuODMxOTksLTEuNDM2NjEgMCwtMC41ODQ1NiAtMC42NDUxOCwtMC45OTU0NSAtMC44MzE5OSwtMS40MzcxMiAtMC4xODY4MSwtMC40NDE2NyAtMC4wMjUyLC0xLjE3MzkzIC0wLjQwODI0LC0xLjU1NzAxIC0wLjM4MzA5LC0wLjM4MzA4IC0xLjExNDgzLC0wLjIyMDkyIC0xLjU1NjUsLTAuNDA3NzMgLTAuNDQxNjcsLTAuMTg2ODEgLTAuODUyNTUsLTAuODMxOTkgLTEuNDM3MTIsLTAuODMxOTkgeiBtIDEuNjg3NzUsMi42ODA0NiBjIDAuMDQzLDAgMC4wODU5LDAuMDE2NyAwLjExODg2LDAuMDQ5NiBsIDAuNjA2NjgsMC42MDYxNiBjIDAuMDY1OSwwLjA2NTggMC4wNjU5LDAuMTcxODggMCwwLjIzNzcxIGwgLTIuOTU2OTIsMi45NTM4MyBjIC0wLjA2NTksMC4wNjU4IC0wLjE3MjMzLDAuMDY1OCAtMC4yMzgyMywwIGwgLTAuNjA2NjgsLTAuNjA2MTcgYyAwLDAgMCwtNS4yZS00IDAsLTUuMmUtNCBsIC0wLjg0MTMsLTAuODM2NjUgYyAtMC4wNjUzLC0wLjA2NTMgLTAuMDY1MywtMC4xNzA4MiAwLC0wLjIzNjE2IGwgMC42MDE1MiwtMC42MDE1MSBjIDAuMDY1MywtMC4wNjUzIDAuMTcwODIsLTAuMDY1MyAwLjIzNjE2LDAgbCAwLjcyMjQzLDAuNzE5MzQgMi4yMzg2MywtMi4yMzYwNCBjIDAuMDMyOSwtMC4wMzI5IDAuMDc1OCwtMC4wNDk2IDAuMTE4ODUsLTAuMDQ5NiB6IgogICAgICAgaWQ9InBhdGg0ODQyIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmxhYmVsPSJ2ZXJpZmllZCIgLz4KICA8L2c+Cjwvc3ZnPgo=') groupIconSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTAuNTg5NTltbSIKICAgaGVpZ2h0PSI3LjQzODM3MDJtbSIKICAgdmlld0JveD0iMCAwIDEwLjU4OTU5IDcuNDM4MzcwMiIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnNzA2NiIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iZ3JvdXBpY29uLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczcwNjAiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjExLjIiCiAgICAgaW5rc2NhcGU6Y3g9IjIyLjkwMzQ0MSIKICAgICBpbmtzY2FwZTpjeT0iMTMuOTE4MzQxIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc3MDY2IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNzA2MyI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHBhdGgKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0iTSAzLjY5Nzg5LDEuNzg4MTAwN2UtOCBDIDIuODIzNjUsLTEuMjk5ODIxMmUtNCAyLjExNDksMC43MDg2MTAwMiAyLjExNTA0LDEuNTgyODUgMi4xMTUxOSwyLjQ1Njg5IDIuODIzODUsMy4xNjUzMSAzLjY5Nzg5LDMuMTY1MTggNC41NzE3MiwzLjE2NTAzIDUuMjgwMDcsMi40NTY2OCA1LjI4MDIyLDEuNTgyODUgNS4yODAzNSwwLjcwODgxMDAyIDQuNTcxOTIsMS41MDAxNzg4ZS00IDMuNjk3ODksMS43ODgxMDA3ZS04IFogTSA3LjY4MzE3LDEuMDkzNDcgQyA2Ljk2NzkyLDEuMDkzMzkgNi4zODgwOCwxLjY3MzI0IDYuMzg4MTYsMi4zODg0OCA2LjM4ODA4LDMuMTAzNzMgNi45Njc5MiwzLjY4MzU4IDcuNjgzMTcsMy42ODM1IDguMzk4MjIsMy42ODMyOSA4Ljk3Nzc1LDMuMTAzNTMgOC45Nzc2NywyLjM4ODQ4IDguOTc3NzUsMS42NzM0NCA4LjM5ODIyLDEuMDkzNjggNy42ODMxNywxLjA5MzQ3IFogTSAzLjc0MzM2LDQuMjA5MDQgQyAyLjAwMzAxLDQuMjI0MDQgMC43MDE4Miw0Ljc5ODA2IDAuMDQ3Miw1LjU0NjIgNGUtNCw1LjYxMDkgMC4wMDMsNS43MTU5MyAwLjAwMyw1LjcxNTkzIDAuMDAyNiw1LjcxOTkzIDAsNS43MjI5MyAwLDUuNzI2MzMgdiAxLjU4Mjg1IGMgMCwwLjA3MTcgMC4wNzg5LDAuMTI5MTkgMC4xNzcyNSwwLjEyOTE5IGggMy4zNTY5IGMgMC4wOTg0LDAgMC4xNzc3NywtMC4wNTc1IDAuMTc3NzcsLTAuMTI5MTkgViA1Ljc1MTEzIEMgMy44NTQ1Nyw1LjMxMDM1IDQuNDI3NDQsNC42MjUyNyA1LjAwNjQxLDQuMzAyMTIgNC41NjY3LDQuMjM0NzIgNC4xNDQ1NCw0LjIwNTYyIDMuNzQyOTIsNC4yMDkxMiBaIG0gMy45MTI5NCwwLjQ4MDYgYyAtMS43NDU3NiwwLjAwMyAtMi44NjMwNCwwLjc1NzgxIC0yLjkwNDIyLDEuMzA5NDggLTguNGUtNCwwLjAwNSAtMC4wMDQsMC4wMSAtMC4wMDQsMC4wMTUgdiAxLjI4MDU0IGMgMCwwLjA3MTcgMC4wNzk0LDAuMTI5MTkgMC4xNzc3NywwLjEyOTE5IGggNS40ODU5NyBjIDAuMDk4NCwwIDAuMTc3NzcsLTAuMDU3NSAwLjE3Nzc3LC0wLjEyOTE5IFYgNi4wMTQxMiBjIDAsLTAuMDA4IC0wLjAwNCwtMC4wMTQ0IC0wLjAwNiwtMC4wMjE3IEMgMTAuNTIxMjksNS41MDU5MyA5LjYxNjk4LDQuNjg2NzYgNy42NTY2NCw0LjY4OTY1IFoiCiAgICAgaWQ9InBhdGg0NTYyIgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjY2NjY2Njc3Nzc3NjY2NjY3Nzc3Nzc2NjIgogICAgIGlua3NjYXBlOmxhYmVsPSJncm91cGljb24iIC8+Cjwvc3ZnPgo=') contactsSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOS41NjMyNDAxbW0iCiAgIGhlaWdodD0iOS41NDI1NTk2bW0iCiAgIHZpZXdCb3g9IjAgMCA5LjU2MzI0MDEgOS41NDI1NTk2IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc3NjMzIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjb250YWN0aWNvbi5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM3NjI3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIxNS44MzkxOTIiCiAgICAgaW5rc2NhcGU6Y3g9IjE5Ljk0MTAxNyIKICAgICBpbmtzY2FwZTpjeT0iMTEuNjE2MTE2IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc3NjMzIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNzYzMCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHBhdGgKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMjY1NDM2Njg7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICBkPSJNIDEuMjM1NTgsMCBDIDAuNTUxMjgsMCAwLDAuNTAyODkgMCwxLjEyNzU4IHYgNy4yODc0MSBjIDAsMC42MjQ2OCAwLjU1MTI4LDEuMTI3NTcgMS4yMzU1OCwxLjEyNzU3IGggNy4wOTI1OSBjIDAuNjg0MzEsMCAxLjIzNTA3LC0wLjUwMjg5IDEuMjM1MDcsLTEuMTI3NTcgViAxLjEyNzU4IEMgOS41NjMyNCwwLjUwMjg5IDkuMDEyNDgsMCA4LjMyODE3LDAgWiBNIDQuNzYxNDYsMS41MDUzMyBBIDEuNjg4NzgzLDEuNjg4NzgzIDAgMCAxIDYuNDUwMjUsMy4xOTQxMSAxLjY4ODc4MywxLjY4ODc4MyAwIDAgMSA0Ljc2MTQ2LDQuODgyOSAxLjY4ODc4MywxLjY4ODc4MyAwIDAgMSAzLjA3MjY4LDMuMTk0MTEgMS42ODg3ODMsMS42ODg3ODMgMCAwIDEgNC43NjE0NiwxLjUwNTMzIFogbSAwLjAzNDEsNC4xNjA5OCBjIDIuMTc1NDMsLTAuMDAzIDMuMTc4NzIsMC43MTkxNyAzLjI0Nzg2LDEuMTQ3NzQgMC4wMDIsMC4wMDYgMC4wMDcsMC4wMTI0IDAuMDA3LDAuMDE5MSB2IDEuMTI4MDkgYyAwLDAuMDYzMiAtMC4wODgyLDAuMTEzNjkgLTAuMTk3NCwwLjExMzY5IGggLTYuMDg4IGMgLTAuMTA5MTUsMCAtMC4xOTc0LC0wLjA1MDUgLTAuMTk3NCwtMC4xMTM2OSB2IC0xLjEyODEgYyAwLC0wLjAwNSAwLjAwNCwtMC4wMDkgMC4wMDUsLTAuMDEzNCBDIDEuNjE4MzIsNi4zMzM3NSAyLjg1ODM4LDUuNjY4NyA0Ljc5NTY4LDUuNjY2MzIgWiIKICAgICBpZD0icmVjdDQ1OTAiCiAgICAgaW5rc2NhcGU6bGFiZWw9ImNvbnRhY3RpY29uIiAvPgo8L3N2Zz4K') gearSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTAuNDkzNjAxbW0iCiAgIGhlaWdodD0iMTAuNjgyMTJtbSIKICAgdmlld0JveD0iMCAwIDEwLjQ5MzYwMSAxMC42ODIxMiIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODIwMCIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iZ2Vhci5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4MTk0IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIxLjk3OTg5OSIKICAgICBpbmtzY2FwZTpjeD0iLTEzLjk3MzA5MyIKICAgICBpbmtzY2FwZTpjeT0iNzMuMjgwNzkxIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc4MjAwIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODE5NyI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHBhdGgKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICBkPSJtIDQuMDQxNzI1NCwwIGMgLTAuMDk4NSwwIC0wLjE1NDU4LDAuMTEwMzggLTAuMTc3NzcsMC4yNDI4OCBsIC0wLjIzNjY3LDEuMzUxMzMgYSA0LjAyODY2Myw0LjAyODY2MyAwIDAgMCAtMC44MDgyMiwwLjQ3MjMzIGwgLTEuMjk1MDIsLTAuNDczMzYgYyAtMC4xMTY0OSwtMC4wNjczIC0wLjI0OTk3LC0wLjA1MjcgLTAuMjk5MiwwLjAzMjYgTCAwLjAxODcxNTM4LDMuNzE0NTQgYyAtMC4wNDkyLDAuMDg1MyAwLjAxODMsMC4xODkxMSAwLjEyMTQ0LDAuMjc1NDMgTCAxLjIyMTc0NTQsNC44OTUzNCBhIDQuMDI4NjYzLDQuMDI4NjYzIDAgMCAwIC0wLjAyMzMsMC4zOTQ4MSA0LjAyODY2Myw0LjAyODY2MyAwIDAgMCAwLjAzMzEsMC40ODc4MyBMIDAuMTM5NjE1MzgsNi42OTE2MiBjIC0wLjExNjQ5LDAuMDY3MyAtMC4xNzA2NywwLjE5MDE2IC0wLjEyMTQ0LDAuMjc1NDMgTCAxLjIyNDMwNTQsOS4wNTUzIGMgMC4wNDkyLDAuMDg1MyAwLjE3Mjg3LDAuMDc4NyAwLjI5OTIxLDAuMDMyNiBsIDEuMzg4MDMsLTAuNTA2OTQgYSA0LjAyODY2Myw0LjAyODY2MyAwIDAgMCAwLjY5NjA4LDAuMzkyNzQgbCAwLjI1NjMxLDEuNDY2MDYgYyAwLDAuMTM0NTEgMC4wNzkzLDAuMjQyMzYgMC4xNzc3NywwLjI0MjM2IGggMi40MTE3NCBjIDAuMDk4NSwwIDAuMTU0NTgsLTAuMTA5ODYgMC4xNzc3NywtMC4yNDIzNiBsIDAuMjU5OTMsLTEuNDg0NjcgYSA0LjAyODY2Myw0LjAyODY2MyAwIDAgMCAwLjY2NzY2LC0wLjM4MzQzIGwgMS40MTIzMiwwLjUxNjc2IGMgMC4xMTY0OSwwLjA2NzMgMC4yNDk0NSwwLjA1MjIgMC4yOTg2OSwtMC4wMzMxIEwgMTAuNDc1OTM1LDYuOTY3MDcgYyAwLjA0OTIsLTAuMDg1MyAtMC4wMTgzLC0wLjE4OTExIC0wLjEyMTQ0LC0wLjI3NTQzIEwgOS4yMjQ4NTU0LDUuNzQ1OTYgYSA0LjAyODY2Myw0LjAyODY2MyAwIDAgMCAwLjAzMSwtMC40NTU3OSA0LjAyODY2Myw0LjAyODY2MyAwIDAgMCAtMC4wMTg2LC0wLjM2NjM4IEwgMTAuMzUzOTg1LDMuOTg5NDggYyAwLjExNjQ5LC0wLjA2NzMgMC4xNzA2NywtMC4xODk2NSAwLjEyMTQ0LC0wLjI3NDkyIEwgOS4yNjkyOTU0LDEuNjI1OCBjIC0wLjA0OTIsLTAuMDg1MyAtMC4xNzIzNSwtMC4wNzg3IC0wLjI5ODY5LC0wLjAzMjYgbCAtMS4zMjEzNywwLjQ4MjY2IEEgNC4wMjg2NjMsNC4wMjg2NjMgMCAwIDAgNi44NzIwMjU0LDEuNjE4IGwgLTAuMjQwODEsLTEuMzc1MSBjIDAsLTAuMTM0NTIgLTAuMDc5MywtMC4yNDI4OCAtMC4xNzc3NywtMC4yNDI4OCB6IG0gMS4yNDY0NCwzLjM1NzQxIGEgMS45NTMyOTEyLDEuOTUzMjkxMiAwIDAgMSAxLjk1MzM3LDEuOTUzMzcgMS45NTMyOTEyLDEuOTUzMjkxMiAwIDAgMSAtMS45NTMzNywxLjk1MzM3IDEuOTUzMjkxMiwxLjk1MzI5MTIgMCAwIDEgLTEuOTUzMzcsLTEuOTUzMzcgMS45NTMyOTEyLDEuOTUzMjkxMiAwIDAgMSAxLjk1MzM3LC0xLjk1MzM3IHoiCiAgICAgaWQ9InBhdGg0NTk3IgogICAgIGlua3NjYXBlOmxhYmVsPSJnZWFycyIgLz4KPC9zdmc+Cg==') faqSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTAuNTgwMjNtbSIKICAgaGVpZ2h0PSIxMC41ODAyNG1tIgogICB2aWV3Qm94PSIwIDAgMTAuNTgwMjMgMTAuNTgwMjQiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzEzMzA0IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJxdWVzdGlvbi5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMxMzI5OCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMy45NTk3OTgiCiAgICAgaW5rc2NhcGU6Y3g9IjU1LjU0NjcwMyIKICAgICBpbmtzY2FwZTpjeT0iLTguNDY2MDY0NiIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTMzMDQiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExMzMwMSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHBhdGgKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZTo0MHB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6J01TIFVJIEdvdGhpYyc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonTVMgVUkgR290aGljJztsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzIiCiAgICAgZD0iTSA1LjI5MDEyLDAgQSA1LjI5MDE2MzgsNS4yOTAxNjM4IDAgMCAwIDAsNS4yOTAxMyA1LjI5MDE2MzgsNS4yOTAxNjM4IDAgMCAwIDUuMjkwMTIsMTAuNTgwMjQgNS4yOTAxNjM4LDUuMjkwMTYzOCAwIDAgMCAxMC41ODAyMyw1LjI5MDEzIDUuMjkwMTYzOCw1LjI5MDE2MzggMCAwIDAgNS4yOTAxMiwwIFogbSAtMC4wNDM0LDEuNzU4MDUgYyAwLjYwNjM0LDAgMS4wNzQ4NywwLjE2NTM2IDEuNDA1NiwwLjQ5NjA5IDAuMzU4MjksMC4zNTgyOCAwLjUzNzQzLDAuODEzMDQgMC41Mzc0MywxLjM2NDI1IDAsMC40Njg1NSAtMC4xNjUzNiwwLjg2ODE4IC0wLjQ5NjA5LDEuMTk4OSBMIDUuOTA4MTgsNS42MDI3NiBDIDUuNjYwMTMsNS44NTA4MSA1LjUzNjExLDYuMjIyODkgNS41MzYxMSw2LjcxODk5IEggNC43OTE5NyBjIDAsLTAuNjA2MzUgMC4wOTY1LC0xLjA2MTA5IDAuMjg5MzgsLTEuMzY0MjcgQyA1LjIxOTE2LDUuMTM0MjQgNS40ODA5OSw0LjgzMTA4IDUuODY2ODQsNC40NDUyMSA2LjA4NzMyLDQuMjI0NzMgNi4xOTc1NywzLjk2MjkgNi4xOTc1NywzLjY1OTc0IDYuMTk3NTcsMy4yNzM4NyA2LjEwMTA3LDIuOTg0NSA1LjkwODE4LDIuNzkxNTcgNS43NDI4MSwyLjYyNjIgNS41MDg1NSwyLjU0MzUyIDUuMjA1MzgsMi41NDM1MiA0Ljk1NzMzLDIuNTQzNTIgNC43NTA2MywyLjYyNjIyIDQuNTg1MjYsMi43OTE1NyA0LjMwOTY1LDMuMDY3MTggNC4xNzE4NSwzLjQ4MDU5IDQuMTcxODUsNC4wMzE4IEggMy4yMjEgQyAzLjIyMSwzLjMxNTIzIDMuNDU1MjcsMi43MjI2NyAzLjkyMzgsMi4yNTQxNCA0LjI1NDUzLDEuOTIzNDEgNC42OTU1LDEuNzU4MDUgNS4yNDY3MiwxLjc1ODA1IFogTSA0LjcwOTI4LDcuOTE3ODcgSCA1LjYxODc5IFYgOC45MTAwNSBIIDQuNzA5MjggWiIKICAgICBpZD0idGV4dDQ3MTMiCiAgICAgaW5rc2NhcGU6bGFiZWw9InF1ZXN0aW9uIiAvPgo8L3N2Zz4K') logoSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTUuODM0Njg5bW0iCiAgIGhlaWdodD0iMTUuODM0NjltbSIKICAgdmlld0JveD0iMCAwIDE1LjgzNDY4OSAxNS44MzQ2OSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnNDc5OCIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0ibG9nby5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0NzkyIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSI3LjkxOTU5NTkiCiAgICAgaW5rc2NhcGU6Y3g9IjI1LjQ0NjQzOCIKICAgICBpbmtzY2FwZTpjeT0iMjQuNTc5MDAyIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc0Nzk4IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNDc5NSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHBhdGgKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgIHN0eWxlPSJmaWxsOiM0NTZmOTI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMzAwODI1NTE7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICBkPSJNIDcuOTE3MzQ2LDAgQSA3LjkxNzMyMTYsNy45MTczMjE2IDAgMCAwIDAsNy45MTczNSA3LjkxNzMyMTYsNy45MTczMjE2IDAgMCAwIDcuOTE3MzQ2LDE1LjgzNDY5IDcuOTE3MzIxNiw3LjkxNzMyMTYgMCAwIDAgMTUuODM0Njg5LDcuOTE3MzUgNy45MTczMjE2LDcuOTE3MzIxNiAwIDAgMCA3LjkxNzM0NiwwIFogbSAyLjc2ODMwMyw1LjAwNzQ1IGMgMC4xMDAxNywwLjAxIDAuMTc2MTIsMC4wNCAwLjIyOTQ1LDAuMDk0NiAwLjIxMzI5LDAuMjE4MSAwLjA2NDUsMC44MjIgLTAuMjU5NDIsMS44NTM2MyBDIDEwLjMzMTgxMSw3Ljk4NzMxIDkuODM2MTcxLDkuNDM2MTcgOS40NjI0NzIsMTAuNDMxOTUgOS4wODg3NzMsMTEuNDI3NzMgOC44NDU4MTcsMTEuOTQ3MjIgOC41Njc0MzYsMTIuMDMxMzQgOC4yODkwNTQsMTIuMTE1NDQgNy45NzcyNTMsMTEuNzYxMTIgNy43NTY2MzMsMTEuMzAwNjMgNy41MzYwMTIsMTAuODQwMTUgNy40MDY3MzIsMTAuMjc0MTkgNy4xOTMzNiw5Ljg3Mzg1IDYuOTc5OTg3LDkuNDczNTEgNi42ODI0NTEsOS4yMzgyMyA2LjI2NTI1MSw4Ljk5ODQ1IDUuODQ4MDUsOC43NTg2NyA1LjMxMDkxMSw4LjUxNDQzIDQuODgzOTQsOC4yNjI1OCA0LjQ1Njk2OSw4LjAxMDcyIDQuMTQxMTA1LDcuNzUxODUgNC4xODY4MjUsNy41MDcwNyA0LjIzMjU0NSw3LjI2MjI5IDQuNjM5NjExLDcuMDMyMjEgNS41OTM5NzQsNi42NTMzNyA2LjU0ODMzNyw2LjI3NDU0IDguMDQ5NTMyLDUuNzQ2ODcgOS4wODc4MTcsNS4zOTkxOSA5Ljg2NjUzMSw1LjEzODQyIDEwLjM4NTE0Miw0Ljk3ODk3IDEwLjY4NTY0OSw1LjAwNzQ4IFoiCiAgICAgaWQ9InBhdGg0NTMyIgogICAgIGlua3NjYXBlOmxhYmVsPSJsb2dvIiAvPgo8L3N2Zz4K') downloadSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNi40NjM2ODk4bW0iCiAgIGhlaWdodD0iOS41MzcyMTA1bW0iCiAgIHZpZXdCb3g9IjAgMCA2LjQ2MzY4OTggOS41MzcyMTA1IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmcxMTYwNSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iZG93bmxvYWQuc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMTE1OTkiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjcuOTE5NTk1OSIKICAgICBpbmtzY2FwZTpjeD0iLTMuNTg5MjAwOCIKICAgICBpbmtzY2FwZTpjeT0iNDEuODY4MzE3IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmcxMTYwNSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzNjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTExNjAyIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8cGF0aAogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MC45OTMwMjQ0O3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjMxODc2ODI2O3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0iTSAyLjMyMDc5LDAgQyAyLjIxOTM0LDAgMi4xMzc4NiwwLjA4MTUgMi4xMzc4NiwwLjE4Mjk0IFYgNi4zOTM0MiBIIDAgbCAzLjA4MDQzLDMuMDgwOTQgYyAwLjA4MzgsMC4wODM4IDAuMjE5MDMsMC4wODM4IDAuMzAyODMsMCBMIDYuNDYzNjksNi4zOTM0MiBIIDQuMzQ1NDcgViAwLjE4Mjk0IEMgNC4zNDU0NywwLjA4MTUgNC4yNjM0NywwIDQuMTYyMDIsMCBaIgogICAgIGlkPSJwYXRoNDY5MiIKICAgICBpbmtzY2FwZTpsYWJlbD0iZG93bmxvYWQiIC8+Cjwvc3ZnPgo=') fileSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOS42Njg2NjAybW0iCiAgIGhlaWdodD0iOS4wMzU2MzAybW0iCiAgIHZpZXdCb3g9IjAgMCA5LjY2ODY2MDIgOS4wMzU2MzAyIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc5MzM0IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJmaWxlLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczkzMjgiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjAuMzUiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xMzEzLjE1NzEiCiAgICAgaW5rc2NhcGU6Y3k9IjgzNC4yMTgwNyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnOTMzNCIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzNjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTkzMzEiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxwYXRoCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0iTSAxLjA3OTAxLDAgQyAwLjQ4MTIxLDAgMCwwLjQ4MTIxIDAsMS4wNzkgdiA2Ljg3NzYyIGMgMCwwLjU5NzggMC40ODEyMSwxLjA3OTAxIDEuMDc5MDEsMS4wNzkwMSBoIDcuNTEwNjUgYyAwLjU5Nzc5LDAgMS4wNzksLTAuNDgxMjEgMS4wNzksLTEuMDc5MDEgViAzLjUxMDkgSCA2LjExNDg4IFYgMCBaIE0gNi44NzcxLDAgViAyLjY2MTg1IEggOS42Njg2NiBWIDIuNDM5NjUgTCA3LjIyODUsMCBaIgogICAgIGlkPSJyZWN0NDYyOCIKICAgICBpbmtzY2FwZTpsYWJlbD0iZmlsZSIgLz4KPC9zdmc+Cg==') playSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOC4xMzU1ODAxbW0iCiAgIGhlaWdodD0iOC44NDU1Mm1tIgogICB2aWV3Qm94PSIwIDAgOC4xMzU1ODAxIDguODQ1NTIiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzEyNzM3IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJwbGF5LnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczEyNzMxIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIxMS4yIgogICAgIGlua3NjYXBlOmN4PSI1LjY2NjU2MjMiCiAgICAgaW5rc2NhcGU6Y3k9IjM1LjIzNTU5IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmcxMjczNyIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzNjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTEyNzM0Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8cGF0aAogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MC45OTMwMjQ0O3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci14PSItNC44MDQ0ODA3IgogICAgIGQ9Ik0gMC41MDg0Nyw4LjgyNjI3NDggQyAwLjEyNDU4LDguNjA0NjM0OCAwLDQuODY2MDQ0OCAwLDQuNDIyNzU0OCAwLDMuOTc5NDc0OCAwLjEyNDU4LDAuMjQwODg0ODEgMC41MDg0NywwLjAxOTI0NDgxIGMgMC4zODM4OSwtMC4yMjE2NCAzLjY4MzksMS41Mzk3Njk5OSA0LjA2Nzc5LDEuNzYxNDA5OTkgMC4zODM4OSwwLjIyMTY0IDMuNTU5MzIsMi4xOTg4MiAzLjU1OTMyLDIuNjQyMSAwLDAuNDQzMjkgLTMuMTc1NDMsMi40MjA0NyAtMy41NTkzMiwyLjY0MjExIC0wLjM4Mzg5LDAuMjIxNjQgLTMuNjgzOSwxLjk4MzA1IC00LjA2Nzc5LDEuNzYxNDEgeiIKICAgICBpZD0icGF0aDQ3MDgiCiAgICAgaW5rc2NhcGU6bGFiZWw9InBsYXkiIC8+Cjwvc3ZnPgo=') pauseSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4NCg0KPHN2Zw0KICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIg0KICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyINCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyINCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiDQogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSINCiAgIHdpZHRoPSI2LjM1ODI3MDJtbSINCiAgIGhlaWdodD0iNy4zODYxMDk4bW0iDQogICB2aWV3Qm94PSIwIDAgNi4zNTgyNzAyIDcuMzg2MTA5OCINCiAgIHZlcnNpb249IjEuMSINCiAgIGlkPSJzdmcxMjE3MSINCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiDQogICBzb2RpcG9kaTpkb2NuYW1lPSJwYXVzZS5zdmciPg0KICA8ZGVmcw0KICAgICBpZD0iZGVmczEyMTY1IiAvPg0KICA8c29kaXBvZGk6bmFtZWR2aWV3DQogICAgIGlkPSJiYXNlIg0KICAgICBwYWdlY29sb3I9IiNmZmZmZmYiDQogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2Ig0KICAgICBib3JkZXJvcGFjaXR5PSIxLjAiDQogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiDQogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiDQogICAgIGlua3NjYXBlOnpvb209IjcuOTE5NTk1OSINCiAgICAgaW5rc2NhcGU6Y3g9Ii0xMi42NTY0NTMiDQogICAgIGlua3NjYXBlOmN5PSIzOS43NjM4ODIiDQogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSINCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTIxNzEiDQogICAgIHNob3dncmlkPSJmYWxzZSINCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIg0KICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIg0KICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiDQogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSINCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4NCiAgPG1ldGFkYXRhDQogICAgIGlkPSJtZXRhZGF0YTEyMTY4Ij4NCiAgICA8cmRmOlJERj4NCiAgICAgIDxjYzpXb3JrDQogICAgICAgICByZGY6YWJvdXQ9IiI+DQogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0Pg0KICAgICAgICA8ZGM6dHlwZQ0KICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPg0KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4NCiAgICAgIDwvY2M6V29yaz4NCiAgICA8L3JkZjpSREY+DQogIDwvbWV0YWRhdGE+DQogIDxwYXRoDQogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjAuOTkzMDI0NDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMjtzdHJva2Utb3BhY2l0eToxIg0KICAgICBkPSJNIDAuMTgzNDUsMCBDIDAuMDgyLDAgMCwwLjA4MiAwLDAuMTgzNDMgdiA3LjAxOTc0IGMgMCwwLjEwMTQ0IDAuMDgyLDAuMTgyOTQgMC4xODM0NSwwLjE4Mjk0IGggMS43MTkyOCBjIDAuMTAxNDUsMCAwLjE4MjkzLC0wLjA4MTUgMC4xODI5MywtMC4xODI5NCBWIDAuMTgzNDMgQyAyLjA4NTY2LDAuMDgxOTkgMi4wMDQxNiwwIDEuOTAyNzMsMCBaIE0gNC40NTYwNiwwIEMgNC4zNTQ2MSwwIDQuMjczMTMsMC4wODIgNC4yNzMxMywwLjE4MzQzIHYgNy4wMTk3NCBjIDAsMC4xMDE0NCAwLjA4MTUsMC4xODI5NCAwLjE4MjkzLDAuMTgyOTQgaCAxLjcxOTI4IGMgMC4xMDE0NSwwIDAuMTgyOTMsLTAuMDgxNSAwLjE4MjkzLC0wLjE4Mjk0IFYgMC4xODM0MyBDIDYuMzU4MjcsMC4wODE5OSA2LjI3Njc3LDAgNi4xNzUzNCwwIFoiDQogICAgIGlkPSJyZWN0NDY5NyINCiAgICAgaW5rc2NhcGU6bGFiZWw9InBhdXNlIiAvPg0KPC9zdmc+DQo=') micSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNy43ODQ1NDAybW0iCiAgIGhlaWdodD0iMTAuMTMzMjNtbSIKICAgdmlld0JveD0iMCAwIDcuNzg0NTQwMiAxMC4xMzMyMyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMTA0NzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9Im1pYy5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMxMDQ2NiIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMTEuMiIKICAgICBpbmtzY2FwZTpjeD0iMS43MDAyOTI3IgogICAgIGlua3NjYXBlOmN5PSIyNC42ODkzODYiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzEwNDcyIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhMTA0NjkiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxwYXRoCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0iTSAzLjg5MTI0LDAgQyAzLjAzMzAyLC0zLjk5OTgyNzVlLTUgMi4zMzcyOSwwLjY5NTY5IDIuMzM3MzMsMS41NTM5MSB2IDMuMzM3NzggYyAtNGUtNSwwLjg1ODIyIDAuNjk1NjksMS41NTM5NiAxLjU1MzkxLDEuNTUzOTEgMC44NTgyMiw1ZS01IDEuNTUzOTUsLTAuNjk1NjkgMS41NTM5MSwtMS41NTM5MSBWIDEuNTUzOTEgQyA1LjQ0NTE5LDAuNjk1NjkgNC43NDk0NiwtMy45OTk4Mjc1ZS01IDMuODkxMjQsMCBaIE0gMCw0LjgxOTg2IEEgMy44OTg5NzE0LDMuODk4OTcxNCAwIDAgMCAzLjMwODMzLDguNTEyMTQgViAxMC4wMTggYyAwLDAuMDYzOCAwLjA1MTUsMC4xMTUyMyAwLjExNTI0LDAuMTE1MjMgaCAwLjg5OTE3IGMgMC4wNjM4LDAgMC4xMTUyNCwtMC4wNTE1IDAuMTE1MjQsLTAuMTE1MjMgViA4LjUxNjc5IEEgMy44OTg5NzE0LDMuODk4OTcxNCAwIDAgMCA3Ljc4NDU0LDQuODE5ODYgSCA2Ljc3NTMgQSAyLjg5MTg1NjksMi44OTE4NTY5IDAgMCAxIDMuODkxMjQsNy41NTMwMyAyLjg5MTg1NjksMi44OTE4NTY5IDAgMCAxIDEuMDA1MTEsNC44MTk4NiBaIgogICAgIGlkPSJwYXRoNDY1NyIKICAgICBpbmtzY2FwZTpsYWJlbD0ibWljIiAvPgo8L3N2Zz4K') eyeSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNy45MTUyNzk5bW0iCiAgIGhlaWdodD0iNS42MTU2NzVtbSIKICAgdmlld0JveD0iMCAwIDcuOTE1Mjc5OSA1LjYxNTY3NSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMTU1NjgiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImV5ZS5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMxNTU2MiIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iNy45MTk1OTU5IgogICAgIGlua3NjYXBlOmN4PSItMTAuMDk1NjU1IgogICAgIGlua3NjYXBlOmN5PSI0LjgzMjM5OTgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzE1NTY4IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTpwYWdlY2hlY2tlcmJvYXJkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExNTU2NSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHBhdGgKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjAuOTkzMDI0NDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMjtzdHJva2Utb3BhY2l0eToxIgogICAgIGQ9Ik0gMy45NTc5LDAgQyAxLjg1MjEzLDAgMWUtNSwxLjY4NDEyNiAwLDIuODA3NTczIGMgMCwxLjI3NjA1OSAxLjg2MjI5LDIuODA4MTAyIDMuOTU3OSwyLjgwODEwMiAyLjIxNzY5LDAgMy45NTczOSwtMS42NjQzMDggMy45NTczOCwtMi44MDgxMDIgQyA3LjkxNTI3LDEuNzg1ODU4IDYuMDg0MDIsMCAzLjk1NzksMCBaIE0gMy45NDc2LDAuODg0Njg3IEEgMS45MjI3NzEsMS45MjI3NzEgMCAwIDEgNS44NzA0OCwyLjgwNzU3MyAxLjkyMjc3MSwxLjkyMjc3MSAwIDAgMSAzLjk0NzYsNC43MzA0NTkgMS45MjI3NzEsMS45MjI3NzEgMCAwIDEgMi4wMjQ3MiwyLjgwNzU3MyAxLjkyMjc3MSwxLjkyMjc3MSAwIDAgMSAzLjk0NzYsMC44ODQ2ODcgWiBNIDMuOTU3OSwxLjcwODk0NCBBIDEuMTA4ODk5NywxLjEwODg5OTcgMCAwIDAgMi44NDg5MiwyLjgxNzkxOCAxLjEwODg5OTcsMS4xMDg4OTk3IDAgMCAwIDMuOTU3OSwzLjkyNjg5MyAxLjEwODg5OTcsMS4xMDg4OTk3IDAgMCAwIDUuMDY2MzYsMi44MTc5MTggMS4xMDg4OTk3LDEuMTA4ODk5NyAwIDAgMCAzLjk1NzksMS43MDg5NDQgWiIKICAgICBpZD0icGF0aDQ3NjMiCiAgICAgaW5rc2NhcGU6bGFiZWw9ImV5ZSIgLz4KPC9zdmc+Cg==') downbtnSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOC4wMDE1ODAybW0iCiAgIGhlaWdodD0iMTAuNzIwNzltbSIKICAgdmlld0JveD0iMCAwIDguMDAxNTgwMiAxMC43MjA3OSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMjAxMjAiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImRvd25idG4uc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMjAxMTQiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjIyLjQiCiAgICAgaW5rc2NhcGU6Y3g9IjE1LjY4MTgxIgogICAgIGlua3NjYXBlOmN5PSIyMS40ODcwMzIiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzIwMTIwIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhMjAxMTciPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxwYXRoCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojOTk5OTk5O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0iTSAyLjUyOTU2LDAgQyAyLjQ0ODA2LDAgMi4zODIyOCwwLjA2NTggMi4zODIyOCwwLjE0NzI4IFYgNC42NjE3MyBDIDEuNDgxNSw0LjY5OTMzIDAuNTMyNTQsNC43NjE3NiAwLjQzNDA4LDQuODY2MzcgMC4yNTYzMiw1LjA1NTI0IDEuNjY5MTUsNi42Nzg0MiAxLjg0NjkxLDYuODY3MjggMi4wMjQ2OCw3LjA1NjE1IDMuNjEwMTIsOC42MTg2IDMuOTY1NjUsOC42MTg2IDQuMzIxMTcsOC42MTg2IDUuOTA3MTQsNy4wNTYxNSA2LjA4NDksNi44NjcyOCA2LjI2MjY2LDYuNjc4NDIgNy42NzU0OSw1LjA1NTI0IDcuNDk3NzMsNC44NjYzNyA3LjQwMTkzLDQuNzY0NjMgNi40OTgwNCw0LjcwMTg2IDUuNjE5MjksNC42NjM4IFYgMC4xNDcyOCBDIDUuNjE5MjksMC4wNjU3OCA1LjU1MzQ5LDAgNS40NzIwMiwwIFogTSAwLjE0Njc2LDkuNTI5MTQgQyAwLjA2NTI2LDkuNTI5MTQgMCw5LjU5NDg0IDAsOS42NzY0MiB2IDAuODk3MSBjIDAsMC4wODE1IDAuMDY1MiwwLjE0NzI3IDAuMTQ2NzYsMC4xNDcyNyBoIDcuNzA4MDYgYyAwLjA4MTUsMCAwLjE0Njc2LC0wLjA2NTggMC4xNDY3NiwtMC4xNDcyNyB2IC0wLjg5NzEgYyAwLC0wLjA4MTUgLTAuMDY1MiwtMC4xNDcyOCAtMC4xNDY3NiwtMC4xNDcyOCB6IgogICAgIGlkPSJyZWN0MTcyNjgiCiAgICAgaW5rc2NhcGU6bGFiZWw9ImRvd25idG4iIC8+Cjwvc3ZnPgo=') fwrSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTIuMjMwNzhtbSIKICAgaGVpZ2h0PSI4Ljc5NDM1NTRtbSIKICAgdmlld0JveD0iMCAwIDEyLjIzMDc4IDguNzk0MzU1NCIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMTg5ODgiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImZvcndhcmQuc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMTg5ODIiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjE1LjgzOTE5MiIKICAgICBpbmtzY2FwZTpjeD0iMTYuNDY4NDI0IgogICAgIGlua3NjYXBlOmN5PSIxNi43OTUxMTUiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzE4OTg4IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhMTg5ODUiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxwYXRoCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojOTk5OTk5O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0iTSA3LjE4NzcsNy4yMzUzMTk2ZS01IEMgNy4xNTczLC03LjI3NjQ2OGUtNCA3LjEzMzUsMC4wMDUwNzIzNSA3LjExNzQsMC4wMTkxNzIzNSA2Ljk1OTYyLDAuMTU0MjYyMzUgNi44NzI4MiwxLjU3MDU5MjQgNi44MjQ5MSwyLjc3MzUyMjQgMC41OTY3MSwyLjg1OTEyMjQgMCw4LjM3NjgwMjQgMCw4LjM3NjgwMjQgYyAwLDAgMy4xNTI3LC0yLjcyNzU3IDYuODMwNiwtMi4yMDk2OSAwLjA0OTUsMS4xNjk4OSAwLjEzNTU5LDIuNDc4NjQgMC4yODY4LDIuNjA4MTEgMC4yNTczNSwwLjIyMDM2IDIuNDY5NjEsLTEuNTMwOTYgMi43MjY5NiwtMS43NTEzMSAwLjI1NzM2LC0wLjIyMDM2IDIuMzg2NDIsLTIuMTg2IDIuMzg2NDIsLTIuNjI2NzIgMCwtMC40NDA3MSAtMi4xMjkwNiwtMi40MDY4NyAtMi4zODY0MiwtMi42MjcyMyBDIDkuNjAzMSwxLjU2MzM4MjQgNy42NDM3MiwwLjAxMTY4MjM1IDcuMTg3NjgsNC4yMzUzMTk2ZS01IFoiCiAgICAgaWQ9InBhdGgxNzI1MCIKICAgICBpbmtzY2FwZTpsYWJlbD0iZm9yd2FyZCIgLz4KPC9zdmc+Cg==') leftSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOC4xMDE1OTQ5bW0iCiAgIGhlaWdodD0iMTMuNjg3NDA3bW0iCiAgIHZpZXdCb3g9IjAgMCA4LjEwMTU5NDkgMTMuNjg3NDA3IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmcxNzg1NiIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0ibGVmdC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMxNzg1MCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMTEuMiIKICAgICBpbmtzY2FwZTpjeD0iMTMuOTgxNjQyIgogICAgIGlua3NjYXBlOmN5PSIzOS4yMjcyMTkiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzE3ODU2IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhMTc4NTMiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxwYXRoCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojOTk5OTk5O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2MTI2NzgxO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0ibSA2Ljg0MzkwNzUsMCBjIC0wLjA3LDAgLTAuMTQwMTIsMC4wMjcgLTAuMTkzNzgsMC4wODA2IGwgLTUuNTg2MjMsNS41ODU3MSAtMC45ODM0LDAuOTgzNCBjIC0wLjEwNzMzLDAuMTA3MzMgLTAuMTA3MzMsMC4yODAyNCAwLDAuMzg3NTggbCAwLjk4MzQsMC45ODM0IDUuNTg2MjMsNS41ODYyMiBjIDAuMTA3MzMsMC4xMDczMyAwLjI3OTcyLDAuMTA3MzMgMC4zODcwNSwwIGwgMC45ODM5MiwtMC45ODM0IGMgMC4xMDczMywtMC4xMDczMyAwLjEwNzMzLC0wLjI4MDI0IDAsLTAuMzg3NTggbCAtNS4zOTI0MywtNS4zOTI0MyA1LjM5MjQzLC01LjM5MTkyIGMgMC4xMDczMywtMC4xMDczMyAwLjEwNzMzLC0wLjI4MDI0IDAsLTAuMzg3NTcgTCA3LjAzNzE3NzUsMC4wODA2IEMgNi45ODM0Nzc1LDAuMDI2OSA2LjkxMzk0NzUsMCA2Ljg0MzkwNzUsMCBaIgogICAgIGlkPSJyZWN0MTcyNDMiCiAgICAgaW5rc2NhcGU6bGFiZWw9ImxlZnQiIC8+Cjwvc3ZnPgo=') rightSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOC4xMDE1OTQ5bW0iCiAgIGhlaWdodD0iMTMuNjg3NDA3bW0iCiAgIHZpZXdCb3g9IjAgMCA4LjEwMTU5NDkgMTMuNjg3NDA3IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmcxODQyMiIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icmlnaHQuc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMTg0MTYiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjcuOTE5NTk1OSIKICAgICBpbmtzY2FwZTpjeD0iLTE3LjU4NTk5IgogICAgIGlua3NjYXBlOmN5PSIxMy41MTI1MDEiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzE4NDIyIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhMTg0MTkiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxwYXRoCiAgICAgaW5rc2NhcGU6bGFiZWw9InJpZ2h0IgogICAgIGlkPSJwYXRoMTcyNDgiCiAgICAgZD0ibSAxLjI1NzY4NzUsMCBjIDAuMDcsMCAwLjE0MDEyLDAuMDI2OSAwLjE5Mzc4LDAuMDgwNiBsIDUuNTg2MjIsNS41ODU3MSAwLjk4MzQxLDAuOTgzNCBjIDAuMTA3MzMsMC4xMDczMyAwLjEwNzMzLDAuMjgwMjQgMCwwLjM4NzU3IGwgLTAuOTgzNDEsMC45ODM0IC01LjU4NjIyLDUuNTg2MjMgYyAtMC4xMDczMywwLjEwNzMzIC0wLjI3OTcyLDAuMTA3MzMgLTAuMzg3MDUsMCBsIC0wLjk4MzkyLC0wLjk4MzQxIGMgLTAuMTA3MzMsLTAuMTA3MzIgLTAuMTA3MzMsLTAuMjgwMjQgMCwtMC4zODc1NyBsIDUuMzkyNDMsLTUuMzkyNDQgLTUuMzkyNDMsLTUuMzkxOTEgYyAtMC4xMDczMywtMC4xMDczMyAtMC4xMDczMywtMC4yODAyNSAwLC0wLjM4NzU4IGwgMC45ODM5MiwtMC45ODM0IEMgMS4xMTgxMTc1LDAuMDI2OSAxLjE4NzY0NzUsMCAxLjI1NzY4NzUsMCBaIgogICAgIHN0eWxlPSJmaWxsOiM5OTk5OTk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMjYxMjY3ODE7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgo8L3N2Zz4K') xSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTAuMjc0NzhtbSIKICAgaGVpZ2h0PSIxMC4yNzQ3OG1tIgogICB2aWV3Qm94PSIwIDAgMTAuMjc0NzggMTAuMjc0NzgiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzE3MjkwIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJ4LnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczE3Mjg0IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSI1LjYiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xLjA3NDY4MjkiCiAgICAgaW5rc2NhcGU6Y3k9IjM5LjA4Njg0MyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTcyOTAiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExNzI4NyI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHBhdGgKICAgICBzdHlsZT0iZmlsbDojOTk5OTk5O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0ibSAwLjA4MTcwMjg2LDAuOTE4MTIyNzQgYyAtMC4xMDg2OTIsMC4xMDg2ODk5NiAtMC4xMDkwNTgsMC4yODMzODk5NiAtMy43MWUtNCwwLjM5MjA3OTk2IGwgMy44MjcyODQwNCwzLjgyNzI4IC0zLjgyNjkxMzA0LDMuODI2OTEgYyAtMC4xMDg2OTIsMC4xMDg2OSAtMC4xMDg2OTIsMC4yODM3NiAwLDAuMzkyNDUgbCAwLjgzNjQxOCwwLjgzNjQyMDMgYyAwLjEwODY5MjA0LDAuMTA4NjkgMC4yODMzOTAwNCwwLjEwODMyIDAuMzkyMDgyMDQsLTMuN2UtNCBsIDMuODI2OTEzLC0zLjgyNjkxMDMgMy44MjcyNzksMy44MjcyODAzIGMgMC4xMDg2OTIsMC4xMDg2OSAwLjI4Mzc1NiwwLjEwODY5IDAuMzkyNDQ4LDAgTCAxMC4xOTMyNjEsOS4zNTY4NDI3IGMgMC4xMDg2OTIsLTAuMTA4NjkgMC4xMDg2OTIsLTAuMjgzNzYgMCwtMC4zOTI0NSBsIC0zLjgyNzI3OTEsLTMuODI3MjggMy44MjY5MTMxLC0zLjgyNjkxIGMgMC4xMDg2OTIsLTAuMTA4NjkgMC4xMDkwNTgsLTAuMjgzMzkgMy43MWUtNCwtMC4zOTIwNzk5NiBsIC0wLjgzNjQxODEsLTAuODM2NDIgYyAtMC4xMDg2OTMsLTAuMTA4NjkgLTAuMjgzNzU2LC0wLjEwODY5IC0wLjM5MjQ0OCwwIEwgNS4xMzc0ODE5LDMuOTA4NjEyNyAxLjMxMDIwMjksMC4wODEzMzI3NCBjIC0wLjEwODY5MiwtMC4xMDg2OSAtMC4yODMzOSwtMC4xMDgzMiAtMC4zOTIwODIwNCwzLjdlLTQgeiIKICAgICBpZD0icmVjdDE3MjM4IgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgaW5rc2NhcGU6bGFiZWw9IngiIC8+Cjwvc3ZnPgo=') trashSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNy40NDE0MTAxbW0iCiAgIGhlaWdodD0iOS41NDM2MDI5bW0iCiAgIHZpZXdCb3g9IjAgMCA3LjQ0MTQxMDEgOS41NDM2MDI5IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmcxOTU1NCIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0idHJhc2guc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMTk1NDgiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjE1LjgzOTE5MiIKICAgICBpbmtzY2FwZTpjeD0iMjEuOTIwMjkzIgogICAgIGlua3NjYXBlOmN5PSIxNy43NzY1MDEiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzE5NTU0IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhMTk1NTEiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxwYXRoCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojOTk5OTk5O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0iTSAyLjQ1OTI4LDAgQyAyLjM3Nzc4LDAgMi4yNjM1NywwLjA4Nzc5IDIuMTk4MzIsMC4xNDcyNzggTCAxLjg4MzA5LDAuNDM0NTk5IEggMC4xNDcyOCBDIDAuMDY1NzgsMC40MzQ1OTkgMCwwLjUwMDM0OSAwLDAuNTgxODc3IHYgMC44NDA3NzQgYyAwLDAuMDgxNTIgMC4wNjU4LDAuMTQ2NzYyIDAuMTQ3MjgsMC4xNDY3NjIgaCA3LjE0Njg1IGMgMC4wODE1LDAgMC4xNDcyOCwtMC4wNjUyNCAwLjE0NzI4LC0wLjE0Njc2MiBWIDAuNTgxODc3IGMgMCwtMC4wODE1MiAtMC4wNjU4LC0wLjE0NzI3OCAtMC4xNDcyOCwtMC4xNDcyNzggSCA1LjUxMzM2IEwgNS4xNzI4MSwwLjE0NzI3OCBDIDUuMTA1MzEsMC4wOTAyNTggNC45OTMzNywwIDQuOTExODUsMCBaIE0gMC40NjI1MSwyLjA3NDI5MSB2IDYuMTU4MjggYyAwLDAuNzI2MzA4IDAuNTg0NzIsMS4zMTEwMzIgMS4zMTEwMywxLjMxMTAzMiBoIDMuODUyNDcgYyAwLjcyNjMxLDAgMS4zMTEwNCwtMC41ODQ3MjQgMS4zMTEwNCwtMS4zMTEwMzIgdiAtNi4xNTgyOCB6IgogICAgIGlkPSJyZWN0MTcyNTYiCiAgICAgaW5rc2NhcGU6bGFiZWw9InRyYXNoIiAvPgo8L3N2Zz4K') searchSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNy42MzQ2NzVtbSIKICAgaGVpZ2h0PSI3LjYwOTgzNDJtbSIKICAgdmlld0JveD0iMCAwIDcuNjM0Njc1IDcuNjA5ODM0MiIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMjA2NSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0ic2VhcmNoLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczIwNTkiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjE1LjgzOTE5MiIKICAgICBpbmtzY2FwZTpjeD0iMTAuMTU1Mzk2IgogICAgIGlua3NjYXBlOmN5PSIxOC41OTU5MDkiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzIwNjUiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEyMDYyIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8cGF0aAogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgc3R5bGU9ImZpbGw6Izk5OTk5OTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC44NzMxMjUwMjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgIGQ9Ik0gNC41NTA2MjUsMi4yMDMwMzIxZS04IEEgMy4wODM2ODE0LDMuMDgzNjgxNCAwIDAgMCAxLjQ2NzA4NSwzLjA4MzUzMSAzLjA4MzY4MTQsMy4wODM2ODE0IDAgMCAwIDEuOTgxMjY1LDQuNzg0MjA0IGwgLTEuOTA2MzQsMS45MDYzNDQgYyAtMC4wOTk5LDAuMDk5ODYgLTAuMDk5OSwwLjI2MDg0MiAwLDAuMzYwNzAxIGwgMC40ODMxOCwwLjQ4MzY5IGMgMC4wOTk5LDAuMDk5ODYgMC4yNjA4NCwwLjA5OTg2IDAuMzYwNywwIEwgMi44MjEwMTUsNS42MzI3MzEgQSAzLjA4MzY4MTQsMy4wODM2ODE0IDAgMCAwIDQuNTUwNjI1LDYuMTY3MDY0IDMuMDgzNjgxNCwzLjA4MzY4MTQgMCAwIDAgNy42MzQ2NzUsMy4wODM1MzEgMy4wODM2ODE0LDMuMDgzNjgxNCAwIDAgMCA0LjU1MDYyNSwyLjIwMzAzMjFlLTggWiBNIDQuNTUwNjI1LDAuOTYxMTgxMDIgQSAyLjEyMjEwMzMsMi4xMjIxMDMzIDAgMCAxIDYuNjcyOTc1LDMuMDgzNTMxIDIuMTIyMTAzMywyLjEyMjEwMzMgMCAwIDEgNC41NTA2MjUsNS4yMDU4ODQgMi4xMjIxMDMzLDIuMTIyMTAzMyAwIDAgMSAyLjQyODc4NSwzLjA4MzUzMSAyLjEyMjEwMzMsMi4xMjIxMDMzIDAgMCAxIDQuNTUwNjI1LDAuOTYxMTgxMDIgWiIKICAgICBpZD0icGF0aDg1OCIKICAgICBpbmtzY2FwZTpsYWJlbD0ic2VhcmNoIiAvPgo8L3N2Zz4K') emojiSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTEuNzE5Njk4bW0iCiAgIGhlaWdodD0iMTEuNzE5NjltbSIKICAgdmlld0JveD0iMCAwIDExLjcxOTY5OCAxMS43MTk2OSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMTEwMzgiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImVtb2ppLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczExMDMyIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyMi40IgogICAgIGlua3NjYXBlOmN4PSIyMS41NjU4OTkiCiAgICAgaW5rc2NhcGU6Y3k9IjIxLjA5MTA1NSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTEwMzgiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGExMTAzNSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHBhdGgKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICBkPSJNIDUuODYwMTA3LDAgQSA1Ljg1OTg3MzEsNS44NTk4NzMxIDAgMCAwIDAsNS44NTk1OCA1Ljg1OTg3MzEsNS44NTk4NzMxIDAgMCAwIDUuODYwMTA3LDExLjcxOTY5IDUuODU5ODczMSw1Ljg1OTg3MzEgMCAwIDAgMTEuNzE5Njk4LDUuODU5NTggNS44NTk4NzMxLDUuODU5ODczMSAwIDAgMCA1Ljg2MDEwNywwIFogbSAwLDEuMTE4NzkgQSA0LjcwMDEwNjgsNC43MDAxMDY4IDAgMCAxIDEwLjU2MDA3OSw1LjgxOTI4IDQuNzAwMTA2OCw0LjcwMDEwNjggMCAwIDEgNS44NjAxMDcsMTAuNTE5MjUgNC43MDAxMDY4LDQuNzAwMTA2OCAwIDAgMSAxLjE2MDEzNiw1LjgxOTI4IDQuNzAwMTA2OCw0LjcwMDEwNjggMCAwIDEgNS44NjAxMDcsMS4xMTg3OSBaIE0gMy45Njc3MTYsMy42ODI0NiBBIDAuNzMyNDg0MTcsMS4wNTgwMzI3IDAgMCAwIDMuMjM1NDYxLDQuNzQwNzkgMC43MzI0ODQxNywxLjA1ODAzMjcgMCAwIDAgMy45Njc3MTYsNS43OTg2MSAwLjczMjQ4NDE3LDEuMDU4MDMyNyAwIDAgMCA0LjcwMDQ4OCw0Ljc0MDc5IDAuNzMyNDg0MTcsMS4wNTgwMzI3IDAgMCAwIDMuOTY3NzE2LDMuNjgyNDYgWiBtIDMuNzY0MTEyLDAgQSAwLjczMjQ4NDE3LDEuMDU4MDMyNyAwIDAgMCA2Ljk5OTU3Myw0Ljc0MDc5IDAuNzMyNDg0MTcsMS4wNTgwMzI3IDAgMCAwIDcuNzMxODI4LDUuNzk4NjEgMC43MzI0ODQxNywxLjA1ODAzMjcgMCAwIDAgOC40NjQ2LDQuNzQwNzkgMC43MzI0ODQxNywxLjA1ODAzMjcgMCAwIDAgNy43MzE4MjgsMy42ODI0NiBaIE0gMy41MDk4NjMsNi45ODkyMyBjIC0wLjMzODE2NCwwIC0wLjYxMDI5OCwwLjI3MjE0IC0wLjYxMDI5OCwwLjYxMDMgdiAwLjU2OTQ4IGMgMCwwLjMzODE2IDAuMjcyMTM0LDAuNjEwMjkgMC42MTAyOTgsMC42MTAyOSBoIDQuNzIwNjQyIGMgMC4zMzgxNjUsMCAwLjYxMDI5OSwtMC4yNzIxMyAwLjYxMDI5OSwtMC42MTAyOSBWIDcuNTk5NTMgYyAwLC0wLjMzODE2IC0wLjI3MjEzNCwtMC42MTAzIC0wLjYxMDI5OSwtMC42MTAzIHoiCiAgICAgaWQ9InBhdGg0NjczIgogICAgIGlua3NjYXBlOmxhYmVsPSJlbW9qaSIgLz4KPC9zdmc+Cg==') bgSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOS42Mzk3Mm1tIgogICBoZWlnaHQ9IjkuNTgxODM5Nm1tIgogICB2aWV3Qm94PSIwIDAgOS42Mzk3MiA5LjU4MTgzOTYiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg3NjciCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImJnaWNvbi5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4NzYxIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIzLjk1OTc5OCIKICAgICBpbmtzY2FwZTpjeD0iLTM1LjQyOTA2NiIKICAgICBpbmtzY2FwZTpjeT0iMjQuNjQwMTgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2Zzg3NjciCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NzY0Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8cGF0aAogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMjtzdHJva2Utb3BhY2l0eToxIgogICAgIGQ9Ik0gMS4wNzksMCBDIDAuNDgxMjEsMCAwLDAuNDgxMjEgMCwxLjA3OSB2IDcuNDIzODQgYyAwLDAuNTk3NzkgMC40ODEyMSwxLjA3OSAxLjA3OSwxLjA3OSBoIDcuNDgxNzIgYyAwLjU5Nzc5LDAgMS4wNzksLTAuNDgxMjEgMS4wNzksLTEuMDc5IFYgMS4wNzkgQyA5LjYzOTcyLDAuNDgxMjEgOS4xNTg1MSwwIDguNTYwNzIsMCBaIG0gNS4wNDc3Niw0LjcxMjg5IGMgMC4wNTg4LDAgMC4xMTc2OSwwLjAyNzUgMC4xNjI3OCwwLjA4MjIgTCA4Ljg3OTA1LDcuOTM3NTQgSCAwLjg0NTk0IGwgMS45NjczMywtMi4yNjg2IGMgMC4wOTAyLC0wLjEwMzk5IDAuMjM1MzgsLTAuMTAzOTkgMC4zMjU1NiwwIGwgMS4wNzksMS4yNDQ4OSAxLjc0NjE1LC0yLjExODc0IGMgMC4wNDUxLC0wLjA1NDcgMC4xMDM5NCwtMC4wODIyIDAuMTYyNzgsLTAuMDgyMiB6IgogICAgIGlkPSJyZWN0NDYxNSIKICAgICBpbmtzY2FwZTpsYWJlbD0iYmdpY29uIiAvPgo8L3N2Zz4K') videoSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOC40NTk2MDA0bW0iCiAgIGhlaWdodD0iOS41NjczOG1tIgogICB2aWV3Qm94PSIwIDAgOC40NTk2MDA0IDkuNTY3MzgiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzk5MDYiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InZpZGVvLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczk5MDAiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjE1LjgzOTE5MiIKICAgICBpbmtzY2FwZTpjeD0iMTcuMDg3NTg4IgogICAgIGlua3NjYXBlOmN5PSIyMy44NDI2MzIiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2Zzk5MDYiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzNjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTk5MDMiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxwYXRoCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0iTSAwLjExNDcyLDAgQyAwLjA1MDkyLDAgMCwwLjA1MSAwLDAuMTE0NzIgdiA5LjMzNzQyIGMgMCwwLjA2MzggMC4wNTEsMC4xMTUyNCAwLjExNDcyLDAuMTE1MjQgaCAwLjkwNDg2IGMgLTAuMDI0NywtMC4wMjEgLTAuMDQxMywtMC4wNTEgLTAuMDQxMywtMC4wODYzIFYgOC41NjAyIGMgMCwtMC4wNjM4IDAuMDUxLC0wLjExNTI0IDAuMTE0NzIsLTAuMTE1MjQgaCAwLjkyMDg3IGMgMC4wNjM4LDAgMC4xMTUyNCwwLjA1MTUgMC4xMTUyNCwwLjExNTI0IHYgMC45MjA4OCBjIDAsMC4wMzUyIC0wLjAxNjUsMC4wNjUzIC0wLjA0MTMsMC4wODYzIGggNC4yMTE2MyBjIC0wLjAyNDgsLTAuMDIxIC0wLjA0MTMsLTAuMDUxMSAtMC4wNDEzLC0wLjA4NjMgViA4LjU2MDIgYyAwLC0wLjA2MzggMC4wNTE1LC0wLjExNTI0IDAuMTE1MjQsLTAuMTE1MjQgaCAwLjkyMDg3IGMgMC4wNjM4LDAgMC4xMTUyNCwwLjA1MTUgMC4xMTUyNCwwLjExNTI0IHYgMC45MjA4OCBjIDAsMC4wMzUyIC0wLjAxNjUsMC4wNjUzIC0wLjA0MTMsMC4wODYzIGggMC45NzYxNyBjIDAuMDYzOCwwIDAuMTE1MjQsLTAuMDUxNSAwLjExNTI0LC0wLjExNTI0IFYgMC4xMTQ3MiBDIDguNDU5NiwwLjA1MDkyIDguNDA4MSwwIDguMzQ0MzYsMCBIIDcuMzkyNDggYyAwLjAxLDAuMDE3MSAwLjAxNzEsMC4wMzYxIDAuMDE3MSwwLjA1NzQgdiAwLjkyMDg4IGMgMCwwLjA2MzggLTAuMDUxNSwwLjExNDcyIC0wLjExNTI0LDAuMTE0NzIgSCA2LjM3MzQ3IEMgNi4zMDk2NywxLjA5MyA2LjI1ODIzLDEuMDQyIDYuMjU4MjMsMC45NzgyOCBWIDAuMDU3NCBjIDAsLTAuMDIxMyAwLjAwNywtMC4wNDAzIDAuMDE3MSwtMC4wNTc0IEggMi4xMTIyOCBjIDAuMDEsMC4wMTcxIDAuMDE3LDAuMDM2MSAwLjAxNywwLjA1NzQgdiAwLjkyMDg4IGMgMCwwLjA2MzggLTAuMDUxNSwwLjExNDcyIC0wLjExNTI0LDAuMTE0NzIgSCAxLjA5MzE3IEMgMS4wMjkzNywxLjA5MyAwLjk3ODQ1LDEuMDQyIDAuOTc4NDUsMC45NzgyOCBWIDAuMDU3NCBjIDAsLTAuMDIxMyAwLjAwNywtMC4wNDAzIDAuMDE3LC0wLjA1NzQgeiBtIDAuOTc4MjQsMi4wNTcyNCBoIDAuOTIwODcgYyAwLjA2MzgsMCAwLjExNTI0LDAuMDUxNSAwLjExNTI0LDAuMTE1MjQgdiAwLjkyMDg3IGMgMCwwLjA2MzggLTAuMDUxNSwwLjExNDcyIC0wLjExNTI0LDAuMTE0NzIgSCAxLjA5Mjk2IGMgLTAuMDYzOCwwIC0wLjExNDcyLC0wLjA1MSAtMC4xMTQ3MiwtMC4xMTQ3MiBWIDIuMTcyNDggYyAwLC0wLjA2MzggMC4wNTEsLTAuMTE1MjQgMC4xMTQ3MiwtMC4xMTUyNCB6IG0gNS4yODAzLDAgaCAwLjkyMDg3IGMgMC4wNjM4LDAgMC4xMTUyNCwwLjA1MTUgMC4xMTUyNCwwLjExNTI0IHYgMC45MjA4NyBjIDAsMC4wNjM4IC0wLjA1MTUsMC4xMTQ3MiAtMC4xMTUyNCwwLjExNDcyIEggNi4zNzMyNiBjIC0wLjA2MzgsMCAtMC4xMTUyNCwtMC4wNTEgLTAuMTE1MjQsLTAuMTE0NzIgViAyLjE3MjQ4IGMgMCwtMC4wNjM4IDAuMDUxNSwtMC4xMTUyNCAwLjExNTI0LC0wLjExNTI0IHogbSAtNS4yODAzLDIuMTI5MDcgaCAwLjkyMDg3IGMgMC4wNjM4LDAgMC4xMTUyNCwwLjA1MTUgMC4xMTUyNCwwLjExNTI0IHYgMC45MjA4NyBjIDAsMC4wNjM4IC0wLjA1MTUsMC4xMTQ3MiAtMC4xMTUyNCwwLjExNDcyIEggMS4wOTI5NiBjIC0wLjA2MzgsMCAtMC4xMTQ3MiwtMC4wNTEgLTAuMTE0NzIsLTAuMTE0NzIgViA0LjMwMTU1IGMgMCwtMC4wNjM4IDAuMDUxLC0wLjExNTI0IDAuMTE0NzIsLTAuMTE1MjQgeiBtIDUuMjgwMywwIGggMC45MjA4NyBjIDAuMDYzOCwwIDAuMTE1MjQsMC4wNTE1IDAuMTE1MjQsMC4xMTUyNCB2IDAuOTIwODcgYyAwLDAuMDYzOCAtMC4wNTE1LDAuMTE0NzIgLTAuMTE1MjQsMC4xMTQ3MiBIIDYuMzczMjYgYyAtMC4wNjM4LDAgLTAuMTE1MjQsLTAuMDUxIC0wLjExNTI0LC0wLjExNDcyIFYgNC4zMDE1NSBjIDAsLTAuMDYzOCAwLjA1MTUsLTAuMTE1MjQgMC4xMTUyNCwtMC4xMTUyNCB6IG0gLTUuMjgwMywyLjEyOTU4IGggMC45MjA4NyBjIDAuMDYzOCwwIDAuMTE1MjQsMC4wNTE1IDAuMTE1MjQsMC4xMTUyNCB2IDAuOTIwODggYyAwLDAuMDYzOCAtMC4wNTE1LDAuMTE0NzIgLTAuMTE1MjQsMC4xMTQ3MiBIIDEuMDkyOTYgYyAtMC4wNjM4LDAgLTAuMTE0NzIsLTAuMDUxIC0wLjExNDcyLC0wLjExNDcyIFYgNi40MzExMyBjIDAsLTAuMDYzOCAwLjA1MSwtMC4xMTUyNCAwLjExNDcyLC0wLjExNTI0IHogbSA1LjI4MDMsMCBoIDAuOTIwODcgYyAwLjA2MzgsMCAwLjExNTI0LDAuMDUxNSAwLjExNTI0LDAuMTE1MjQgdiAwLjkyMDg4IGMgMCwwLjA2MzggLTAuMDUxNSwwLjExNDcyIC0wLjExNTI0LDAuMTE0NzIgSCA2LjM3MzI2IGMgLTAuMDYzOCwwIC0wLjExNTI0LC0wLjA1MSAtMC4xMTUyNCwtMC4xMTQ3MiBWIDYuNDMxMTMgYyAwLC0wLjA2MzggMC4wNTE1LC0wLjExNTI0IDAuMTE1MjQsLTAuMTE1MjQgeiIKICAgICBpZD0icmVjdDQ2MzkiCiAgICAgaW5rc2NhcGU6bGFiZWw9InZpZGVvIiAvPgo8L3N2Zz4K') timeSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTEuMjE5OThtbSIKICAgaGVpZ2h0PSIxMS4yMTk5OG1tIgogICB2aWV3Qm94PSIwIDAgMTEuMjE5OTggMTEuMjE5OTgiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzYzMjIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InRpbWUuc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzNjMxNiIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMTUuODM5MTkyIgogICAgIGlua3NjYXBlOmN4PSIxNi41ODk1MiIKICAgICBpbmtzY2FwZTpjeT0iMTguMTg5NDU1IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmc2MzIyIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNjMxOSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHBhdGgKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgIHN0eWxlPSJmaWxsOiM2Nzk0Yjc7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuODczMTI1MDI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICBkPSJNIDUuNjA5OTksMCBBIDUuNjEwMDE3Myw1LjYxMDAxNzMgMCAwIDAgMCw1LjYwOTk5IDUuNjEwMDE3Myw1LjYxMDAxNzMgMCAwIDAgNS42MDk5OSwxMS4yMTk5OCA1LjYxMDAxNzMsNS42MTAwMTczIDAgMCAwIDExLjIxOTk4LDUuNjA5OTkgNS42MTAwMTczLDUuNjEwMDE3MyAwIDAgMCA1LjYwOTk5LDAgWiBtIDAsMS4xMDE3NCBBIDQuNDc5MzE2Miw0LjQ3OTMxNjIgMCAwIDEgMTAuMDg5Myw1LjU4MTA1IDQuNDc5MzE2Miw0LjQ3OTMxNjIgMCAwIDEgNS42MDk5OSwxMC4wNjAzNiA0LjQ3OTMxNjIsNC40NzkzMTYyIDAgMCAxIDEuMTMwNjgsNS41ODEwNSA0LjQ3OTMxNjIsNC40NzkzMTYyIDAgMCAxIDUuNjA5OTksMS4xMDE3NCBaIE0gNS40MTA1MiwyLjkxMzUxIGMgLTAuMTg2NjUsMCAtMC4zMzY0MSwwLjE1MDI4IC0wLjMzNjQxLDAuMzM2OTMgdiAyLjM5MjEgMC40Mjc4OSBjIDAsMC4xODY2NCAwLjE0OTc2LDAuMzM2OTMgMC4zMzY0MSwwLjMzNjkzIEggOC4yMzA1IGMgMC4xODY2NSwwIDAuMzM2OTMsLTAuMTUwMjkgMC4zMzY5MywtMC4zMzY5MyBWIDUuNjQyNTQgQyA4LjU2NzQzLDUuNDU1OSA4LjQxNzE1LDUuMzA1NjEgOC4yMzA1LDUuMzA1NjEgSCA2LjE3NTMzIFYgMy4yNTA0NCBjIDAsLTAuMTg2NjUgLTAuMTUwMjgsLTAuMzM2OTMgLTAuMzM2OTMsLTAuMzM2OTMgeiIKICAgICBpZD0icGF0aDgyNSIKICAgICBpbmtzY2FwZTpsYWJlbD0idGltZSIgLz4KPC9zdmc+Cg==') flowerSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTAuMjM4NjVtbSIKICAgaGVpZ2h0PSIxMS4zMjY0NG1tIgogICB2aWV3Qm94PSIwIDAgMTAuMjM4NjUgMTEuMzI2NDQiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzU3NTYiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImZsb3dlci5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM1NzUwIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIxNS44MzkxOTIiCiAgICAgaW5rc2NhcGU6Y3g9Ii0yLjA3NjU5MTQiCiAgICAgaW5rc2NhcGU6Y3k9IjI0LjE3Mjg5MyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnNTc1NiIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzNjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTU3NTMiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxwYXRoCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmU7ZmlsbDojNjc5NGI3O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjg3MzEyNTAyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgZD0iTSA1LjA2NDI4LDAgQyA0LjMyMTc3LDAgMy43MTMzMywwLjU0ODk1NyAzLjYxNzg1LDEuMjY0NTIzIDIuOTUwNzMsMC45ODg4ODMgMi4xNzEyMiwxLjIzOTk3MyAxLjc5OTM2LDEuODgyNTc0IDEuNDI4NTEsMi41MjM0MzQgMS41OTcwNCwzLjMyMjMwMSAyLjE2NDcxLDMuNzY0MTEgMS41OTQ0NSw0LjIwMjgyMSAxLjQyMTU2LDUuMDAwNjM1IDEuNzg5MDIsNS42NDM1ODMgYyAwLjM3MDU3LDAuNjQ4MzcyIDEuMTU2MDksMC45MDM2NCAxLjgyNzI4LDAuNjIzNzM0IDAuMDkwMSwwLjcyMTU2OSAwLjcwMTIyLDEuMjc2OTI1IDEuNDQ3OTgsMS4yNzY5MjUgMC43NDI0MywwIDEuMzUwMzQsLTAuNTQ5MDY0IDEuNDQ1OSwtMS4yNjQ1MjEgMC42NjcxOSwwLjI3NTg0MSAxLjQ0NzEsMC4wMjQxMyAxLjgxOTAxLC0wLjYxODU2NyBDIDguNzAwMTksNS4wMjAwMzUgOC41MzEwNCw0LjIyMTMxMyA3Ljk2MjgxLDMuNzc5NjE1IDguNTMzMjUsMy4zNDA5NDEgOC43MDY1MywyLjU0MzE3NyA4LjMzOTAxLDEuOTAwMTQyIDcuOTY4NSwxLjI1MTg2OCA3LjE4MzM4LDAuOTk3MjIyIDYuNTEyMjUsMS4yNzY5MjQgNi40MjIyNSwwLjU1NTI4OSA1LjgxMTA4LDAgNS4wNjQyOCwwIFogTSA1LjA0ODc4LDIuMjk1OTg1IEEgMS40NDUyOTc4LDEuNDQ1Mjk3OCAwIDAgMSA2LjQ5NDE3LDMuNzQxMzc1IDEuNDQ1Mjk3OCwxLjQ0NTI5NzggMCAwIDEgNS4wNDg3OCw1LjE4Njc2NCAxLjQ0NTI5NzgsMS40NDUyOTc4IDAgMCAxIDMuNjAzMzksMy43NDEzNzUgMS40NDUyOTc4LDEuNDQ1Mjk3OCAwIDAgMSA1LjA0ODc4LDIuMjk1OTg1IFogTSAwLjIyMDY2LDYuMzI0MTYxIEEgNC44MzgxNiw0LjgzODE2IDAgMCAwIDAsNi4zMzUwMTEgNS4xMjUxNjk3LDUuMTI1MTY5NyAwIDAgMCA1LjEyMDYxLDExLjMyNjQ0IDUuMTI1MTY5Nyw1LjEyNTE2OTcgMCAwIDAgMTAuMjM4NjUsNi4zNDg0NDcgNC44MzgxNiw0LjgzODE2IDAgMCAwIDkuNzk0NzUsNi4zMjQxNTcgNC44MzgxNiw0LjgzODE2IDAgMCAwIDUuMDA3OTYsMTAuNDk4NTgxIDQuODM4MTYsNC44MzgxNiAwIDAgMCAwLjIyMDY2LDYuMzI0MTU3IFoiCiAgICAgaWQ9InJlY3Q4MzUiCiAgICAgaW5rc2NhcGU6bGFiZWw9ImZsb3dlciIgLz4KPC9zdmc+Cg==') carSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTAuNzIzNTI3bW0iCiAgIGhlaWdodD0iOS42OTY2MTA1bW0iCiAgIHZpZXdCb3g9IjAgMCAxMC43MjM1MjcgOS42OTY2MTA1IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc1MTkwIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjQgKDVkYTY4OWMzMTMsIDIwMTktMDEtMTQpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJjYXIuc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzNTE4NCIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMTEuMiIKICAgICBpbmtzY2FwZTpjeD0iMTQuNDY1NTM3IgogICAgIGlua3NjYXBlOmN5PSIyMy4yNzI1MzEiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzUxOTAiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE1MTg3Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8cGF0aAogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgc3R5bGU9ImZpbGw6IzY3OTRiNztmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC44NzMxMjUwMjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgIGQ9Im0gNC4xMzk5ODg3LDAgYyAtMS40MDM2LDAgLTIuNjI5MTQsMC45Mzg3NSAtMi44MzcwNCwxLjcxNjY5IGwgLTEuMjcxMjM5OTksNC43NTYzIGMgLTAuMTI5MTMsMC40ODMyIDAuMTUwNzcsMC45MjY2MyAwLjU3NDEzLDEuMTk1MjggViA5LjI2NjEgYyAwLDAuMjM4NTEgMC4xOTE5NiwwLjQzMDQ3IDAuNDMwNDU5OTksMC40MzA0NyBoIDAuODQwNzggYyAwLjIzODUxLDAgMC40MzA0NiwtMC4xOTE5NiAwLjQzMDQ2LC0wLjQzMDQ3IFYgOC41MTIxNCBjIDAuMDY0MywwLjAxNTUgMC4xMzA2MywwLjAyNjQgMC4xOTk5OSwwLjAyNjQgaCA2LjEzOTY4IGMgMC4wNTQ2LDAgMC4xMDc1MywtMC4wMDYgMC4xNTkxNiwtMC4wMTU1IHYgMC43NDMxMSBjIDAsMC4yMzg1MSAwLjE5MTk2LDAuNDMwNDYgMC40MzA0NywwLjQzMDQ2IGggMC41OTQyNyBjIDAuMjM4NTEwMywwIDAuNDMwNDcwMywtMC4xOTE5NSAwLjQzMDQ3MDMsLTAuNDMwNDYgViA3LjU2MDgzIGMgMC4zMzg2NiwtMC4yNzEwNCAwLjU0NDA4LC0wLjY2MjY3IDAuNDMwNDYsLTEuMDg3NzkgTCA5LjQyMTMxODcsMS43MTY3NCBDIDkuMjEzNDI4NywwLjkzODgyIDcuODk5OTg4Nyw1ZS01IDYuNTgzNzY4Nyw1ZS01IFogbSAwLjI0ODA1LDAuOTgzOTIgaCAxLjk0NzY4IGMgMS4wNDkwNywwIDIuMDk2MTgsMC43NDgzNyAyLjI2MTg4LDEuMzY4MzkgbCAwLjM5NTMyLDEuNDgxMDUgaCAtNy4yNjIwOSBsIDAuMzk1ODUsLTEuNDgxMDUgYyAwLjE2NTcsLTAuNjIwMDQgMS4xNDI2MywtMS4zNjgzOSAyLjI2MTM2LC0xLjM2ODM5IHogbSAtMS44NzUzNCw0LjE5MjUxIGEgMS4wMDQ1MzMyLDEuMDA0NTMzMiAwIDAgMSAxLjAwNDA3LDEuMDA0NTkgMS4wMDQ1MzMyLDEuMDA0NTMzMiAwIDAgMSAtMS4wMDQwNywxLjAwNDU5IDEuMDA0NTMzMiwxLjAwNDUzMzIgMCAwIDEgLTEuMDA0NTksLTEuMDA0NTkgMS4wMDQ1MzMyLDEuMDA0NTMzMiAwIDAgMSAxLjAwNDU5LC0xLjAwNDU5IHogbSA1LjgyMTg3LDAgYSAxLjAwNDUzMzIsMS4wMDQ1MzMyIDAgMCAxIDEuMDA0NTksMS4wMDQ1OSAxLjAwNDUzMzIsMS4wMDQ1MzMyIDAgMCAxIC0xLjAwNDU5LDEuMDA0NTkgMS4wMDQ1MzMyLDEuMDA0NTMzMiAwIDAgMSAtMS4wMDQ1OSwtMS4wMDQ1OSAxLjAwNDUzMzIsMS4wMDQ1MzMyIDAgMCAxIDEuMDA0NTksLTEuMDA0NTkgeiIKICAgICBpZD0icmVjdDg1NSIKICAgICBpbmtzY2FwZTpsYWJlbD0iY2FyIiAvPgo8L3N2Zz4K') hashSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOS44NDI0OTU5bW0iCiAgIGhlaWdodD0iOS4xNDY3NDA5bW0iCiAgIHZpZXdCb3g9IjAgMCA5Ljg0MjQ5NTkgOS4xNDY3NDA5IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc5MDMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9Imhhc2guc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzODk3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIwLjM1IgogICAgIGlua3NjYXBlOmN4PSItMTQ5Ljk3MTQ0IgogICAgIGlua3NjYXBlOmN5PSItMjY4LjQyOTEiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzkwMyIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxMjYzIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9Ijg3MyIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iNzQ0IgogICAgIGlua3NjYXBlOndpbmRvdy15PSIxNzgiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE5MDAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxwYXRoCiAgICAgc3R5bGU9ImZpbGw6IzY3OTRiNztmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC44NzMxMjUwMjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgIGQ9Im0gMy44MzY5ODQ4LDAgYyAtMC4yMzg1MDgsMCAtMC40NjQ4NDIsMC4xOTE5NTggLTAuNTA3NTU1LDAuNDMwNDY0IGwgLTAuMzIzOTEyLDEuODA4Njc1IGggLTEuODA4Njc1IGMgLTAuMjM4NTEwOTUsM2UtNiAtMC40NjQ4NDE5NSwwLjE5MTk1OCAtMC41MDc1NTU5NSwwLjQzMDQ2NyBsIC0wLjExMTIwMiwwLjYxODA0OCBjIC0wLjA0MjcxLDAuMjM4NTA2IDAuMTE1Mjk4LDAuNDMwNTM4IDAuMzUzODksMC40MzA0NjYgSCAyLjc0MDY1MDggbCAtMC4zMDY0MiwxLjcxMTAwNSBIIDAuNjI1MDM4ODUgYyAtMC4yMzg1MDksMCAtMC40NjQzMjYsMC4xOTE5NTggLTAuNTA3MDQsMC40MzA0NjcgbCAtMC4xMTEwMTYsMC42MTcwMTYgYyAtMC4wNDI3MSwwLjIzODUwOSAwLjExNDg2NSwwLjQzMDQ2NCAwLjM1MzM3MywwLjQzMDQ2NCBIIDIuMTY5NTQ3OCBsIC0wLjMyNDAwNCwxLjgwOTE5MiBjIC0wLjA0MjcxLDAuMjM4NTA4IDAuMTE0ODY2LDAuNDMwNDY0IDAuMzUzMzc0LDAuNDMwNDY0IGggMC42MTc1MzQgYyAwLjIzODUwNywwIDAuNDY1MzU4LC0wLjE5MTk1NiAwLjUwODA3MiwtMC40MzA0NjQgbCAwLjMyNDAwNCwtMS44MDkxOTIgMS43MTAzOTcsNS4yOWUtNCAtMC4zMjM5MTEsMS44MDg2NzYgYyAtMC4wNDI3MSwwLjIzODUwOSAwLjExNDg2NiwwLjQzMDQ2NCAwLjM1MzM3NCwwLjQzMDQ2NCBoIDAuNjE3NTMzIGMgMC4yMzg1MDgsMCAwLjQ2NDg0MSwtMC4xOTE5NTUgMC41MDc1NTUsLTAuNDMwNDY0IGwgMC4zMjM5MTIsLTEuODA4Njc2IGggMS44MDg2NzUgYyAwLjIzODUwOCwtM2UtNiAwLjQ2NDcyOCwtMC4xOTEzMiAwLjUwNzY0OCwtMC40MzA5OCBsIDAuMTEwNSwtMC42MTcwMTYgYyAwLjA0MjcxLC0wLjIzODUwOSAtMC4xMTQyNTksLTAuNDMwOTggLTAuMzUyNzY0LC0wLjQzMDk4MiBoIC0xLjgwOTE5MiBsIDAuMzA2MzI4LC0xLjcxMDQ4OSBoIDEuODA4Njc1IGMgMC4yMzg1MDcsMCAwLjQ2NDkzNywtMC4xOTI0NzEgMC41MDc2NDgsLTAuNDMwOTgzIEwgOS44MzU0OTg4LDIuNjY5NjE5IEMgOS44NzgyMDg4LDIuNDMxMTEgOS43MjEwNTY4LDIuMjM5NjY4IDkuNDgyNTQ4OCwyLjIzOTY3MSBIIDcuNjczMzU2OCBMIDcuOTk3MzYxOCwwLjQzMDQ3NyBDIDguMDQwMDcxOCwwLjE5MTk3MyA3Ljg4MjQ5NTgsMS4zZS01IDcuNjQzOTg3OCwxLjNlLTUgaCAtMC42MTc1MzQgYyAtMC4yMzg1MDcsMCAtMC40NjQ4NDIsMC4xOTE5NTggLTAuNTA3NTU1LDAuNDMwNDY0IEwgNi4xOTQ4OTM4LDIuMjM5NjcxIDQuNDg0NDk2OCwyLjIzOTE0MiA0LjgwODQwODgsMC40MzA0NjYgQyA0Ljg1MTExODgsMC4xOTE5NjMgNC42OTMwMjU4LDJlLTYgNC40NTQ1MTc4LDJlLTYgWiBtIDAuMzgyNjQ1LDMuNzE4MTIgaCAxLjcxMDQ5IGwgLTAuMzA2MzI4LDEuNzEwNDg5IC0xLjcxMDU4Miw1LjNlLTQgeiIKICAgICBpZD0icmVjdDg4MCIKICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0ic3NjY2NjY2Njc2Njc2Nzc3NzY2Nzc3NzY2NzY2NjY3Njc2Njc3Nzc2Njc3NzY2NjY2MiCiAgICAgaW5rc2NhcGU6bGFiZWw9Imhhc2giIC8+Cjwvc3ZnPgo=') arrowSvg = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjwh%0D%0ALS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoK%0D%0APHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHht%0D%0AbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0%0D%0AcDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJo%0D%0AdHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw%0D%0AMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5l%0D%0AdC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3Nj%0D%0AYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMy45OTY2N21tIgogICBoZWln%0D%0AaHQ9IjYuMzg1MTdtbSIKICAgdmlld0JveD0iMCAwIDMuOTk2NjcgNi4zODUxNyIKICAgdmVyc2lv%0D%0Abj0iMS4xIgogICBpZD0ic3ZnNTM2NSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2%0D%0AODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iYXJyb3cuc3ZnIj4KICA8%0D%0AZGVmcwogICAgIGlkPSJkZWZzNTM1OSIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9%0D%0AImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2%0D%0AIgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4w%0D%0AIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMTUuODM5%0D%0AMTkyIgogICAgIGlua3NjYXBlOmN4PSItMC44MTEyNjYyOCIKICAgICBpbmtzY2FwZTpjeT0iOC42%0D%0ANTY1NDQ1IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpj%0D%0AdXJyZW50LWxheWVyPSJzdmc1MzY1IgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICBpbmtzY2Fw%0D%0AZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIK%0D%0AICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05Igog%0D%0AICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9%0D%0AIm1ldGFkYXRhNTM2MiI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRm%0D%0AOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0Pgog%0D%0AICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcv%0D%0AZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4K%0D%0AICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHBhdGgKICAg%0D%0AICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgIHN0eWxlPSJmaWxsOiNmZmZm%0D%0AZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzI7c3Ry%0D%0Ab2tlLW9wYWNpdHk6MSIKICAgICBkPSJtIDAuODA0MSwyZS01IGMgLTAuMDQ1NCwwIC0wLjA5MDgs%0D%0AMC4wMTc0IC0wLjEyNTU4LDAuMDUyMiBMIDAuMDUyMiwwLjY3ODU0IGMgLTAuMDY5NiwwLjA2OTUg%0D%0ALTAuMDY5NiwwLjE4MTU5IDAsMC4yNTExNSBMIDIuMzE1MTEsMy4xOTI2IDAuMDUyMiw1LjQ1NTUx%0D%0AIGMgLTAuMDY5NiwwLjA2OTUgLTAuMDY5NiwwLjE4MTU5IDAsMC4yNTExNSBsIDAuNjI2MzIsMC42%0D%0AMjYzMSBjIDAuMDY5NiwwLjA2OTYgMC4xODE2LDAuMDY5NiAwLjI1MTE1LDAgTCAzLjMxODE1LDMu%0D%0AOTQ0NDkgMy45NDQ0NywzLjMxODE3IGMgMC4wMzQ4LC0wLjAzNDggMC4wNTIyLC0wLjA4MDIgMC4w%0D%0ANTIyLC0wLjEyNTU3IDAsLTAuMDIyNyAtMC4wMDQsLTAuMDQ1MyAtMC4wMTI5LC0wLjA2NjcgQyAz%0D%0ALjk3NDc3LDMuMTA0NSAzLjk2MTg3LDMuMDg0NCAzLjk0NDQ3LDMuMDY3IEwgMy4zMTgxNSwyLjQ0%0D%0AMDY5IDAuOTI5NjcsMC4wNTIyIEMgMC44OTQ4NywwLjAxNzQgMC44NDk0NywwIDAuODA0MDksMCBa%0D%0AIgogICAgIGlkPSJyZWN0NDU0MyIKICAgICBpbmtzY2FwZTpsYWJlbD0iYXJyb3ciIC8+Cjwvc3Zn%0D%0APgo=') qrSvg = url('https://raw.githubusercontent.com/Barina/Dark-Telegram/master/Resources/issues-qr-code.svg') // Svg = url('') /* ================================== * Mixins & Functions * =================================== */ /* quote\reply\pinned messages mixin */ q(b-rad, m, showbanner = true, p = 8px 16px){ // bgc control-t + 5% bgc #00000025 brad b-rad padding p margin m border 0 // old border: 1px solid border-t position relative overflow hidden if(showbanner){ &:before{ content '' width 5px height 100% bgc accent-alt position absolute left 0 top 0 // right 0 bottom 0 } } } /* banner mixin */ banner(width){ margin-bottom 25px line-height 30px position relative z-index 1 if(poseon){ color transparent } else { color accent } /* banner background */ &:before{ visibility visible content '' bgc control i border-top 1px solid border border-bottom 1px solid border position absolute min-width 100px i width 100% height 40px left 0 right 0 margin-top -5px z-index -2 } /* banner text bacground */ &:after{ visibility visible content '' bgc control-active i border-radius 50px position absolute vertical-align middle text-align center min-width 100px i width width height 30px line-height 30px margin-top 0px margin-left -(width * .5) left 50% z-index -1 } } /* service messages */ service(){ bgTex() padding 6px border 1px solid border border-bottom 3px solid border border-radius 5px i shad 0px 2px 5px shadow display inline-block float center width auto margin 5px auto } /* ================================== * style pose * =================================== */ if(poseon){ .icon-tg-title::after{ bgc control-active bgi none brad 4px } .im_service_message_photo_thumb .im_message_fwd_photo .im_message_reply_thumb_wrap .im_message_from_photo div.im_dialog_photo{ & img{ visibility hidden } bgc transparent i bgi contacticon i bgs cover i } .icon-tg-title::after{ col transparent i bgc textc2 i } .emoji{ height 0 } a.im_message_video_thumb a.im_message_photo_thumb{ &:hover{ bgc unset i } &:before{ content url('https://images.unsplash.com/photo-1434569117012-ce134ee1a088?fit=crop&w=1280&h=720&q=80') i filter blur(15px) margin -30px } & img{ display none } } } /* end of pose */ /* ================================== * Style starts here * =================================== */ /* contact icon initials */ .peer_initials{ if(hideinitials){ color transparent i } else { color textc2 } } /* contact icon */ if(useicons){ // .im_dialog_photo// .im_message_contact_photo // .im_message_from_photo// // .im_message_fwd_photo // .md_modal_list_peer_photo// // .im_dialog_photo .peer_initials{ bgc transparent i bgi contacticon i bgs cover i filter none } } /* changed group icon in message history */ a.im_service_message_photo_thumb{ max-width icon-size max-height icon-size brad round overflow hidden } .im_service_message_photo_thumb{ max-width icon-size max-height icon-size background-size cover display -webkit-inline-box } /* Blurry mode for contacts and photos */ .im_dialog_wrap.active .im_dialog_wrap .tg_head_peer_info .im_content_message_wrap .composer_rich_textarea{ filter blur(privateblur) transition t-out } /* disable blur on mouse hover */ .im_dialog_wrap.active:hover .im_dialog_wrap:hover .tg_head_peer_info:hover .im_content_message_wrap:hover .composer_rich_textarea:hover{ filter blur(0) transition t-in } .im_dialog_wrap .im_dialogs_panel{ border-bottom 1px solid border } /* chat size */ .im_send_form .im_send_panel_wrap .im_message_wrap .composer_rich_textarea { if(useChatSize){ max-width unit(chatSize, "px") i } else{ max-width 100% i } } .im_send_panel_wrap { bgTex() padding-bottom 8px } /* hiding default progress bar */ .progress-arc{ display none i } /* circular progress bar */ .progress-arc-wrap{ anim infinite_rotation 1.8s linear infinite &:after{ content '' position absolute top 0 right 0 bottom 0 left 0 bgc accent mask-image gearSvg // may change to a dedicated svg for progress bar here mask-size 100% } } .tg_head_split{ margin-top 23px height 49px border 1px solid border i } /* fullscreen mixin */ fullscreenblock() { .tg_head_split{ margin-top -1px i } .im_page_wrap .tg_head_split{ min-width 100% i } .im_page_wrap .im_page_split .im_dialogs_col_wrap .im_history_col_wrap{ height 100% i } .footer_empty .footer_wrap.footer_empty{ display none i height 0 i } /* fix overly compacted button area */ .im_record{ position relative top unset right unset } .im_media_attach{ padding 0px line-height 0px i } .im_media_attach .im_attach{ display block i overflow hidden position relative width 20px height 20px top unset right unset bottom unset left unset } .im_submit_send{ display unset i position unset top unset left unset } } /* setting fullscreen mode */ if(fullscreen){ fullscreenblock() }else{ @media screen and (max-width 1010px), (max-height 600px){ fullscreenblock() } } .im_page_wrap .tg_head_split { max-width windowwidth shad 0px 0px 10px shadow } /* mention dropdown */ .composer_dropdown_wrap{ bgc control border 1px solid border brad 2px } .composer_dropdown_wrap>div>div>div>div>div>div>ul>li>a:hover{ bgc control-hover i } /* background */ .im_page_split{ bgc bgccolor } /* control backgrounds */ .im_dialog_wrap a.im_dialog .im_dialogs_panel{ bgc control } /* chat background */ .im_history_wrap{ bgTex bgccolor if(showchatbg and chatbg-o > 0){ &:before{ content '' position absolute top 0 left 0 bottom 0 right 0 bgi (showchatbg ? chatbg : none) filter invert(chatbg-i) opacity(chatbg-o) } } } .im_message_video a.im_message_photo_thumb /* non-animated stickers */ .im_message_media>div>div { // margin-top 5px i margin-top 0 i width 100% } .im_message_media{ padding 0 i } .im_history_scrollable_wrap .im_history_scrollable{ // bgc bgcolor // filter: invert(chatbg-i) opacity(chatbg-o); } /* hiding meta data and reveal it on mouse hover */ .im_content_message_wrap{ &.im_message_out .im_message_meta{ transform translateX(autohidedata ? (outpos == right ? 25px : -25px) : 0) } &.im_message_in .im_message_meta{ transform translateX(autohidedata ? (inpos != right ? -25px : 25px) : 0) } & .im_message_meta{ opacity (autohidedata ? 0 : 1) transform scaleX(autohidedata ? 0 : 1) transition t-in ease-in } &:hover .im_message_meta{ opacity 1 transform scaleX(1) transform translateX(0) transition t-in ease-out } } /* user names */ NamePfx = ".im_history_messages%s .im_history_messages_peer .im_history_message_wrap .im_message_outer_wrap .im_message_wrap .im_message_%s .im_message_body%s .im_message_author_wrap" NameOwn = s(NamePfx, s(':not(.im_history_messages_group)'), out, s('')) NameOwnHover = s(NamePfx, s(':not(.im_history_messages_group)'), out, s(':hover')) NameOther = s(NamePfx, s(':not(.im_history_messages_group)'), s('in'), s('')) NameOtherHover = s(NamePfx, s(':not(.im_history_messages_group)'), s('in'), s(':hover')) NameGroupOwn = s(NamePfx, _group, out, s('')) NameGroupOwnHover = s(NamePfx, _group, out, s(':hover')) NameGroupOther = s(NamePfx, _group, s('in'), s('')) NameGroupOtherHover = s(NamePfx, _group, s('in'), s(':hover')) /* user names mixins */ username(hidename, showonhover){ transition t-in ease-in if(hidename){ overflow hidden max-height 0 if(!showonhover){ max-width 0 } } } usernamehover(show){ if(show){ max-height 25px i transition t-in ease-out } } {NameOwn}{ username(hideownname, shownamehover) } {NameOther}{ username(hideothername, showothernamehover) } {NameGroupOwn}{ username(hideownnamegr, shownamehover) } {NameGroupOther}{ username(hideothernamegr, showothernamehover) } {NameOwnHover}{ usernamehover(hideownname and shownamehover) } {NameOtherHover}{ usernamehover(hideothername and showothernamehover) } {NameGroupOwnHover}{ usernamehover(hideownnamegr and shownamehover) } {NameGroupOtherHover}{ usernamehover(hideothernamegr and showothernamehover) } /* user photo */ .im_dialog_photo .md_modal_list_peer_photo .im_message_contact_photo .im_message_from_photo .im_message_fwd_photo{ brad round } /* user photo mixin */ hideIcon(){ visibility hidden // width 0 // min-width 0 // margin 0 } /* own user photo in chat history */ if(hideownicon){ .im_message_out a.im_message_from_photo{ hideIcon() } } /* other user photo in chat history */ if(hideothericon){ .im_message_in a.im_message_from_photo{ hideIcon() } } .im_message_contact_photo .im_message_from_photo .im_message_fwd_photo{ min-width icon-size } /* shifting user photos in chat a bit up */ a.im_message_from_photo{ margin-top -10px } /* clamping and fitting photo and video thumb images to media preview properties */ .im_message_photo_thumb .im_message_video_thumb a.im_message_video_thumb img.im_message_video_thumb{ width 100% i height prevh i // max-width 256px // maximum width depends on maximum in\out messages. will implement in future release.. may also prevent inconsistent overall width of the bubble when clamping the bubble itself // max-height 256px // no need for this .im_message_body_media div[my-message-body="historyMessage"] .im_message_media div[ng-switch="::media._"] div &{ .im_message_in &{ width prevwin i } .im_message_out &{ width prevwout i } } display flex justify-content center align-content center overflow hidden & img{ // flex-shrink 0 object-fit cover min-width 100% min-height 100% } } /* fix message body to fit inside chat area */ div.im_message_body{ display grid i border 1px solid transparent transition .1s ease-out } if(tail == tritail){ /* messages bubble triangle tail*/ .im_history_message_wrap:not(.im_grouped):not(.im_grouped_short) .im_message_outer_wrap .im_message_wrap .im_content_message_wrap .im_message_body:before{ content '' position absolute top 0 height 0 width 0 } /* triangle tail mixins */ leftTail(tailCol, gap = 0){ /*left: 79px;*/ left gap + 48px border-top 15px solid tailCol border-left 10px solid transparent } rightTail(tailCol, gap = 0){ /*right: 37px;*/ right gap + 5px border-top 15px solid tailCol border-right 10px solid transparent } /* in tail */ .im_message_in .im_message_body:before{ if(inpos != right){ leftTail(msgbgi) }else{ rightTail(msgbgi, 58) } } /* out tail */ .im_message_out .im_message_body:before{ if(outpos == right){ rightTail(msgbgo, 58) } else { leftTail(msgbgo) } } /* tail hovered and selected when selection mode is active */ .im_history_select_active .im_history_messages .im_history_messages_peer{ /* in tail selected */ & .im_message_selected .im_message_outer_wrap div .im_message_in .im_message_body:before{ if(inpos != right){ leftTail(fancyselect ? accent : msgbgis) }else{ rightTail(fancyselect ? accent : msgbgis, 58) } } /* out tail selected */ & .im_message_selected .im_message_outer_wrap div .im_message_out .im_message_body:before{ if(outpos == right){ rightTail(fancyselect ? accent : msgbgos, 58) } else { leftTail(fancyselect ? accent : msgbgos) } } /* in tail hover */ & .im_message_outer_wrap:hover div .im_message_in .im_message_body:before{ if(inpos != right){ leftTail(fancyselect ? accent-alt : msgbgih) }else{ rightTail(fancyselect ? accent-alt : msgbgih, 58) } } /* out tail hover */ & .im_message_outer_wrap:hover div .im_message_out .im_message_body:before{ if(outpos == right){ rightTail(fancyselect ? accent-alt : msgbgoh, 58) } else { leftTail(fancyselect ? accent-alt : msgbgoh) } } } } /* hide tails in short messages */ .im_grouped_short .im_message_outer_wrap .im_message_out .im_message_body:before .im_grouped_short .im_message_outer_wrap .im_message_in .im_message_body:before{ display none visibility hidden } /* text+media chat bubbles */ .im_message_ { &text{ border 1px border brad 0px 10px 10px 10px // fotgot why this is here... } &text &media{ padding 10px } } /* short message bubble */ .im_message_outer_wrap .im_message_out .im_message_body .im_message_outer_wrap .im_message_in .im_message_body{ .im_grouped & .im_grouped_short &{ brad msgb i } } /* message bubble base */ .im_message_body{ brad msgb padding 0px 3px 3px 3px border 1px solid border border-top none shad 0px 3px 5px shadow } if(outpos == right){ /* fixing out messages without icon right margin */ .im_history_message_wrap.im_grouped .im_message_out .im_message_body .im_grouped_short .im_message_outer_wrap .im_message_out .im_message_body{ margin-right 70px } } if(inpos == right){ /* fixing in messages without icon right margin */ .im_history_message_wrap.im_grouped .im_message_in .im_message_body .im_grouped_short .im_message_outer_wrap .im_message_in .im_message_body{ margin-right 70px } } /* bubble mixins */ rightBubble(){ if(tail != notail) { border-top-right-radius (tail == roundtail ? 4px : 0px) } margin-left 10px margin-right 15px } leftBubble(){ if(tail != notail){ border-top-left-radius (tail == roundtail ? 4px : 0px) } } .im_message_body{ // padding 0 3px 3px 3px i padding cbs i /* in message bubble */ .im_message_in &{ bgc msgbgi (inpos != right) ? leftBubble() : rightBubble() max-width msgwmax-in i } /* out message bubble */ .im_message_out &{ bgc msgbgo (outpos == right) ? rightBubble() : leftBubble() max-width msgwmax-out i } } /* forward messages */ b = msgb-thumb .im_message_fwd .im_message_body{ & .im_message_fwd_from{ /* upper part - author icon + name data and views indicator */ display grid grid-template-columns 0 q(b b 0 0, 0, true, 8px 16px 5px 16px) bgc #00000015 & .im_message_fwd_photo{ /* author icon */ grid-row 1 grid-column 1 } & .im_message_fwd_author_wrap{ /* header */ display grid grid-template-columns max-content grid-row 1 grid-column 2 margin-left 52px // to compensate for auton icon & .im_message_fwd_author{ /* author name */ grid-row 1 grid-column 1 width max-content } & .im_message_fwd_date{ /* message date */ grid-row 2 grid-column 1 } & .im_message_views_inline{ /* message views indicator */ grid-row 1 grid-column 2 width max-content } } } & div[my-message-body="historyMessage"]{ /* bottom part - message */ q(0 0 b b, 0, true, 5px 8px 8px 16px) & div{ margin-left unset } } } /* taking care of tails */ if(tail != 'notail'){ .im_history_message_wrap:not(.im_grouped):not(.im_grouped_short):not(.im_grouped_fwd_end) .im_message_outer_wrap .im_message_wrap { & .im_message_in.im_message_fwd .im_message_body .im_message_fwd_from{ if(inpos != 'right'){ brad cbs b 0 0 i } else { brad b cbs 0 0 i } } & .im_message_out.im_message_fwd .im_message_body .im_message_fwd_from{ if(outpos != 'right'){ brad cbs b 0 0 i } else { brad b cbs 0 0 i } } } } /* fixing wrong indentation */ .im_grouped_fwd .im_message_outer_wrap .im_message_wrap .im_message_fwd .im_message_from_photo { display unset visibility hidden } /* photo messages */ .im_message_photo_thumb .im_message_video_thumb{ brad msgb-thumb i } /* taking care of messages tail */ if(tail != 'notail'){ .im_history_message_wrap:not(.im_grouped):not(.im_grouped_short){ & .im_message_outer_wrap .im_message_wrap .im_message_{ &out{ & .im_message_body_media div .im_message_media div div { & .im_message_photo_thumb & div .im_message_video .im_message_video_thumb{ // outline 3px solid red i if(outpos != 'right'){ brad cbs msgb-thumb msgb-thumb msgb-thumb i } else { brad msgb-thumb cbs msgb-thumb msgb-thumb i } } } } &in{ & .im_message_body_media div .im_message_media div div { & .im_message_photo_thumb & div .im_message_video .im_message_video_thumb{ // outline 3px solid blue i if(inpos != 'right'){ brad cbs msgb-thumb msgb-thumb msgb-thumb i } else { brad msgb-thumb cbs msgb-thumb msgb-thumb i } } } } } } } /* photo messages vignette */ a.im_message_video_thumb::after .im_message_photo_thumb::before{ content '' position absolute width 100% height 100% opacity 1 shad inset 0px 0px 50px black transition t-out visibility vignette } /* fade out vignette when mouse hover */ a.im_message_video_thumb:hover::after .im_message_photo_thumb:hover::before{ opacity .75 transition t-in } /* fix the vignette in the right place */ .im_message_video_thumb a.im_message_photo_thumb{ position relative } .im_message_author{ padding 0px 5px 0px 5px margin 0 0 5px 0 display inline-block width max-content } /* message author position mixin */ authorAlign(a){ text-align (centerauthor ? center : a) } /* out message author position mixin */ .im_message_out .im_message_body .im_message_author_wrap{// .im_message_author{ authorAlign (outpos == right ? end : start) } /* in message author position mixin */ .im_message_in .im_message_body .im_message_author_wrap{// .im_message_author{ authorAlign (inpos != right ? start : end) } /* right user profile photo in text area */ a.pull-right #notify_sound { display none margin 0 padding 0 width 0 height 0 } /* accent color pulsing animation */ @keyframes pulse{ 0%{ color accent } 25%{ color accent-alt } 100%{ color accent } } /* welcome message panel */ .im_history_not_selected{ margin auto width 70% color accent animation pulse ((t-out + t-in) * 2) ease-in-out infinite /* show custom message */ &:before{ display block content message " \A " link " \A" white-space pre-wrap border-bottom 1px solid border font-size 16px margin-bottom 16px padding 158px 20% 16px 20% color textc1 user-select auto i // qr code bg image bgi qrSvg i bgs 150px background-repeat no-repeat background-position center top } /* version footer */ &:after{ display block content notice '\A' version white-space pre-wrap border-top 1px solid border font-size 11px margin-top 16px padding-top 16px color textc1 - 50% user-select auto i } } /* user is typing */ .im_history_typing{ margin auto display table text-align center bg control border 1px solid border border-radius 7px margin-bottom 15px padding 3px 10px } html .login_head_bg .modal-content{ bgTex bgcolor brad border-size border-size 0 0 } body{ /* bgc bgcolor i*/ // color textc1 i // try to skip this property in body as much as posible if(customFont){ font-family uifont i } &:before{ if(!fullscreen and app_image == default and bgopacity != null and bgopacity > .01){ content '' position absolute s = -2 * bgblur b = blur(bgblur) o = opacity(bgopacity) i = invert(bginvert) h = hue-rotate(bghue) left s top s bottom s right s // width 100% // height 100% transform scale(s) filter b o i h bgi bgimage bgs cover z-index -1 } else { display none } } } ::selection { if(poseon){ col(accent i) } else{ bgc accent i color textc2 i } } /* primary text color elements */ .im_message_reply_body .im_bot_intro_message .login_form_messaging .login_smscode_lead .login_form_lead .countries_modal_country_name a.tg_checkbox p.tg_checkbox .error_modal_description .im_message_webpage_site .im_message_video_duration .media_modal_bottom_panel a.md_modal_action a.tg_checkbox .md_modal_section_param_value .md_modal_section_param_name .md_modal_section_link .confirm_modal_description .im_message_webpage_description .composer_rich_textarea .im_short_message_text .im_message_photo_caption .im_message_document_caption .im_short_message_media .dropdown-menu li a span .dropdown-menu li a .md_modal_list_peer_name a .im_message_sign_link{ // body{ col textc1 } .im_message_text .md_modal_section_description{ col textc1 false } /* force primary text color elements */ input{ color textc1 i } /* accent text color elements */ .login_head_submit_progress .login_footer_wrap .logo_footer_learn_more_link .composer_dropdown li a .composer_dropdown li a:hover .composer_user_mention .error_modal_details_link .changelog_github_link .im_message_author .im_message_fwd_author .im_message_text a .im_message_webpage_title a .im_message_document_actions a .im_message_webpage_description a // a // a:focus // a:hover // .tg_head_btn .composer_emoji_tooltip_tab_emoji .composer_emoji_tooltip_tabs_stickers_active .composer_emoji_tooltip_tab_stickers .im_message_document_name .btn-link .btn-link:hover .im_message_reply_author span .peer_modal_profile_description .dropdown-menu li:hover a span .dropdown-menu li:hover a a.im_dialog .im_dialog_chat_from_wrap a.im_dialog .im_short_message_media a.im_dialog .im_short_message_service .md_modal_list_peer_description .status_online .md_modal_list_peer_description.status_online .tg_head_peer_status .composer_user_mention .composer_dropdown li a:hover .composer_user_mention .composer_dropdown li.composer_autocomplete_option_active a .composer_user_mention .im_message_photo_caption a .changelog_more_link .audio_player_actions a .audio_player_title{ col accent false // transition t-in } /* accent bg color elements */ // .login_head_submit_progress // .login_footer_wrap // .logo_footer_learn_more_link // .composer_dropdown li a // .composer_dropdown li a:hover .composer_user_mention // .error_modal_details_link // .changelog_github_link // .im_message_author // .im_message_fwd_author a a:focus a:hover .tg_head_btn // .composer_emoji_tooltip_tab_emoji // .composer_emoji_tooltip_tabs_stickers_active .composer_emoji_tooltip_tab_stickers // .im_message_document_name // .btn-link // .btn-link:hover // .im_message_reply_author // .peer_modal_profile_description // .tg_head_peer_dropdown .dropdown-menu li a // .tg_head_logo_dropdown .dropdown-menu li a // a.im_dialog .im_dialog_chat_from_wrap // a.im_dialog .im_short_message_media // a.im_dialog .im_short_message_service // .md_modal_list_peer_description .status_online // .md_modal_list_peer_description.status_online // .tg_head_peer_status // .composer_user_mention // .composer_dropdown li a:hover .composer_user_mention // .composer_dropdown li.composer_autocomplete_option_active a .composer_user_mention { color accent // transition t-in } /* alt accent text color elements */ .login_phone_head .countries_modal_country:hover .countries_modal_country_code .countries_modal_country:hover .countries_modal_country_name .composer_dropdown > li > a:hover .error_modal_details_link:hover // .im_message_selected .im_message_date .im_message_selected .im_message_document_size .im_message_selected .im_message_audio_duration .im_message_selected .im_message_audio_size .im_message_selected .im_message_fwd_date .im_message_selected .im_message_author_admin // .im_message_selected .im_message_views_cnt // .im_message_selected .im_message_sign_link // .im_history_select_active .im_message_outer_wrap:hover .im_message_date .im_history_select_active .im_message_outer_wrap:hover .im_message_document_size .im_history_select_active .im_message_outer_wrap:hover .im_message_audio_duration .im_history_select_active .im_message_outer_wrap:hover .im_message_audio_size .im_history_select_active .im_message_outer_wrap:hover .im_message_fwd_date .im_history_select_active .im_message_outer_wrap:hover .im_message_author_admin // .im_history_select_active .im_message_outer_wrap:hover .im_message_views_cnt .im_history_select_active .im_message_outer_wrap:hover .im_message_sign_link .dropdown-menu li a:focus .dropdown-menu li a:hover .dropdown.open .tg_head_btn .tg_head_btn:hover a:focus a:hover{ col(accent-alt, false) } /* secondary text color elements */ .countries_modal_country_code .im_history_typing .im_history_typing a.im_history_typing_author .audio_player_duration .audio_player_size .im_message_document_size .md-input-disabled .md-input .media_modal_date a.media_modal_date:hover .im_dialogs_contacts_wrap h5 .im_dialogs_messages_wrap h5 .md_modal_section_param_wrap .md_modal_section_param_name .im_dialog_date .im_service_message .im_message_date .im_message_date .im_message_edited .im_message_date .im_message_date_text .im_message_fwd_date .im_message_author_admin a.im_dialog .im_short_message_text .md-input-label .im_dialog_message_text .im_message_service .im_message_date_split_text .composer_rich_textarea:before{ col textc3 } .md_modal_list_peer_description{ col textc3 display unset } /* force secondary text color elements */ .md_modal_list_peer_description .im_dialog_message // .composer_rich_textarea:empty::before input::placeholder{ if(poseon){ color transparent i } else { color textc3 i } } /* headers color elements */ .im_bot_intro_message_header .login_head_submit_btn .login_form_head .badge .im_message_views_cnt .im_message_selected .im_message_views_cnt .im_history_select_active .im_message_outer_wrap:hover .im_message_views_cnt .contacts_modal_members_list .active a.contacts_modal_contact .contacts_modal_members_list .active a.contacts_modal_contact:hover .contacts_modal_members_list .active a.contacts_modal_contact .md_modal_list_peer_description .contacts_modal_members_list .active a.contacts_modal_contact:hover .md_modal_list_peer_description .contacts_modal_members_list .active a.contacts_modal_contact .md_modal_list_peer_description .status_online .active a.im_dialog .im_dialog_chat_from_wrap .active a.im_dialog .im_dialog_draft_from // .active a.im_dialog .im_dialog_message // redundant .active a.im_dialog .im_short_message_media .active a.im_dialog .im_short_message_service .active a.im_dialog .im_short_message_text .active .im_dialog_date .active a.im_dialog:hover .im_dialog_date .active a.im_dialog_selected .im_dialog_date .icon-tg-title .tg_head_peer_title .md_modal_title .peer_modal_profile_name a.md_modal_action:hover .tg_head_peer_media .media_modal_title_wrap{ col textc2 } /* force secondary background color elements */ .icon-hamburger-wrap .icon-bar .icon-bar{ bg textc2 } .im_message_video_duration{ bgc control-t } /* replacing telegram logo with a simple text to be able to paint it may change to an SVG logo */ .icon-tg-title{ width 0 &:after{ content 'Telegram' position relative font-style normal font-family tahoma } .tg_head_btn &:after{ top -3px font-size 13px i } .login_head_logo_link &:after{ top -11px font-size 16px i } } /* outer body */ .im_page_wrap { /*background color of contentwrapper under header*/ bgTex() border-top 0px none i border-left 1px solid border i border-right 1px solid border i border-bottom 1px solid border i border-radius 0 0 border-size border-size shad 0px 3px 5px shadow } /* nickname unselected */ .im_dialog_peer { col textc1 i; } /*nicknames in contactlist via hamburger menu*/ .contacts_modal_members_list a.contacts_modal_contact { col textc1 } /* hiding scrollbars */ .nano-content{ scrollbar-width none &::-webkit-scrollbar{ display none } } .im_dialogs_scrollable_wrap { padding 0 i & a.im_dialog_searchpeer{ transition t-out; } } .contacts_modal_members_list .active a.contacts_modal_contact .im_dialogs_scrollable_wrap a.im_dialog_searchpeer:hover .im_dialogs_scrollable_wrap a.im_dialog_searchpeer_selected .active a.im_dialog { /*selected peer */ bgTex control-active transition t-in } /* top bar */ .tg_head_split .md_modal_head{ /*page header block*/ // bgc control i bgTex() brad border-size border-size 0px 0px } /* fixing top corners buttons border-size */ .tg_head_btn.dropdown-toggle{ brad border-size border-size 0px 0px &:hover{ bg none i } } // .modal-content .login_form_wrap .dropdown.open .tg_head_btn .tg_head_btn:hover .im_bottom_panel_wrap { bgTex() } .tg_head_btn{ height 47px top 0 transition t-out .tg_head_btn:hover{ transition t-in bgc none } } // disabling the border that splits the header // .tg_head_logo_wrap // .tg_head_logo_wrap:hover{ // border-right 1px solid border // } /* search box */ .form-control .form-control:focus .im_dialogs_modal_col_wrap .im_dialogs_search_field{ bgc inputbg border-radius border-size border-color border i } /* right part width */ .tg_head_main_wrap .im_history_col_wrap{ width (100% - contactlistwidth) } /* left part (contact list) */ .im_dialogs_col_wrap { /* contact list right border */ border-right 1px solid border border-top 0px none i padding-bottom initial height auto / .tg_head_logo_wrap .page_wrap .im_page_wrap .im_page_split &{ width contactlistwidth } } /* positioning meta data as preparation for compact mode */ .im_dialog_meta{ position absolute right 18px } /* fixing theader in place and hiding all overflow content */ .dropdown-toggle{ white-space nowrap overflow hidden } /* compact mode */ if(enableCompact){ @media screen and (max-width compactBreak) { wmin = 80px // wmax = 31% wmax = contactlistwidth /* let all the envolved transit nicely */ .tg_head_main_wrap .im_history_col_wrap .im_send_form .im_dialog_meta .tg_head_logo_wrap .im_dialogs_col_wrap .tg_head_btn .icon-tg-title{ transition comTranDurOff ease i transition-delay compactDelayOff i } /* top left header and contact list minimum width */ .tg_head_logo_wrap .im_dialogs_col_wrap{ width wmin i } /* top right header and message history panel maximum width */ .tg_head_main_wrap .im_history_col_wrap{ width calc(100% - 80px) } /* hiding top left header text and metadata */ .im_dialog_meta .tg_head_btn .icon-tg-title{ opacity 0 } /* while contact list is hovered or has focus within (search box) */ .page_wrap .im_page_wrap .im_page_split .im_dialogs_col_wrap:hover .page_wrap .im_page_wrap .im_page_split .im_dialogs_col_wrap:focus-within{ // setting the contacts width to expand on hover/focused width wmax i /* let all the envolved transit nicely */ .tg_head_logo_wrap//<- need to fix that .tg_head_main_wrap//<- need to fix that .tg_head_btn .icon-tg-title//<- need to fix that & .im_dialogs_col .im_dialogs_wrap .im_dialogs_scrollable_wrap .nav .im_dialog_wrap .im_dialog .im_dialog_meta ~ .im_history_col_wrap &{ transition comTranDurOn ease i transition-delay compactDelayOn i } // preventing expanding of left header in compact mode /* maximize contact list and top left header width */ // / div .tg_page_head .tg_head_split .tg_head_logo_wrap:hover//<- need to fix that // &{ // width wmax i // } /* minimize message history (including textarea) and top right header width to it's initial state */ .tg_head_main_wrap//<- need to fix that ~ .im_history_col_wrap{ width (100% - wmax) i } /* show top left header text and metadata */ .tg_head_btn .icon-tg-title//<- need to fix that & .im_dialogs_col .im_dialogs_wrap .im_dialogs_scrollable_wrap .nav .im_dialog_wrap .im_dialog .im_dialog_meta{ opacity 1 i } } // preventing expanding of left header in compact mode // /* while hovering the top left header (temporary until I find a way to do this from a different selector) */ // .page_wrap div[my-head=""] .tg_page_head .tg_head_split .tg_head_logo_wrap:hover{ // width wmax i // & // .tg_head_btn .icon-tg-title // ~ .tg_head_main_wrap{ // transition comTranDurOn ease i // transition-delay compactDelayOn i // opacity 1 i // } // ~ .tg_head_main_wrap{ // width 69% i // } // } } } /* inline code messages */ code { col accent bgc control } /* buttons */ .btn .im_edit_cancel_link .im_submit{ & &:focus{ bgTex btn-bg padding 5px 15px margin 0px height auto width auto border 1px solid border border-bottom 3px solid border border-radius 5px shad 0px 2px 5px shadow transition t-out col accent } &:focus{ border-color accent i } /* buttons hover */ &:hover{ bgTex btn-bg-h shad 0px 2px 5px shadow border 1px solid border border-bottom 3px solid border transition t-in col accent-alt } } /* buttons disabled */ .btn-primary.disabled .btn-primary.disabled.active .btn-primary.disabled:active .btn-primary.disabled:focus .btn-primary.disabled:hover .btn-primary[disabled] .btn-primary[disabled].active .btn-primary[disabled]:active .btn-primary[disabled]:focus .btn-primary[disabled]:hover fieldset[disabled] .btn-primary fieldset[disabled] .btn-primary.active fieldset[disabled] .btn-primary:active fieldset[disabled] .btn-primary:focus fieldset[disabled] .btn-primary:hover{ border 1px solid border border-bottom 3px solid border } /* fix for media button thet its background disappeared */ .im_message_file_button[ng-class="{im_message_file_button_dl_doc: media.document.downloaded}"] { float unset i } /* round button */ .im_record_bg .im_message_file_button .md_modal_split_action{ bgTex btn-bg border 1px solid border shad 0px 2px 5px shadow transition t-out col accent brad 100% i &:hover{ bgc btn-bg-h i shad 0px 2px 5px shadow border 1px solid border transition t-in col accent-alt } } /* counter on buttons and current session text */ .im_selected_count .session_active_date_online{ col accent-alt } .btn.btn-link.dropdown-toggle{ padding 3px 8px; } .im_dialogs_scrollable_wrap a.im_dialog_searchpeer .im_dialogs_scrollable_wrap a.im_dialog_searchpeer:hover .im_dialogs_scrollable_wrap a.im_dialog_searchpeer_selected{ bg control } .im_message_focus .im_message_outer_wrap { bgc control } /* removing old hover+select chat bubbles mechanics*/ .im_message_outer_wrap .im_message_outer_wrap:hover { bg none i } /* fancy selection mixins */ select(s, sc, bc, bgc){ if(fancyselect){ border 1px solid bc shad 0 0 s sc } else { bg bgc } } /* chat bubbles will change colors by hover+selected status */ .im_history_select_active .im_history_messages .im_history_messages_peer{ & .im_message_selected .im_message_outer_wrap div .im_message_in .im_message_body{ select(15px, accent, accent-alt i, msgbgis i) } & .im_message_outer_wrap:hover div .im_message_in .im_message_body{ select(unset, accent, accent, msgbgih) } & .im_message_selected .im_message_outer_wrap div .im_message_out .im_message_body{ select(15px, accent, accent-alt i, msgbgos i) } & .im_message_outer_wrap:hover div .im_message_out .im_message_body{ select(unset, accent, accent, msgbgoh) } } a.im_dialog:hover .dropdown-menu a:hover{ bgTex control-hover // transition: t-in; } /* bringing the top left menu to foreground */ .dropdown-menu{ z-index 5 i } /* current conversation marker in contact list */ .im_dialog_wrap.active{ padding-left 4px transition t-out &:before{ content '' width 4px transition t-in position absolute bgc accent-alt left 0 top 0 bottom 0 right 0 } } if(shift-anim == 1){ /* contact list shift animation */ .im_dialog_wrap a.im_dialog{ transition padding-left t-in ease-in &:hover{ transition padding-left t-in ease-out padding-left 24px } } } /* unread banner text */ .im_message_unread_split{ banner 140px } /* empty conversation banner */ .im_history_empty{ color textc1 banner 200px } @keyframes im_message_focus_fade { 0% { /* soft transition */ bgc control-hover } } .im_history_select_active .im_message_outer_wrap:hover { bg control-t-active // transition: t-in; } .im_dialog_chat_from_wrap .im_dialog_message_service { col red } .im_bottom_panel_wrap{ border-top 1px solid border } /* status dot in message history area */ .im_message_out>.icon-message-status{ bg accent if(outpos == right){ margin-left 5px } } .im_dialog_unread .active .im_dialog_unread{ bg accent bgc accent } /* message selected icon */ .icon-select-tick{ visibility hidden } /* bottom area container */ .im_send_form { /* position: absolute; */ // top 0 left 40px // bottom 0 // right -40px height unset position relative margin-right 50px display grid grid-template-columns 1fr 0fr grid-column-gap 10px } /* bottom area edit panel (for edit message, replying etc..) */ .im_edit_panel_wrap{ padding 0 0 16px margin 15.5px 16px 0 16px } .im_edit_panel_border{ border-bottom 1px solid border display none } /* text message area */ .im_send_field_wrap { border-radius border-size min-height 32px height auto grid-row 2 grid-column 1 margin unset margin-top 3px padding-bottom unset } /* bottom area buttons */ .im_send_buttons_wrap{ // visibility: hidden; display table grid-row 2 grid-column 2 min-width max-content } /* chosen reply message position */ .im_send_reply_wrap{ grid-row 1 grid-column 1 / span 2 } /* chosen reply message close button position */ .im_send_reply_cancel{ // margin: 0px 0 0px 16px; left 15px bottom -25% position relative } /* message textbox */ .composer_rich_textarea .composer_textarea{ shad 0px 1px 1px control bg inputbg i padding 9px 12px i width auto i height auto i max-width 680px min-height 42px left 0 i font-size 15px border 1px solid border brad border-size i word-wrap break-word margin-top -3px scrollbar-width none } /* message textbox when focused */ .composer_rich_textarea:focus { shad 0px 1px 1px accent i // shad 0 1px 1px transparent i border 1px solid border // border-bottom 1px solid accent border-radius border-size i min-height 42px scrollbar-width none } /* long word overflow fix */ .im_message_text .composer_rich_textarea{ overflow-wrap anywhere i } /* files drop area with animation */ .im_send_dropbox_wrap{ padding 10px border unset font-size 18px text-align center background linear-gradient(to right, accent 20%, accent-alt 40%, accent-alt 60%, accent 80%) background-size 200% auto background-clip text text-fill-color transparent -webkit-background-clip text -webkit-text-fill-color transparent animation wipe 1s linear infinite @keyframes wipe { to { background-position 200% center } } } /* own user profile photo in text area */ a.im_panel_own_photo{ display none visibility hidden width 0 height 0 margin 0 padding 0 } /* play overlay button */ .icon-videoplay{ margin 0 border none &:before{ content '' position absolute width 50px height 50px top -25px left -25px bgc control-t z-index -1 // padding 5px brad 50% border 1px solid border } &:hover:before{ bgc control } &:after{ content '' position: absolute; display: inline-block; top: 50%; left: 50%; margin-left: -5px; margin-top: -9px; z-index: 1; width: 0; height: 0; border-style: solid; border-width: 9px 0 9px 14px; border-color transparent transparent transparent accent } &:hover:after{ border-color transparent transparent transparent accent-alt } } /* margin media buttons */ .im_attach{ margin-top 14px i } .im_attach .im_media_attach{ margin 13px 6px } .im_record_supported .im_record{ margin 5px 18px } .im_submit_send{ margin-top 5px margin-left 5px } .btn-primary { bgc btn-bg } .btn-primary:hover { bgc control-hover transition t-in } .btn-primary.disabled .btn-primary[disabled] { bg btn-bg none repeat scroll 0% 0% } .login_form_wrap /* drop shadow under top dropdown menus */ .tg_head_peer_dropdown .dropdown-menu .tg_head_logo_dropdown .dropdown-menu{ shad 0 0 5px shadow & li { & a{ if(poseon){ padding 0 margin 11px 18px } col textc1 } &:hover a{ col(accent i) } } } /* views eye */ .im_message_views{ left 4px top 25px right 0 display inline-block position relative white-space nowrap line-height normal text-align left bg control border 1px solid border border-radius: 7px padding 3px 5px opacity .5 } .divider{ bgc border i } .countries_scrollable_wrap a.countries_modal_country:hover .contacts_modal_contact:hover{ bg control-hover i transition t-in } .im_service_message_wrap { text-align center } /* pinned, history date message and bot message*/ .im_bot_intro_message_wrap .im_service_message_wrap .im_service_message{ service() } /* bot intro message */ .im_bot_intro_message{ q(border-size, 5, false) brad 3px i } /* message time */ .im_message_date{ /*color rgba(173, 173, 173, .25)*/ opacity .5 bg control border 1px solid border border-radius 7px margin 0px 4px } .im_message_date, .im_message_fwd_date{ padding 1px 4px } /*.im_message_meta, .historyMessage, .im_message_out{ }*/ .im_message_meta{ order 2 height 100% &:before{ content "\A" white-space pre } &:after{ content "\A" white-space pre } } /*.im_content_message_wrap{ }*/ .im_grouped_short .im_content_message_wrap .im_content_message_wrap{ margin 2px 16px } .im_message_meta .historyMessage{ display flex } /* bubble position mixin */ bubblePos(f, d, fl = unset){ float f flex-direction d display fl } .im_message_out{ if(outpos == left){ bubblePos left row } else if(outpos == right){ bubblePos right row-reverse flex } else { /* Telegram original */ } } .im_message_in{ if(inpos == right){ bubblePos right row-reverse flex } else if(inpos == left){ bubblePos left row } else { /* Telegram original */ } } .historyMessage{ flex-wrap wrap order 1 } /* right scrollbar */ .im_history_col .nano > .nano-pane .contacts_modal_col .nano > .nano-pane .sessions_modal_col .nano > .nano-pane .stickerset_modal_col .nano > .nano-pane .im_dialogs_modal_col .nano > .nano-pane .composer_rich_textarea .composer_textarea ::-webkit-scrollbar{ right 0 top 0 bottom 0 brad 0 width 6px bg control-t-active z-index 5 } /* right scrollbar knob */ .im_history_col .nano > .nano-pane > .nano-slider .contacts_modal_col .nano > .nano-pane > .nano-slider .sessions_modal_col .nano > .nano-pane > .nano-slider .stickerset_modal_col .nano > .nano-pane > .nano-slider .im_dialogs_modal_col .nano > .nano-pane > .nano-slider .composer_rich_textarea .composer_textarea{ brad 0 bg accent z-index 5 } /*scrollbarbutton when hover*/ .im_dialogs_col .nano > .nano-pane > .nano-slider ::-webkit-scrollbar-thumb:hover{ bg accent-alt z-index 5 } /* contacts scrollbar area */ .im_dialogs_col{ margin-right 0 bottom 0 } /* contacts scrollbar bg */ .im_dialogs_col .nano > .nano-pane{ bg control-t-active width 4px } /* contacts scrollbar */ .im_dialogs_col .nano > .nano-pane > .nano-slider{ bgc accent i width 5px left -5px } /* hiding useless emoji's below textarea */ .composer_emoji_panel{ display none } /* emoji's & stickers opacity */ a.composer_emoji_btn .composer_sticker_image{ opacity emojo &:hover{ opacity 1 } } /* emoji's button background when hovered */ a.composer_emoji_btn:hover{ bgc control-active } /* enlarging emoji's and stickers when hover just like the original style */ .composer_sticker_btn .composer_sticker_image .composer_emoji_btn .emoji{ transition t-out ease-in-out } .composer_sticker_btn:hover .composer_sticker_image .composer_emoji_btn:hover .emoji{ transform scale(1.5) transition t-in ease-out } /* making emoji button visible outside textarea */ .im_send_field_wrap .im_inline_placeholder_wrap{ overflow unset } /* emoji button */ .composer_emoji_insert_btn{ position absolute left -39px top 8px cursor pointer margin-top 1px display block } /*emoji*/ .composer_emoji_tooltip .icon-tooltip-tail .dropdown-menu { bgTex() border-color border i border-radius 3px i shad 0px 0px 5px shadow } /* emoji/stickers tab */ .composer_emoji_tooltip_tab_shadow{ bg accent-alt shad 0 1px 0 0 accent-alt } /* emoji popup position */ .composer_emoji_tooltip{ transform scale(emoj-scale) transform-origin emoj-anchor-x 333px margin-left emoj-l } /* emoji popup tail position */ .composer_emoji_tooltip_tail{ left emoj-t-l right emoj-t-r bottom emoj-pos is center ? -13px : -12px } /* sticker button background */ .composer_sticker_btn:hover .stickerset_modal_sticker_wrap:hover{ bg control-hover } /* message content when hover in left contact list */ .contacts_modal_contact_wrap:hover .contacts_modal_contact .md_modal_list_peer_description a.im_dialog:hover .im_short_message_text{ col accent-alt i } /* date when hover in left contact list */ a.im_dialog:hover .im_dialog_date{ col accent } a.im_dialog:hover .im_dialog_meta .im_dialog_unread a.im_dialog:hover .im_dialog_meta .active .im_dialog_unread{ bgc accent-alt } .md_modal_iconed_section_wrap{ border-bottom 1px solid border } /* left border in pinned and reply messages */ .im_message_reply_border{ // bg accent-alt; // height: 36px; display none } /* removing extra padding from reply message */ .im_message_reply{ padding-left unset } /* pinned message right margin */ .im_history_pinned_wrap .im_message_reply{ // margin-right 56px } /* replay messages with border radius */ // inside chat // not the first message .im_history_message_wrap .im_message_outer_wrap .im_message_wrap .im_content_message_wrap .im_message_body .im_message_reply_wrap{ q(msgb-thumb, 0 i, true, 8px (msgb-thumb / 4 + 16)px) } // the first message .im_history_message_wrap:not(.im_grouped):not(.im_grouped_short) .im_message_outer_wrap .im_message_wrap{ & .im_message_in .im_message_body .im_message_reply_wrap{ cs = msgb-thumb if(tail != notail){ if(inpos != right){ cs = cbs msgb-thumb msgb-thumb msgb-thumb } else { cs = msgb-thumb cbs msgb-thumb msgb-thumb } } q(cs, 0 i, true, 8px (msgb-thumb / 4 + 16)px) } & .im_message_out .im_message_body .im_message_reply_wrap{ cs = msgb-thumb if(tail != notail){ if(outpos != right){ cs = cbs msgb-thumb msgb-thumb msgb-thumb } else { cs = msgb-thumb cbs msgb-thumb msgb-thumb } } q(cs, 0 i, true, 8px (msgb-thumb / 4 + 16)px) } } // inside send form .im_send_reply_wrap .im_message_reply_wrap .im_send_reply_wrap a.im_message_reply_wrap{ q(msgb-thumb, 0 0 8px 0 i) } /* pinned message panel */ .im_history_pinned_{ &panel{ border-bottom 1px solid border // position relative } &wrap{ border-bottom unset i padding 5px & .im_message_reply{ q(0 2px 2px 0, 5px 12px i) } } &message{ // padding 20px width auto i } &hide{ // pinned message close button position position relative margin 8px 38px 8px 0px i padding 8px i top 18px right 18px bottom 18px left 18px // margin-right 16px // margin-top 20px } } /* media messages */ .im_history_message_wrap{ & .im_message_outer_wrap .im_message_wrap .im_content_message_wrap .im_message_body_media div .im_message_media div div div{ & .im_message_audio div .audio_player_wrap & .im_message_document{ q(msgb-thumb, 0, true, p = 8px 16px) border 1px solid border display block } } if(tail != 'notail'){ /* taking care of tails */ &:not(.im_grouped):not(.im_grouped_short) .im_message_outer_wrap .im_message_wrap{ & .im_message_in .im_message_body_media div .im_message_media div div div .im_message_audio div{ if(inpos != 'right'){ brad cbs msgb-thumb msgb-thumb msgb-thumb i } else { brad msgb-thumb cbs msgb-thumb msgb-thumb i } } & .im_message_out .im_message_body_media div .im_message_media div div div .im_message_audio div{ if(outpos != 'right'){ brad cbs msgb-thumb msgb-thumb msgb-thumb i } else { brad msgb-thumb cbs msgb-thumb msgb-thumb i } } } } } /* fixing the media messages button in place ... */ .im_message_document{ display -webkit-box i display -moz-box i } /* media not supported message */ div[ng-switch-when="messageMediaUnsupported"]{ q(msgb-thumb, 0, false) & .im_message_text{ display none } &:after{ content "Unsupported Message." color textc3 } } if(tail != 'notail'){ /* taking care of tails */ .im_history_message_wrap:not(.im_grouped):not(.im_grouped_short) .im_message_outer_wrap .im_message_wrap{ & .im_message_in .im_message_body_media div .im_message_media div div[ng-switch-when="messageMediaUnsupported"]{ if(inpos != 'right'){ brad cbs msgb-thumb msgb-thumb msgb-thumb i } else { brad msgb-thumb cbs msgb-thumb msgb-thumb i } } & .im_message_out .im_message_body_media div .im_message_media div div[ng-switch-when="messageMediaUnsupported"]{ if(outpos != 'right'){ brad cbs msgb-thumb msgb-thumb msgb-thumb i } else { brad msgb-thumb cbs msgb-thumb msgb-thumb i } } } } /* removing the bottom margin from thumbed reply messages */ .im_message_reply_wrap .im_message_reply_thumbed{ // margin-bottom unset } /* thumbed reply messages content fix */ .im_message_reply_thumb_wrap{ display inline width inherit position relative margin-right 12px } /* thumbed reply messages thumb fix */ .im_message_reply_thumbed .im_message_reply_author .im_message_reply_thumbed .im_message_reply_body{ display block position relative margin-left unset } /* shared link background */ .im_message_webpage_wrap{ // brad 0 msgb-thumb msgb-thumb 0 // border-color accent-alt // border-left-width 4px // bgc #0000000d // padding 5px 5px 5px 12px i q(msgb-thumb, 0, true, 8px (msgb-thumb / 2 + 16)px) } /* model divider */ .md_modal_section_splitter{ bgTex() shad none border-top none } /* set icons as SVG's */ svgIcon(m, c = textc1, s = 100%){ mask-image m i mask-position center mask-repeat no-repeat mask-size s bgi none i bgc c i } /* verified icon */ .is_2x i.icon-verified{ svgIcon verifiedSvg accent transition t-out display visible i &:hover{ bgc accent-alt i transition t-in } } icons = { ".md_modal_section_icon_people" : groupSvg, ".md_modal_section_icon_person" : contactSvg, ".is_2x .icon-search" : searchSvg, ".md_modal_section_icon_more" : menuSvg, ".md_modal_section_icon_keyboard" : keyboardSvg, ".md_modal_section_icon_phone" : phoneSvg, ".md_modal_section_icon_notification" : bellSvg, ".is_2x .icon-message-views" : eyeSvg, ".md_modal_section_icon_about" : infoSvg, ".media_modal_action_btn i.media_modal_action_btn_download" : downbtnSvg, ".media_modal_action_btn i.media_modal_action_btn_forward" : fwrSvg, ".modal_next" : rightSvg, ".modal_prev" : leftSvg, ".media_modal_action_btn i.media_modal_action_btn_delete" : trashSvg, ".icon-filter-photos" : bgSvg, ".icon-filter-video" : videoSvg, ".icon-filter-documents" : fileSvg, ".icon-filter-audio" : micSvg, ".icon-new-group" : groupIconSvg, ".icon-contacts" : contactsSvg, ".icon-settings" : gearSvg, ".icon-faq" : faqSvg, ".icon-about" : logoSvg, ".is_2x .icon-next-submit" : arrowSvg, ".is_2x i.icon-search-clear" : xSvg, ".icon-camera" : cameraSvg, ".icon-paperclip" : fileSvg, ".icon-emoji" : emojiSvg, } iconsaccent = { ".composer_emoji_tooltip_category_recent" : timeSvg, ".composer_emoji_tooltip_category_smile" : emojiSvg, ".composer_emoji_tooltip_category_car" : carSvg, ".composer_emoji_tooltip_category_grid" : hashSvg, } for k, v in icons{ {k}{ svgIcon v } } for k, v in iconsaccent{ {k}{ svgIcon v accent } } .modal_close{ svgIcon xSvg textc3 } .is_2x .countries_modal_search_field .is_2x .im_dialogs_search_field{ bgi none } .countries_modal_search .im_dialogs_search{ &:after{ content '' position absolute top 10px right 0 bottom 0 left 9px max-width 15px max-height 15px svgIcon searchSvg textc3 } } .countries_modal_search:after{ top 22px i left 20px i } .icon-mic{ svgIcon micSvg accent transition t-out .im_record:hover &{ bgc accent-alt i transition t-in } } .composer_emoji_tooltip_category_recent .composer_emoji_tooltip_category_smile .composer_emoji_tooltip_category_flower .composer_emoji_tooltip_category_bell .composer_emoji_tooltip_category_car .composer_emoji_tooltip_category_grid{ .active &{ bgc accent-alt i } } .composer_emoji_tooltip_category_flower{ svgIcon flowerSvg accent 85% } .composer_emoji_tooltip_category_bell{ svgIcon bellSvg accent 85% } .im_history_pinned_hide{ svgIcon xSvg &:hover{ svgIcon xSvg accent-alt } & i{ display none i } } /* SVG icons to fit inside round buttons */ setSvg(m, t = 17, l = 16, c = accent, s = 100%){ mask-image m i mask-position center mask-repeat no-repeat mask-size s background-position unset margin (t)px 0 0 (l)px max-width 100% max-height 100% bgc c i bgi none i transition t-out } /* button images color */ .is_2x .md_modal_split_action_msg{ setSvg bubbleSvg } .is_2x .md_modal_split_action_twitter{ setSvg twitSvg 16 14 } .is_2x .md_modal_split_action_camera{ setSvg cameraSvg } .im_message_document_info{ .im_message_document_thumbed &{ q(msgb-thumb, 0, false, 8px (msgb-thumb / 2 + 16)px) } max-width 100% i width 100% // may fix document info position in some situations display inline-block // a fix for issue #8 where the info of upload\download files won't show up float unset // fix for media info bottom gap too big margin 4px 0 -4px 0 i } .im_message_document_thumbed{ .im_message_body_media div[my-message-body="historyMessage"] .im_message_media div[ng-switch="::media._"] div &{ .im_message_in &{ max-width prevwin i } .im_message_out &{ max-width prevwout i } } // width min-content i } /* need to keep this first... */ .im_message_file_button .im_message_file_button_icon{ setSvg downloadSvg 13 15 } /* media message play button */ .im_message_file_button_dl_audio .im_message_file_button_icon{ setSvg playSvg 14 14 /* making sure it shows the pause icon when playing audio */ &.audio_player_btn_icon_pause{ setSvg pauseSvg 14 14 } } .im_message_file_button_dl_doc .im_message_file_button_icon{ setSvg fileSvg 12 13 } /* button images hover color */ .im_message_file_button:hover .im_message_file_button_icon .im_message_file_button_dl_doc:hover .im_message_file_button_icon .im_message_file_button_dl_audio:hover .im_message_file_button_icon .md_modal_split_action:active .md_modal_split_action_msg .md_modal_split_action:hover .md_modal_split_action_msg .md_modal_split_action:active .md_modal_split_action_twitter .md_modal_split_action:hover .md_modal_split_action_twitter .md_modal_split_action:active .md_modal_split_action_camera .md_modal_split_action:hover .md_modal_split_action_camera{ bgc accent-alt i transition t-in } /* group info edit input */ .md-input{ bg inputbg col textc1 padding-left 5px padding-right 5px } .md-input-group{ border-bottom 1px solid control } .md-input-focused{ border-bottom 1px solid accent } .error_modal_details textarea{ col textc1 bgc inputbg border-color border } /* headers */ h1, h2, h3, h4, h5, .composer_stickerset_title .composer_stickerset_title:hover{ col textc1 } /* toggles ON */ .tg_checkbox.tg_checkbox_on i.icon-checkbox-inner{ bg accent } /* toggles OFF */ .tg_checkbox i.icon-checkbox-inner{ bg control shad none border 1px solid border } /* toggles bg ON */ .tg_checkbox.tg_checkbox_on span.icon-checkbox-outer { bg accent-alt opacity 1 transition t-in } /* toggles bg OFF */ .tg_checkbox span.icon-checkbox-outer{ bg control // fixed issue #14 // opacity .75 transition t-out } /* lang drop down */ .dropdown-menu li a .dropdown-menu li a:focus .dropdown-menu li a:hover{ color textc1 } /* slider thumb */ .tg_slider_thumb{ bg accent } /* slider track */ .tg_slider_track{ bg border } /* slider track filled */ .tg_slider_track_fill{ bg accent-alt } /* radio button */ a.tg_radio{ col textc1 } i.icon-radio{ bgc control border 3px solid border } /* radio button outer */ .tg_radio .icon-radio-outer{ border 2px solid control } .tg_radio.tg_radio_on .icon-radio-outer{ border-color accent } /* radio button inner */ .tg_radio.tg_radio_on i.icon-radio a.tg_radio_on i.icon-radio .tg_radio.tg_radio_on .icon-radio-outer{ bgc accent } /* radio button hover */ a.tg_radio:hover i.icon-radio a.tg_radio_on:hover i.icon-radio{ bgc accent-alt } /* media track fill */ .audio_player_seek_slider .tg_slider_track_fill /* progress bar fill */ .tg_down_progress .progress-bar .tg_up_progress .progress-bar /* volume knob */ .audio_player_volume_slider .tg_slider_thumb .audio_player_volume_slider .tg_slider_track_fill{ bg accent } /* volume slider track */ .audio_player_volume_slider .tg_slider_track /* media slider track */ .audio_player_seek_slider .tg_slider_track{ bg accent-t } /* unread badge */ .im_dialog_badge{ bg accent } /* unread badge active */ .active .im_dialog_badge{ bgc accent-alt col textc1 } /* unread badge muted */ .im_dialog_badge_muted{ bg accent-t } /* media player panel */ .media_modal_bottom_panel_wrap{ bgc control } /* vote buttons */ .im_message_keyboard{ margin-top 4px } /* vote buttons alignment and background */ .im_history_message_wrap .im_message_outer_wrap .im_message_wrap .im_content_message_wrap .im_message_body div[my-message-body="historyMessage"] .im_message_keyboard .reply_markup_wrap{ bgc rgba(0,0,0,.1) padding 8px 4px msgb 4px margin 0 brad 0 0 msgb msgb width 100% display flex flex-direction row flex-wrap wrap justify-content center align-items center & .im_message_outer_wrap{ width max-content } } /* vote buttons width */ .im_history_message_wrap .im_message_outer_wrap .im_message_wrap .im_content_message_wrap .im_message_body div[my-message-body="historyMessage"] .im_message_keyboard .reply_markup_wrap .reply_markup .reply_markup_row { // single button & .reply_markup_button_w1 .reply_markup_button{ width 100% i } // dual buttons & .reply_markup_button_w2 .reply_markup_button{ width 120px i } // triple buttons & .reply_markup_button_w3 .reply_markup_button{ width 100px i } } /* answering panel buttons area */ .im_bottom_panel_wrap .im_send_panel_wrap .im_send_form_wrap1 .im_send_form_wrap .im_record_supported .im_send_form .im_send_keyboard_wrap{ q(border-size, 5px, false) padding 8px (8 + border-size * .5)px i margin-top 8px display table grid-row 3 grid-column-start 1 grid-column-end 3 & div{ margin 0 i } & .reply_markup_wrap .scroller_scrollable_container .scroller_scrollable_wrap{ overflow visible & .scroller_scrollable{ right 0 i & .reply_markup .reply_markup_row .reply_markup_button_wrap .reply_markup_button{ width 100% i } } } } /* blur behind open media & popups */ .page_wrap{ transform scale(1) transition-duration .4s .modal-open &{ filter blur(blurbehind) transition-duration .4s transform scale(.95) } } /* clearing the backdrop when there's a blur amount bigger than 0 */ if(blurbehind > 0){ .modal-backdrop{ display none } } /* audio messages overflow fix */ .im_message_audio .audio_player_wrap .im_message_document .im_message_document_name_wrap .im_message_document_actions{ width unset i margin-top 0 } /* audio messages undesire line break fix */ .audio_player_title_wrap{ overflow unset i } /* unread (or unheard) audio message indicator */ .icon-audio-unread{ bgc accent } /* clear the background color from my mentions */ .im_message_mymention{ bgc unset i } /* mentions drop down items */ .composer_mention_option{ col textc1 i } /* mentions drop down items when focus\hover */ .composer_dropdown li a:hover .composer_dropdown li.composer_autocomplete_option_active a{ col accent-alt i bgc control-active } /* text messages alignment within bubbles */ if(texta != textaauto){ .im_message_text .im_message_document_caption .im_message_photo_caption{ text-align texta } } .im_message_text{ padding unset margin 10px } /* media descrition */ .im_message_document_caption .im_message_photo_caption{ .im_message_body_media div[my-message-body="historyMessage"] .im_message_media div[ng-switch="::media._"] div &{ .im_message_in &{ max-width prevwin i } .im_message_out &{ max-width prevwout i } } q(msgb-thumb, 4px 0 0 0, false, 8px (msgb-thumb / 2 + 16)px) } /* making the outline on focused elements match the theme */ :focus{ outline accent-alt solid 1px } .im_service_message_pinned{ vertical-align bottom i } .tg_try_desktop{ display none i } /* browser specific fixes */ if(browser is chromium){ /* chrome emojis width fix */ .composer_emoji_tooltip_content_wrap{ width 285px i } } else if(browser is firefox){ /* FireFox contact list fix */ .nav{ padding-right 15px i } } else { } // debugging // .im_submit_send_label:before{ // content "Some Long Text" // } }