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

Guerra da Rússia-Ucrânia

Notícias do conflito entre Rússia e Ucrânia


Ucranianos bloqueiam estrada de cidade com maior usina nuclear da Europa

Do UOL, em São Paulo

02/03/2022 08h40

Moradores de Enerhodar, no sul da Ucrânia, tentam impedir a entrada de tropas russas na cidade ao bloquear uma rodovia de o na manhã de hoje (2). A região abriga a usina nuclear de Zaporizhzhia, a maior unidade energética da Europa.

Vídeos postados em redes sociais mostram um grande número de pessoas bloqueando a pista nesta manhã. Até caminhões de lixo são usados para bloquear a via.

"Transmitimos a posição de nossa cidade e seus moradores de que a ZNPP [Central Nuclear de Zaporizhzhia] está sob proteção confiável, que seus trabalhadores e moradores de Enerhodar estão sob bandeiras ucranianas", escreveu o prefeito de Enerhodar, Dmytro Orlov, no Facebook.

"Todos os serviços municipais estão funcionando em modo emergencial. Ninguém vai entregar a cidade. As pessoas estão determinadas", afirmou.

Usina não foi tomada, diz AIEA

Ontem, a AIEA (Agência Internacional de Energia Atômica) alertou para a chegada do exército russo na região, informou a agência de notícias AFP. A entidade, vinculada à ONU (Organizações das Nações Unidas), garantiu que os seis reatores de Zaporizhzhia ainda estão seguros.

As tropas russas "operam perto da central, mas não tomaram a mesma", afirmou a AIEA. Seu diretor-geral, Rafael Grossi, pediu atenção a "qualquer ação que possa ameaçar a segurança" das instalações nucleares daquele país.

Uma reunião foi convocada para hoje em Viena, sede da agência, para discutir os "riscos reais" representados pelo conflito.

Ucrânia tem quatro usinas nucleares

A Ucrânia tem quatro centrais nucleares ativas, responsáveis por aproximadamente metade da eletricidade consumida pelo país, além de diversos depósitos de resíduos radioativos, como o de Chernobyl, onde ocorreu a pior catástrofe nuclear da história, em 1986.

"Um acidente poderia ter consequências graves na saúde pública e no meio ambiente", advertiu Grossi.

Alerta máximo

Dois dias depois de o presidente russo, Vladimir Putin, colocar forças nucleares em alerta máximo, a Rússia começou a posicionar submarinos com capacidade nuclear e lançadores de mísseis intercontinentais, informou a agência de notícias Associated Press.

Mais a leste do país, em Irkutsk, na Sibéria, forças estratégias posicionaram lançadores de mísseis balísticos intercontinentais em florestas da região, segundo comunicado atribuído ao Ministério da Defesa russo pela AP.

Não houve referências à ordem de Putin de colocar as forças nucleares do país em alerta máximo, feita em resposta ao endurecimento de críticas e sanções de países ocidentais à Rússia. Também não está claro, até aqui, se os exercícios fogem das atividades rotineiras de treinamentos e exercícios militares das forças russas.