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

Em plena ofensiva conservadora, Nevada e Vermont defendem direito ao aborto

Reprodução/Instagram @kevfog
Imagem: Reprodução/Instagram @kevfog

23/05/2019 12h08

Os estados americanos de Nevada e Vermont se preparam para aprovar leis que protegem o o ao aborto, na contramão das medidas restritivas aprovadas por vários estados conservadores dos Estados Unidos.

Estes enfoques contraditórios ameaçam reforçar as grandes disparidades que já existem nos Estados Unidos em termos de o ao aborto.

O legislativo de Nevada (oeste), o único do país onde as mulheres são maioria, aprovou na terça-feira em segunda discussão uma reforma que despenaliza a venda sem prescrição de medicamentos que induzem o aborto e as interrupções "artesanais" da gravidez.

Atualmente, abortar por meios próprios é punido com entre um e 10 anos de prisão.

O texto também estabelece que os médicos não são obrigados a explicar o "impacto físico e emocional" de um aborto a suas pacientes, nem revelar sua idade ou estado civil.

Este projeto de lei deve voltar ao Senado de Nevada para sua aprovação definitiva, antes de ser promulgado pelo governador, o democrata Steve Sisolak.

Os legisladores de Vermont (nordeste), consagraram em uma lei que o aborto é um "direito fundamental" e que está proibido a qualquer "entidade pública" restringi-lo.

Este estado, que tem um marco legal muito flexível para as interrupções voluntárias da gravidez, quer se assegurar de que as agências federais nunca o limitarão.

O governador republicano, Phil Scott, disse nesta terça-feira que não vetaria o texto.

As leis pretendem contrabalançar o endurecimento da legislação sobre o tema em cerca de 15 estados conservadores.

"Os direitos das mulheres estão sendo ameaçados em todo o país por políticos extremistas", expressou la legisladora democrata Shea Backus durante los debates de Nevada.

"Estas leis draconianas não têm espaço em uma sociedade livre", acrescentou, citada pelo Reno Gazette Journal.

O Alabama promulgou recentemente uma lei que equipara o aborto ao homicídio e prevê até 99 anos de prisão para os médicos que o realizem, sem exceções em casos de estupro ou incesto.

Seis estados, incluindo Geórgia e Mississippi, proibiram a prática a partir do momento em que se pode detectar o batimento fetal (por volta de seis semanas de gestação). O Missouri a proíbe a partir de oito semanas.

Estas leis contradizem o que dita a Suprema Corte dos Estados Unidos, que em 1973 legalizou o aborto em um caso conhecido como Roe v. Wade. Portanto, é previsível que sejam invalidadas pela máxima corte.

Mas seus impulsores apostam em que o debate seja reaberto nessa instância, que agora conta com uma maioria de juízes conservadores, incluindo os dois últimos indicados por Donald Trump, para reverter sua decisão.