;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Touro da B3 é alvo de protestos e churrasco a pessoas em situação de rua

SP Invisível promoveu churrasco a pessoas em situação de rua em frente da B3 - Divulgação/SP Invisível
SP Invisível promoveu churrasco a pessoas em situação de rua em frente da B3 Imagem: Divulgação/SP Invisível

Do UOL, em São Paulo

18/11/2021 15h24Atualizada em 18/11/2021 20h29

Inaugurado na terça-feira (16), no centro de São Paulo, o Touro de Ouro da Bolsa de Valores brasileira (B3) foi alvo de protestos pelo segundo dia seguido. Ele amanheceu pichado com os dizeres "taxar os ricos", um dia depois de manifestantes colar cartazes na escultura com a palavra "fome". Um outro grupo, este do SP Invisível, ainda promoveu um churrasco para pessoas em situação de rua em frente à estátua.

Hoje, aconteceu ainda o protesto foi realizado pelo Movimento Juntos, um coletivo de esquerda fundado em 2011 que, segundo seu site oficial, defende pautas anticapitalistas. O Touro de Ouro foi escolhido como alvo justamente por ser um símbolo do mercado financeiro que, diz o movimento, "vive uma realidade descolada da realidade da maioria das pessoas no Brasil e no mundo".

"A intervenção na escultura inaugurada em frente à Bolsa de Valores em São Paulo é parte da campanha do nosso movimento que busca dizer que 'nem a fome, nem os bilionários deveriam existir: taxar os ricos para combater a crise'. Seguiremos buscando expor a contradição entre a existência de bilionários enquanto o povo vive à procura de ossos de boi e carcaças de frango", publicou a página do grupo nas redes sociais.

A manifestação de ontem foi organizada pelos grupos Juventude Fogo no Pavio e Movimento Raiz da Liberdade. "O que para eles simboliza a força do mercado financeiro, para nós é um símbolo da fome, da miséria e da superexploração do trabalho. Mas também é um lembrete de que continuaremos na luta por uma vida com dignidade", afirmaram os coletivos em nota conjunta.

O UOL entrou em contato com a B3 para pedir um posicionamento sobre o novo protesto e ainda aguarda retorno.

Ontem, ao ser procurada pela reportagem para falar sobre o primeiro ato, a assessoria da Bolsa disse apenas que o Touro de Ouro é uma homenagem à força e à coragem do brasileiro, além de ser um presente para São Paulo, visando à revitalização do centro histórico da cidade.

O Touro de Ouro representa a força e a resiliência do povo brasileiro. A B3 está trazendo esse novo símbolo para valorizar não apenas o centro de São Paulo, mas o desenvolvimento do mercado de capitais do Brasil, que a pela própria história da Bolsa. O centro é o coração do mercado financeiro e, após a fusão que originou a B3, em 2017, a companhia optou não apenas em permanecer na região, como em contribuir para sua retomada.
Gilson Finkelsztain, CEO da B3, no dia da inauguração do Touro de Ouro

Apesar da euforia dos idealizadores, a escultura foi recebida nas redes com pouco entusiasmo e muitos memes: "cafonice", "brega", "viralatismo", disseram usuários, que também chegaram a apelidar o Touro de Ouro de "Vaca Louca do Anhangabaú" e "Touro da Cracolândia".