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


Esse conteúdo é antigo

Ucrânia: Nova 'cortina de ferro' separa a Rússia do mundo civilizado

Do UOL, em São Paulo

24/02/2022 14h11

O presidente da Ucrânia, Volodymyr Zelensky, disse em vídeo gravado hoje que uma "cortina de ferro" está recaindo sobre a Rússia após o presidente russo, Vladimir Putin, iniciar uma operação militar no país e efetuar uma série de ataques a várias cidades ucranianas. "Caiu uma nova cortina de ferro que separa a Rússia do mundo civilizado", afirmou Zelensky.

No pronunciamento, o presidente ucraniano também disse que os países europeus podem ser os próximos atacados pelos militares de Moscou. "O que ouvimos hoje não são apenas sons explosões de mísseis, combates e o estrondo de aeronaves. Este é o som de uma nova cortina de ferro. Nossa tarefa nacional é garantir que essa cortina não caia em nossa terra", completou.

A expressão "cortina de ferro" foi utilizada pela primeira vez no mundo em 1946, quando o então primeiro-ministro do Reino Unido Winston Churchill fez um discurso comentando a divisão da Europa entre territórios capitalistas e socialistas. À época, uma parte do continente era controlada pelos Estados Unidos, enquanto a outra estava sob a influência da União Soviética.

A 2ª Guerra Mundial havia acabado no ano anterior e o mundo se aproximava do período que ficou conhecido como Guerra Fria.

Mapa Ucrania - Arte/ UOL - Arte/ UOL
Imagem: Arte/ UOL

Ataques da Rússia começaram durante a madrugada

A Rússia iniciou na madrugada de hoje (no horário de Brasília) uma operação militar de invasão da Ucrânia. Após o início das mobilizações russas, houve registro de explosões e ataques a unidades de fronteiras ucranianas, além de movimentações de tanques. Com o avanço das horas, no entanto, várias cidades ucranianas também começaram a ser invadidas.

Segundo autoridades do governo da Ucrânia, ao menos 16 cidades já foram alvos de ataques, que inicialmente começaram pela península da Crimeia, território que foi anexado pela Rússia em 2014.

Ofensiva russa deixou civis mortos e feridos

Já há mortos em decorrência da ação militar russa. De acordo com o comando militar ucraniano, disparos de projéteis russos contra um hospital na região de Donetsk deixaram pessoas mortas. Outras 10 pessoas ficaram feridas, entre elas seis médicos.

Donestk foi uma das regiões tomadas por rebeldes pró-Rússia reconhecidas pelo presidente russo, Vladimir Putin, como território independente na segunda-feira (21).

Outro bombardeio durante a madrugada, dessa vez na cidade de Chuhuiv, a 530 quilômetros de Kiev, deixou pelo menos um morto. A vítima é uma criança que estava em um prédio de cinco andares atingido durante o ataque, ainda que a Rússia houvesse dito que não haveria ataques a civis ucranianos.

Nessa mesma cidade, um complexo de apartamentos foi alvo de um ataque aéreo durante a ofensiva russa ao país vizinho e deixou idosas feridas. Uma das imagens, com uma mulher ensanguentada, se tornou uma das mais marcantes registradas neste início de invasão.