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

Vereadora atacada no Recife diz que pedia identificação a PM: 'Lastimável'

Do UOL, em São Paulo

29/05/2021 23h43

A vereadora do Recife Liana Cirne (PT) disse hoje que pedia a identificação a um policial militar quando ele disparou um jato de spray de pimenta na sua direção.

O episódio, classificado como "lastimável" pela parlamentar, foi gravado em vídeo e aconteceu durante um protesto contra o governo do presidente Jair Bolsonaro (sem partido) no centro da capital pernambucana, como parte de mais de 200 atos do tipo que foram realizados pelo Brasil.

Liana conta que tentava intervir na ação da Polícia Militar, que usou balas de borracha para dispersar manifestantes. A parlamentar disse que vinha recebendo denúncias por telefone de abusos nas ações policiais.

"Na ponte Princesa Isabel, desci do carro e com minha carteira de vereadora em punho impedi que a viatura perseguisse os manifestantes que estavam pacíficos no ato e já correndo e pedindo socorro", relatou a vereadora.

Liana ainda contou que pediu a identificação a um policial após ser agredida, com o intuito de abrir um procedimento istrativo contra ele.

No vídeo que registrou o ocorrido, é possível ver um primeiro jato de spray de pimenta sendo disparado em direção à vereadora, quando os agentes ainda estavam foram da viatura —o jato mais longo aconteceu quando o policial já estava dentro do veículo oficial.

Segundo Liana, os policiais estavam "bastante alterados".

Ele se dirigiu até a viatura e, no momento que pedi para que ele se identificasse, ele voltou para a viatura, e eu mais uma vez pedi que ele se identificasse. E então ele disparou um jato muito longo de spray de pimenta diretamente no meu rosto, a cerca de um palmo de distância do meu rosto, mas felizmente não tive nenhuma lesão mais grave nos meus olhos

Liana Cirne (PT), vereadora do Recife

Após a agressão, a parlamentar seguiu para a Ceplanc (Central de Plantões da Capital), no bairro de Campo Grande, para registrar um boletim de ocorrência contra os policiais.

Em vídeo publicado nas redes sociais, ela disse que foi surpreendida ao saber que foi denunciada pelos policiais.

Fui surpreendida na saída com o fato de ter sido denunciada pelos policiais que me agrediram, que mentiram acintosamente sobre os fatos e me acusaram de tê-los provocado algum tipo de injúria. Felizmente, os vídeos, os fatos falam por si mesmos

Liana Cirne (PT), vereadora do Recife

Repressão policial e homem ferido

O protesto contra Bolsonaro no Recife acabou após repressão policial contra manifestantes. Ao menos uma pessoa foi detida e um homem —que não participava do ato— perdeu a visão de um olho após ser atingido por bala de borracha.

O efetivo da Polícia Militar dispersou a multidão, que se concentrou na avenida Guararapes, um dos principais corredores de trânsito do centro da capital pernambucana.

Em sua conta no Twitter, o governador de Pernambuco, Paulo Câmara (PSB), disse em vídeo que repudia "todo ato de violência de qualquer ordem ou origem".

"Determinei a imediata apuração de responsabilidades. A Corregedoria da Secretaria de Defesa Social já instaurou procedimento para investigar os fatos. O oficial comandante da operação, além dos envolvidos na agressão à vereadora Liana Cirne, permanecerão afastados de suas funções enquanto durar a investigação", disse.

A PM não se manifestou sobre a ação policial e a agressão contra a vereadora.