prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  urllib3 logo is unreadable in docs in dark mode
  This is a recent Furo addition, you can see it in this pull request build: https://urllib3--2026.org.readthedocs.build/en/2026/index.html. Here's what I see (with Firefox on macOS with dark mode enabled):
  
  <img width="237" alt="urllib3 logo in dark mode in docs" src="https://user-images.githubusercontent.com/42327/96408490-ad2c8300-11f4-11eb-8054-661fb38a6c23.png">
  
  I'm not sure what the correct fix is here. The obvious one would be to force a white background. I guess we could also... add a dark mode urllib3 logo, by switching black letters to white?
  
  (The rest of the content looks good, even if the contrast seems low to me.)
  
  </issue>
  <code>
  [start of docs/conf.py]
  1 import os
  2 import sys
  3 from datetime import date
  4 
  5 # If extensions (or modules to document with autodoc) are in another directory,
  6 # add these directories to sys.path here. If the directory is relative to the
  7 # documentation root, use os.path.abspath to make it absolute, like shown here.
  8 
  9 root_path = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
  10 sys.path.insert(0, root_path)
  11 
  12 # Mock some expensive/platform-specific modules so build will work.
  13 # (https://read-the-docs.readthedocs.io/en/latest/faq.html#\
  14 #  i-get-import-errors-on-libraries-that-depend-on-c-modules)
  15 from unittest import mock
  16 
  17 
  18 class MockModule(mock.Mock):
  19     @classmethod
  20     def __getattr__(cls, name):
  21         return MockModule()
  22 
  23 
  24 MOCK_MODULES = ("ntlm",)
  25 
  26 sys.modules.update((mod_name, MockModule()) for mod_name in MOCK_MODULES)
  27 
  28 
  29 import urllib3
  30 
  31 # -- General configuration -----------------------------------------------------
  32 
  33 
  34 # Add any Sphinx extension module names here, as strings. They can be extensions
  35 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
  36 extensions = [
  37     "sphinx.ext.autodoc",
  38     "sphinx.ext.doctest",
  39     "sphinx.ext.intersphinx",
  40 ]
  41 
  42 # Test code blocks only when explicitly specified
  43 doctest_test_doctest_blocks = ""
  44 
  45 # Add any paths that contain templates here, relative to this directory.
  46 templates_path = ["_templates"]
  47 
  48 # The suffix of source filenames.
  49 source_suffix = ".rst"
  50 
  51 # The master toctree document.
  52 master_doc = "index"
  53 
  54 # General information about the project.
  55 project = "urllib3"
  56 copyright = f"{date.today().year}, Andrey Petrov"
  57 
  58 # The short X.Y version.
  59 version = urllib3.__version__
  60 # The full version, including alpha/beta/rc tags.
  61 release = version
  62 
  63 # List of patterns, relative to source directory, that match files and
  64 # directories to ignore when looking for source files.
  65 exclude_patterns = ["_build"]
  66 
  67 # The name of the Pygments (syntax highlighting) style to use.
  68 pygments_style = "friendly"
  69 
  70 # The theme to use for HTML and HTML Help pages.  See the documentation for
  71 # a list of builtin themes.
  72 html_theme = "furo"
  73 html_favicon = "images/favicon.png"
  74 html_logo = "images/banner.svg"
  75 
  76 html_theme_options = {
  77     "announcement": """
  78         <a style=\"text-decoration: none; color: white;\" 
  79            href=\"https://opencollective.com/urllib3\">
  80            <img src=\"/en/latest/_static/favicon.png\"/> Sponsor urllib3 v2.0 on Open Collective
  81         </a>
  82     """,
  83     "sidebar_hide_name": True,
  84 }
  85 
  86 intersphinx_mapping = {"python": ("https://docs.python.org/3", None)}
  87
  [end of docs/conf.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/docs/conf.py b/docs/conf.py
  --- a/docs/conf.py
  +++ b/docs/conf.py
  @@ -73,8 +73,8 @@
   # a list of builtin themes.
   html_theme = "furo"
   html_favicon = "images/favicon.png"
  -html_logo = "images/banner.svg"
   
  +html_static_path = ["_static"]
   html_theme_options = {
       "announcement": """
           <a style=\"text-decoration: none; color: white;\" 
  @@ -83,6 +83,8 @@
           </a>
       """,
       "sidebar_hide_name": True,
  +    "light_logo": "banner.svg",
  +    "dark_logo": "dark-logo.svg",
   }
   
   intersphinx_mapping = {"python": ("https://docs.python.org/3", None)}
  
verification_info: {"golden_diff": "diff --git a/docs/conf.py b/docs/conf.py\n--- a/docs/conf.py\n+++ b/docs/conf.py\n@@ -73,8 +73,8 @@\n # a list of builtin themes.\n html_theme = \"furo\"\n html_favicon = \"images/favicon.png\"\n-html_logo = \"images/banner.svg\"\n \n+html_static_path = [\"_static\"]\n html_theme_options = {\n     \"announcement\": \"\"\"\n         <a style=\\\"text-decoration: none; color: white;\\\" \n@@ -83,6 +83,8 @@\n         </a>\n     \"\"\",\n     \"sidebar_hide_name\": True,\n+    \"light_logo\": \"banner.svg\",\n+    \"dark_logo\": \"dark-logo.svg\",\n }\n \n intersphinx_mapping = {\"python\": (\"https://docs.python.org/3\", None)}\n", "issue": "urllib3 logo is unreadable in docs in dark mode\nThis is a recent Furo addition, you can see it in this pull request build: https://urllib3--2026.org.readthedocs.build/en/2026/index.html. Here's what I see (with Firefox on macOS with dark mode enabled):\r\n\r\n<img width=\"237\" alt=\"urllib3 logo in dark mode in docs\" src=\"https://user-images.githubusercontent.com/42327/96408490-ad2c8300-11f4-11eb-8054-661fb38a6c23.png\">\r\n\r\nI'm not sure what the correct fix is here. The obvious one would be to force a white background. I guess we could also... add a dark mode urllib3 logo, by switching black letters to white?\r\n\r\n(The rest of the content looks good, even if the contrast seems low to me.)\n", "before_files": [{"content": "import os\nimport sys\nfrom datetime import date\n\n# If extensions (or modules to document with autodoc) are in another directory,\n# add these directories to sys.path here. If the directory is relative to the\n# documentation root, use os.path.abspath to make it absolute, like shown here.\n\nroot_path = os.path.abspath(os.path.join(os.path.dirname(__file__), \"..\"))\nsys.path.insert(0, root_path)\n\n# Mock some expensive/platform-specific modules so build will work.\n# (https://read-the-docs.readthedocs.io/en/latest/faq.html#\\\n#  i-get-import-errors-on-libraries-that-depend-on-c-modules)\nfrom unittest import mock\n\n\nclass MockModule(mock.Mock):\n    @classmethod\n    def __getattr__(cls, name):\n        return MockModule()\n\n\nMOCK_MODULES = (\"ntlm\",)\n\nsys.modules.update((mod_name, MockModule()) for mod_name in MOCK_MODULES)\n\n\nimport urllib3\n\n# -- General configuration -----------------------------------------------------\n\n\n# Add any Sphinx extension module names here, as strings. They can be extensions\n# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.\nextensions = [\n    \"sphinx.ext.autodoc\",\n    \"sphinx.ext.doctest\",\n    \"sphinx.ext.intersphinx\",\n]\n\n# Test code blocks only when explicitly specified\ndoctest_test_doctest_blocks = \"\"\n\n# Add any paths that contain templates here, relative to this directory.\ntemplates_path = [\"_templates\"]\n\n# The suffix of source filenames.\nsource_suffix = \".rst\"\n\n# The master toctree document.\nmaster_doc = \"index\"\n\n# General information about the project.\nproject = \"urllib3\"\ncopyright = f\"{date.today().year}, Andrey Petrov\"\n\n# The short X.Y version.\nversion = urllib3.__version__\n# The full version, including alpha/beta/rc tags.\nrelease = version\n\n# List of patterns, relative to source directory, that match files and\n# directories to ignore when looking for source files.\nexclude_patterns = [\"_build\"]\n\n# The name of the Pygments (syntax highlighting) style to use.\npygments_style = \"friendly\"\n\n# The theme to use for HTML and HTML Help pages.  See the documentation for\n# a list of builtin themes.\nhtml_theme = \"furo\"\nhtml_favicon = \"images/favicon.png\"\nhtml_logo = \"images/banner.svg\"\n\nhtml_theme_options = {\n    \"announcement\": \"\"\"\n        <a style=\\\"text-decoration: none; color: white;\\\" \n           href=\\\"https://opencollective.com/urllib3\\\">\n           <img src=\\\"/en/latest/_static/favicon.png\\\"/> Sponsor urllib3 v2.0 on Open Collective\n        </a>\n    \"\"\",\n    \"sidebar_hide_name\": True,\n}\n\nintersphinx_mapping = {\"python\": (\"https://docs.python.org/3\", None)}\n", "path": "docs/conf.py"}]}