Trabalho feito, chato, com alguns problemas que não deu para resolver. 80% completo.