<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(self):

 """Draws the button in its current state.
 
 Should be called every time through the main loop
 
 """

        if not self.visible:
            return

        # Blit the button's current appearance to the surface.
        if self.isEnabled:
            if self.mouseIsDown:
                if self.mouseOverButton and self.lastMouseDownOverButton:
                    self.window.blit(self.surfaceDown, self.loc)
                else:
                    self.window.blit(self.surfaceUp, self.loc)
            else:  # mouse is up
                if self.mouseOverButton:
                    self.window.blit(self.surfaceOver, self.loc)
                else:
                    self.window.blit(self.surfaceUp, self.loc)

        else:
            self.window.blit(self.surfaceDisabled, self.loc)