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

Embaixador do Brasil na Ucrânia diz que situação no país é tranquila

Embaixador do Brasil na Ucrânia, Norton de Andrade Mello Rapesta - Reprodução/Globonews
Embaixador do Brasil na Ucrânia, Norton de Andrade Mello Rapesta Imagem: Reprodução/Globonews

Do UOL, em São Paulo

14/02/2022 07h50

O embaixador do Brasil na Ucrânia, Norton de Andrade Mello Rapesta, disse ontem, em entrevista à Globonews, que a situação no país é "plenamente tranquila e normal", em meio a clima de tensão internacional em razão da possibilidade de a Rússia invadir o país.

Segundo Rapesta, cerca de 500 brasileiros vivem no país — entre eles há estudantes, executivos de multinacionais, familiares de ucranianos.

O embaixador afirmou que o clima entre brasileiros é de vida normal no país. Ele confirmou que a embaixada tem recebido consultas de alguns cidadãos e reconheceu que há um pouco de estresse, algo que ele atribuiu ao noticiário da mídia internacional.

Vários países já pediram que seus cidadãos deixem a Ucrânia, mas segundo Rapesta "não nenhum motivo para se alarmar ou sair fugindo daqui".

O embaixador recomenda que as pessoas fiquem atentas, acompanhem as páginas e perfis da embaixada nas redes sociais e entrem em contato se houver dúvida.

Rapesta confirmou que todas as embaixadas no Brasil no exterior têm um plano de contingência para casos de emergência. "Pode ser um tsunami, um terremoto, qualquer coisa excepcional. Para que tenhamos condições de proteger os brasileiros e, se for o caso, evacuá-los da zona de problema."

Questionado sobre a viagem do presidente Jair Bolsonaro (PL) à Rússia, o embaixador disse se tratar de uma visita bilateral que está programada "há muito tempo" e que não há nenhuma relação com a Ucrânia ou com a situação do país nesse momento.

EUA: Rússia pode invadir Ucrânia 'a qualquer momento'

O conselheiro de Segurança Nacional da Casa Branca, Jake Sullivan, disse ontem, em entrevista à CNN, que os Estados Unidos acreditam que a Rússia pode invadir a Ucrânia a qualquer momento, mas ainda espera que soluções diplomáticas sejam encontradas.

Sullivan disse que as forças russas estão em um local onde uma invasão pode ocorrer antes do final dos Jogos Olímpicos de Inverno de Pequim, em 20 de fevereiro.

De acordo com o jornal The New York Times, os EUA obtiveram informações que a Rússia está discutindo a próxima quarta-feira (16) como a data prevista para o início da ação militar.

Sullivan disse novamente que uma ação militar russa provavelmente começaria com ataques de mísseis e bombas que poderia matar civis.

O conselheiro disse ainda que os EUA e seus aliados estão preparados para responder "imediata e decisivamente" caso a Rússia avance.

A crise surgiu depois da mobilização de mais de 100 mil militares russos para a fronteira com a Ucrânia há várias semanas.

Moscou tem negado reiteradamente que queira atacar a antiga república soviética, mas exige certas garantias na questão da segurança, entre elas que a Otan (Organização do Tratado do Atlântico Norte) não ita entre seus membros a Ucrânia, um ponto inegociável para o Ocidente.