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

Palmeiras

Quem são os irmãos de guerra que causaram ciúme na mulher de Abel Ferreira

Abel Ferreira conversa com elenco palmeirense antes da semifinal do Paulista, contra o Ituano - Reprodução/Twitter/SEPalmeiras
Abel Ferreira conversa com elenco palmeirense antes da semifinal do Paulista, contra o Ituano Imagem: Reprodução/Twitter/SEPalmeiras

Do UOL, em Santos (SP)

02/05/2023 04h00

O técnico Abel Ferreira disse que tem seis "irmãos de guerra" no Palmeiras e revelou, em tom de brincadeira, o ciúme de Ana Xavier, esposa do treinador.

Quem são?

Os capitães Gustavo Gómez e Weverton e os líderes Dudu, Raphael Veiga, Zé Rafael e Rony são os "irmãos" de guerra de Abel Ferreira no Palmeiras.

O sexteto é referência técnica, mas chama a atenção de Abel principalmente pela inteligência tática e vontade de vencer.

Eles são o termômetro do Palmeiras em campo e ajudam Abel a tomar decisões nos treinos ou durante os jogos. Se é momento de avançar ou recuar, por exemplo, os demais jogadores podem (e devem) seguir esses líderes.

O carinho especial de Abel por esses atletas rendeu "ciúme" da sua esposa. O marido disse que ama os irmãos de guerra e surpreendeu Ana Xavier.

Com jogadores assim, é muito mais fácil lidar com turbulências e manter a calma, manter a cabeça fria por boas decisões. O que eu iro neles não é qualidade que têm, é o caráter desses homens. São irmãos de guerra. Não são da minha família, mas gosto muito deles. Minha mulher ficou com ciúmes porque eu disse que amo eles, minha mulher quase me bateu. Aqui se fala muito sobre amar alguém. Eu tenho muito orgulho deles

Abel Ferreira

O "fico" a por eles

O Palmeiras começa a pensar na renovação do contrato de Abel que vai até o fim de 2024. O treinador vai analisar a "fome" dos irmãos de guerra para tomar essa decisão.

O treinador tem orgulho de contar com um elenco que mantém a vontade de vencer mesmo após vários títulos recentes. Essa cobrança é feita dia após dia.

Se Abel sentir que os líderes do elenco perderam de alguma forma esse desejo, a saída ficará mais próxima. Outro ponto preponderante é convencer a esposa, que aceitou vir de Portugal definitivamente.

Já tive a oportunidade de deixar esse elenco por muito mais dinheiro e disse a eles, mas enquanto eu sentir esse desejo na atitude e olhar deles, dificilmente vou sair

Abel

Palmeiras