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

Caso Marielle

Em depoimentos, réus negam atentado contra Marielle Franco e Anderson Gomes

Marielle Franco - Márcia Foletto/Agência O Globo
Marielle Franco Imagem: Márcia Foletto/Agência O Globo

Marina Lang

Colaboração para o UOL, no Rio de Janeiro

04/10/2019 22h50

Réus pelo assassinato da vereadora Marielle Franco (PSOL) e do seu motorista Anderson Gomes em 14 de março do ano ado, o sargento reformado da PM Ronnie Lessa e o ex-PM Élcio Queiroz negaram hoje participação no duplo homicídio, durante um depoimento prestado ao juiz Gustavo Kalil, da 4ª Vara Criminal do Tribunal de Justiça do Rio.

Trata-se da primeira vez que ambos foram ouvidos pela Justiça. Embora tenham prestado depoimento na Divisão de Homicídios da Capital, na Barra da Tijuca (zona oeste do Rio), em fevereiro —um mês antes das prisões de ambos e no curso das investigações sobre a execução dos assassinatos—, eles se recusaram a prestar um novo depoimento na especializada após a prisão, em 12 de março deste ano.

Com atrasos, a audiência durou cerca de 2h30. Os dois réus pelo duplo homicídio foram inquiridos pelo magistrado por meio de videoconferência — ambos estão presos na Penitenciária Federal de Porto Velho, em Rondônia. O o à imprensa foi vetado porque as investigações do caso, que ainda apuram os eventuais mandantes dos assassinatos, correm sob sigilo.

Marinete da Silva e Antônio Francisco da Silva, pais de Marielle, acompanharam os depoimentos dos acusados. Tanto Monica Benício quanto Agatha Arnaus, viúvas de Marielle e Anderson, respectivamente, foram representadas por advogadas e pela Defensoria Pública.

Também estavam presentes a mulher de Élcio, Suzana Souza, e a filha de ambos, Thayná Queiroz.

Ontem, a mulher de Ronnie Lessa foi presa pela Polícia Civil e pelo Ministério Público do Rio sob acusação de obstruir as investigações. Ela é suspeita de ser a mentora do descarte de fuzis no mar após a prisão do marido. Seu irmão e mais duas pessoas foram presos por tentar atrapalhar o trabalho da polícia.

Daniel Rosa, titular da DH, acompanhou os depoimentos, mas saiu da audiência sem falar com a imprensa, acrescentando apenas que as investigações sobre o caso continuam. Procurado pelo UOL, o MP do Rio não se pronunciou.

Henrique Telles, responsável pela defesa de Élcio, classificou o depoimento do cliente como "muito bom".

"O depoimento do Élcio foi muito bom. Ele esclareceu alguns pontos que estavam nebulosos, não para a defesa, mas para o Ministério Público. Ele reafirmou sua inocência e o Ministério Público segue, tentando provar, que meu cliente foi motorista naquele carro sem que meu cliente estivesse naquele carro. Na verdade, no dia e na hora do crime, o meu cliente estava na Barra da Tijuca, no Resenha [Grill, um restaurante localizado na Barra], desde às 20h até 3h [do dia seguinte]. Ele tinha chegado na Barra por volta das 17h. Isso foi comprovado com o celular do meu cliente. Lá na Barra ele estava emitindo dados, mensagens, Whatsapp", declarou o advogado.

Procurado, Fernando Santana, responsável pela defesa de Lessa, não se manifestou até o fechamento da reportagem.

Caso Marielle