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

Pessoa desonesta, despreparada e sem decência, diz Ciro sobre Moro

Ciro Gomes (PDT), pré-candidato à presidência em 2022 - ALEX SILVA/ESTADÃO CONTEÚDO
Ciro Gomes (PDT), pré-candidato à presidência em 2022 Imagem: ALEX SILVA/ESTADÃO CONTEÚDO

Lucas Borges Teixeira

Do UOL, em São Paulo

12/11/2021 18h41

Ciro Gomes (PDT) voltou a fazer duras críticas ao ex-ministro Sergio Moro (Podemos), seu possível adversário na disputa pelo Planalto nas eleições de 2022. O ex-governador disse considerar Moro uma pessoa "desonesta e despreparada".

O ex-juiz da Lava Jato se filou ao Podemos na última quarta (10), contrariando a promessa de não se lançar no mundo político. Embora não tenha se lançado pré-candidato oficialmente, o discurso teve tom eleitoral e ele tentou ao máximo se descolar do presidente Jair Bolsonaro (sem partido), de quem foi ministro —um dos pontos mais criticados por Ciro.

"Um juiz que, traindo seu compromisso da magistratura, de julgar, tira um político da disputa e, antes da eleição, aceita se aliar a outro político que foi beneficiado pela exclusão daquele outro político que ele condenou. Isso é uma lesão moral que explica que essa é uma pessoa profunda e definitivamente desonesta", declarou Ciro, na gravação do programa capitaneado pelo ex-governador Marcio França (PSB), em São Paulo.

O ex-governador faz referência aos julgamentos da Lava Jato, que condenaram o ex-presidente Lula em 2018, e o impossibilitaram de concorrer às eleições, quando estava em primeiro lugar nas pesquisas eleitorais, à época. Em junho deste ano, o plenário do STF (Supremo Tribunal Federal) declarou Moro parcial nos julgamentos do ex-presidente.

"[Moro] usou a toga para prender um adversário político, usou a magistratura para fazer política de forma completamente vil", disse Ciro.

Em 2018, após a prisão de Lula, Bolsonaro assumiu a dianteira e foi eleito naquele ano, com vitória sobre o petista Fernando Haddad. Moro foi, então, convidado a ser ministro da Justiça e Segurança Pública, cargo que ocupou até abril de 2020, quando acusou o presidente de interferir na Polícia Federal.

Em 2019, quando Moro ainda estava no ministério, o ex-secretário-geral da Presidência da República, Gustavo Bebianno, morto em abril de 2020, revelou que ele foi sondado a integrar o governo pelo futuro ministro da Economia, Paulo Guedes, antes do segundo turno das eleições.

"Ele não fez isso apenas por uma ambição desmedida, ele fez isso por uma promessa descabida, que era um cargo vitalício", acusou Ciro. Antes de rachar com Bolsonaro, Moro era o nome mais cotado a assumir a vaga no STF ocupada por Kassio Nunes Marques no ano ado.

"Considero ele [Moro] uma pessoa completamente despreparada, que não tem a decência pessoal e não conhece nem remotamente a tragédia brasileira", declarou o presidenciável.

Ciro e Moro lutam hoje pelo protagonismo da chamada "terceira via" —termo rejeitado pelo ex-governador do Ceará— atrás de eleitores que não pretendem votar inicialmente nem em Lula nem no Bolsonaro, dois primeiros colocados nas pesquisas de intenção de voto.

Ciro participou, hoje, de um reality show promovido por França para escolher novas vozes da política. Também estava presente o ex-governador paulista Geraldo Alckmin (PSDB), pré-candidato ao governo de São Paulo e recentemente especulado como possível vice na chapa de Lula. Os dois foram jurados do programa.

"Se eu fosse pergunta por ele [Alckmin], diria: sai fora, rapaz", brincou Ciro sobre a possibilidade dessa união. Recentemente, os dois têm trocado afagos e o PDT e o PSB não descartam um palanque com a dupla em São Paulo, mas ainda é preciso alinhar nacionalmente.

Ao UOL News, o presidente do PDT, Carlos Lupi, ex-ministro de Lula, declarou hoje que o partido deverá apoiar o petista em um eventual segundo turno contra Bolsonaro.