Freelancer:
MA0GFX
Modified
Edited based on comments