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

Moro: Morte de Ághata não tem relação com ampliação de legítima defesa

Reprodução/Twitter
Imagem: Reprodução/Twitter

Talita Marchao

Do UOL*, em São Paulo

22/09/2019 15h06Atualizada em 23/09/2019 09h53

O ministro da Justiça, Sergio Moro, lamentou a morte da menina Ághata Vitória Sales Félix, de 8 anos, que foi atingida nas costas por um tiro de fuzil dentro da Kombi em que viajava.

Em nota enviada ao UOL, no começo da tarde de hoje, a assessoria de imprensa do Ministério da Justiça afirmou que Moro "lamenta profundamente a morte da menina Ághata e confia que os fatos serão completamente esclarecidos pelas autoridades do Rio de Janeiro. O governo federal tem trabalhado duro para reduzir a violência e as mortes no país, e para que fatos dessa espécie não se repitam".

Já à noite, o ministro voltou a falar do assunto no Twitter. O ministro afirmou que o caso não tem relação com um dos pontos mais polêmicos de seu "pacote anticrime": o que amplia as previsões do que seria legítima defesa e casos de "excludente de ilicitude" para agentes da área de segurança pública.

No projeto, que será votado terça-feira (24) pela Comissão de Constituição e Justiça da Câmara, há previsão de anistia ou direito de redução de pena"o agente policial ou de segurança pública que, em conflito armado ou em risco iminente de conflito armado, previne injusta e iminente agressão a direito seu ou de outrem" e também "o agente policial ou de segurança pública que previne agressão ou risco de agressão a vítima mantida refém durante a prática de crimes".

Mais cedo, o presidente da Câmara, Rodrigo Maia (DEM-RJ), também lamentou a morte de Ághata e defendeu "uma avaliação criteriosa do excludente de ilicitude".

Polícia vai periciar armas

A Polícia Civil do Rio informou que enviará para perícia as armas dos policiais militares que estavam em patrulhamento na noite de sexta-feira no Complexo do Alemão, na zona norte do Rio, no momento em que Ághata foi atingida.

As armas dos policiais militares arão por confronto balístico com o projétil retirado do corpo da vítima no Instituto Médico Legal.

O governo do Rio de Janeiro informou que a Corregedoria da PM abriu procedimento para apurar a ação dos policiais envolvidos no episódio.

De acordo com a Delegacia de Homicídios da Capital (DHC), familiares de Ághata Félix já prestaram depoimento neste sábado, e novas testemunhas serão ouvidas a partir desta segunda-feira.

No decorrer dessa semana, a polícia determinará a data para a reconstituição do disparo que vitimou Ághata.

O corpo de Ághata foi enterrado no final da tarde.

(Com Estadão Conteúdo)

Menina de 8 anos morre ao ser baleada no Rio de Janeiro

UOL Notícias