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

Jamil Chade

OMS responde a Bolsonaro e nega que seja contra políticas de isolamento

Diretor-geral da OMS, Tedros Adhanom Ghebreyesus, durante entrevista coletiva em Genebra -
Diretor-geral da OMS, Tedros Adhanom Ghebreyesus, durante entrevista coletiva em Genebra

Colunista do UOL

31/03/2020 14h51

Receba os novos posts desta coluna no seu e-mail

Email inválido

A Organização Mundial da Saúde (OMS) rejeitou insinuações por parte do governo de Jair Bolsonaro de que tenha apoiado a ideia de que políticas de isolamento não devam ser aplicadas.

Na segunda-feira, o diretor-geral da entidade, Tedros Adhanom Ghebreyesus, usou sua coletiva de imprensa em Genebra para convocar os países a também lidar com os mais pobres. Bolsonaro usou a frase para justificar sua política de rejeição de medidas de isolamento.

Tedros, porém, não se referia a isso. Mas sim à necessidade de que instrumentos sejam criados para garantir o sustento dessas pessoas, por medidas sociais e transferência de recursos.

Diante da polêmica gerada no Brasil e o temor de que o discurso de Tedros fosse manipulado, a OMS decidiu ir de maneira deliberada às redes sociais nesta terça-feira. Ainda que não cite expressamente o nome do brasileiro, a entidade decidiu esclarecer seu posicionamento em duas mensagens.

"Pessoas sem fonte de renda regular ou sem qualquer reserva financeira merecem políticas sociais que garantam a dignidade e permitam que elas cumpram as medidas de saúde pública para a Covid-19 recomendadas pelas autoridades nacionais de saúde e pela OMS", disse o diretor-geral da OMS.

"Eu cresci pobre e entendo essa realidade. Convoco os países a desenvolverem políticas que forneçam proteção econômica às pessoas que não possam receber ou trabalhar devido à pandemia da covid-19. Solidariedade", completou.

Pela manhã, Bolsonaro tentou manipular as declarações do africano para justificar sua política. "Vocês viram o presidente da OMS ontem?", perguntou. "O que ele disse, praticamente... Em especial, com os informais, têm que trabalhar. O que acontece? Nós temos dois problemas: o vírus e o desemprego. Não pode ser dissociados, temos que atacar juntos", disse.

Tedros, porém, não falou em trabalho. Mas na garantia de renda, conforme ele mesmo escreveu hoje em suas redes sociais.

Nas redes sociais, Bolsonaro e seus filhos tem usado um trecho cortado da fala de Tedros para justificar seu posicionamento, deixando de fora outras partes em que o africano fala da importância do isolamento.

Essa não é a primeira vez que a OMS responde ao presidente brasileiro. Na semana ada, Tedros foi questionado pela coluna sobre a atitude de Bolsonaro de minimizar a doença. "As UTIs estão lotadas em muitos países", alertou o africano, em resposta. "É uma doença muito séria", insistiu.

Na OMS, uma parcela dos técnicos acredita que Bolsonaro poderia ser uma ameaça ao combate ao vírus, com posições que questionam a ciência e confundem os cidadãos.