prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  botocore.exceptions.ConnectionClosedError raised when calling change_resource_record_sets (Boto3)
  I am not sure whether or not I should expect this to work, but I see there are currently similar tests in moto against boto so I thought I would inquire.
  
  When using the Route53 client from boto3, a call to the change_resource_record_set method raises a botocore.exceptions.ConnectionClosedError. (botocore.exceptions.ConnectionClosedError: Connection was closed before we received a valid response from endpoint URL: "https://route53.amazonaws.com/2013-04-01/hostedzone/cc11c883/rrset/")
  
  A test case to reproduce is below.
  
  ``` python
  import boto3
  import uuid
  from moto import mock_route53
  
  def guid():
      return str(uuid.uuid4())
  
  @mock_route53
  def test_route53_rrset_fail():
  
      client = boto3.client('route53')
  
      # Create a new zone
      zone_name = '{0}.com'.format(guid())
      zone = client.create_hosted_zone(
          Name=zone_name,
          CallerReference=guid(),
          HostedZoneConfig={'Comment': guid()}
      )
      zone_id = zone['HostedZone']['Id']
  
      # Verify the zone is retrievable
      z = client.get_hosted_zone(Id=zone_id)
      assert z['HostedZone']['Id'] == zone_id
  
      # Try to create a record set
      # Raises botocore.exceptions.ConnectionClosedError
      client.change_resource_record_sets(
          HostedZoneId=zone_id,
          ChangeBatch={
              'Comment': guid(),
              'Changes': [{
                  'Action': 'CREATE',
                  'ResourceRecordSet': {
                      'Name': 'foo.{0}'.format(zone_name),
                      'Type': 'A',
                      'ResourceRecords': [{'Value': '1.2.3.4'}]
                  }
              }]
          }
      )
  ```
  
  
  </issue>
  <code>
  [start of moto/route53/urls.py]
  1 from __future__ import unicode_literals
  2 from . import responses
  3 
  4 url_bases = [
  5     "https://route53.amazonaws.com/201.-..-../",
  6 ]
  7 
  8 url_paths = {
  9     '{0}hostedzone$': responses.list_or_create_hostzone_response,
  10     '{0}hostedzone/[^/]+$': responses.get_or_delete_hostzone_response,
  11     '{0}hostedzone/[^/]+/rrset$': responses.rrset_response,
  12     '{0}healthcheck': responses.health_check_response,
  13     '{0}tags|trafficpolicyinstances/*': responses.not_implemented_response,
  14 }
  15
  [end of moto/route53/urls.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/moto/route53/urls.py b/moto/route53/urls.py
  --- a/moto/route53/urls.py
  +++ b/moto/route53/urls.py
  @@ -8,7 +8,7 @@
   url_paths = {
       '{0}hostedzone$': responses.list_or_create_hostzone_response,
       '{0}hostedzone/[^/]+$': responses.get_or_delete_hostzone_response,
  -    '{0}hostedzone/[^/]+/rrset$': responses.rrset_response,
  +    '{0}hostedzone/[^/]+/rrset/?$': responses.rrset_response,
       '{0}healthcheck': responses.health_check_response,
       '{0}tags|trafficpolicyinstances/*': responses.not_implemented_response,
   }
  
verification_info: {"golden_diff": "diff --git a/moto/route53/urls.py b/moto/route53/urls.py\n--- a/moto/route53/urls.py\n+++ b/moto/route53/urls.py\n@@ -8,7 +8,7 @@\n url_paths = {\n     '{0}hostedzone$': responses.list_or_create_hostzone_response,\n     '{0}hostedzone/[^/]+$': responses.get_or_delete_hostzone_response,\n-    '{0}hostedzone/[^/]+/rrset$': responses.rrset_response,\n+    '{0}hostedzone/[^/]+/rrset/?$': responses.rrset_response,\n     '{0}healthcheck': responses.health_check_response,\n     '{0}tags|trafficpolicyinstances/*': responses.not_implemented_response,\n }\n", "issue": "botocore.exceptions.ConnectionClosedError raised when calling change_resource_record_sets (Boto3)\nI am not sure whether or not I should expect this to work, but I see there are currently similar tests in moto against boto so I thought I would inquire.\n\nWhen using the Route53 client from boto3, a call to the change_resource_record_set method raises a botocore.exceptions.ConnectionClosedError. (botocore.exceptions.ConnectionClosedError: Connection was closed before we received a valid response from endpoint URL: \"https://route53.amazonaws.com/2013-04-01/hostedzone/cc11c883/rrset/\")\n\nA test case to reproduce is below.\n\n``` python\nimport boto3\nimport uuid\nfrom moto import mock_route53\n\ndef guid():\n    return str(uuid.uuid4())\n\n@mock_route53\ndef test_route53_rrset_fail():\n\n    client = boto3.client('route53')\n\n    # Create a new zone\n    zone_name = '{0}.com'.format(guid())\n    zone = client.create_hosted_zone(\n        Name=zone_name,\n        CallerReference=guid(),\n        HostedZoneConfig={'Comment': guid()}\n    )\n    zone_id = zone['HostedZone']['Id']\n\n    # Verify the zone is retrievable\n    z = client.get_hosted_zone(Id=zone_id)\n    assert z['HostedZone']['Id'] == zone_id\n\n    # Try to create a record set\n    # Raises botocore.exceptions.ConnectionClosedError\n    client.change_resource_record_sets(\n        HostedZoneId=zone_id,\n        ChangeBatch={\n            'Comment': guid(),\n            'Changes': [{\n                'Action': 'CREATE',\n                'ResourceRecordSet': {\n                    'Name': 'foo.{0}'.format(zone_name),\n                    'Type': 'A',\n                    'ResourceRecords': [{'Value': '1.2.3.4'}]\n                }\n            }]\n        }\n    )\n```\n\n", "before_files": [{"content": "from __future__ import unicode_literals\nfrom . import responses\n\nurl_bases = [\n    \"https://route53.amazonaws.com/201.-..-../\",\n]\n\nurl_paths = {\n    '{0}hostedzone$': responses.list_or_create_hostzone_response,\n    '{0}hostedzone/[^/]+$': responses.get_or_delete_hostzone_response,\n    '{0}hostedzone/[^/]+/rrset$': responses.rrset_response,\n    '{0}healthcheck': responses.health_check_response,\n    '{0}tags|trafficpolicyinstances/*': responses.not_implemented_response,\n}\n", "path": "moto/route53/urls.py"}]}