;(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 chinês mostra agradecimento da Fiocruz por liberação de IFA

Embaixador Yang Wanming divulgou carta que recebeu da Fiocruz - Marcelo Camargo/Agência Brasil
Embaixador Yang Wanming divulgou carta que recebeu da Fiocruz Imagem: Marcelo Camargo/Agência Brasil

Colaboração para o UOL

28/05/2021 16h36Atualizada em 28/05/2021 18h09

O embaixador da China no Brasil, Yang Wanming, divulgou hoje uma carta que recebeu da Fiocruz (Fundação Oswaldo Cruz), o agradecendo pela liberação de IFA (Ingrediente Farmacêutico Ativo) para a produção da vacina da AstraZeneca no Brasil (veja a íntegra mais abaixo).

A mensagem, com data de terça-feira (25), é assinada pela presidente da Fiocruz, Nísia Trindade. Nela, a dirigente agradece o empenho do embaixador para a vinda de insumos do país asiático ao Brasil.

No texto, Nísia aproveita para reforçar os "laços de cooperação científica entre a Fiocruz e instituições chinesas".

"De acordo com a carta que a Fiocruz me endereçou, o IFA produzido no laboratório chinês WuXi Biologics, que vem recebendo desde fevereiro de 2021, garantirá a entrega de 100,4 milhões de doses da vacina AstraZeneca/Fiocruz ao Programa Nacional de Imunizacões do Brasil", o embaixador comentou, ao postar a carta em seu perfil no Twitter.

A liberação de IFA produzido pela China para a produção tanto das vacinas da AstraZeneca, pela Fiocruz, quanto da CoronaVac, pelo Instituto Butantan, tem sido alvo de disputas políticas no país.

Os recentes atrasados no envio dos insumos do país asiático ao Brasil foram caracterizados como represália pelo governo chinês às falas do governo do presidente Jair Bolsonaro (sem partido) contra aquele país.

Na última semana, tanto a Fiocruz quanto o Butantan chegaram a parar a produção das vacinas pela falta de IFA. As linhas de fabricação de imunizantes pelas instituições foram retomadas nesta semana, após a chegada de insumos necessários para a produção de 12 milhões de doses da AstraZeneca, no último sábado (22), e 5 milhões da CoronaVac, na terça (25).

Veja a carta na íntegra

Prezado senhor embaixador,

É com profundo reconhecimento que venho a agradecer seu empenho na liberação, pelas autoridades sanitárias chinesas, dos lotes de IFA para produção da vacina Oxford-AstraZeneca-Fiocruz.

O IFA produzido no laboratório WuXi Biologics, que vimos recebendo desde fevereiro de 2021, garantirá a entrega de 100,4 milhões de doses ao Programa Nacional de Imunizações. Seu papel como embaixador da China continuará a ser fundamental para a produção, em Biomanguinhos/Fiocruz, de doses da vacina que vem salvando vidas em 170 países.

Nesta oportunidade, aproveito para ressaltar os laços de cooperação científica entre a Fiocruz e instituições chinesas.

Estou certa de que a solidariedade presente nestes tempos de pandemia fortalecerá a cooperação entre nossos países.

Com meus sinceros agradecimentos,

Nísia Trindade Lima
Presidente
Fundação Oswaldo Cruz