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

Esse conteúdo é antigo

Vereador Cristófaro pede desculpas por fala racista; PSOL vai à delegacia

Do UOL, em São Paulo*

04/05/2022 12h40Atualizada em 04/05/2022 13h53

O vereador Camilo Cristófaro (sem partido) pediu desculpas, hoje, e disse que cometeu um erro após uma fala racista durante reunião da I dos Aplicativos na Câmara Municipal de São Paulo, ontem. A bancada de vereadores do PSOL informou que irá nesta tarde à sede da Decradi (Delegacia de Crimes Raciais e Delitos de Intolerância) pedir um inquérito contra o vereador por racismo.

Sem saber que seu áudio estava aberto durante a sessão, que ocorria de forma híbrida, o parlamentar comentou: "Eles arrumaram e não lavaram a calçada. É coisa de preto, né?"

Em nota, o político diz que, embora sua declaração tenha sido racista, ele não é em suas atitudes.

Eu peço desculpas a toda população negra por esse episódio que destrói toda minha construção política na busca de garantia à cidadania dos paulistanos, principalmente aos que têm suas portas de o ao direito diminuída pelo racismo estrutural. Vereador Camilo Cristófaro.

"Eu como humano tenho que me reconstruir para ser um vereador que combate qualquer forma de discriminação, principalmente quando mantenho valores de uma sociedade que está se transformando para melhor, onde todos devem ser respeitados. Venho de uma geração onde as piadinhas eram normais e preciso ar por uma desconstrução desses preconceitos", continuou ele.

Veja abaixo a íntegra:

Um erro...cometi um erro...Eu peço desculpas a toda população negra por esse episódio que destrói toda minha construção política na busca de garantia à cidadania dos paulistanos, principalmente os que tem suas portas de o ao direito diminuída pelo racismo estrutural. Apesar de ter tido uma fala racista, eu não sou racista em minhas atitudes e com o tempo vocês terão a oportunidade de constatar isso.

Eu como humano tenho que me reconstruir para ser um vereador que combate qualquer forma de discriminação, principalmente quando mantenho valores de uma sociedade que está se transformando para melhor, onde todos devem ser respeitados. Venho de uma geração onde as piadinhas eram normais e preciso ar por uma desconstrução desses preconceitos.

Desfiliado do PSB

Após a repercussão do caso, o diretório estadual do PSB desfiliou o vereador da legenda. A decisão foi tomada pelo presidente estadual da sigla, Jonas Donizette, e será informada ao TRE-SP (Tribunal Regional Eleitoral de São Paulo).

Donizette classificou a fala como "grave" e disse que racismo é uma prática condenável pelo PSB, que, segundo ele, tem uma "negritude" muito forte. "Como o processo de expulsão exige um determinado trâmite legal, às vezes demorado, optei por despachar o ofício apresentado pelo próprio vereador no qual ele cita o artigo que trata de desfiliação", afirmou.

O ofício em questão foi enviado por Camilo Cristófaro ao PSB no dia 28 de abril. Nele, o vereador pede seu "imediato desligamento do diretório municipal de estadual do PSB" e cita o artigo 17, inciso sexto da Constituição Federal, o mesmo que trata de desfiliação partidária. "Diante desse pedido anterior ao fato, resolvi despachar e resolver assim de forma mais rápida", afirmou.

Ao Estadão, Camilo Cristófaro afirmou que a desfiliação tem a sua "anuência". "Fiz o pedido em 28 de abril", confirma.

Bancada de vereadores do PSOL vai entregar representação

Além de ir à delegacia pedir um inquérito contra o vereador, a bancada do PSOL também informou que entregará uma representação na Corregedoria da Câmara solicitando abertura do processo interno.

Paula Nunes, covereadora negra do mandato coletivo Bancada Feminista do PSOL, defendeu a cassação do mandato de Camilo."Não podemos mais aceitar o racismo na sociedade e nem na Câmara Municipal. Ou punimos aqueles que cometem racismo ou estaremos sendo coniventes com estas atitudes violentas contra a maioria da população brasileira", diz.

O partido também irá realizar um ato político durante a sessão de hoje na Câmara.

Em nota, o presidente da Câmara, vereador Milton Leite (União Brasil) repudiou o fato e afirmou que vê com "indignação imensa mais uma denúncia de episódio racista dentro da Câmara de Vereadores de São Paulo, local democrático, livre e que acolhe a todos".

Leite, que é negro, disse ainda "lutar com todas as forças contra o racismo, crime que insiste em ser cometido dentro de uma Casa de Leis e fora dela também". Do plenário, afirmou ainda que o ocorrido está sendo apurado e será encaminhado para a Corregedoria do Parlamento paulistano. "Que o corregedor dê celeridade ao processo. O desfecho cabe aos seus membros da Corregedoria. Não dá para aceitar mais isso", disse.

* Com Estadão Conteúdo