;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Esse conteúdo é antigo

Mendonça é criticado por ex-ministros da Justiça

Para especialistas monitoramento de adversários políticos é injustificável - Isac Nóbrega/PR
Para especialistas monitoramento de adversários políticos é injustificável Imagem: Isac Nóbrega/PR

Breno Pires

Brasília

11/08/2020 13h14

A comparação feita pelo ministro da Justiça e Segurança Pública, André Mendonça, de relatórios de inteligência envolvendo grandes eventos com o monitoramento de opositores é contestada por ex-ministros da pasta e especialistas na área. Na semana ada, Mendonça citou documentos relacionados à Copa do Mundo e à Olimpíada para exemplificar que o levantamento de informações sobre 579 servidores públicos ligados a grupos antifascistas é algo rotineiro na pasta.

Os exemplos foram citados por Mendonça na reunião sigiloso com parlamentares em que itiu a produção do documento pela Secretaria de Operações Integradas (Seopi). A existência do "dossiê", focado em policiais e professores, foi revelada no fim do mês ado pelo UOL.

Para o ex-ministro da Segurança Pública Raul Jungmann, que chefiou a pasta no governo Michel Temer, é preciso esclarecer qual é a fundamentação do monitoramento dos antifascistas, o objetivo, o método utilizado para obter informações e para quem foi enviado.

"Não era monitoramento para segurança. Você tinha uma atividade de inteligência focada em adversários políticos, em tese, do governo. Para quê? Para informar-se e manter informado ou para retaliação? Evidentemente que configura infração", disse Jungmann.

Outro ex-ministro da Justiça, José Eduardo Cardozo afirmou desconhecer a informação citada por Mendonça na audiência com parlamentares de que a pasta produziu relatório de inteligência sobre o Movimento Brasil Livre (MBL) durante o processo de impeachment de Dilma Rousseff. Na ocasião, um dos alvos, segundo Mendonça, foi Kim Kataguiri (DEM-SP), um dos líderes do grupo e hoje deputado federal.

"Se estou fazendo acompanhamento de pessoas para segurança pública, eu não vejo problema. Se são informações para evitar colocar em risco a operação, não tem problema. Agora, se eu pego policiais e pessoas ligadas à área de segurança pública, só porque não pensam igual ao governo, o que é isso? Me parece que está se usando pretexto para confundir", disse Cardozo.

Para especialistas, mesmo que haja relatórios produzidos em governos anteriores, isso não justifica eventual monitoramento de adversários políticos da gestão atual.

"Imaginando que tenha acontecido, naquele caso, você estava lidando com possível incitação à violência, enquanto agora você está atrás de gente que não está incitando violência, pedindo queda do regime, mas simplesmente fazendo oposição ao governo", afirmou o cientista político e analista criminal Guaracy Mingardi.

Para o professor da UFRGS Marco Cepik, especializado na área de inteligência, há a possibilidade de a ação da Seopi ser enquadrada como crime de responsabilidade ou até abuso de autoridade, pois são "alvos ilegítimos" por "motivos fúteis, as suas opiniões".

Mendonça nega perseguição de opositores e abriu uma sindicância para verificar se houve alguma irregularidade. Em seu primeiro ato após dar início ao processo interno, demitiu o responsável pela área de Inteligência, o coronel Gilson Libório. A medida, segundo o ministro, foi uma forma de dar garantir a "imparcialidade na apuração dos fatos". As informações são do jornal O Estado de S. Paulo.