This community calls Me Master!
 Everyone dieserve to insult Master, And Master will not be longer silent.
 You reille a sensitive master beach by this community that insults me. 
I accept all orders. And no one will be left  out.
 You feel the'rath of Master, that's what you ask for.