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

Rio tem manifestação contra violência policial após morte de João Pedro

Manifestantes protestam contra a violência policial e o racismo em frente ao Palácio Guanabara, sede do governo do Rio - Reprodução/ Instituto Marielle Franco
Manifestantes protestam contra a violência policial e o racismo em frente ao Palácio Guanabara, sede do governo do Rio Imagem: Reprodução/ Instituto Marielle Franco

Igor Mello

Do UOL, no Rio

31/05/2020 18h04

Moradores de comunidades do Rio protestaram contra a violência policial e o racismo em frente ao Palácio Guanabara, sede do governo do estado, na tarde de hoje. A mobilização foi motivada pela morte do menino João Pedro, 14 anos, durante uma operação policial em São Gonçalo. Após o término do ato, policiais militares dispararam balas de borracha e bombas de efeito moral contra os manifestantes.

O ato foi realizado às 15h e teve medidas para garantir o distanciamento entre os participantes. De acordo com os organizadores, cerca de 300 pessoas estiveram presentes no protesto, que durou cerca de 1 hora.

Após o término do ato, policiais militares dispararam bombas de efeito moral e balas de borracha contra os manifestantes. De acordo com a Globo News, os PMs miravam outro grupo que havia chegado atrasado ao ato e se concentrava perto do Palácio Guanabara, em Laranjeiras, zona sul do Rio.

Ativistas presentes afirmaram nas redes sociais que os manifestantes se comportavam de maneira pacífica até a ação da PM começar. A Globo News flagrou um policial apontar um fuzil para a cabeça de um homem que havia sido abordado durante o ato.

O UOL pediu um posicionamento à Polícia Militar a respeito do uso da força contra os manifestantes, mas não obteve resposta até o momento.

Menino foi morto dentro da casa dos tios

A manifestação foi motivada pela morte do menino João Pedro Mattos Pinto, atingido por um tiro de fuzil calibre .556 pelas costas quando estava dentro da casa de seus tios na comunidade do Salgueiro, em 18 de maio. Os protestos contra a violência policial nos EUA também serviram de inspiração para a mobilização no Rio de Janeiro.

João Pedro brincava na casa dos tios durante uma operação conjunta realizada pela PF (Polícia Militar) e pela Polícia Civil. Três policiais civis foram afastados de suas funções na rua após a operação, e itiram ter disparado mais de 60 vezes durante a ação.

Perícia realizada pela DHNSGI (Delegacia de Homicídios de Niterói, São Gonçalo e Itaboraí), responsável pela investigação do crime, encontrou cerca de 70 marcas de tiro no imóvel.

Após ser atingido, o corpo do menino foi removido do local de helicóptero pela Polícia Civil, e levado para o heliporto da Lagoa, na zona sul da capital, a cerca de 20 quilômetros do local da operação. A família de João Pedro só encontrou seu corpo 17 horas depois, no posto do IML (Instituto Médico-Legal) de Tribobó, em São Gonçalo.

A pedido da Defensoria Pública do Rio, que representa a família de João Pedro, o MP-RJ (Ministério Público do Rio) abriu um PIC (Procedimento Investigatório Criminal) para realizar uma operação independente sobre o caso, já que há determinação da CIDH (Corte Interamericana de Direitos Humanos) para que as autoridades do Rio evitem que as corporações policiais investiguem supostos crimes cometidos por seus próprios integrantes. A decisão faz parte da sentença do Caso Nova Brasília, que puniu o Brasil por não garantir uma investigação isenta sobre duas chacinas ocorridas na comunidade —que faz parte do Complexo do Alemão— em 1994 e 1995.

O PIC será conduzido por promotores do Gaesp (Grupo de Atuação Especializada em Segurança Pública), que realiza ações de controle da atividade policial no estado. De acordo com a Polícia Federal, a operação foi realizada para cumprir dois mandados de prisão contra traficantes da comunidade do Salgueiro. No entanto, as ordens foram expedidas pelo Tribunal de Justiça do Rio de Janeiro, e não pela Justiça Federal —como é praxe em casos de envolvimento da PF.