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

Leia a íntegra da fala de Bolsonaro pedindo a liberação de rodovias

Do UOL, em São Paulo

02/11/2022 20h34Atualizada em 02/11/2022 21h45

O presidente Jair Bolsonaro (PL) publicou um vídeo na noite desta quarta-feira (2) para falar a apoiadores e pedir que manifestantes liberem as rodovias.

Desde domingo (30), bolsonaristas fazem bloqueios nas estradas em protesto contra o resultado da eleição presidencial, que deu vitória a Luiz Inácio Lula da Silva (PT).

No pronunciamento, o presidente tratou os manifestantes como "brasileiros que estão protestando pelo Brasil" e disse apoiá-los.

Leia a íntegra do pronunciamento de Bolsonaro:

"Brasileiros que estão protestando pelo Brasil, eu sei que vocês estão chateados, estão tristes. Esperavam outra coisa, eu também. Estou tão chateado, tão triste quanto você, mas nós temos que ter a cabeça no lugar. Os protestos, as manifestações são muito bem-vindas, fazem parte do jogo democrático e, ao longo dos anos, muito disso foi feito pelo Brasil. Na Esplanada [dos Ministérios], Copacabana, Paulista, outros tantos e tantos lugares.

Até algo que não é legal. O fechamento de rodovias pelo Brasil prejudica o direito de ir e vir das pessoas. Está lá na nossa Constituição. E nós sempre estivemos dentro dessas quatro linhas. Tem que respeitar o direito de outras pessoas que estão se movimentando, além do prejuízo à nossa economia.

Sei que a economia tem sua importância, né. Sei que você está dando mais importância a outras coisas agora. É legítimo. Mas eu quero fazer um apelo a você: desobstrua as rodovias. Isso daí não faz parte, no meu entender, dessas manifestações legítimas. Não vamos perder, nós aqui, essa nossa legitimidade.

Outras manifestações que estão fazendo pelo Brasil todo, em praças, fazem parte, repito, do jogo democrático. Fiquem à vontade. E deixo claro: vocês estão se manifestando espontaneamente.

Colocamos a nossa Polícia Rodoviária Federal, desde o primeiro momento, para desobstruir rodovias pelo Brasil. E eles têm feito o trabalho para tentar desobstruir. Mas são muitos pontos e as dificuldades são enormes.

Prejuízo todo mundo está tendo com essas rodovias fechadas. O apelo que eu faço a você: desobstrua as rodovias, proteste de outra forma, em outros locais, que isso é muito bem-vindo, faz parte da nossa democracia.

Por favor, não pensem mal de mim. Eu quero o bem de vocês. Ao longo desse tempo todo à frente da Presidência, colaborei para ressurgir o sentimento patriótico, o amor à pátria, nossas cores verde e amarela, a defesa da família, a defesa da liberdade. Não vamos jogar isso fora. Vamos fazer o que tem que ser feito.

Estou com vocês e tenho certeza que vocês estão comigo. O pedido é: rodovias, vamos desobstruí-las para o bem da nossa nação e para que possamos continuar lutando por democracia e por liberdade. Muito obrigado a todos vocês. Deus abençoe o nosso Brasil."