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

Justiça abre prazo para defesa de Covas em ação por abuso de poder

Bruno Covas (PSDB) é alvo de uma ação apresentada pela campanha de Márcio França (PSB) - Mariana Pekin/UOL/Arte-UOL
Bruno Covas (PSDB) é alvo de uma ação apresentada pela campanha de Márcio França (PSB) Imagem: Mariana Pekin/UOL/Arte-UOL

Nathan Lopes

Do UOL, em São Paulo

28/11/2020 04h00

A Justiça Eleitoral deu prazo de cinco dias para a campanha de Bruno Covas (PSDB) se manifestar em uma ação que foi apresentada pela candidatura de Márcio França (PSB) às vésperas do primeiro turno. França, terceiro colocado em 15 de novembro, alegou que a chapa do tucano cometeu o crime de abuso de poder político.

Em despacho com data desta sexta (27), o juiz eleitoral Marco Antonio Martin Vargas deu o prazo para que Covas e seu vice, Ricardo Nunes (MDB), "ofereçam ampla defesa, juntada de documentos", além de indicar testemunhas. O magistrado também pediu que, ao fim do prazo dado à candidatura, o MPE (Ministério Público Eleitoral) se manifeste sobre o caso.

Em 13 de novembro, os advogados da campanha de França entraram com uma ação na qual diziam que, "sem qualquer cerimônia e sem distinguir o público do privado, o atual prefeito e candidato à reeleição Bruno Covas usa a máquina pública em seu favor para conseguir seu intento eleitoral".

Quando a ação foi apresentada, a campanha de Covas disse, em nota, que ela "é uma colcha de retalhos de assuntos desconexos, que chega ao absurdo de dizer que a escrivaninha do prefeito teria sido usada na campanha eleitoral". Segundo os advogados, "pode-se perder a noção de direito, mas não se deve perder o senso do ridículo."

Teses

Uma das teses dos defensores de França é que doações de milionários para Covas são imorais porque eles "detêm monopólio de mercado e interesse direto nos contratos com a istração pública".

Outro ponto é o de que Covas utilizou na campanha espaços da prefeitura para cumprir agenda eleitoral, como para participar de sabatinas e entrevistas.

"Há flagrante e evidente mistura do particular com o público, em nítido desequilíbrio ao pleito eleitoral, na medida em que a máquina pública vem sendo utilizada para gerir atos de campanha e atos oficiais do governo municipal", dizem os advogados de França, pontuando que até "internet paga com dinheiro público" foi utilizada em atos de campanha.

O candidato a vice na chapa de Covas, o vereador Ricardo Nunes (MDB), também é citado em razão de suspeitas envolvendo creches, como noticiado pelos jornais Folha de S.Paulo e O Estado de S. Paulo. Os defensores de França pedem à Justiça Eleitoral que Nunes seja investigado.

Os advogados de França acreditam que houve "desequilíbrio do processo eleitoral em curso". Por esse motivo, caso a Justiça Eleitoral concorde com seus argumentos, eles pedem que a chapa de Covas seja cassada e que o tucano e o vereador sejam declarados inelegíveis.

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á!