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

Após atraso, avião com insumos para 5 mi de doses da CoronaVac deixa China

Os 3 mil litros enviados pela China serão suficientes para produção de 5 milhões de doses da CoronaVac - Divulgação/Instituto Butantan
Os 3 mil litros enviados pela China serão suficientes para produção de 5 milhões de doses da CoronaVac Imagem: Divulgação/Instituto Butantan

Colaboração para o UOL

24/05/2021 16h45

O governador de São Paulo, João Doria (PSDB), anunciou que o avião com os insumos para produção da CoronaVac decolou da China e irá desembarcar em São Paulo amanhã. A remessa de IFA (Insumo Farmacêutico Ativo) enviada será usada na produção de mais 5 milhões de doses do imunizante pelo Instituto Butantan.

O trajeto do voo, que traz 3 mil litros de insumos ao Brasil, pode ser acompanhado em tempo real no portal do governo de São Paulo.

As vacinas produzidas serão disponibilizadas em junho ao ministério da Saúde para distribuição no PNI (Programa Nacional de Imunizações). O processo completo de envase, rotulagem, embalagem e controle de qualidade dura de 15 a 20 dias.

Atraso no cronograma

A CoronaVac é a vacina contra a covid-19 mais utilizada no Brasil atualmente. Por falta de insumos, a produção ficou paralisada por mais de 10 dias. Estados e municípios enfrentaram dificuldades para aplicação da 2ª dose do imunizante.

Questões diplomáticas entre os dois países podem ter interferido no envio do material da China para o Brasil. Isso porque, o presidente Jair Bolsonaro (sem partido) fez críticas à China, falando em "guerra química" e lançando suspeitas sobre o país asiático ter aproveitado a pandemia para crescer economicamente.

Na última quinta-feira (20), governadores realizaram uma reunião com o embaixador da China no Brasil, Wanming Yang, para tratar da liberação de insumos. O diretor do Instituto Butantan, Dimas Covas, também participou da videoconferência

Com o atraso no envio e a redução na quantidade de insumos - inicialmente de 10 mil litros, reduzido para 4 mil e agora 3 mil litros -, o cronograma de entrega de doses também irá atrasar, segundo Dimas Covas. Antes, a previsão era de 12 milhões de doses para maio e 6 milhões para junho. Para que o acordo fosse cumprido, no entanto, seria necessária a entrega dos 10 mil litros pela farmacêutica Sinovac.