prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Release 24.1.0 to unbreak users who use the latest PyPy
  #12084 is breaking CI for Tahoe-LAFS, so probably is breaking real-world usage for someone somewhere too. So it'd be good to have a release sooner rather than later.
  
  </issue>
  <code>
  [start of src/twisted/_version.py]
  1 """
  2 Provides Twisted version information.
  3 """
  4 
  5 # This file is auto-generated! Do not edit!
  6 # Use `python -m incremental.update Twisted` to change this file.
  7 
  8 from incremental import Version
  9 
  10 __version__ = Version("Twisted", 23, 10, 0, post=0)
  11 __all__ = ["__version__"]
  12
  [end of src/twisted/_version.py]
  [start of src/twisted/copyright.py]
  1 # Copyright (c) Twisted Matrix Laboratories.
  2 # See LICENSE for details.
  3 
  4 """
  5 Copyright information for Twisted.
  6 """
  7 
  8 
  9 __all__ = ["copyright", "disclaimer", "longversion", "version"]
  10 
  11 from twisted import __version__ as version, version as _longversion
  12 
  13 longversion = str(_longversion)
  14 
  15 copyright = """\
  16 Copyright (c) 2001-2023 Twisted Matrix Laboratories.
  17 See LICENSE for details."""
  18 
  19 disclaimer = """
  20 Twisted, the Framework of Your Internet
  21 {}
  22 
  23 Permission is hereby granted, free of charge, to any person obtaining
  24 a copy of this software and associated documentation files (the
  25 "Software"), to deal in the Software without restriction, including
  26 without limitation the rights to use, copy, modify, merge, publish,
  27 distribute, sublicense, and/or sell copies of the Software, and to
  28 permit persons to whom the Software is furnished to do so, subject to
  29 the following conditions:
  30 
  31 The above copyright notice and this permission notice shall be
  32 included in all copies or substantial portions of the Software.
  33 
  34 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  35 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  36 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  37 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  38 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  39 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  40 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  41 
  42 """.format(
  43     copyright,
  44 )
  45
  [end of src/twisted/copyright.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/src/twisted/_version.py b/src/twisted/_version.py
  --- a/src/twisted/_version.py
  +++ b/src/twisted/_version.py
  @@ -7,5 +7,5 @@
   
   from incremental import Version
   
  -__version__ = Version("Twisted", 23, 10, 0, post=0)
  +__version__ = Version("Twisted", 24, 3, 0, post=0)
   __all__ = ["__version__"]
  diff --git a/src/twisted/copyright.py b/src/twisted/copyright.py
  --- a/src/twisted/copyright.py
  +++ b/src/twisted/copyright.py
  @@ -13,7 +13,7 @@
   longversion = str(_longversion)
   
   copyright = """\
  -Copyright (c) 2001-2023 Twisted Matrix Laboratories.
  +Copyright (c) 2001-2024 Twisted Matrix Laboratories.
   See LICENSE for details."""
   
   disclaimer = """
  
verification_info: {"golden_diff": "diff --git a/src/twisted/_version.py b/src/twisted/_version.py\n--- a/src/twisted/_version.py\n+++ b/src/twisted/_version.py\n@@ -7,5 +7,5 @@\n \n from incremental import Version\n \n-__version__ = Version(\"Twisted\", 23, 10, 0, post=0)\n+__version__ = Version(\"Twisted\", 24, 3, 0, post=0)\n __all__ = [\"__version__\"]\ndiff --git a/src/twisted/copyright.py b/src/twisted/copyright.py\n--- a/src/twisted/copyright.py\n+++ b/src/twisted/copyright.py\n@@ -13,7 +13,7 @@\n longversion = str(_longversion)\n \n copyright = \"\"\"\\\n-Copyright (c) 2001-2023 Twisted Matrix Laboratories.\n+Copyright (c) 2001-2024 Twisted Matrix Laboratories.\n See LICENSE for details.\"\"\"\n \n disclaimer = \"\"\"\n", "issue": "Release 24.1.0 to unbreak users who use the latest PyPy\n#12084 is breaking CI for Tahoe-LAFS, so probably is breaking real-world usage for someone somewhere too. So it'd be good to have a release sooner rather than later.\n", "before_files": [{"content": "\"\"\"\nProvides Twisted version information.\n\"\"\"\n\n# This file is auto-generated! Do not edit!\n# Use `python -m incremental.update Twisted` to change this file.\n\nfrom incremental import Version\n\n__version__ = Version(\"Twisted\", 23, 10, 0, post=0)\n__all__ = [\"__version__\"]\n", "path": "src/twisted/_version.py"}, {"content": "# Copyright (c) Twisted Matrix Laboratories.\n# See LICENSE for details.\n\n\"\"\"\nCopyright information for Twisted.\n\"\"\"\n\n\n__all__ = [\"copyright\", \"disclaimer\", \"longversion\", \"version\"]\n\nfrom twisted import __version__ as version, version as _longversion\n\nlongversion = str(_longversion)\n\ncopyright = \"\"\"\\\nCopyright (c) 2001-2023 Twisted Matrix Laboratories.\nSee LICENSE for details.\"\"\"\n\ndisclaimer = \"\"\"\nTwisted, the Framework of Your Internet\n{}\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\"\"\".format(\n    copyright,\n)\n", "path": "src/twisted/copyright.py"}]}