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

Lucas Pasin

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.

'Maior penetra do Brasil' entrega truques, mas é barrada em noite de gala

Colunista do UOL

02/03/2023 09h46

Receba os novos posts desta coluna no seu e-mail

Email inválido

Ela se tornou uma personalidade nos eventos do Rio de Janeiro, especialmente no Copacabana Palace, seu lugar preferido para estar sem ter sido convidada. Foi assim na noite de ontem, quando este colunista de Splash esbarrou com Maria da Graça, conhecida na noite como "a maior penetra do Brasil".

A mulher, loira, elegante e sempre atenta ao dress code, já ganhou algumas manchetes, entre elas em 2010, na Revista Piauí, quando revelou ter parado de contar o número de eventos em que entrou sem ter sido convidada: até 2005, nas contas dela, foram 498 festas.

Ontem, no Prêmio JK Rio 2023, Maria da Graça tentou mais uma vez, mas foi barrada, o que imediatamente chamou a atenção deste colunista. Me aproximei dela para uma conversa e para entender o que tinha dado errado desta vez.

"Você me ajudaria a entrar? Eu não estou na lista, claro, mas desta vez não sei como convencer, não conheço quem está na porta", disse a senhora, que após descobrir estar conversando com um jornalista, reclamou: "Sempre fazem matérias sobre mim. Isso nunca me ajudou a entrar para nenhuma lista".

A conversa entre nós foi rápida. Maria da Graça não queria chamar a atenção. Ela estava pensando em como não ser barrada.

Foi aí que este colunista se tornou "uma oportunidade" para ela.

"Já que você está perguntando sobre mim, me diga: qual seu nome e onde você trabalha?", ela questionou, e eu respondi. Descobri apenas mais tarde que ela tentaria me usar para entrar no local.

Voltei ao evento, e pouco tempo depois vejo Maria da Graça com uma pulseira amarela no braço, dada aos jornalistas presentes. Ela conseguiu driblar promoters e seguranças e estava dentro do Copacabana Palace.

Seguranças conferem lista e não encontram nome da penetra - Lucas Pasin / UOL - Lucas Pasin / UOL
Seguranças conferem lista e não encontram nome da penetra
Imagem: Lucas Pasin / UOL

Me aproximei novamente, e perguntei qual era o segredo. "A mocinha da porta gostou de mim. Às vezes dou sorte por isso. Hoje em dia consigo me credenciar para alguns eventos, é mais fácil. Depois que eu entro, me aproximo das pessoas, converso, e tento me manter em uma turma",contou.

Penetra profissional? Ela prefere não ser chamada assim. "Prefiro que me chamem de festeira, a maior festeira do Rio de Janeiro. Penetra é algo muito negativo e pode virar uma chacota."

O que parecia ter sido mais uma noite de sucesso para Maria da Graça acabou em expulsão. Seguranças trouxeram a senhora até mim e disseram: "Ela usou seu nome lá na entrada e disse que é sua amiga, que trabalha com você. Isso é verdade?" Neguei.

Maria da Graça não gostou de ter sido negada por este colunista. Deixou o lugar bastante contrariada, sem escândalos. Permaneceu por um tempo ainda na porta do evento, mas, com os convidados já assumindo seus lugares no salão principal, ficou tarde para um novo plano. Quem sabe na próxima?

Até 2005, Maria da Graça contava os eventos de penetra: foram 498 - Lucas Pasin / UOL - Lucas Pasin / UOL
Até 2005, Maria da Graça contava os eventos de penetra: foram 498
Imagem: Lucas Pasin / UOL