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

"O pior pro Paes será me encontrar no 2º turno", diz Martha

Herculano Barreto Filho

Do UOL, no Rio

14/11/2020 13h02

Em empate técnico nas pesquisas de intenção de voto com o prefeito Marcelo Crivella (Republicanos), a deputada estadual Martha Rocha (PDT) tenta virar votos e convencer os eleitores de que é a candidata com maior chances de enfrentar o líder nas pesquisas, Eduardo Paes (DEM), no segundo turno.

Por volta das 10h30 deste sábado (14), Martha fez campanha na feira da Ribeira, na Ilha do Governador (zona norte) em seu último dia de campanha eleitoral para a Prefeitura do Rio. Em entrevista ao UOL, criticou os ataques feitos a ela por Eduardo Paes durante a campanha e provocou: "O pior que pode acontecer para o Paes será me encontrar no 2º turno", disse.

Sem se preocupar com as pesquisas, a candidata se projeta na próxima fase da campanha. "Não me preocupo pensando se vou ou não vou chegar. Sou uma pessoa de fé", disse, "no 2º turno, os candidatos terão o mesmo tempo para apresentar propostas para o Rio".

Martha distribuiu santinhos e conversou com eleitores na feira. Em seguida, seguiu em carreata pela zona norte. No começo da tarde, fará campanha no NorteShopping, no Cachambi, também na zona norte. À noite, participará de uma bandeirada final na Lapa, região central do Rio.

Ao fazer um retrospecto da campanha, Martha ite que se surpreendeu com a própria candidatura. A conversa foi brevemente interrompida por um eleitor, que abriu voto na candidata. "É isso! É esse tipo de gesto espontâneo que me faz acreditar. A cidade do Rio está cansada de malandros e incompetentes".

Milícia nas urnas: "polícia precisa esclarecer os crimes"

Ela também se posicionou sobre o avanço da crime organizado durante a campanha eleitoral, retratado pelo UOL na série "Milícia nas urnas", que revelou denúncias de áreas com candidatos ligados ao crime e ao menos oito atentados, deixando três mortes.

"A polícia precisa esclarecer esses casos para saber se foram crimes políticos ou se tiveram outras motivações", analisou.

Martha relembrou quando o seu carro foi alvo de uma emboscada em janeiro de 2019 na Penha, zona norte do Rio. "E eu estava com a minha mãe de 89 anos no carro", contou. Na ocasião, o seu motorista foi atingido por um tiro no tornozelo.

Tragédia da Muzema e críticas a Crivella

Ela também fez críticas à gestão de Crivella no combate à milícia, suspeita de envolvimento em construções irregulares de prédios. E citou a tragédia causada pelo desabamento de dois edifícios irregulares na comunidade da Muzema, que deixou 24 mortos.

"A milícia faz construções irregulares em áreas de preservação ambiental. Não é possível que o prefeito [Marcelo Crivella] não soubesse disso", argumentou.