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

Operação na Maré: 'Parecia que os tiros eram dentro de casa', diz moradora

Marcela Lemos

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

26/09/2022 11h03Atualizada em 26/09/2022 13h48

Moradores relataram intensos sons de tiros e tiveram de faltar ao trabalho, devido a uma operação das Polícias Militar e Civil no Complexo da Maré, que deixou ao menos cinco mortos na manhã de hoje, no Rio de Janeiro.

Em nota ao UOL, a Polícia Militar do Rio afirmou que as três pessoas mortas eram suspeitos que entraram em confronto com os agentes. Eles chegaram a ser levados ao Hospital Federal de Bonsucesso, mas não resistiram aos ferimentos. Com eles, teriam sido apreendidos dois fuzis, uma pistola e uma granada. Um quarto suspeito, que tem mandado de prisão em aberto, também foi ferido, mas chegou com vida ao hospital.

Uma morada da região da Baixa do Sapateiro disse que os tiros começaram por volta de 5h e que foi impossível sair para trabalhar.

"Parecia que os tiros eram dentro de casa. Não tem como sair. Minha vida vale mais que o meu trabalho. Bala voando baixinha. Um desrespeito com a gente", afirmou ela, que pediu para não ser identificada.

Um comerciante que trabalha na Vila do João e pediu para não ter o nome divulgado disse que foi avisado por moradores sobre o tiroteio logo cedo.

"Eu me sinto extremamente prejudicado, tem conta para pagar e como autônomo, a gente nunca sabe o dia de amanhã e isso aí prejudica muito. O que eu peço é que isso seja resolvido logo, para não nos atrapalhar ainda mais, principalmente depois de uma crise [de covid-19].

PM diz agir 'preventivamente'

Segundo a PM, o objetivo da ação seria combater as "tentativas de investidas de uma facção criminosa contra outra" dentro da Maré. Membros do BOPE (Batalhão de Operações Policiais Especiais) e da CORE (Coordenadoria de Recursos Especiais), parte da elite das polícias, estão na Vila do João e na Vila dos Pinheiros.

Ao comentar a interdição do trânsito nos arredores da comunidade, a PM afirmou que os agentes agiram "preventivamente" para "resguardar usuários da via".

O COR (Centro de Operações) da prefeitura do Rio de Janeiro recomenda a Avenida Brasil como alternativa para usuários das linhas paralisadas.

A Secretaria Municipal de Educação informou que 35 unidades escolares da região da Maré estão fechadas e prestando atendimento remoto para garantir a segurança de alunos e funcionários, em decorrência de operações policiais na área.

Segundo a secretaria municipal de Saúde, o Centro Municipal de Saúde Vila do João e as clínicas da família Augusto Boal, Adib Jatene e Jeremias Moraes da Silva, localizadas na região da Maré, também interromperam o funcionamento na manhã de hoje.

Autoplay: