;(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

Rubens Valente

Posse do diretor da PF às escondidas reafirma intervenção de Bolsonaro

 do termo de posse do diretor-geral da PF, Rolando Alexandre de Souza - Isac Nóbrega/PR/Divulgação
do termo de posse do diretor-geral da PF, Rolando Alexandre de Souza Imagem: Isac Nóbrega/PR/Divulgação

Colunista do UOL

04/05/2020 14h08

As circunstâncias da posse do novo diretor-geral da Polícia Federal, Rolando Alexandre de Souza, nesta segunda-feira (4) no Palácio do Planalto reforçam o caráter da intervenção pessoal do presidente da República, Jair Bolsonaro, no comando da Polícia Federal.

Em mais um fato incomum na longa fila de ineditismos do governo, pela primeira vez nos últimos 17 anos a posse não ocorreu ou no Ministério da Justiça ou na sede da Polícia Federal, mas sim na Presidência. Também pela primeira vez foi fechada à imprensa e os tradicionais discursos do ministro da Justiça e do novo chefe, se ocorreram, não haviam sido divulgados até o fechamento deste texto.

De 2003 para cá, seis delegados aram pela direção-geral da PF. Em todas as posses houve uma solenidade aberta à imprensa com a presença do ministro da Justiça (em 2018, do ministro da Segurança Pública) e de outras autoridades do Judiciário e do Legislativo.

A posse tem um simbolismo próprio. Primeiro, porque mostra a sintonia entre o diretor-geral e o ministro, que fica tradicionalmente encarregado de "representar" as demandas da corporação junto à Presidência e outras esferas ministeriais. Em segundo lugar, na hora dos pronunciamentos ambos apresentam suas visões sobre o papel da Polícia Federal. É uma diretriz para o conjunto dos servidores da PF e do Ministério da Justiça e uma reafirmação dos valores da corporação.

Também é comum a presença do diretor que está deixando o cargo, em alguns casos até com discurso de despedida. É um indicativo da necessidade de uma transição civilizada entre as duas gestões, para evitar a quebra da rotina da instituição e tentar apaziguar ânimos entre as diversas correntes que coexistem dentro da polícia. A coluna apurou que os ex-diretores-gerais não foram convidados para o evento desta segunda-feira (4).

Após a solenidade da nomeação, costuma ser feita uma longa fila de "beija-mão" de policiais federais que "se apresentam" ao novo diretor-geral e dizem estar "à disposição". O ato é entendido também como uma forma de demonstrar a coesão interna e a hierarquia da instituição.

Em alguns casos, depois da posse o novo diretor-geral concedeu entrevista coletiva à imprensa. Hoje Souza deixou a Presidência sem responder às perguntas dos jornalistas - disse apenas que havia assinado o termo de posse e estava se dirigindo à PF.

A posse de Souza às escondidas ocorreu entre 10h00 e 10h20, segundo a agenda oficial de Bolsonaro, pouco depois de o Diário Oficial ter publicado a nomeação do delegado. Ele era o braço direito do diretor da Abin (Agência Brasileira de Inteligência), Alexandre Ramagem, cuja nomeação na PF foi barrada pelo STF.

A posse de Ramagem chegou a ser marcada pela Presidência na semana ada e deveria ocorrer em um evento conjunto com a posse do novo ministro da Justiça, André Mendonça, mas a liminar do ministro Alexandre de Moraes impediu a solenidade na parte relativa à PF.