How to override results from Unbound with domain names

First, be warned that this is a hack. I do not know the implications of it in a production environment, so use it at your own risk.

If you are here, you should aready know that, due to a limitation in Unbound, it is not possible to use CNAME records into it (this forum thread explains why). This is mostly a “by design limitation”, so you should not expect it to be overcome in the near future.

To workaround this limitation, I wrote a Shell Script that resolve dynamic domain names into its respective IP address and generate an Unbound configuration file for my aliases, and reload Unbound when necessary.

Important: all paths are relative to pfSense Unbound file locations, so you may need to adjust them to point to your distribution paths.

Here is my script (named update_dyndns.sh, permission 0744):

And this is the configuration file (named update_dyndns.conf, permission 0644):

Include this line at the end of your Unbound configuration file (unbound.conf, on pfSense just include this line into Services > DNS Resolver > Advanced):

Now, run ./update_dyndns.sh and it is done. Now you can ping your aliases and they will respond to the same IP address than the original dynamic domains. If you want these names to be constantly updated, just create a cron job to run this script frequently (mine is run every 2 minutes, since I need my server to rapidly respond to IP changes).

Acessando Homebanking sem o módulo de proteção no Windows

TL;DR: Vá direto para o passo-a-passo:

Sempre trabalhei com administração e desenvolvimento de sistemas e levo como premissa na minha profissão que as máquinas que temos hoje em dia são muito mais velozes do que realmente precisamos. O problema é que a maioria dos usuários desperdiça os recursos delas com ferramentas de monitoramento em tempo real que tornam a máquina lenta, como Antivírus, Firewall e outras firulas de segurança.

Jamais diria que essas ferramentas são inúteis ou descartáveis, em especial quando nos referimos a usuários leigos que operam uma máquina como uma criança com um chocalho. Mas, em condições normais de uso, há de se questionar a função de um Firewall instalado em um desktop que opera em uma rede residencial e que acessa a internet por meio de NAT. Proteção contra família mal-intencionada e vizinhos maliciosos? Inútil. Ainda mais se considerar que essas “pessoas mal intencionadas” normalmente terão acesso físico à máquina.

Portanto, como controlo a inicialização da minha máquina e, normalmente, conheço os processos que estão em execução, me reservo o direito de abrir mão dessas ferramentas e há vários anos não utilizo Antivírus, mantenho o Firewall desativado e, mesmo assim, instalo praticamente qualquer porcaria da internet fazendo bom uso de Máquinas Virtuais e, eventualmente, algum outro recurso de sandboxing.

O problema é que os bancos brasileiros, não satisfeitos com as soluções de Antivírus existentes, exigem que seus clientes instalem programas em seus computadores chamados de “Módulos de Segurança”. Esses módulos monitoram a execução do sistema e são capazes de detectar diversos sistemas de phishing e impedir que eles entrem em ação e interceptem informações dos usuários.

Nada contra a eficácia desses módulos. O problema é que eles consomem tanto os recursos da máquina que a tornam completamente inútil. Exemplos?

  • Minha primeira má experiência foi quando eu desenvolvia sistemas em Delphi. Por algum motivo fantástico, de uma hora para outra, não conseguia compilar mais compilar alguns programas (estava codificando serviços para o Windows). Demorei uma semana para chegar na causa do problema: “alguém” havia alterado permissões de acesso à algumas chaves do registro e isso estava impedindo a função do compilador. Nem precisa dizer quem foi o responsável, né?
  • A segunda, mais recente, já foi em uma época em que eu mantinha uma Máquina Virtual exclusiva para acesso aos sites dos bancos. Essa máquina continha todos os módulos de segurança devidamente instalados. O problema? Depois de um tempo usando, após várias atualizações do módulo de segurança, a máquina, que contava com um Intel Core i7 e 4GB de RAM, demorava minutos para fazer coisas simples como abrir o navegador. Nem precisa dizer que o host não apresentava nenhum sinal de travamento ou sobrecarga, era só a máquina virtual mesmo que não tinha NENHUM programa instalado além do módulo de segurança. Também não importava quanto de processamento ou RAM eu desse para ela: a execução era sempre lenta e consumia todos os recursos da máquina.
  • Em abril de 2013, os usuários do Windows foram pegas de surpresa com uma atualização do Windows que impedia que a máquina fizesse o boot. O erro foi associado ao Antivírus Kaspersky e ao GBPlugin (vulgo módulo de segurança ou “guardião”). Tal acusação foi retirada do site da Microsoft, mas agora é tarde: uma vez na rede, sempre na rede (Link para artigo do GizModo falando sobre o caso). Felizmente, na época eu já mantinha o módulo em uma máquina virtual.

Esses três casos são, para mim, mais do que suficientes para me fazer entender que os módulo de segurança são maus e que eu devo evitá-los a todo custo. Por isso, sempre procuro métodos para conseguir acessar os bancos sem a necessidade do Módulo de Segurança, especialmente quando estou utilizando o Windows.

Os métodos consistem basicamente em simular que você está utilizando um sistema operacional em que os bancos ainda não tenham um módulo de segurança disponível. Em todos os casos, o Java ainda se faz necessário.

Usar uma máquina virtual com o sistema operacional alternativo (ou em dual-boot) é uma solução também, mas aqui eu discuto como realizar o acesso a partir do Windows, exclusivamente.

Banco do Brasil, Caixa e Itaú

EDIT 2015-10-07: O User-Agent do Linux não funciona mais. Agora estou utilizando o User-Agent do FreeBSD.
EDIT 2015-12-08: Incluído procedimento adicional para a Caixa (obrigado Leonardo Castro).
EDIT 2016-04-13: O procedimento para a Caixa não funciona mais. 🙁

Faça o acesso através de um navegador no sistema operacional FreeBSD. Isso pode ser feito com uma máquina virtual ou ajustando o User-Agent do navegador:

  • Utilize o navegador Firefox e adicione a extensão User Agent Overrider (ou outra equivalente).
  • Nas configurações da extensão, adicione o User-agent do Firefox no FreeBSD:

Obs.: Como dito anteriormente, esse método não anula a necessidade de ter a Máquina Virtual Java (JVM) devidamente instalada, mas o applet Java não é tão invasivo quanto o Módulo de Segurança.

Procedimento adicional para Caixa:

A Caixa utiliza um certificado expirado para assinar a aplicação. Por conta disso é necessário incluir o domínio da Caixa na lista de excessões do Java:

  • Abra as configurações do Java
    • Existem vários possíveis caminhos para encontrar essas configurações:
      • Painel de Controle > Programas > Java
      • Iniciar > Todos os programas > Java > Configure Java
      • “%JAVA_HOME%\bin\javacpl.exe”
  • Na aba “Security” ajuste o nível de segurança para “High” e inclua o domínio “https://internetbankingpf.caixa.gov.br” na lista de exceções. Conforme a imagem a seguir:

Tela de configuração do Java

Bradesco

Felizmente, é o único banco que não exige a instalação do módulo de proteção. Portanto, nenhuma ação é necessária para este banco.

Santander

O site do Santander não é totalmente compatível com todos os sistemas operacionais, em particular o Linux (se tentar acessar pelo Linux, ele pede para instalar o módulo através de um arquivo *.exe de qualquer forma). Por isso, é necessário intervenção do banco para liberar o acesso sem o módulo de segurança.

  • Ligue na Central de Atendimento do Santander (4004-3535) e diga que você NÃO está conseguindo instalar o módulo de segurança. Quando perguntarem qual o sistema operacional está utilizando, diga que seu sistema é Linux (qualquer distribuição, Ubuntu, Debian, ou diga que não sabe). O atendente irá abrir um chamado e pedirá que você aguarde um retorno com uma solução para o seu problema.
  • Em alguns dias, um atendente deve retornar dizendo que o número da sua conta será incluso em uma whitelist que permitirá que seu acesso possa ser realizado sem a necessidade do módulo de proteção.

Depois disso, tanto faz qual navegador ou sistema operacional você utilizar. A instalação do módulo de segurança será sempre opcional para qualquer transação.

Evitando o Captcha do Lattes (novo método)

EDIT 22/10/2015: Os métodos pararam de funcionar novamente. 🙁

EDIT 08/06/2015: Os métodos que tinham parado de funcionar, voltaram a funcionar (vai entender). 😛

EDIT 30/05/2015: Alguns métodos pararam de funcionar hoje. 🙁

EDIT 26/05/2015: Novos métodos foram adicionados! 😀

Desde o dia 27/04/2015, o site do CNPq exige que um captcha seja resolvido para acessar qualquer currículo da base de dados deles.

Eu já tinha postado um macete para conseguir acessar os currículos sem resolver o captcha, mas notei hoje, dia 25/05/2015, que o CNPq mudou o sistema deles e, por causa dessa mudança, o macete não funciona mais.

Se você utiliza a minha solução anterior, provavelmente está visualizando a seguinte tela ao acessar um currículo:

Eu elaborei uma lista com os métodos que continuam funcionando para acessar o Lattes sem resolver o Captcha.

Solução 1: Utilizar um script

EDIT 08/06/2015: Este método voltou a funcionar! 😀

EDIT 30/05/2015: Este método parou de funcionar, veja o método seguinte. 🙁

Para esse método, é necessário instalar a extensão TamperMonkey (Chrome) ou GreaseMonkey (Firefox) e adicionar o seguinte script:

Não é preciso nenhuma configuração extra além de salvar o script (apague ou substitua o script anterior se ele ainda existir). Depois disso, basta acessar qualquer currículo que ele deve abrir automaticamente em alguns instantes.

Solução 2: Atualizar a página até o currículo aparecer

Não é uma solução tão boa, mas por algum motivo desconhecido, se você ficar atualizando a página ininterruptamente com F5, uma hora o currículo aparece sem precisar resolver o captcha.

Parece ser uma solução idiota, mas até que funciona bem.

Isso me parece ser causado por algum erro na codificação do Servlet que valida o captcha e dá margem para uma race condition. Durante a madrugada (horário em que os currículos são menos acessados), essa solução costuma não funcionar tão bem.

Solução 3: Utilizar um script para atualizar a página

Se o problema é ter que ficar atualizando a página, nada melhor do que deixar um script fazendo essa tarefa, não é mesmo?

Para isso, também é necessário instalar a extensão TamperMonkey (Chrome) ou o GreaseMonkey (Firefox) e adicionar o seguinte script:

EDIT 26/05/2015: Mudei o código do script para não ficar tentando acessar indefinidamente até conseguir. Agora ele tenta 20 vezes, se não conseguir, desiste e pede que o usuário resolva o captcha.

Não é preciso nenhuma configuração extra além de salvar o script (apague ou substitua outros scripts se ainda existirem). Depois disso, basta acessar qualquer currículo que ele deve abrir automaticamente depois de algum tempo (pode demorar um pouco, mas é só aguardar).

Essa solução consome um pouco mais da banda de internet, então talvez você prefira não utilizar esse método se sua internet for lenta ou limitada.

Solução 4: Utilizar um formulário web

EDIT 08/06/2015: Este método voltou a funcionar! 😀

EDIT 30/05/2015: Este método parou de funcionar. 🙁

Essa solução tem mais utilidade para desenvolvedores web.

O método antigo de acessar o currículo pela URL continua funcionando, mas o site do CNPq agora aceita apenas o método POST (antes ele permitia que o parâmetro fosse enviado na URL, utilizando o método GET).

Para se aproveitar desse método, copie o ID do currículo que você quer acessar no formulário abaixo e clique em “Enviar”.

http://buscatextual.cnpq.br/buscatextual/visualizacv.do?metodo=apresentar&id=K4212066D0


Acessar Lattes:


Para ver como esse formulário funciona, veja o código fonte do site. Mas adianto que o macete está todo no campo “metodo=visualizarCV“.

Se o CNPq resolver todos esses problemas, ainda tenho outras cartas na manga para continuar fazendo o acesso sem efetivamente resolver o captcha. Mas vou divulgar outros métodos aos poucos para deixar os programadores deles ocupados por algum tempo. 🙂

Rádio não funciona nos celulares Sony Xperia

Comprei recentemente um celular Sony Xperia Z2 e, ao iniciar o aplicativo para ouvir Rádio, notei ele não emitia qualquer som. Até era possível selecionar a estação, mas o fone continuava completamente mudo.

No início, pensei que era o fone de ouvido estava com algum problema, mas como ele funcionava em outros aplicativos, acabei descartando ele como possível causa do problema.

Sem muita dificuldade, descobri um tópico no Fórum de Suporte da Sony que trata exatamente desse problema.

A causa desse problema, que aparentemente afeta todos os celulares Sony Xperia, é um conflito com o recurso ‘Detecção de “Ok Google”‘ do aplicativo Google Now. Se ele estiver habilitado para reconhecer o “Ok Google” a partir de qualquer tela, o Rádio simplesmente não funciona.

Portanto, para fazer o rádio funcionar, basta desabilitar a opção “A partir de qualquer tela” no aplicativo do Google. O caminho completo é Google > (menu) > Configurações > Voz > Detecção de “Ok Google” > A partir de qualquer tela.

Com essa mudança, o Rádio deve voltar a funcionar imediatamente.

Claro que essa não é uma solução ótima pois exige que o usuário abra mão de um recurso interessante, mas é o que dá pra fazer enquanto a Sony e o Google não resolvem esse conflito entre os aplicativos deles.

Vi por aí que desabilitar a permissão do Rádio de usar o microfone também resolve o problema. Mas não testei essa possibilidade pois requer acesso de root ao celular.

Evitando o Captcha do Lattes (não funciona)

EDIT 25/05/2015: O CNPq alterou o funcionamento do site deles. Por isso, os métodos descritos abaixo não funcionam mais.

EDIT 25/05/2015: Clique no link abaixo para ver os novos métodos para acessar o Lattes sem resolver o captcha. 😀

=> Evitando o Captcha do Lattes (novo método) <=


Desde o dia 27/04/2015, o site do CNPq exige que um captcha seja resolvido para acessar qualquer currículo da base de dados deles.

Felizmente, embora o captcha seja validado pelo servidor, a visualização do conteúdo do currículo é habilitada no cliente pelo JavaScript. Em termos não técnicos, é possível visualizar o currículo sem resolver o captcha.

Infelizmente, os métodos descritos aqui só funcionam porque houveram falhas técnicas na implementação do captcha no site do CNPq. Se eles corrigirem os erros, não será tão simples assim acessar o site sem digitar o captcha.

Solução 1: Alterar a URL manualmente (não funciona)

Ao acessar um currículo no Lattes e visualizar o captcha, verá que a URL na barra de endereços se parece com isso:

http://buscatextual.cnpq.br/buscatextual/visualizacv.do?metodo=apresentar&id=K4212066D0

Basta alterar o “metodo” para “captchaValido”, como no exemplo a seguir:

http://buscatextual.cnpq.br/buscatextual/visualizacv.do?metodo=captchaValido&id=K4212066D0

E pronto! Com essa simples alteração, não é necessário resolver o captcha.

Solução 2: Utilizar um script (não funciona)

Para fazer isso de forma automática, eu recomendo instalar a extensão TamperMonkey (Chrome) ou o GreaseMonkey (Firefox) e adicionar o seguinte script:

Não é preciso nenhuma configuração extra além de salvar o script. Depois disso, basta acessar qualquer currículo que o captcha deve sumir automaticamente em instantes.

Cross-platform scripting

I’ve just made a script that can maintain, in the same file, a Shell script (for Unix/Linux based hosts) and a Batch script (for Windows based hosts).

Here is the code snippet:

Due to the nature of this script, it should follow some rules:

  • It should use the Unix/OSX line ending format (LF only). Surprisingly, Windows batch seems to not care about line ending, but Linux/Unix terminals do care.
  • The file name should use “.bat” extension, so it can be recognized by Windows as a script (Unix/Linux doesn’t care to the extension).
  • The script should NOT have the shebang (e.g. #!/bin/bash) at the beginning. So, when you run this file, it is up to you to select the right Shell (I usually assume Bash).

Safely remove USB drives

Sometime we just can’t remove our drives on Windows for no reason. When that happens, the best we can do is to restart the computer, or hard remove the drive (and risk to corrupt the drive’s file system). Here I’ll teach an easy way to remove the disk without having to appeal to these solutions.

Searching for a solution on the web, I found discussion asking why this happens and what can be done. In the discussion, one user pointed a nice way to workaround this problem, which involves putting the disk in the offline state.

In short, just type these command on prompt (requires Administrator privileges):

  • diskpart
  • list volume (find the volume number of your drive, if your drive has multiple partitions, just select any of them)
  • select volume <volume number>
  • offline disk
  • online disk

After that, you can click the safe remove button, or eject your drive as usual.

P.S.: the very last command (online disk) is not really required to disconnect the drive. But the disk state seems to be remembered by the system, so if you don’t, the drive won’t be recognized by the system the next time you connect until you put it back on online state. To avoid problems, I recommend to always run all commands.

If you prefer a simple script, I created a batch that allows you easily run these commands. Just download it here.

Nomes do BibTeX

Se você utiliza LaTeX para a redação de artigos já deve ter se deparado com algum tipo de problema no modo como o nome dos autores é apresentado no documento final (pior é quando a “descoberta” ocorre depois de já ter submetido o paper). Muitas vezes é difícil encontrar uma maneira certa de escrever o nome no arquivo *.bib e garantir que ele seja transcrito corretamente independente do estilo utilizado. Este texto tem o intuito de discutir o modo como o BibTeX interpreta o nome dos autores e ajudar na árdua tarefa de organizar a bibliografia.

Pessoalmente eu prefiro fornecer o nome completo dos meus autores para o BibTeX, sem abreviações e sem omitir nomes, quando possível. Desse modo, eu dou garantia que a minha bibliografia irá conter todos os dados para referenciar o autor independente do estilo utilizado para apresentá-lo. Depois disso, eu simplesmente espero que o BibTeX faça a abreviação e a colocação dos nomes da maneira correta de acordo com o estilo indicado. No entanto, para que essa tarefa seja feita é preciso apresentar os nomes da maneira correta para que a sua divisão seja feita de forma apropriada.

Para entender como o BibTeX divide um nome, é preciso conhecer antes as diversas partes que podem compor o nome de uma pessoa, que, a princípio, são: primeiro nome, nome do meio, ligação, último nome e júnior. A descrição de cada uma dessas partes é feita a seguir.

  • Primeiro nome: é o nome da pessoa, geralmente utilizado para identificar uma pessoa em um contexto informal. Ex.: Diego, João, Maria etc. Em alguns casos o primeiro nome pode ser composto por dois nomes, como Maria Ana, Victor Hugo, etc. Nestes casos, deve-se observar como a pessoa utiliza o nome para poder diferenciar a segunda parte como Primeiro nome ou Nome do meio.
  • Nome do meio: é o nome que sucede o primeiro nome, mas antecede o último nome, geralmente abreviado, por simplicidade. Ex.: Alan Mathison Turing, “Mathison” é o nome do meio. É comum uma pessoa possuir mais do que um nome do meio e também é comum que o nome do meio de alguns autores seja desconhecido, devido às abreviações e omissões feitas pelo mesmo.
  • Ligação: também chamado de separador, são as palavras que ligam um nome ao outro (“de”, “da”, “do”, “e”, “von”, etc.). Em John von Neumann e Ricardo Luis de Azevedo da Rocha, por exemplo, as palavras “von”, “de” e “da” são as ligações. Num contexto geral, elas normalmente são grafadas com inicial minúscula para não serem confundidas com o nome do meio e, embora não seja comum em todos lugares do mundo, no Brasil é comum um nome possuir até mais do que uma ligação.
  • Último nome: também chamado de nome de família, é o nome utilizado para identificar uma pessoa em situações formais, como referência em artigos, livros etc. Ex.: Albert Einstein, “Einstein” é o último nome.
  • Júnior: é um sufixo do nome que indica a existência de um parente com o mesmo nome. Geralmente abreviado como “Jr.” pode ser apresentado de diversas formas como “Filho”, “Neto” ou traduzido para o idioma de origem do dono do nome, como “fils” (filho) em francês. Ex.: John Forbes Nash Jr.

Quando indicamos o nome de um autor no BibTeX ele interpreta os nomes seguindo uma das três regras a seguir:

  1. Nenhuma vírgula: {Primeiro nome} {ligação} {Último nome}
  2. Uma vírgula: {ligação} {Último nome}, {Primeiro nome}
  3. Duas vírgulas: {ligação} {Último nome}, {Júnior}, {Primeiro nome}

Como pode-se notar, a distinção entre essas três possíveis interpretações se dá com base na quantidade de vírgulas que foram inseridas e no posicionamento da ligação, que devem sempre ser escritas com a inicial minúscula. O(s) nome(s) do meio são todos os nomes que estão após o primeiro nome, porém antes da ligação e do último nome. A princípio, o BibTeX interpreta os nomes do meio como sendo parte do primeiro nome.

Para mostrar como isso pode gerar problemas, imagine, por exemplo, se o nome “John Forbes Nash Jr.” fosse apresentado em um arquivo BibTeX. Como nenhuma vírgula foi inserida, será entendido que “John Forbes Nash” é o primeiro nome e “Jr.” é o último nome, o que não seria correto. De forma semelhante, se for apresentado na forma “Nash Jr., John Forbes”, então “John Forbes” será o primeiro nome enquanto “Nash Jr.” será o último nome, que também está incorreto.

Portanto, a maneira correta de referenciar seria utilizando a terceira opção pois é a única que inclui o Jr. (utilizando duas vírgulas): “Nash, Jr., John Forbes”, fazendo com que “John Forbes” seja compreendido como primeiro nome, “Nash” como último nome e “Jr.” como o júnior.

Outro grande problema ocorre quando um nome possui mais do que uma ligação, como em “Ricardo Luis de Azevedo da Rocha”. Quando o BibTeX lê um nome como esse, ele entende que tudo que vem após o ligador, faz parte do último nome. Neste caso, “Ricardo Luis” seria tratado como o primeiro nome e “Azevedo da Rocha” como último nome.

Para evitar esse comportamento, devemos optar pela segunda opção (utilizando uma vírgula), ou seja, “da Rocha, Ricardo {Luis de} Azevedo”, fazendo com que o último nome seja somente “Rocha” e precedido pelo seu ligador.

Note que neste último exemplo o ligador e o nome que o antecede foram delimitados por chaves. Este é um pequeno e útil truque que pode ser feito para garantir que os ligadores não sejam inclusos ao abreviar nomes (Ex.: Universidade de São Paulo, abrevia-se U.S.P. ao invés de U. de S.P. ou U.d.S.P.). Fazendo isso, o BibTeX passa a tratar “Luis de” como um único nome e o abrevia corretamente quando necessário.

E qual a importância de garantir que o BibTeX interprete corretamente as diversas partes de um nome? A verdade é que cada estilo trata o nome de uma maneira diferente: o IEEE, por exemplo, coloca apenas as iniciais do primeiro nome e a ligação seguida do último nome; a Nature, por outro lado, coloca a ligação e o último nome, seguido das iniciais do primeiro nome; e assim por diante. Assim sendo, entender como os nomes são interpretados nos ajuda a garantir que o mesmo seja sempre dividido da maneira correta e formatado apropriadamente independente do estilo fornecido.

Por fim, e não menos importante, também deixo aqui um aviso sobre a acentuação no BibTeX. Eu já presenciei diversos problemas com relação a acentuação nos nomes dos autores, títulos dos artigos etc. Em especial os problemas ocorreram quando eu estava utilizando o abnTeX. Embora este projeto não seja um dos mais ativos, ele ainda é muito utilizado e alguns grupos de pesquisa utilizam estilos que nada mais são do que versões derivadas deste (como é o caso do laboratório que faço parte).

O problema é que este estilo possui uma falha (descrita aqui), que impede que acentos sejam convertidos corretamente em letras maiúsculas. Para contornar o problema eles pedem que sejam utilizados códigos para descrever os acentos nos arquivos *.bib ao invés de inserí-los diretamente pelo teclado.

Dado a quantidade de problemas que essa falha me gerou, julgo isso como uma boa prática e deixo aqui a minha recomendação de que não sejam utilizados caracteres não-ASCII nos arquivos *.bib.

Como os arquivos *.bib são interpretados pelo LaTeX, é possível utilizar alguns comandos em seus campos. A saber, segue os comandos para formar os acentos mais comuns:

  • Agudo (á): {\’a}
  • Braquia (ă): {\u a}
  • Caron (ǎ): {\v a}
  • Cedilha (ç): {\c c}
  • Circunflexo (â): {\^a}
  • Grave (à): {\`a}
  • Macro (ā): {\=a}
  • Ponto (ȧ): {\.a}
  • Til (ã): {\~a}
  • Trema (ä): {\”a}

Aqui você encontra diversos outros acentos e símbolos para serem utilizados no LaTeX.

Referência:

Alexander Binder. Help On BibTeX Names. Disponível em <http://www.kfunigraz.ac.at/~binder/texhelp/bibtx-23.html>. Acessado em 4 de março de 2011.