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

Bolsonaro: teve momentos na Academia Militar mais difíceis que Presidência

São Paulo e Resende (RJ)

27/11/2021 13h10

O presidente Jair Bolsonaro (sem partido) lembrou há pouco sua formação na Academia Militar das Agulhas Negras (Aman) e disse que os militares defendem a Constituição, a democracia e a liberdade, em discurso durante solenidade na instituição, em Resende (RJ), na porção fluminense do Vale do Paraíba. "Em momentos difíceis à frente da Presidência, vejo o que ei aqui (na Academia Militar das Agulhas Negras) e me conforto dizendo que aqui foi mais difícil. Quem a por aqui sabe o que são essas dificuldades", afirmou Bolsonaro, citando ensinamentos de lealdade, humildade e disciplina na cerimônia de entrega de Espadas aos Novos Aspirantes, realizada na manhã deste sábado em Resende (RJ).

Bolsonaro afirmou também que os militares estão "prontos" para defender a liberdade do País. "A vocês jovens aspirantes, agora integrando o Exército brasileiro, a uma enorme responsabilidade, maior até que defender a vida dos nossos cidadãos é defender a nossa democracia e a nossa liberdade. Juramos dar a vida à Pátria e este juramento está muito vivo. Não ousem roubar nossa liberdade, estamos prontos para defendê-la. Nós militares respeitamos a nossa Constituição", disse o presidente. Ele também afirmou que o Brasil aprende com os erros de outros países.

Bolsonaro estava acompanhado na cerimônia do vice-presidente da República, general Hamilton Mourão, do ministro-chefe do Gabinete de Segurança Institucional da Presidência, general Augusto Heleno, do ministro-chefe da Secretaria de Governo, Luiz Eduardo Ramos, e do ministro da Defesa, general Walter Braga Netto.

Antes da cerimônia, o presidente acenou para apoiadores e caminhoneiros que avam pela Rodovia Presidente Dutra em frente ao Hotel de Trânsito da Academia Militar das Agulhas Negras (Aman), em Resende (RJ), na porção fluminense do Vale do Paraíba, no início da manhã deste sábado, 27. Bolsonaro chegou à cidade no fim da tarde de sexta-feira, 26, para participar da solenidade de entrega do Aspirantado 2021 aos cadetes do 4º ano da Aman, marcada para as 11 horas.

O presidente é egresso da Aman, onde se formou em 1977. Na noite de sexta, Bolsonaro foi até um trailer comer cachorro-quente, como tradicionalmente faz quando visita Resende.