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

Bolsonaro abre mão de depoimento presencial sobre interferência na PF

Por meio da AGU, presidente justificou que gravação da reunião ministerial já mostra que acusações são "infundadas" - Marcos Corrêa/PR
Por meio da AGU, presidente justificou que gravação da reunião ministerial já mostra que acusações são "infundadas" Imagem: Marcos Corrêa/PR

Do UOL, em São Paulo

26/11/2020 17h13Atualizada em 26/11/2020 21h18

O presidente Jair Bolsonaro (sem partido) abriu mão hoje da possibilidade de se justificar pessoalmente sobre a suposta interferência que ele teria tido na PF (Polícia Federal), em inquérito que corre no STF (Superior Tribunal Federal) e foi aberto após denúncia do ex-ministro da Justiça e Segurança Pública Sergio Moro. Por meio da AGU (Advocacia-Geral da União), Bolsonaro recusou oficialmente a possibilidade de defesa.

A decisão foi comunicada ao relator do inquérito no STF, o ministro Alexandre de Moraes. Momentos após o fato ser noticiado, a defesa de Moro afirmou que recebeu com 'surpresa' a decisão de Bolsonaro.

"Assim, o Peticionante vem, respeitosamente, à presença de V. Exa., declinar do meio de defesa que lhe foi oportunizado unicamente por meio presencial no referido despacho", disse a AGU no pedido encaminhado ao ministro Moraes.

Na petição, a AGU também sugere que a investigação seja encaminhada à PF para elaboração de relatório final a ser submetido ao MPF (Ministério Público Federal), lembrando que o prazo de prorrogação concedido às investigações está chegando ao fim.

O depoimento presencial de Bolsonaro havia sido determinado em setembro pelo então relator do inquérito, o ministro Celso de Mello, que se aposentou em meados de outubro. A defesa do presidente tentava fazer com o que depoimento fosse por escrito, mas o julgamento sobre a matéria no STF foi suspenso à época da aposentadoria de Mello.

Na justificativa para o presidente abrir mão do depoimento, a AGU alegou que sua presença não era mais necessária porque a divulgação do vídeo da reunião ministerial na qual ele teria sugerido a interferência na PF deixa claro que as acusações são "completamente infundadas".

O inquérito contra Bolsonaro no STF resultou das declarações de Moro quando deixou o governo, em abril. Então ministro da Justiça e Segurança Pública, o ex-juiz da Lava Jato afirmou que Bolsonaro teria tentado interferir no comando da PF, atitude que foi um dos principais motivos do seu pedido de demissão.

Uma das provas da suposta interferência seria a gravação da reunião ministerial do dia 22 de abril, que foi divulgada na íntegra um mês depois. Bolsonaro alega que sua fala na reunião era sobre trocas que ele queria fazer em relação ao GSI (Gabinete de Segurança Institucional), e não à PF.

Defesa de Moro: 'negativa sem justificativa'

"A defesa do ex-ministro Sergio Moro recebe com surpresa o declínio do presidente da República de atender à determinação para depor em inquérito no qual é investigado", afirma a nota assinada por Rodrigo Sánchez Rios, advogado de Moro no STF.

Segundo a defesa do ex-juiz da Lava Jato, o depoimento de Bolsonaro seria necessário porque as investigações conduzidas até agora "demandam explicação" do presidente.

"A negativa de prestar esclarecimentos, por escrito ou presencialmente, surge sem justificativa aparente e contrasta com os elementos reunidos pela investigação, que demandam explicação por parte do presidente da República", acrescenta a nota.