<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def draw_on(self, canvas, stem_color, leaf_color, thickness, ages=None):
 """Draw the tree on a canvas. Args: canvas (object):
 The canvas, you want to draw the tree on. Supported canvases: svgwrite.Drawing and PIL.Image (You can also add your custom libraries.) stem_color (tupel):
 Color or gradient for the stem of the tree. leaf_color (tupel):
 Color for the leaf (= the color for last iteration). thickness (int):
 The start thickness of the tree. """

        if canvas.__module__ in SUPPORTED_CANVAS:
            drawer = SUPPORTED_CANVAS[canvas.__module__]
            drawer(self, canvas, stem_color, leaf_color, thickness, ages).draw()