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

Marco Antonio Villa

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Bolsonaro está com medo de ser preso

Colunista do UOL

03/02/2022 12h24

A sucessão presidencial de 2022 é a mais complexa desde o restabelecimento das eleições diretas em 1989. O quadro político é confuso e as candidaturas já colocadas poderão ter a companhia de algum novo postulante, assim como não causará surpresa a renúncia de algum dos pré-candidatos.

Nenhuma eleição presidencial foi resolvida com tanta antecedência. Evidentemente que o cenário apresenta algumas tendências. A questão é se serão confirmadas ou não. O caminho até o 2 de outubro é longo, sinuoso e poderemos ter surpresas. Nas duas últimas eleições o processo eleitoral foi abalado pela morte de Eduardo Campos (2014) e o atentado contra Jair Bolsonaro (2018). Os dois acontecimentos alteraram o andamento das eleições com consequências distintas.

O que se coloca em 2022 é um cenário político extremamente tensionado, sem paralelo na história recente, no campo econômico uma grave crise, a permanência da pandemia, a desorganização do aparelho de Estado, além de um sentimento popular de exaustão frente ao pior triênio das nossas vidas.

Diversamente de 2006 e 2014, quando as pesquisas de intenções de voto apresentavam os candidatos à reeleição à Presidência com amplas possibilidades de vitória, especialmente em 2006, agora o cenário é oposto: nada indica que Jair Bolsonaro possa ser reeleito. E não causará surpresa se for derrotado ainda no primeiro turno.

Assim, o presidente da República buscará alternativas para a inevitável derrota. Seguindo o figurino totalitário tão ao seu gosto, deverá transformar o período pré-eleitoral numa arena diária de conflitos com a institucionalidade. Vai tentar desqualificar as autoridades eleitorais e deverá voltar a espalhar fake news sobre as urnas eletrônicas. Os ministros do Tribunal Superior Eleitoral serão alvos constantes de calúnias e difamações, especialmente Alexandre de Moraes, que vai presidir a Corte durante as eleições.

O Supremo Tribunal Federal não vai ar incólume. Bolsonaro manterá as ameaças à Corte e deve mirar nos ministros Luis Roberto Barroso e Edson Fachin suas aleivosias. Vai terceirizar os ataques e deverá utilizar em larga escala as redes sociais, principalmente aquelas que não tem representação jurídica no Brasil.

Os adversários políticos serão hostilizados pelas ações criminosas do gabinete do ódio chefiado por Carlos Bolsonaro. Vão receber a colaboração delituosa da extrema-direita mundial nazifascista coordenada por Steve Bannon, que lidera a organização terrorista Movimento. A conexão Bannon-famiglia Bolsonaro vai ser realizada por Eduardo Bolsonaro. E não deve ser descartada a ação de grupos armados ligados à famiglia e que foram favorecidos pela liberação da compra de armamentos pesados. A "supremacia branca", os grupos "HH", estão aqui.

Esta estratégia tem como objetivo central criar o caos, conturbar o processo eleitoral. Como bom celerado, Bolsonaro poderá negociar. Se retira do processo eleitoral em troca de uma anistia, uma graça presidencial, algum tipo de arranjo que permita que permaneça livre aqui ou fora do Brasil. No exterior conta com aliados na extrema-direita americana ou golfo Pérsico.

A questão central para Bolsonaro é não ir para a cadeia. E fará de tudo um pouco para evitar este final pouco glorioso.