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

A cada 10 homicídios no Brasil, só 4 são esclarecidos, aponta Sou da Paz

O Brasil esclarece 44% dos seus assassinatos, de acordo com uma pesquisa divulgada nesta quarta (13) - iStock
O Brasil esclarece 44% dos seus assassinatos, de acordo com uma pesquisa divulgada nesta quarta (13) Imagem: iStock

Leonardo Martins e Saulo Pereira Guimarães

Do Uol, em São Paulo e no Rio

13/10/2021 08h28Atualizada em 13/10/2021 10h18

O Brasil esclarece 44% dos seus assassinatos, de acordo com uma pesquisa divulgada nesta quarta (13) pelo Instituto Sou da Paz.

Batizado de "Onde Mora a Impunidade", o levantamento indica que os locais que mais esclareceram homicídios foram Mato Grosso do Sul (89% do total), Santa Catarina (83%) e Distrito Federal (81%). Já Paraná (12%), Rio de Janeiro (14%) e Bahia (22%) foram os estados com as menores taxas.

De maneira geral, os indicadores aumentaram em relação à última edição do levantamento, divulgado no ano ado. Entre as razões apontadas pelo Sou da Paz para a variação, está a melhora na capacidade investigativa, indicada pelo número de crimes esclarecidos no mesmo ano em que aconteceram.

Número de estados com dados completos cresce

Na pesquisa publicada em 2020, foi constatada uma taxa de 30% de esclarecimento de homicídios no Brasil, com base em dados de 11 estados, referentes a homicídios dolosos que deram origem a ações penas e foram cometidos em 2017. Desta vez, o levantamento traz números de 17 unidades federativas relativos a crimes cometidos em 2018.

grafico homicidios -  -

Com isso, a 4ª edição do levantamento é aquela com maior número de estados que enviaram dados completos. Os números foram fornecidos pelos Ministérios Públicos e Tribunais de Justiça via Lei de o à Informação.

"Começa a haver uma preocupação maior em organizar e sistematizar melhor as informações sobre os homicidios, mas ainda estamos longe de ter uma situação ideal", afirma Carolina Ricardo, diretora-executiva do Instituto Sou da Paz.

Ela destaca o esforço desenvolvido por locais como o Espírito Santo, que tem melhorado sua taxa de esclarecimento de crimes a cada levantamento graças a um sistema de monitoramento próprio dos casos.

"Parte do trabalho da sociedade civil é fazer essa pressão pública para jogar luz naquilo que está faltando, mas também no que já avançou", diz.

Dez estados não enviaram dados

Dez das 27 unidades da federação não foram capazes de informar quantos assassinatos esclareceram ao Instituto Sou da Paz.

Alagoas, Amazonas, Ceará, Rio Grande do Norte, Sergipe e Tocantins não enviaram números. Já Amapá, Goiás, Pará e Maranhão forneceram dados incompletos.

A modernização da gestão, infraestrutura e remuneração das polícias civis é uma das recomendações do Sou da Paz para que as taxas de esclarecimento de assassinatos sigam aumentando nas unidades federativas. Além disso, o instituto indica que os estados garantam a disponibilidade ininterrupta de equipes de investigação completa, para chegada mais rápida aos locais de crime.

Carolina defende a criação de um indicador nacional de esclarecimento de homicídios por parte do poder público. "É muito importante que as polícias produzam seus indicadores e que o MP os padronize, que haja algo que seja público e governamental sobre isso", diz ela.