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

Moscou cita risco de guerra nuclear; EUA e aliados prometem mais armas à Ucrânia

26/04/2022 09h23

Por Phil Stewart e Pavel Polityuk

BASE AÉREA DE RAMSTEIN, Alemanha/KIEV (Reuters) - A Rússia acusou a aliança militar ocidental Organização do Tratado do Atlântico Norte (Otan) de se envolver em uma batalha por procuração que criou um sério risco de guerra nuclear, ao mesmo tempo em que Washington reuniu seus aliados nesta terça-feira em uma base aérea alemã para prometer as armas pesadas de que a Ucrânia precisa para alcançar a vitória.

Com as forças russas sendo forçadas a voltar de Kiev e agora tentando um novo avanço no leste da Ucrânia, o secretário de Defesa dos Estados Unidos, Lloyd Austin, recebeu autoridades de mais de 40 países em Ramstein, sede do poder aéreo dos EUA na Europa.

"Como vemos esta manhã, nações de todo o mundo estão unidas em nossa determinação de apoiar a Ucrânia em sua luta contra a agressão imperial da Rússia", disse Austin. "A Ucrânia claramente acredita que pode vencer, assim como todos aqui."

Em uma escalada da retórica russa, o ministro das Relações Exteriores, Sergei Lavrov, foi questionado na TV estatal sobre perspectiva da Terceira Guerra Mundial e se a situação atual era comparável à crise dos mísseis cubanos de 1962, que quase causou uma guerra nuclear.

"Os riscos agora são consideráveis", disse Lavrov, de acordo com a transcrição da entrevista feita pelo ministério.

"O perigo é sério, real. E não devemos subestimá-lo", afirmou Lavrov. "A Otan, em essência, está engajada em uma guerra por procuração com a Rússia e está armando esse representante. Guerra significa guerra."

Autoridades dos EUA mudaram a ênfase nesta semana para falar de uma vitória ucraniana que seria um golpe na capacidade da Rússia de ameaçar vizinhos no futuro.

Austin, que visitou Kiev junto com o secretário de Estado dos EUA, Antony Blinken, no domingo, disse na segunda-feira: "Queremos ver a Rússia enfraquecida a ponto de não poder fazer o tipo de coisa que fez ao invadir a Ucrânia".

O presidente do Estado-Maior Conjunto dos EUA, Mark Milley, voando para a reunião de terça-feira, afirmou a repórteres que as próximas semanas na Ucrânia serão "muito, muito críticas".

"Eles precisam de apoio contínuo para serem bem-sucedidos no campo de batalha. E esse é realmente o objetivo desta conferência."

O objetivo seria coordenar a ajuda que inclui armas pesadas, como artilharia obus, bem como drones letais e munição, disse o general Milley.

"BRAVATA"

Kiev e seus aliados minimizaram os comentários de Lavrov sobre guerra nuclear.

A Rússia perdeu sua "última esperança de assustar o mundo", tuitou o ministro das Relações Exteriores da Ucrânia, Dmytro Kuleba, após a entrevista de Lavrov. "Isso significa apenas que Moscou sente a derrota."

O ministro britânico de Serviços Armados, James Heappey, chamou as observações de Lavrov de um exemplo de "bravata" que se tornou a "marca registrada" do ministro das Relações Exteriores da Rússia.

"Não acho que agora haja uma ameaça iminente de escalada", disse Heappey à BBC Television.