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

"Cada um de nós é um Boulos", diz Erundina após candidato contrair vírus

Vice de Boulos, Erundina participou de carreata saindo do Campo Limpo no último dia de campanha - Nathan Lopes/UOL
Vice de Boulos, Erundina participou de carreata saindo do Campo Limpo no último dia de campanha Imagem: Nathan Lopes/UOL

Nathan Lopes

Do UOL, em São Paulo

28/11/2020 16h36

Candidata a vice de Guilherme Boulos (PSOL) na corrida pela Prefeitura de São Paulo, a deputada federal Luiza Erundina (PSOL) teve um dia de "cabeça de chapa" no encerramento da campanha neste sábado (28).

Como Boulos foi diagnosticado com covid-19 e está em isolamento, as atenções se voltaram para Erundina, que comandou uma das quatro carreatas que percorreram a cidade rumo à avenida Paulista.

Boulos, fique tranquilo. Cada um de nós é um Boulos."
Luiza Erundina, candidata a vice na chapa do PSOL

Esta declaração foi dada quando Erundina chegou à concentração da carreata do Campo Limpo, bairro onde mora Boulos. E lembra trechos do discurso do ex-presidente Luiz Inácio Lula da Silva (PT), em São Bernardo do Campo (SP), no dia em que ele se entregou à Polícia Federal, em abril de 2017. Na ocasião, Boulos estava ao lado do ex-presidente.

"Não adianta tentar evitar que eu ande por esse país porque tem milhões e milhões de Lulas, de Boulos, de Manuela, de Dilmas Rousseff para andar por mim", disse Lula.

O PT apoia a chapa de Boulos e Erundina —Jilmar Tatto, candidato do partido, que não ou do segundo turno, também participou de carreata hoje.

Quatro trajetos

Foram quatro trajetos, cada um partindo de uma região periférica diferente da cidade e com um cabo eleitoral diferente.

  • O ex-secretário de Transportes Jilmar Tatto, partiu do Grajaú e ou por bairros que formam sua base eleitoral.
  • O deputado federal Orlando Silva, que disputou a eleição pelo PCdoB, esteve à frente da carreata de São Mateus.
  • Inicialmente, Erundina estaria na da Brasilândia, mas foi deslocada para a do Campo Limpo, bairro onde mora Boulos.
  • A da Brasilândia aconteceu sem um cabo eleitoral.

Com a ausência de Boulos por causa da covid-19, Erundina pediu para os apoiadores ficarem nas ruas e na internet "até a último instante" para "catar votos". "Que vocês não saiam da rua, mas fiquem na rua, com cuidado para preservar sua saúde, sua vida."

A agenda na periferia visa tentar conquistar indecisos e tirar votos de Bruno Covas (PSDB), atual prefeito da capital, que busca a reeleição e é adversário de Boulos neste segundo turno. Segundo pesquisas, o tucano tem um desempenho melhor em áreas periféricas.

Para Erundina, esta "é a eleição mais importante das nossas vidas" e pode representar "uma mudança radical na política". "[É] A maior novidade na política brasileira nos últimos anos. É uma chapa de encontro de gerações, atraindo a juventude", disse Erundina, que completa 86 anos de idade na segunda-feira (30). Boulos tem 38 anos.

Erundina participou de carreata que saiu do Campo Limpo, bairro onde mora Boulos - Nathan Lopes/UOL - Nathan Lopes/UOL
Vice de Boulos, Erundina participou de carreata no último dia de campanha
Imagem: Nathan Lopes/UOL

Candidato infectado

Boulos recebeu ontem o resultado do teste positivo para o novo coronavírus. Apesar de saber que uma aliada, a deputada federal Sâmia Bomfim (PSOL-SP), anunciou estar com covid-19 na segunda-feira (23), o candidato manteve agendas de campanha, com exceção das de rua, até quinta-feira (26), quando fez o exame à tarde.

Boulos e Sâmia estiveram no mesmo ambiente fechado no dia 20.

Ontem à tarde, Boulos anunciou que ficará em isolamento. Ele, inclusive, não irá votar amanhã. Hoje, ele relatou que começou a sentir sintomas da doença.

Na concentração da carreata do Campo Limpo, integrantes da campanha de Boulos distribuíram frascos de álcool em gel para os apoiadores. Apesar dos pedidos dos organizadores, houve aglomeração no momento da distribuição de materiais de propaganda que seriam exibidos nos carros.

Com a chegada da vice, as pessoas se agruparam em torno do "Erundinamóvel" —ou "Cata-voto", como ela prefere—, carro adaptado para que ela possa fazer campanha na rua em segurança durante a pandemia.

"Tendência"

Hoje, em áudio enviado a eleitores, Boulos disse que, "mais do que nunca, a campanha precisa de você [apoiadores], citando que não poderá estar nas ruas "virando voto". "As próximas horas vão ser muito decisivas. Por isso, eu quero reforçar esse pedido, essa convocação: para que todo mundo fortaleça essa onda da virada."

Boulos diz que "dá para ganhar". A tese dele é de que as pesquisas da véspera do primeiro turno apontavam ele empatado tecnicamente com Celso Russomanno (Republicanos). A apuração, porém, apontou uma diferença de cerca de dez pontos entre os dois.

"Pesquisa mostra tendência. E a tendência de todas as pesquisas na última semana é o nosso crescimento e a queda do nosso adversário", disse."

Você utiliza a Alexa? O UOL é o parceiro oficial da assistente de voz da Amazon, com boletins de notícias e dados atualizados das últimas pesquisas eleitorais e dos resultados do 2º turno. Para saber sobre a eleição na sua cidade com a credibilidade do UOL, pergunte: "Alexa, qual é o resultado da pesquisa eleitoral em São Paulo?", por exemplo, ou "Alexa, quem ganhou a eleição no Rio de Janeiro?". Nos encontramos lá!