#### It is rather long, but I think it worth reading. Please be wil...