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

Olhar Olímpico

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Canadense diz que mais atletas foram drogados no Mundial de Natação

A nadadora canadense Mary-Sophie Harvey - Reprodução/Instagram
A nadadora canadense Mary-Sophie Harvey Imagem: Reprodução/Instagram

08/07/2022 13h33

A nadadora canadense Mary-Sophie Harvey afirmou em videoconferência nesta sexta-feira (8) que não foi a única atleta a ser drogada durante o Campeonato Mundial de Natação, realizado no fim do mês ado em Budapeste, na Hungria. Ontem (7) ela revelou que não se lembra do que aconteceu durante boa parte da noite de encerramento do torneio, quando estava com outros nadadores. Os indícios são de que ela foi drogada por terceiros.

"Quando voltei para cá [para o Canadá], e durante a semana seguinte, fiquei com vergonha e senti que o julgamento dos outros estava muito presente. Me disseram que eu tinha bebido demais, que eu tinha que tomar cuidado com a bebida. Alguns até me disseram que eu poderia estar procurando por isso. Todas as vítimas desse tipo de incidente já ouviram isso antes, e acho que essa é uma das principais razões pelas quais as pessoas têm medo de denunciar essas situações", afirmou na entrevista coletiva.

A maior parte das delegações que participou do Mundial se hospedou em um mesmo hotel em Budapeste, onde interagiam. Encerrado o torneio, no domingo retrasado, eles fizeram uma festa. Mary-Sophie disse que bebeu "talvez quatro drinques" durante toda a noite, o que não justificava as consequências: ela não se lembra do que aconteceu durante um período de quatro a seis horas.

"As pessoas que estavam lá comigo me contaram sobre a noite. E juntando todos os pedacinhos da história, consegui ter uma ideia do que aconteceu. Eu não me sentia parte dessa história, porque eu não tinha lembranças dela", explicou. A nadadora, bronze com o revezamento 4x200m livre, não teve nenhum objeto pessoal roubado, exceto uma câmera descartável, que provavelmente tinha imagens do ocorrido.

No dia seguinte, acordou com uma torção nas costelas, concussão e diversos hematomas pelo corpo. Como o Canadá vai participar dos Jogos da Comunidade Britânica, ela retomou aos treinamentos tão logo retornou ao país, e, em um treinamento, desatou a chorar. Um colega a recomendou buscar ajuda, e foi quando ela fez a denúncia, que agora está sendo investigada pela Federação Internacional de Natação (Fina).

Durante a coletiva, a nadadora do Canadá afirmou que outros atletas também foram drogados durante aquela noite, sem especificar número de pessoas ou dar nomes. Ontem, um jornalista do site especializado Swim Swam postou no Twitter que buscava por pessoas que também tivessem sido drogadas.