Your job is to implement with Delphi:
Procedure MoveMouseCursor(EndPoint : TPoint; SlowMotion : Boolean);
When called, the procedure will move the mouse pointer (cursor) to the given coordinates on the screen.
The movement must simulate natural, human made movement. That is: the speed of the cursor movement must vary randomly, the movement must contain arcs, curves, little shakes, random pauses etc. The movement can't be too slow or too fast.
If SlowMotion = True, then the mouse cursor movement must happen in slow motion. This is used for debug purposes to see the motion of the cursor.
If human user clearly moves the mouse cursor during MoveMouseCursor call, then the function is aborted.
The final delivery must contain a simple demo program that allows me to easily test the code.