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

Felipe Moura Brasil

OPINIÃO

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

Mais do que não combater a corrupção, Bolsonaro sabotou medidas contra ela

Colunista do UOL*

31/01/2023 17h49

*Por Redação UOL Notícias

Na Live UOL, desta terça-feira (31), o colunista do UOL Notícias Felipe Moura Brasil falou sobre o fracasso do ex-presidente Jair Bolsonaro (PL) no combate à corrupção.

Durante o mandato do ex-presidente, o Brasil se manteve estagnado numa posição ruim no IPC (Índice de Percepção da Corrupção) e seu governo promoveu um "retrocesso sem precedentes" nas instituições.

Trata-se do principal índice no mundo sobre o tema, elaborado pela Transparência Internacional. Para a entidade, o Brasil "teve uma década perdida" no combate à corrupção, caindo cinco pontos e 25 posições no ranking, desde 2012.

Em uma escala de 0 a 100, o país alcançou apenas 38 pontos ao final de 2022, mesma nota obtida nas duas edições anteriores do índice. Apesar da nota inalterada, o país ou da 96ª para a 94ª colocação, entre os 180 países e territórios avaliados.

Para Felipe Moura Brasil, mais do que não combater, Bolsonaro sabotou as medidas contra a corrupção, durante seu governo.

"Pior do que ele não ter conseguido combater a corrupção, Bolsonaro sabotou o combate a ela. O desmonte feito pelo bolsonarismo —como venho apontando há tempos— não foi reconhecido por boa parte de supostos direitistas que não quis enxergá-lo em nome do combate a Lula (PT). Como se a sabotagem do combate à corrupção não fosse favorecer o PT depois de todo o desgaste que o petismo teve com a corrupção", comentou.

"É esse binarismo imbecil que estupidificou boa parte das pessoas que votaram em Jair Bolsonaro e que não quiseram enxergar que aquilo que ele estava fazendo não só beneficiava a sua família, em termos de impunidade relativa às rachadinhas, mas também beneficiava toda a velha política que ele prometeu combater durante sua campanha de 2018. Isso inclui o PT, mas também o velho tucanato, o centrão, toda essa turma que está impune por aí".

Na análise do colunista, existe no Brasil uma tolerância absoluta com aquilo que é alegadamente criminoso.

"Tudo vai se ajeitando, se vai fazendo acordão, segurando um caso de alguém que tem poder, em nome de uma harmonia, em nome de uma pacificação entre os Poderes. Pacificação entre os Poderes é sujeira varrida para baixo do tapete aqui no Brasil", afirmou.

Felipe Moura Brasil e Madeleine Lacsko debatem os principais assuntos do país diariamente, das 16h às 17h, com transmissão ao vivo nos perfis do UOL no YouTube, no Facebook e no Twitter.