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

MP do Rio defende foro especial para Flávio Bolsonaro no caso Queiroz

Marcos Oliveira - 6.fev.2019 /Agência Senado
Imagem: Marcos Oliveira - 6.fev.2019 /Agência Senado

Caio Sartori

No Rio

17/09/2019 15h11

O Ministério Público do Rio deu parecer favorável para que o senador Flávio Bolsonaro (PSL-RJ) tenha direito a foro especial na investigação que apura prática de "rachadinha" na época em que era deputado estadual.

O pedido feito pela defesa do filho do presidente Jair Bolsonaro alega que o juiz Flávio Itabaiana de Oliveira Nicolau, da 27ª Vara Criminal, não tem competência para julgar o caso, já que o parlamentar teria direito a foro especial.

Quem assina o parecer do MP é a procuradora Soraya Taveira Gaya, que é da segunda instância e não faz parte do grupo de investigadores que analisava os dados de Flávio. Agora, cabe à 3ª Câmara Criminal do Tribunal de Justiça do Rio decidir se o caso vai ou não para o Órgão Especial, composto por 25 desembargadores - os 13 mais antigos e 12 eleitos pelo tribunal.

Os supostos crimes de peculato, lavagem de dinheiro e organização criminosa teriam sido praticados por Flávio quando ele era deputado estadual, cargo que ocupou entre 2003 e 2019.

A investigação do Ministério Público do Rio teve início com relatórios de inteligência financeira fornecidos pelo antigo Conselho de Controle de Atividades Financeiras (Coaf, hoje Unidade de Inteligência Financeira) que identificaram "movimentações atípicas" na conta de Fabrício Queiroz, ex-assessor de Flávio, conforme revelou o jornal O Estado de S. Paulo em dezembro do ano ado. Queiroz seria o operador dos supostos crimes praticados no âmbito do gabinete.

Em julho, Flávio Bolsonaro conseguiu suspender provisoriamente a investigação no Supremo Tribunal Federal (STF), por meio de decisão do ministro Dias Toffoli.

A sequência de vitórias, no STF e na esfera estadual, se dá num contexto em que, em Brasília, Flávio age para barrar a instauração da I da Lava Toga, que investigaria o Judiciário. O filho do presidente tem atuado nos bastidores para impedir o que poderia representar uma crise entre os Poderes.

Antes da vitória no STF com a decisão de Toffoli, a defesa do senador acumulava derrotas no Rio. Em duas ocasiões, o desembargador Antonio Carlos Nascimento Amado negara pedidos de habeas corpus apresentados pela banca. O caso seria analisado pelo colegiado da 3ª Câmara Criminal, da qual Amado é presidente, no dia em que o ministro do Supremo mandou suspender as investigações. A defesa de Queiroz também havia tido um habeas corpus negado pelo desembargador.