|  | <footer id="footer" class="footer"> | 
|  | <svg class="ani-logo" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 84 84"> | 
|  | <g fill="none" fill-rule="evenodd"> | 
|  | <rect class="center item" width="24" height="24" x="30" y="30" /> | 
|  | <path class="ul item" d="M19 19h27v10.5c0 .8-.7 1.5-1.5 1.5H31v13.5c0 .8-.7 1.5-1.5 1.5H19V19z" /> | 
|  | <path class="ll item" d="M19 65h27V54.5c0-.8-.7-1.5-1.5-1.5H31V39.5c0-.8-.7-1.5-1.5-1.5H19v27z" /> | 
|  | <path class="ur item" d="M65 19H38v10.5c0 .8.7 1.5 1.5 1.5H53v13.5c0 .8.7 1.5 1.5 1.5H65V19z" /> | 
|  | <path class="lr item" d="M65 65H38V54.5c0-.8.7-1.5 1.5-1.5H53V39.5c0-.8.7-1.5 1.5-1.5H65v27z" /> | 
|  | <path class="right item item--outer" | 
|  | d="M82.5 48c.8 0 1.5.7 1.5 1.5v9c0 .8-.7 1.5-1.5 1.5H69V48h13.5zm0-24c.8 0 1.5.7 1.5 1.5v9c0 .8-.7 1.5-1.5 1.5H69V24h13.5z" /> | 
|  | <path class="left item item--outer" | 
|  | d="M15 48v12H1.5C.7 60 0 59.3 0 58.5v-9c0-.8.7-1.5 1.5-1.5H15zm0-24v12H1.5C.7 36 0 35.3 0 34.5v-9c0-.8.7-1.5 1.5-1.5H15z" /> | 
|  | <path class="top item item--outer" | 
|  | d="M34.5 0c.8 0 1.5.7 1.5 1.5V15H24V1.5c0-.8.7-1.5 1.5-1.5h9zm24 0c.8 0 1.5.7 1.5 1.5V15H48V1.5c0-.8.7-1.5 1.5-1.5h9z" /> | 
|  | <path class="bottom item item--outer" | 
|  | d="M60 69v13.5c0 .8-.7 1.5-1.5 1.5h-9c-.8 0-1.5-.7-1.5-1.5V69h12zm-24 0v13.5c0 .8-.7 1.5-1.5 1.5h-9c-.8 0-1.5-.7-1.5-1.5V69h12z" /> | 
|  | </g> | 
|  | </svg> | 
|  |  | 
|  | <nav class="footer-nav" aria-label="Full"> | 
|  | <ul class="footer-nav__list"> | 
|  | <li class="footer-nav__item"> | 
|  | <a href="https://opentitan.org">Home</a> | 
|  | </li> | 
|  | <li class="footer-nav__item"> | 
|  | <a href="https://docs.opentitan.org">Documentation</a> | 
|  | </li> | 
|  | <li class="footer-nav__item footer-nav__item--icons"> | 
|  | <a href="https://github.com/lowRISC/opentitan" aria-label="View on Github"> | 
|  | <svg focusable="false" width="24" height="20" viewBox="0 0 24 20"> | 
|  | <path fill="currentColor" fill-rule="evenodd" | 
|  | d="M11.4 1A9 9 0 002 10c0 4.2 2.7 7.7 6.5 9 .5 0 .7-.2.7-.5v-2.2s-2.7.5-3.3-1.2c0 0-.4-1-1-1.3 0 0-1-.6 0-.6 0 0 1 0 1.5 1 .8 1.4 2.2 1 2.8.7 0-.6.3-1 .6-1.2-2.1-.2-4.3-.5-4.3-4.1 0-1 .3-1.6.9-2.2C6.3 7 6 6 6.5 4.9c.8-.3 2.6 1 2.6 1a9.3 9.3 0 014.9 0s1.8-1.3 2.6-1c.6 1.2.2 2.2.1 2.5.6.6 1 1.2 1 2.2 0 3.6-2.2 3.9-4.4 4 .4.4.7 1 .7 1.8v3.1c0 .3.1.6.6.5a9.3 9.3 0 006.5-9c0-5-4.4-9-9.7-9z" /> | 
|  | </svg> | 
|  | </a> | 
|  | </li> | 
|  | </ul> | 
|  | </nav> | 
|  |  | 
|  | <p>© 2019 – {{ now.Format "2006" }} <a href="https://www.lowrisc.org">lowRISC</a> contributors, <a | 
|  | href="https://opentitan.org/usage-policy/">Usage Policy</a>, <a | 
|  | href="https://opentitan.org/privacy-policy/">Privacy Policy</a>.</p> | 
|  | <p>No license is granted for the OpenTitan logo or other trademarks. <a | 
|  | href="https://opentitan.org/trademark-usage-policy/">Trademark Usage | 
|  | Policy</a>.</p> | 
|  | </footer> | 
|  |  | 
|  | <script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> | 
|  | <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/wavedrom/2.1.2/skins/default.js"></script> | 
|  | <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/wavedrom/2.1.2/wavedrom.js"></script> | 
|  | <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/markdown-it/10.0.0/markdown-it.min.js"></script> | 
|  |  | 
|  | <script> | 
|  | // Wrap tables | 
|  | const tables = document.getElementsByTagName('table'); | 
|  | for (let i = 0; i < tables.length; i++) { | 
|  | const table = tables[i]; | 
|  | const wrapper = document.createElement('div'); | 
|  | wrapper.setAttribute('class', 'overflow-table'); | 
|  | table.parentNode.insertBefore(wrapper, table); | 
|  | wrapper.appendChild(table); | 
|  | } | 
|  |  | 
|  | // Dark and light theme | 
|  | document.documentElement.classList.remove('no-js'); | 
|  | const STORAGE_KEY = 'user-color-scheme'; | 
|  | const COLOR_MODE_KEY = '--color-mode'; | 
|  |  | 
|  | const modeToggleButton = document.querySelector('.js-mode-toggle'); | 
|  |  | 
|  | const getCSSCustomProp = propKey => { | 
|  | let response = getComputedStyle(document.documentElement).getPropertyValue(propKey); | 
|  |  | 
|  | if (response.length) { | 
|  | response = response.replace(/\"/g, '').trim(); | 
|  | } | 
|  |  | 
|  | return response; | 
|  | }; | 
|  |  | 
|  | const applySetting = passedSetting => { | 
|  | let currentSetting = passedSetting || localStorage.getItem(STORAGE_KEY); | 
|  |  | 
|  | if (currentSetting) { | 
|  | document.documentElement.setAttribute('data-user-color-scheme', currentSetting) | 
|  | } | 
|  | }; | 
|  |  | 
|  | const toggleSetting = () => { | 
|  | let currentSetting = localStorage.getItem(STORAGE_KEY); | 
|  |  | 
|  | switch (currentSetting) { | 
|  | case null: | 
|  | currentSetting = getCSSCustomProp(COLOR_MODE_KEY) === 'dark' ? 'light' : 'dark'; | 
|  | break; | 
|  | case 'light': | 
|  | currentSetting = 'dark'; | 
|  | break; | 
|  | case 'dark': | 
|  | currentSetting = 'light'; | 
|  | break; | 
|  | } | 
|  |  | 
|  | localStorage.setItem(STORAGE_KEY, currentSetting); | 
|  |  | 
|  | return currentSetting; | 
|  | }; | 
|  |  | 
|  | modeToggleButton.addEventListener('click', evt => { | 
|  | evt.preventDefault(); | 
|  |  | 
|  | applySetting(toggleSetting()); | 
|  | }); | 
|  |  | 
|  | applySetting(); | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | </script> |