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

Esse conteúdo é antigo

Leo Índio, primo dos filhos de Jair Bolsonaro, ganha novo cargo no Senado

Leonardo Rodrigues de Jesus, o Léo Índio, sobrinho do presidente Jair Bolsonaro - Reprodução/Instagram
Leonardo Rodrigues de Jesus, o Léo Índio, sobrinho do presidente Jair Bolsonaro Imagem: Reprodução/Instagram

Do UOL, em São Paulo*

03/11/2020 11h37Atualizada em 04/11/2020 00h45

Primo dos filhos do presidente Jair Bolsonaro (sem partido), Leonardo Rodrigues de Jesus, o Léo Índio, foi nomeado assessor parlamentar da Primeira Secretaria do Senado, comandada por Sérgio Petecão (PSD-AC).

A nomeação foi publicada na edição de hoje do Diário Oficial da União e ocorre semanas depois de Leo Índio desligar-se do gabinete de Chico Rodrigues (DEM-RR), após o senador ser flagrado com dinheiro na cueca em uma ação da Polícia Federal.

Ele desempenhava a função de assessor parlamentar desde o ano ado. Segundo apurou o UOL, dois aspectos levaram Índio a abrir mão do cargo, com salário de R$ 23 mil mensais: constrangimento e pressão da família.

O ex-assessor teria sido orientado por auxiliares de Bolsonaro a pedir exoneração e permanecer em silêncio, fora dos holofotes, para que sua imagem não fosse ainda mais atrelada ao escândalo do senador —de modo a prejudicar o presidente.

Figura pública

Léo Índio é filho de uma irmã de Rogéria Nantes, primeira mulher do presidente. Morou um período com o primo Carlos Bolsonaro e atuou como assessor informal dele na Câmara Municipal do Rio até ser alocado no gabinete de Rodrigues.

Tornou-se tornou uma figura pública após a vitória de Jair Bolsonaro em 2018 devido às redes sociais. Ele costumava aparecer constantemente em fotos ao lado de Carlos.

Com a ascensão de Bolsonaro à Presidência, Léo Índio ou a frequentar os corredores do Palácio do Planalto, ainda que não tivesse um cargo.

Somente nos primeiros 45 dias de mandato do presidente, ele esteve no Planalto 45 vezes. Além disso, chegou a viajar na comitiva oficial que se deslocou a Brumadinho, em Minas Gerais, à época da tragédia do rompimento da barragem da mina Córrego do Feijão (janeiro de 2019).

Em 2019, depois de questionamentos a respeito de sua função no governo, Léo Índio foi nomeado para o gabinete de Rodrigues.

* Com reportagem de Hanrrikson de Andrade e Guilherme Mazieiro, do UOL, em Brasília