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

Botafogo

Por que dificuldade financeira fez Botafogo 'perder' Patrick de Paula

Patrick de Paula comemora gol pelo Palmeiras no Paulistão: jovem teve agem pelo Botafogo - Cesar Greco/SE Palmeiras
Patrick de Paula comemora gol pelo Palmeiras no Paulistão: jovem teve agem pelo Botafogo Imagem: Cesar Greco/SE Palmeiras

Caio Blois

Do UOL, no Rio de Janeiro

10/08/2020 04h00

O Botafogo poderia ter uma grande revelação em seu meio de campo se não fossem as dificuldades financeiras. Dos dois lados. Destaque do Palmeiras no título do Campeonato Paulista, o volante Patrick de Paula teve breve agem pela base alvinegra, mas não ficou no clube até o fim de sua formação.

Sem dinheiro para ir e voltar de Santa Margarida, na Zona Oeste do Rio de Janeiro, para os treinos no clube, Patrick não ou muito tempo no Alvinegro. Levado pelo irmão, ele foi aprovado em testes e escolhido para integrar a equipe principal do sub-13.

A família até buscou uma ajuda de custo, mas com os problemas nas finanças, o Bota evita fazer esse tipo de investimento em jovens tão precoces, exceto raros casos.

Patrick de Paula em seus tempos de Cara Virada, no futebol amador do Rio de Janeiro - Arquivo Pessoal - Arquivo Pessoal
Patrick de Paula em seus tempos de Cara Virada, no futebol amador do Rio de Janeiro
Imagem: Arquivo Pessoal

Patrick de Paula, então, voltou a atuar no time do projeto Cara Virada, um projeto social em Campo Grande, maior bairro da região, que usa o esporte como arma contra a violência.

Foi com a camisa laranja nos campos de terra que o jovem, já na Taça das Favelas, chamou a atenção dos olheiros e foi escolhido para fazer testes na Europa, o trampolim que o levou para o Alviverde.

"Fui à Taça das Favelas, depois joguei o torneio da Nike, viajei com eles para França, depois joguei um campeonato amador da capital (Rio de Janeiro) até o Palmeiras me levar para fazer testes", completou o jovem jogador, em entrevista à TV Palmeiras.

Aos 20 anos, Patrick de Paula foi o protagonista na conquista do título paulista do Palmeiras. O camisa 5 mostrou frieza para cobrar a penalidade que definiu a vitória nos pênaltis sobre o Corinthians por 4 a 3, colocando a bola no ângulo. Depois, chorou durante a festa no gramado do Allianz Parque.

Com cara de garoto e futebol de veterano, o jovem foi a grande revelação do Verdão de Vanderlei Luxemburgo na competição e já é o "dono" do meio de campo alviverde.

Em transição para S/A, o Botafogo mudou de filosofia e ou a apostar bastante em sua base. Em 2020, muitos meninos de General Severiano foram lançados por Paulo Autuori. Patrick de Paula poderia ser um deles, mas as linhas do futebol se escreveram certo por linhas tortas para o menino.

Botafogo