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

Em adeus, Santos Cruz não explica saída e agradece a Bolsonaro e parentes

O general Santos Cruz, agora ex-ministro do governo Bolsonaro - REUTERS/Adriano Machado
O general Santos Cruz, agora ex-ministro do governo Bolsonaro Imagem: REUTERS/Adriano Machado

Luciana Quierati

Do UOL, em São Paulo

13/06/2019 18h54Atualizada em 13/06/2019 19h15

Demitido pelo presidente Jair Bolsonaro (PSL) na tarde de hoje, o general Santos Cruz entregou uma extensa carta de despedida à imprensa (leia a íntegra no final desta matéria), com muitos agradecimentos, mas sem explicar o motivo da dispensa, também não informado pelo Planalto. À Folha, o porta-voz da Presidência, Otávio do Rêgo Barros, informou que Santos Cruz diria a razão da demissão.

O militar comandava a Secretaria de Governo da Presidência da República e será substituído pelo general Luiz Eduardo Ramos Baptista Pereira, comandante militar do Sudeste.

Na carta, Santos Cruz confirma que deixa a função de ministro por decisão de Bolsonaro, a quem diz expressar iração e agradecimento e a quem cita, novamente, ao final do texto, desejando saúde, felicidade e sucesso a ele e a seus familiares.

Integrante da ala militar do governo, o agora ex-ministro esteve envolvido em crises com os filhos de Bolsonaro, que pertencem ao grupo ligado ao escritor Olavo de Carvalho. Santos Cruz reclamava das interferências dos olavistas, especialmente na comunicação do presidente e seu governo.

Em março, o general disse à Folha que nunca havia se interessado pelas ideias de Olavo e que o incomodavam suas colocações na mídia e o linguajar chulo. "O desequilíbrio fica evidente", criticou na ocasião o então ministro.

Santos Cruz teria sido avisado de sua demissão em reunião com o presidente e com o ministro Augusto Heleno, chefe do GSI (Gabinete de Segurança Institucional), segundo a Folha de S. Paulo. O encontro ocorreu às 12h20 no Palácio do Planalto, pouco antes de Bolsonaro decolar para Belém para uma agenda de governo. A reunião não constava da agenda oficial do presidente divulgada ontem à noite, mas entrou na lista de compromissos ao longo da tarde de hoje.

Agradecimentos a autoridades e imprensa

Na mensagem de despedida, Santos Cruz agradece aos servidores da Secretaria; a deputados e senadores, com destaque para os presidentes das Casas, Davi Alcolumbre (DEM-AP) e Rodrigo Maia (DEM-RJ); a governadores e prefeitos; à imprensa; a autoridades do Poder Judiciário, Ministério Público e do Tribunal de Contas da União, instituições e organizações civis, empresas, servidores públicos, embaixadores e "todos os cidadãos que travaram contato com o governo por meio da Segov".

O general é o terceiro ministro a cair na gestão Bolsonaro. Primeiro foi dispensado Gustavo Bebianno (Secretaria Geral), que foi braço direito de Bolsonaro nas eleições, mas se viu envolvido na crise dos laranjas. Depois, veio a demissão de Ricardo Vélez Rodríguez (Educação), por falhas de gestão na pasta, sendo substituído por Abraham Waintraub.

Leia abaixo a íntegra da carta:

Na oportunidade em que deixo a função de ministro da Secretaria de Governo (Segov) da Presidência da República, por decisão do Excelentíssimo Presidente Jair Messias Bolsonaro, expresso minha iração e agradecimento:

- A todos os servidores da Segov, pela dedicação, capacidade e amizade com que trabalharam, desejando que continuem com a mesma exemplar eficiência;

- Aos Excelentíssimos Deputados e Senadores, digníssimos representantes do povo brasileiro, pelo relacionamento profissional respeitoso, desejando sucesso no equacionamento e na solução das necessidades e anseios de todos os brasileiros, com especial destaque para o Excelentíssimo Senador Davi Alcolumbre (presidente do Senado Federal) e Excelentíssimo Deputado Rodrigo Maia (presidente da Câmara dos Deputados);

- Aos Governadores e Prefeitos que deram a honra de trazer à Segov suas contribuições;

- À imprensa, de modo geral, pelo profissionalismo que sempre me trataram em todas as oportunidades;

- Às autoridades do Poder Judiciário, Ministério Público e do Tribunal de Contas da União, pela cortesia no relacionamento e nas oportunidades em que tive a honra de travar contato, desejo que sejam sempre iluminados em suas decisões.

- Às diversas instituições e organizações civis, empresas, servidores públicos, embaixadores e todos os cidadãos que travaram contato com o governo por meio da Segov;

- Ao Presidente Bolsonaro e seus familiares, desejo saúde, felicidade e sucesso.

CARLOS ALBERTO DOS SANTOS CRUZ