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

Chapecoense

'Minha vida jamais será a mesma'. Ruschel se revolta com defesa da Chape

Alan Ruschel, ex-jogador da Chapecoense - Marcio Cunha/Chapecoense
Alan Ruschel, ex-jogador da Chapecoense Imagem: Marcio Cunha/Chapecoense

Colaboração para o UOL, em Santos (SP)

25/02/2022 15h25

Sobrevivente do acidente aéreo de 2016, o lateral Alan Ruschel usou as redes sociais para desabafar sobre a postura da Chapecoense, que, para se livrar do pagamento de danos morais, afirmou à Justiça de Santa Catarina que a queda do avião que matou 71 pessoas foi benéfica ao atleta.

Em um vídeo publicado no Instagram, o jogador —que defendeu Cruzeiro e América-MG em 2021 e hoje está sem clube— disse que precisou esfriar a cabeça antes de gravar os quase quatro minutos de esclarecimentos sobre a defesa do clube que defendeu em três agens.

"Eu tive o e eu vou mostrar para vocês aqui a defesa do clube e que me gerou muita revolta e me entristeceu demais o que eles estão alegando, né? Alegaram que eu não sou vítima do acidente, que eu sou um sobrevivente e que o acidente fez bem para mim e me trouxe benefícios. Eu acabei esfriando um pouco mais a cabeça para eu poder contar isso para vocês, e para vocês verem o que eles tão alegando e como eles estão sendo levianos e despreparados na condução de um assunto tão delicado quanto esse", disse Alan.

"Deus fez um milagre em minha vida e nunca escondi isso de ninguém, mas dizer que a minha vida melhorou com o acidente, continuou a mesma? A minha vida jamais será e vai ser a mesma depois do que aconteceu. Só eu sei os traumas que eu carrego comigo, a minha dedicação, o meu esforço diário para poder voltar a jogar. Só Deus, a minha família, meus amigos e as pessoas que estavam perto sabem o quanto eu sofri para poder voltar", acrescentou.

Alan Ruschel revelou jogar com oito parafusos nas costas e classificou como absurda a postura da Chapecoense, que, ao menos na Justiça, vê o jogador 'beneficiado' pelo acidente.

"Eu hoje jogo com oito parafusos nas costas. Eu não quero me vitimizar aqui ou querer me sobressair diante de alguém. Eu tô só falando das minhas maneiras que eu jogo hoje ou como eu voltei a jogar. Com uma dedicação, com fisioterapeuta quase diário para poder voltar e fazer realizar o meu sonho se realizar, né?", questionou.

"Isso é um esforço meu, é uma dedicação minha, né? Com a ajuda de Deus. É, então, eles falaram que a minha vida seguiu normal, que eu fui beneficiado, é um no mínimo um absurdo, né? E para vocês saberem como que a Chapecoense está conduzindo isso", completou.

Na legenda do vídeo publicado no Instagram, Alan Ruschel ainda falou em 'maldade' e 'crueldade' por parte da Chapecoense.

"Eu sempre evitei falar neste assunto, pois só eu sei os traumas que eu carrego? a minha fuga sempre foi o silêncio, mas infelizmente, por força maior, eu não poderia me calar diante de tanta maldade/crueldade que vem acontecendo nos últimos dias", afirmou.

Veja o depoimento na íntegra:

Chapecoense