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

Apesar do avanço da covid, Bolsonaro diz querer volta às aulas presenciais

Presidente Jair Bolsonaro em Brasília -
Presidente Jair Bolsonaro em Brasília

Vinícius Valfré

03/12/2020 06h47

Apesar do crescimento de casos de covid-19, o presidente Jair Bolsonaro (sem partido) disse desejar o retorno das aulas presenciais em todos os níveis de ensino. Em conversa com apoiadores ao retornar ao Palácio da Alvorada, nesta quarta-feira (2) o chefe do Executivo criticou a resistência de reitores à retomada.

"Estamos tentando a volta às aulas. Conversei agora com o ministro da Educação. Queremos voltar às aulas presenciais em todos os níveis, mas os reitores agora chegaram nele... 'não, queremos só começar em 2022'. Aí, no meu entender, não tem cabimento", disse o presidente.

A manifestação de Bolsonaro ocorre no mesmo dia em que o Ministério da Educação publicou, e foi pressionado a revogar, portaria que recomendava a retomada das aulas presenciais nas instituições de ensino superior a partir de 4 de janeiro.

A preocupação com a nova escalada de contaminações pelo coronavírus tem feito estados e instituições adotarem cautela para restabelecer rotinas. Na cidade de São Paulo estão autorizadas aulas apenas para o Ensino Médio, e grupos de pais se mobilizam para pedir o retorno presencial ainda este ano.

Como mostrou o Estadão, a portaria do MEC poderia ser judicializada porque universidades têm autonomia e existe previsão legal para que governos regionais tomem decisões de caráter sanitário.

A repercussão negativa da portaria do ministro Milton Ribeiro, entre instituições e especialistas que disseram que a medida era inconstitucional, acabou fazendo o governo voltar atrás.

Mourão

No diálogo com apoiadores, Bolsonaro, sem máscara, também comentou a decisão da Aneel (Agência Nacional de Energia) de adotar a bandeira vermelha na tarifa de luz a partir deste mês.

O presidente reafirmou que a medida é necessária, para evitar apagões e racionamento. Disse, ainda, que ordenou à equipe do Alvorada a adoção de medidas para redução do gasto com energia a partir do mês seguinte.

Ao fazer o comentário, disse que as medidas poderiam gerar problemas de segurança e concluiu sugerindo, em tom de brincadeira, que a guarda oficial prefere ele ao vice, Hamilton Mourão.

"Eu quero a conta de luz do mês que vem menor do que essa. Não sou eu que pago. É o cartão corporativo. Quantas pessoas comem aqui todo dia? Mais de 150 pessoas. E tem que ter segurança. Com todo o respeito ao pessoal que está aqui, não existe segurança perfeita. Pode acontecer um problema um dia aí. E eles me protegem porque preferem eu (sic) do que o vice", declarou, rindo.