```from device import Device
from shapely.geometry import LineString
import drawing
import math
import progress
import time

def simplify(points, tolerance=0.05):
if len(points) < 2:
return points
line = LineString(points)
line = line.simplify(tolerance)
return list(line.coords)

def simplify_paths(paths, tolerance=0.05):
return [simplify(x, tolerance) for x in paths]

def join_paths(paths, tolerance=0.05):
if len(paths) < 2:
return paths
result = [list(paths[0])]
for path in paths[1:]:
x1, y1 = result[-1][-1]
x2, y2 = path[0]
d = math.hypot(x2 - x1, y2 - y1)
if d <= tolerance:
result[-1].extend(path)
else:
result.append(list(path))
return result

def remove_duplicates(paths):
result = []
seen = set()
for path in paths:
key = tuple((x, y) for x, y in path)
if key in seen:
continue
result.append(path)
return result

def draw(x, tolerance=0.05):
if isinstance(x, drawing.Drawing):
x = x.paths
device = Device()
time.sleep(2)
device.pen_up()
time.sleep(1)
device.home()
bar = progress.Bar()
for path in bar(x):
if tolerance:
path = simplify(path, tolerance)
device.draw(path)

def parse_svg_path(line):
paths = []
path = []
for token in line.split():
cmd = token[0].upper()
x, y = map(float, token[1:].split(','))
if cmd == 'M':
if len(path) > 1:
paths.append(path)
path = [(x, y)]
elif cmd == 'L':
path.append((x, y))
if len(path) > 1:
paths.append(path)
return paths
```