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

Haddad: Campanha de Tarcísio cometeu ato ilícito ao mandar apagar imagens

Juliana Arreguy e Allan Brito

Do UOL e colaboração para o UOL, em São Paulo

26/10/2022 10h37

Fernando Haddad (PT), candidato ao governo de São Paulo, afirmou nesta manhã (26) que a equipe de Tarcísio de Freitas (Republicanos) cometeu um ato ilícito ao mandar um cinegrafista apagar imagens do tiroteio em Paraisópolis durante agenda do candidato em 17 de outubro.

"Eu fiquei sabendo que houve esse áudio. É um áudio que ninguém contesta a veracidade, ninguém contestou que aquele diálogo ocorreu, portanto a integridade do áudio não foi colocada em discussão. E aquele áudio é muito grave, porque é uma pessoa da equipe do Tarcísio praticamente intimidando um cinegrafista a apagar as imagens do que aconteceu em Paraisópolis", declarou Haddad durante a sabatina UOL/Folha.

Do ponto de vista jurídico, isso é ilegal! Simples assim. Você tem que preservar os elementos que permitam a investigação policial chegar à verdade."
Fernando Haddad, candidato do PT ao governo de SP

O caso foi revelado ontem (25) pelo jornal Folha de S.Paulo, que teve o a áudios da abordagem de integrantes da campanha de Tarcísio a um cinegrafista da Jovem Pan que havia feito registros do tiroteio. Na ocasião, aliados do candidato do Republicanos chegaram a afirmar que tinha sido um atentado contra Tarcísio.

"Prática de milícia". Em nota divulgada também ontem, a campanha de Tarcísio confirmou a veracidade do áudio e falou de "interpretação equivocada" e "grave tentativa de descontextualização" da conversa. Pouco após a confirmação, Haddad concedeu uma entrevista em Ribeirão Preto na qual classificou a conduta da equipe de Tarcísio como "prática de milícia".

Conversa. Haddad também contou na sabatina desta manhã que conversou com Tarcísio no dia do episódio. Ainda segundo o ex-prefeito de São Paulo, o próprio Tarcísio teria declarado que não foi um atentado.

A primeira providência que tomei foi ligar para ele. Ele não me atendeu no momento que eu liguei, mandei uma mensagem, e ele me retornou já à noite para contar do episódio, e ele falou para mim: 'Haddad, não tem nada de atentado. Eu vou desmentir isso porque não houve atentado'."

O petista foi informado pela própria imprensa sobre o tiroteio em Paraisópolis. Naquele momento, ele havia acabado de chegar ao bairro São Mateus, na zona leste de São Paulo, para participar de um ato ao lado do ex-presidente Luiz Inácio Lula da Silva (PT).

"Liguei para o Tarcísio para me solidarizar, para saber se ele estava bem. Uma coisa é disputa eleitoral, e a outra coisa é integridade das pessoas, psicológica e física. Então estava preocupado se ele estava bem psicologicamente, porque ele podia ter ficado abalado com o episódio. Ele tem família, ele tem filhos."

Veja a sabatina com Fernando Haddad na íntegra