prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  We need to support animated GIF's
  Using licecap or silentcast it is easy to make animated GIF's. When images are uploaded to django though they are resized and converted to PNG. We need to update the logic so thumbs etc. can be created for animate GIF's without losing the animation. 
  
  
  </issue>
  <code>
  [start of django_project/base/templatetags/custom_markup.py]
  1 import markdown
  2 from django import template
  3 from django.template.defaultfilters import stringfilter
  4 from django.utils.encoding import force_unicode
  5 from django.utils.safestring import mark_safe
  6 
  7 register = template.Library()
  8 
  9 
  10 @register.filter(name='base_markdown', is_safe=True)
  11 @stringfilter
  12 def base_markdown(value):
  13     extensions = ["nl2br", ]
  14 
  15     return mark_safe(markdown.markdown(force_unicode(value),
  16                                        extensions,
  17                                        safe_mode=True,
  18                                        enable_attributes=False))
  19
  [end of django_project/base/templatetags/custom_markup.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/django_project/base/templatetags/custom_markup.py b/django_project/base/templatetags/custom_markup.py
  --- a/django_project/base/templatetags/custom_markup.py
  +++ b/django_project/base/templatetags/custom_markup.py
  @@ -16,3 +16,9 @@
                                          extensions,
                                          safe_mode=True,
                                          enable_attributes=False))
  +
  +
  +@register.filter(name='is_gif', is_safe=True)
  +@stringfilter
  +def is_gif(value):
  +    return value[-4:] == '.gif'
  
verification_info: {"golden_diff": "diff --git a/django_project/base/templatetags/custom_markup.py b/django_project/base/templatetags/custom_markup.py\n--- a/django_project/base/templatetags/custom_markup.py\n+++ b/django_project/base/templatetags/custom_markup.py\n@@ -16,3 +16,9 @@\n                                        extensions,\n                                        safe_mode=True,\n                                        enable_attributes=False))\n+\n+\n+@register.filter(name='is_gif', is_safe=True)\n+@stringfilter\n+def is_gif(value):\n+    return value[-4:] == '.gif'\n", "issue": "We need to support animated GIF's\nUsing licecap or silentcast it is easy to make animated GIF's. When images are uploaded to django though they are resized and converted to PNG. We need to update the logic so thumbs etc. can be created for animate GIF's without losing the animation. \n\n", "before_files": [{"content": "import markdown\nfrom django import template\nfrom django.template.defaultfilters import stringfilter\nfrom django.utils.encoding import force_unicode\nfrom django.utils.safestring import mark_safe\n\nregister = template.Library()\n\n\n@register.filter(name='base_markdown', is_safe=True)\n@stringfilter\ndef base_markdown(value):\n    extensions = [\"nl2br\", ]\n\n    return mark_safe(markdown.markdown(force_unicode(value),\n                                       extensions,\n                                       safe_mode=True,\n                                       enable_attributes=False))\n", "path": "django_project/base/templatetags/custom_markup.py"}]}