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

Suíça oferecerá exames de covid-19 gratuitos para turistas no país este mês

Gambarogno, na Suíça. - Getty Images/iStockphoto
Gambarogno, na Suíça. Imagem: Getty Images/iStockphoto

De Nossa

13/09/2021 15h29

O governo suíço decidiu que custeará exames para cidadãos que não são portadores do certificado de covid-19 do país ou da União Europeia até 30 de setembro. A apresentação do documento se tornou obrigatória a partir de hoje (13) para entrar em locais fechados, como áreas internas de restaurantes, museus, etc.

A Suíça tem suas fronteiras abertas para visitantes completamente vacinados de países como Brasil ou Reino Unido desde 26 de junho. No entanto, para obter o certificado de covid-19 suíço ou o europeu, é necessário ser cidadão desta região e ter sido vacinado com um dos imunizantes reconhecidos pela Agência Europeia de Medicamentos (EMA) — CoronaVac e AstraZeneca/Covishield, produzida no Brasil pela Fiocruz com IFA indiana, não fazem parte da lista.

Como alternativa à ausência do e sanitário, a Suíça exige a apresentação de um teste negativo para a covid-19 realizado nas últimas 48 horas para entrar nos espaços fechados. O custo destes exames, no entanto, preocupa visitantes e autoridades já que o preço pode chegar a 400 francos suíços, cerca de R$ 2.266,80 em cotação de hoje, nos locais indicados pelo governo.

No entanto, é possível até 30 de setembro realizar um teste gratuito através dos chamados "centros cantonais". O resultado deve ser enviado para o telefone ou e-mail do viajante, que deve cadastrá-lo no aplicativo oficial das autoridades sanitárias do país para gerar o QR code que permite a entrada nestes espaços reservados aos portadores do certificado suíço.

O Conselho Federal suíço anunciou que deve reavaliar medidas até 14 de setembro como, por exemplo, reconhecer os certificados de vacinação de estrangeiros que tomaram as vacinas que já são aprovadas no país.

Ainda segundo o Escritório de Turismo da Suíça, eles "reconhecem a situação e estão trabalhando com a Aliança de Turismo a todo vapor para desenvolver uma solução imediata", já que a partir de 1º de outubro, os testes deverão ser pagos pelos visitantes a cada dois dias.