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

Doria: Insumos para produção da CoronaVac chegam ao Brasil dia 26 de maio

João Doria disse que os insumos para a produção da CoronaVac estão prontos e só precisam da liberação do governo chinês. - Divulgação/Governo de São Paulo
João Doria disse que os insumos para a produção da CoronaVac estão prontos e só precisam da liberação do governo chinês. Imagem: Divulgação/Governo de São Paulo

Lucas Borges Teixeira

Do UOL, em Cajamar (SP)

17/05/2021 14h13Atualizada em 17/05/2021 15h06

O governador de São Paulo, João Doria (PSDB), informou que recebeu hoje a previsão da China para envio da nova remessa de insumos para a produção da CoronaVac, interrompida no Instituto Butantan na semana ada. O lote está previsto para chegar na próxima quarta-feira, 26 de maio.

De acordo com o post feito por Doria nas redes sociais, serão enviados quatro mil litros de IFA (insumo farmacêutico ativo). Esta quantidade será capaz de produzir sete milhões de doses do imunizante.


No início do dia de hoje, Doria havia dito esperar "boas notícias" sobre a liberação pela China. A produção da CoronaVac estava interrompida no Instituto Butantan desde a semana ada. O Instituto chegou a dizer que há 10 mil litros preparados, mas não sabia quantos seriam autorizados para exportação. Com a nova informação do governador de SP, sabe-se que serão quatro mil litros.

"Os insumos estão prontos, acondicionados em ambiente protegido, aguardando a autorização do governo da China, mas temos uma boa expectativa e provavelmente teremos boas notícias amanhã", disse Doria em coletiva na tarde de hoje.

Doria disse que, de lá para cá, houve "avanços nas conversas" com as autoridades chinesas por meio do escritório do Governo de São Paulo na China. Ele atribui o atraso a um suposto acirramento nas relações diplomáticas entre Brasil e China e às "declarações desastrosas do governo federal".

"Hoje, é uma questão política e diplomática. Não é uma questão nem operacional, nem de fabricação e nem contratual. A Sinovac tem cumprido rigorosamente os contratos", declarou.

Na sexta, o Butantan entregou o primeiro lote do novo contrato de 54 milhões de doses ao Ministério da Saúde. O primeiro contrato foi encerrado neste mês com 12 dias de atraso também por falta de insumos.

Agora, são 10 mil litros de matéria-prima, previstos para chegar inicialmente amanhã, represados.

"Neste momento, o que se atrasa é a previsão. Tínhamos a previsão de entregar em maio 12 milhões de doses e, em junho, 6 milhões. É uma programação que vai sofrer atraso", declarou Dimas Covas, diretor do Butantan, em coletiva na sexta.