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

Projétil vindo da Ucrânia atingiu fronteira, diz Rússia; ucranianos rebatem

Posto russo na fronteira da Ucrânia foi destruído por suposto ataque ucraniano - Reprodução/Ria Novosti
Posto russo na fronteira da Ucrânia foi destruído por suposto ataque ucraniano Imagem: Reprodução/Ria Novosti

Do UOL, em São Paulo

21/02/2022 08h25Atualizada em 21/02/2022 10h57

Um projétil disparado do território ucraniano destruiu uma estrutura de um posto fronteiriço russo hoje, sem deixar vítimas, acusaram os serviços de segurança da Rússia, em um contexto de combates entre forças ucranianas e separatistas pró-Rússia no leste da Ucrânia.

"Em 21 de fevereiro, às 9h50 (horário local), um obus de tipo não identificado disparado do território da Ucrânia destruiu o posto de serviço dos guardas de fronteira na região de Rostov, a uma distância de cerca de 150 metros da fronteira russo-ucraniana", relatou o FSB.

  • Veja as últimas notícias sobre tensão entre Ucrânia e Rússia e mais no UOL News:

"Não houve vítimas. O pessoal especializado em desminagem trabalha no local", acrescentou, citado pelas agências russas de notícias, o FSB, que também é responsável pelo serviço de guarda de fronteira na Rússia.

Um vídeo atribuído ao FSB e publicado pela agência pública de notícias Ria Novosti mostra uma pequena estrutura destruída em uma planície arborizada e escombros espalhados pelo chão.

Em respostas às acusações russas, o Serviço de Guarda de Fronteira da Ucrânia acusou as autoridades russas de uma "provocação deliberada". "A declaração da Federação Russa FSB sobre o bombardeio do território da Ucrânia - como resultado da destruição do local de serviço dos guardas de fronteira da Federação Russa - é uma provocação deliberada", diz comunicado do serviço.

Ainda de acordo com informações de agências de notícias da Rússia, militares do país disseram hoje que tropas e guardas de fronteira impediram um grupo de "reconhecimento diversivo" de violar a fronteira a partir do território da Ucrânia e que cinco pessoas foram mortas em Rostov.

Separatistas pró-Rússia ordenaram mobilização militar

No último sábado (19), os líderes separatistas pró-Rússia de dois territórios no leste da Ucrânia - as autoproclamadas repúblicas de Donetsk e Lugansk, em disputa entre russos e ucranianos - ordenaram mobilização militar total.

Em uma mensagem de vídeo, o líder da chamada República Popular de Donetsk, Denis Pushilin, disse que pediu "aos compatriotas que estão na reserva que venham aos comissariados militares. O líder rebelde de Lugansk, Leonid Pasetschnik, também assinou documento semelhante, em meio às tensões cada vez maiores entre a Rússia e a Ucrânia.

Dois soldados ucranianos foram mortos

Segundo informações do Exército ucraniano, dois soldados ucranianos foram mortos no sábado (19) na linha de frente dos conflitos com separatistas pró-Moscou. Outros quatro soldados ficaram feridos e estão hospitalizados, ainda de acordo com o comunicado. A Ucrânia acusa os rebeldes de liderarem os bombardeios e de terem cometido 70 violações da trégua que deveria estar em vigor.

Desde a semana ada, o Exército ucraniano e os separatistas pró-Rússia trocam acusações de bombardeios no leste do país que violam o cessar-fogo em vigor nesta região marcada por um conflito desde 2014.

Segundo a Organização para a Segurança e Cooperação na Europa (OSCE), o cessar-fogo foi violado 189 vezes na última quinta-feira (17), na região de Donestsk, e 402, na região de Luhansk, ambas no leste da Ucrânia. A mobilização de mais de 150.000 soldados russos, segundo os Estados Unidos, na fronteira com a Ucrânia causou uma grave crise entre Moscou e países ocidentais.

EUA acreditam que tropas russas vão invadir a Ucrânia

Vários meios de comunicação informaram ontem que os Estados Unidos têm a informação de que os militares russos nas fronteiras receberam ordens para invadir a Ucrânia. As informações foram divulgadas citando fontes anônimas da inteligência do governo americano.

Segundo o jornal, Washington Post, esta informação é o que levou o presidente dos Estados Unidos, Joe Biden, a afirmar na sexta-feira (18) estar "convencido" de que o presidente russo, Vladimir Putin, havia decidido atacar a Ucrânia.