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

Mísseis russos miram rede de energia e Ucrânia tenta restaurar serviço para sair do escuro

24.nov.22 - Moradores locais carregam seus dispositivos, usam conexão com a internet e se aquecem dentro de um centro de invencibilidade depois que infraestrutura civil crítica foi atingida por ataques de mísseis russos - VALENTYN OGIRENKO/REUTERS
24.nov.22 - Moradores locais carregam seus dispositivos, usam conexão com a internet e se aquecem dentro de um centro de invencibilidade depois que infraestrutura civil crítica foi atingida por ataques de mísseis russos Imagem: VALENTYN OGIRENKO/REUTERS

06/12/2022 06h20Atualizada em 06/12/2022 06h52

A Ucrânia tentava nesta terça-feira (6) restaurar o serviço de energia elétrica após os últimos ataques russos, que provocaram apagões em todo o país, em um momento de frio intenso.

Dos 70 mísseis lançados por Moscou na segunda-feira, "a maioria" foi derrubada, afirmou o presidente ucraniano, Volodymyr Zelensky, mas os demais atingiram a já danificada infraestrutura de energia do país.

Novos apagões foram registrados em todo o território como consequência dos ataques, informou no Telegram a empresa Ukrenergo.

O presidente da Ukrenergo, Volodimir Kudrytskyi, disse que "não há dúvida de que os militares russos consultaram engenheiros do setor de energia durante o ataque", com base no local de queda dos mísseis.

"O momento escolhido pelos russos para o ataque tem relação com seu desejo de provocar o maior dano possível", declarou Kudrytskyi, ao destacar que os ataques foram executados no início do período mais frio no país.

"Nossas equipes vão trabalhar para reparar o sistema", acrescentou.

Quase metade dos sistemas de energia da Ucrânia foram danificados após meses de ataques à infraestrutura do país, o que deixa os moradores no escuro por horas em um momento de temperaturas abaixo de zero.

O comissário de Direitos Humanos da ONU, Volker Turk, que iniciou uma visita de quatro dias ao país no fim de semana, foi obrigado a transferir suas reuniões com ativistas para um refúgio subterrâneo.

Zelensky anunciou em um discurso durante a noite que quatro pessoas morreram nos ataques russos.

"Mas o nosso povo nunca se rende", afirmou.

Ao mesmo tempo, o governador da região russa de Kursk, na fronteira com a Ucrânia, afirmou nesta terça-feira que um drone atacou uma base aérea da localidade, onde um tanque de armazenamento de petróleo pegou fogo.

Na segunda-feira, a Rússia acusou a Ucrânia por dois ataques com drones contra bases aéreas nas regiões de Saratov e Ryazan, que teriam matado três soldados.

Ao mesmo tempo, o Kremlin confirmou um ataque em larga escala contra "sistemas ucranianos de comando militar e instalações de defesa, comunicação e energia".

Os ataques aconteceram depois que a Rússia rejeitou o teto imposto pelo Ocidente ao preço do barril de petróleo do país, ao mesmo tempo que advertiu que medida não afetará a ofensiva na Ucrânia.

O teto de 60 dólares por barril estabelecido por União Europeia (UE), G7 e Austrália pretende restringir a receita russa, enquanto garante que Moscou prossegue com o abastecimento ao mercado mundial.

O atual preço de mercado do barril de petróleo russo é de 65 dólares, um pouco acima do teto de US$ 60, o que sugere que a medida terá pouco impacto a curto prazo.

Esta é a mais recente de uma série de medidas dos países ocidentais contra a Rússia, o segundo maior exportador mundial de petróleo, desde que o presidente Vladimir Putin ordenou a invasão da Ucrânia em 24 de fevereiro.

A UE também anunciou um embargo às entregas marítimas de petróleo russo, que entrou em vigor na segunda-feira.

O embargo impedirá os envios marítimos de petróleo russo para a UE, que representam dois terços das importações de petróleo do bloco a partir da Rússia, o que deixaria Moscou o a bilhões de dólares.