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

Fachin: não podemos ter censura à imprensa sob nenhuma hipótese

12/05/2015 19h09

Brasília - O advogado Luiz Edson Fachin defendeu na tarde desta terça-feira, 12, a liberdade de imprensa e de expressão. Desde sua indicação para o Supremo Tribunal Federal (STF), há quase um mês, Fachin foi objeto de reportagens que relataram os focos de resistência ao nome do jurista.

O jurista mencionou a situação, mas disse que, mesmo assim, prefere conviver com a liberdade. "O preço da liberdade há de ser pago em todas as hipóteses. Prefiro conviver com essa liberdade de divergência, de exposição, do que conviver num mundo que esconde, que veda, num mundo de censura. Dela (liberdade) não se pode abrir mão nem um milímetro", afirmou o jurista, em sabatina realizada pela Comissão de Constituição e Justiça (CCJ) do Senado.

Guerra Fiscal

Fachin foi questionado sobre os incentivos fiscais concedidos unilateralmente por Estados sem aprovação pelo Conselho Nacional de Política Fazendária (Confaz), que configuram a chamada guerra fiscal. O tema é debatido no Supremo Tribunal Federal e, por isso, Fachin se limitou a realizar breve comentário, defendendo que regiões diferentes possuem necessidades desiguais. "A política tributária precisa fazer valer um federalismo republicano e fiscal que seja verdadeiro e permita reconhecer que Estados e regiões tem diferentes necessidades", afirmou.

Aborto

O advogado se declarou contrário ao aborto, mas afirmou que questões sobre a regulamentação do tema devem ser decididas pelo Congresso e não pelo Poder Judiciário. "Sou um defensor da vida, da dignidade da vida humana e estou dando minha posição pessoal de cristão, humanista, de colocar a vida como um valor que se põe no patamar de supremacia", afirmou. Ele disse conhecer as questões sociais envolvidas no debate, como as dificuldades de saúde enfrentadas por mulheres de baixa condição econômica que fazem aborto, mas defendeu a "supremacia da vida".

"Agora este é um tema do Poder Legislativo que, se por alguma razão entender ou revogar ou ampliar hipóteses previstas na legislação, essa é uma deliberação que não compete ao Judiciário", completou Fachin.

Horário

Parlamentares pediram ao presidente em exercício da CCJ, senador José Pimentel (PT-CE), que suspendesse a sessão para retomar a sabatina amanhã, 13. O pedido, contudo, foi negado, e o presidente da sessão anunciou que a arguição irá até meia-noite. Até o momento, cerca de 20 parlamentares fizeram suas perguntas, mas ainda existem mais de 30 nomes inscritos para manifestações.