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

'Não me meto mais na política brasileira', diz Olavo de Carvalho

O escritor brasileiro Olavo de Carvalho - Joshua Roberts/Reuters
O escritor brasileiro Olavo de Carvalho Imagem: Joshua Roberts/Reuters

Paulo Beraldo

Em São Paulo

16/05/2019 10h28

O escritor Olavo de Carvalho, um dos principais influenciadores do bolsonarismo, afirmou ontem que vai deixar de "se meter" na política brasileira.

"Eles querem me tirar da parada? Tiraram. Eu vou ficar quietinho agora, não me meto mais na política brasileira. O Brasil escolheu o seu caminho. Escolheu confiar em pessoas que não merecem a sua confiança e agora vai se danar", afirmou em conversa em vídeo com o site Crítica Nacional.

Segundo Olavo, a sua participação na política se tornou insustentável.

"O que eu estou fazendo, estou decidindo hoje, é me ausentar temporariamente do debate político nacional, do dia a dia, das miudezas das política, porque se tornou uma coisa absolutamente insustentável. Tamparam minha boca. Não tem problema. Vocês se virem aí, fiquem com o Santos Cruz (general e ministro-chefe da Secretaria de Governo da Presidência)", disse, em referência ao ministro com quem já teve atritos.

Olavo negou, ainda, que tenha qualquer influência sobre os grupos no governo.

"Quem sou eu nessa história toda? Esse grupo olavista jamais existiu. Não existe nada disso. A minha influência é a influência de escritor sobre um público difuso que não tem nenhum contato entre si. Não há organização, não há diálogo, não há membros. O Brasil está vivendo embaixo de uma alucinação, isso virou uma palhaçada".

Condecoração

No início do mês, o presidente Jair Bolsonaro concedeu a Olavo de Carvalho o grau máximo da Ordem Nacional de Rio Branco, de Grã-Cruz, indicado para autoridades de alta hierarquia.

Segundo o Itamaraty, a Ordem Nacional de Rio Branco é uma comenda que o presidente pode atribuir a personalidades "pelos seus serviços ou méritos excepcionais".

Além de Olavo, outras 33 pessoas receberam a condecoração, como o vice-presidente Hamilton Mourão, ministros de Estado e governadores.

Conflito com militares

Um dos pontos mais importantes do embate entre Olavo de Carvalho e integrantes do governo aconteceu após duras críticas do escritor às Forças Armadas.

Em entrevista ao jornal O Estado de S. Paulo, o ex-comandante do Exército general Eduardo Villas Bôas, que exerce o cargo de assessor especial do ministro Augusto Heleno, do Gabinete de Segurança Institucional (GSI), disse que Olavo prestava enorme desserviço ao País.

"Ele está prestando um enorme desserviço ao País. Em um momento em que precisamos de convergências, ele está estimulando as desavenças", disse um dos principais nomes das Forças Armadas. "É também muito grave a maneira como ele se refere com impropérios a oficiais da estatura dos generais Mourão (vice-presidente da República), Santos Cruz (ministro da Secretaria de Governo) e Heleno (ministro) e aos militares em geral", afirmou.