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

Marcel Rizzo

Fifa ignora Covid, mantém 23 inscritos e proíbe troca em Mundial de Clubes

Data marcada! Mundial de Clubes de 2020 acontecerá em fevereiro de 2021, no Qatar - GettyImages
Data marcada! Mundial de Clubes de 2020 acontecerá em fevereiro de 2021, no Qatar Imagem: GettyImages

Colunista do UOL

15/12/2020 11h30

No primeiro campeonato que vai organizar após o início da pandemia, a Fifa ignorou a Covid-19 no regulamento do Mundial de Clubes-2020, que será disputado entre 1º e 11 de fevereiro de 2021 no Qatar — o torneio foi adiado de dezembro porque alguns campeonatos continentais não terminariam a tempo.

A entidade manteve, por exemplo, o número de atletas inscritos para a competição em 23, sendo três goleiros. Havia um pedido, como mostrou o blog, de confederações para que esse número fosse estendido para até 40 para evitar que contaminações por Covid-19 atrapalhassem o Mundial.

A Fifa também manteve no regulamento que a troca de jogadores só poderá ocorrer até 24 horas antes da estreia do time na competição, por lesão ou doença (que pode ser Covid) devidamente documentada por médicos. Havia também conversas para que essas substituições pudessem ocorrer durante o torneio em caso de positivo para a Covid.

Os clubes podem enviar uma lista provisória, em janeiro, com 35 nomes. Desta relação sairão os 23 inscritos que efetivamente poderão entrar em campo. A Fifa manteve também em 32 o número de oficiais (entre membros de comissão técnica, diretores e convidados) que poderão ter credencial. Havia expectativa de um número menor para diminuir o tamanho das delegações.

O blog apurou que a Fifa manteve o regulamento dos últimos anos, mesmo em período pandêmico, por um motivo principalmente: avalia que o torneio é de tiro curto, ou seja, poucos dias e portanto os protocolos sanitários devem bastar para evitar surto. Haverá, por exemplo, testagem antes da viagem ao Qatar e diariamente no país e as delegações serão proibidas de deixar o hotel a não ser para treinamentos e jogos.

A Fifa, apesar do temor de alguns cartolas, entendeu que a chance de WO, ou seja, times sem o mínimo de sete atletas para entrar em campo, o que renderia derrota automática por 3 a 0, é pequeno. Será feito um documento com protocolo a ser seguido pelas delegações, que pelo regulamento continuam obrigadas a chegar ao Qatar até três dias antes da estreia.

No caso do campeão da Libertadores, que estreia dia 7 de fevereiro contra rival a ser definido, a viagem tem que ocorrer até o dia 4, ou cinco dias depois de o time levantar a taça na final do Maracanã, no Rio, em 30 de janeiro.

Palmeiras, Santos e Grêmio são os brasileiros na Libertadores e que podem estar no Qatar em fevereiro. Pela Europa está classificado o Bayern de Munique (ALE), pela África o Al Ahly (Egito) e pela Oceania, que cancelou sua Liga dos Campeões em 2020, foi indicado o Auckland City (Nova Zelândia).

Como representante do país-sede estará o Al-Duhail. Neste sábado (19) a Ásia define seu campeão, Persepolis (Irã) ou Ulsan Hyundai (Coreia do Sul). O vencedor da Concacaf (Américas do Norte, Central e Caribe) será conhecido em 22 de dezembro.