fiz uma parte já, ainda falta um pouco