prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Show banner throughout application when "live demo mode" is turned on.
  We should show a banner at the top of the screen on all pages that explains that Mathesar is in live demo mode and that each session has its own copy of demo data and that data will be deleted regularly.
  
  Assigning this to @mathemancer to make sure it gets implemented at some point, @ghislaineguerin for the design, and @pavish for the frontend.
  
  </issue>
  <code>
  [start of config/context_processors.py]
  1 from django.conf import settings
  2 
  3 from mathesar.utils.frontend import get_manifest_data
  4 
  5 
  6 def frontend_settings(request):
  7     frontend_settings = {
  8         'development_mode': settings.MATHESAR_MODE == 'DEVELOPMENT',
  9         'manifest_data': get_manifest_data()
  10     }
  11     # Only include development URL if we're in development mode.
  12     if frontend_settings['development_mode'] is True:
  13         frontend_settings['client_dev_url'] = settings.MATHESAR_CLIENT_DEV_URL
  14     return frontend_settings
  15
  [end of config/context_processors.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/config/context_processors.py b/config/context_processors.py
  --- a/config/context_processors.py
  +++ b/config/context_processors.py
  @@ -6,7 +6,8 @@
   def frontend_settings(request):
       frontend_settings = {
           'development_mode': settings.MATHESAR_MODE == 'DEVELOPMENT',
  -        'manifest_data': get_manifest_data()
  +        'manifest_data': get_manifest_data(),
  +        'live_demo_mode': getattr(settings, 'MATHESAR_LIVE_DEMO', False)
       }
       # Only include development URL if we're in development mode.
       if frontend_settings['development_mode'] is True:
  
verification_info: {"golden_diff": "diff --git a/config/context_processors.py b/config/context_processors.py\n--- a/config/context_processors.py\n+++ b/config/context_processors.py\n@@ -6,7 +6,8 @@\n def frontend_settings(request):\n     frontend_settings = {\n         'development_mode': settings.MATHESAR_MODE == 'DEVELOPMENT',\n-        'manifest_data': get_manifest_data()\n+        'manifest_data': get_manifest_data(),\n+        'live_demo_mode': getattr(settings, 'MATHESAR_LIVE_DEMO', False)\n     }\n     # Only include development URL if we're in development mode.\n     if frontend_settings['development_mode'] is True:\n", "issue": "Show banner throughout application when \"live demo mode\" is turned on.\nWe should show a banner at the top of the screen on all pages that explains that Mathesar is in live demo mode and that each session has its own copy of demo data and that data will be deleted regularly.\r\n\r\nAssigning this to @mathemancer to make sure it gets implemented at some point, @ghislaineguerin for the design, and @pavish for the frontend.\n", "before_files": [{"content": "from django.conf import settings\n\nfrom mathesar.utils.frontend import get_manifest_data\n\n\ndef frontend_settings(request):\n    frontend_settings = {\n        'development_mode': settings.MATHESAR_MODE == 'DEVELOPMENT',\n        'manifest_data': get_manifest_data()\n    }\n    # Only include development URL if we're in development mode.\n    if frontend_settings['development_mode'] is True:\n        frontend_settings['client_dev_url'] = settings.MATHESAR_CLIENT_DEV_URL\n    return frontend_settings\n", "path": "config/context_processors.py"}]}