prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  romanized decorator mutates ROMANIZATION_DICT
  After `@romanized` is used, ROMANIZATION_DICT gets updated and every module importing it will get this mutated ROMANIZATION_DICT.
  Snippet below should reproduce problem.
  ```
  from mimesis import decorators, data
  
  
  if __name__ == '__main__':
      print('ROMANIZATION_DICT: before')
      print(data.ROMANIZATION_DICT)
  
      @decorators.romanized('ru')
      def russian_name(): return 'Петр Петрович'
      # next line is where ROMANIZATION_DICT mutates
      russian_name()
  
      print('ROMANIZATION_DICT: after')
      print(data.ROMANIZATION_DICT)
  ```
  Problem is here:
  https://github.com/lk-geimfari/mimesis/blob/master/mimesis/decorators.py#L29
  
  
  </issue>
  <code>
  [start of mimesis/decorators.py]
  1 """Decorators for the public API and for internal purpose."""
  2 
  3 import functools
  4 from string import ascii_letters as letters
  5 from string import digits, punctuation
  6 from typing import Callable
  7 
  8 from mimesis import data
  9 from mimesis.exceptions import UnsupportedLocale
  10 
  11 
  12 def romanized(locale: str = '') -> Callable:
  13     """Romanize the Cyrillic text.
  14 
  15     Transliterate the Cyrillic language from the Cyrillic
  16     script into the Latin alphabet.
  17 
  18     .. note:: At this moment it works only for `ru`, `uk`, `kk`.
  19 
  20     :param locale: Locale code.
  21     :return: Latinized text.
  22     """
  23     def romanized_deco(func):
  24         @functools.wraps(func)
  25         def wrapper(*args, **kwargs):
  26             try:
  27                 alphabet = data.ROMANIZATION_DICT[locale]
  28                 # Add common cyrillic common letters
  29                 alphabet.update(data.COMMON_LETTERS)
  30                 # String can contain ascii symbols, digits and
  31                 # punctuation symbols.
  32                 alphabet.update({s: s for s in
  33                                  letters + digits + punctuation})
  34             except KeyError:
  35                 raise UnsupportedLocale(locale)
  36             result = func(*args, **kwargs)
  37             txt = ''.join([alphabet[i] for i in result if i in alphabet])
  38             return txt
  39 
  40         return wrapper
  41 
  42     return romanized_deco
  43
  [end of mimesis/decorators.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/mimesis/decorators.py b/mimesis/decorators.py
  --- a/mimesis/decorators.py
  +++ b/mimesis/decorators.py
  @@ -24,13 +24,13 @@
           @functools.wraps(func)
           def wrapper(*args, **kwargs):
               try:
  -                alphabet = data.ROMANIZATION_DICT[locale]
  -                # Add common cyrillic common letters
  -                alphabet.update(data.COMMON_LETTERS)
                   # String can contain ascii symbols, digits and
                   # punctuation symbols.
  -                alphabet.update({s: s for s in
  -                                 letters + digits + punctuation})
  +                alphabet = {s: s for s in
  +                            letters + digits + punctuation}
  +                alphabet.update(data.ROMANIZATION_DICT[locale])
  +                # Add common cyrillic letters
  +                alphabet.update(data.COMMON_LETTERS)
               except KeyError:
                   raise UnsupportedLocale(locale)
               result = func(*args, **kwargs)
  
verification_info: {"golden_diff": "diff --git a/mimesis/decorators.py b/mimesis/decorators.py\n--- a/mimesis/decorators.py\n+++ b/mimesis/decorators.py\n@@ -24,13 +24,13 @@\n         @functools.wraps(func)\n         def wrapper(*args, **kwargs):\n             try:\n-                alphabet = data.ROMANIZATION_DICT[locale]\n-                # Add common cyrillic common letters\n-                alphabet.update(data.COMMON_LETTERS)\n                 # String can contain ascii symbols, digits and\n                 # punctuation symbols.\n-                alphabet.update({s: s for s in\n-                                 letters + digits + punctuation})\n+                alphabet = {s: s for s in\n+                            letters + digits + punctuation}\n+                alphabet.update(data.ROMANIZATION_DICT[locale])\n+                # Add common cyrillic letters\n+                alphabet.update(data.COMMON_LETTERS)\n             except KeyError:\n                 raise UnsupportedLocale(locale)\n             result = func(*args, **kwargs)\n", "issue": "romanized decorator mutates ROMANIZATION_DICT\nAfter `@romanized` is used, ROMANIZATION_DICT gets updated and every module importing it will get this mutated ROMANIZATION_DICT.\r\nSnippet below should reproduce problem.\r\n```\r\nfrom mimesis import decorators, data\r\n\r\n\r\nif __name__ == '__main__':\r\n    print('ROMANIZATION_DICT: before')\r\n    print(data.ROMANIZATION_DICT)\r\n\r\n    @decorators.romanized('ru')\r\n    def russian_name(): return '\u041f\u0435\u0442\u0440 \u041f\u0435\u0442\u0440\u043e\u0432\u0438\u0447'\r\n    # next line is where ROMANIZATION_DICT mutates\r\n    russian_name()\r\n\r\n    print('ROMANIZATION_DICT: after')\r\n    print(data.ROMANIZATION_DICT)\r\n```\r\nProblem is here:\r\nhttps://github.com/lk-geimfari/mimesis/blob/master/mimesis/decorators.py#L29\r\n\n", "before_files": [{"content": "\"\"\"Decorators for the public API and for internal purpose.\"\"\"\n\nimport functools\nfrom string import ascii_letters as letters\nfrom string import digits, punctuation\nfrom typing import Callable\n\nfrom mimesis import data\nfrom mimesis.exceptions import UnsupportedLocale\n\n\ndef romanized(locale: str = '') -> Callable:\n    \"\"\"Romanize the Cyrillic text.\n\n    Transliterate the Cyrillic language from the Cyrillic\n    script into the Latin alphabet.\n\n    .. note:: At this moment it works only for `ru`, `uk`, `kk`.\n\n    :param locale: Locale code.\n    :return: Latinized text.\n    \"\"\"\n    def romanized_deco(func):\n        @functools.wraps(func)\n        def wrapper(*args, **kwargs):\n            try:\n                alphabet = data.ROMANIZATION_DICT[locale]\n                # Add common cyrillic common letters\n                alphabet.update(data.COMMON_LETTERS)\n                # String can contain ascii symbols, digits and\n                # punctuation symbols.\n                alphabet.update({s: s for s in\n                                 letters + digits + punctuation})\n            except KeyError:\n                raise UnsupportedLocale(locale)\n            result = func(*args, **kwargs)\n            txt = ''.join([alphabet[i] for i in result if i in alphabet])\n            return txt\n\n        return wrapper\n\n    return romanized_deco\n", "path": "mimesis/decorators.py"}]}