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

Bolsonaro critica decisão do STF de criminalizar homofobia

14/06/2019 14h15

O presidente Jair Bolsonaro classificou como hoje (14) como "equivocada" a decisão do Supremo Tribunal Federal (STF) em criminalizar a homofobia como forma de racismo. Ao finalizar o julgamento da questão, na tarde de ontem (13), a Corte declarou a omissão do Congresso em aprovar a matéria e determinou que casos de agressões contra o público LGBT (lésbicas, gays, bissexuais, transexuais e travestis) sejam enquadrados como crime de racismo até que uma norma específica seja aprovada pelo Poder Legislativo.

"Com todo respeito, mas decisão do Supremo é completamente equivocada. Além de estar legislando, está aprofundando a luta de classes", disse durante café da manhã com jornalistas, no Palácio do Planalto. Por 8 votos a 3, os ministros do STF entenderam, no julgamento, que o Congresso não pode deixar de tomar as medidas legislativas que foram determinadas pela Constituição para combater atos de discriminação. A maioria também afirmou que a Corte não está legislando, mas apenas determinando o cumprimento da Constituição.

Na visão de Bolsonaro, a decisão do STF pode ser prejudicial à própria população LGBT. "Prejudica o próprio homossexual, porque se o dono de um empresa for contratá-lo, vai pensar duas vezes em fazer isso já que se fizer uma piada isso pode ser levado para a Justiça".

O presidente também argumentou que a decisão poderia ferir a liberdade religiosa, já que parte dos cristãos interpreta a homossexualidade como algo repelido em textos bíblicos. Entretanto, de acordo com a decisão do STF, religiosos e fiéis não poderão ser punidos por racismo ao externarem suas convicções doutrinárias sobre orientação sexual, desde que suas manifestações não configurem discurso discriminatório.

Ministro evangélico

Bolsonaro disse ainda que se houvesse um ministro evangélico no STF, esse julgamento poderia não ter avançado. "O cara pede vista [mais tempo para análise] de processo e senta em cima dele". Até 2022, o presidente da República poderá indicar nomes para pelo menos duas vagas na corte, que serão aberta com a aposentadoria compulsória dos ministros Marco Aurélio e Celso de Mello.