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

Califórnia libertará 3.500 presos não-violentos por coronavírus

Imagens do NIAID (EUA) mostram células humanas sendo atacada pelo coronavírus responsável pela covid-19 - NIAID
Imagens do NIAID (EUA) mostram células humanas sendo atacada pelo coronavírus responsável pela covid-19 Imagem: NIAID

01/04/2020 00h03

Los Angeles, 1 Abr 2020 (AFP) - O sistema prisional da Califórnia planeja libertar cerca de 3.500 prisioneiros não-violentos para impedir a disseminação da Covid-19, informaram autoridades nesta terça-feira.

O Departamento de Correções e Reabilitação da Califórnia (CDCR) disse que o primeiro grupo de presos libertados serão aqueles com menos de 30 dias para cumprir, seguidos por aqueles com menos de 60 dias.

"Não tomamos essas novas medidas de qualquer maneira", afirmou Ralph Diaz, secretário da agência correcional, em comunicado.

"Nosso primeiro compromisso no CDCR é garantir a segurança de nossa equipe, da população carcerária, de outras pessoas em nossas instituições e da comunidade em geral".

"No entanto, diante de uma pandemia global, devemos considerar o risco de infecção pela Covid-19 como uma séria ameaça à segurança", acrescentou.

As autoridades disseram que as libertações antecipadas aumentarão a capacidade e o espaço físico das prisões do estado, onde 22 funcionários e quatro detentos deram positivo para o vírus.

As prisões também instituíram outras medidas para impedir a disseminação do vírus, como exames médicos obrigatórios para quem entra nas instituições e suspensão das visitas.

Aos presos estão sendo oferecidos telefonemas gratuitos adicionais para os familiares para compensar esta última medida.

As libertações também receberam críticas, como de um promotor que disse que colocaria criminosos perigosos de volta nas ruas.

O xerife do condado de Los Angeles, Alex Villanueva, já libertou cerca de 1.700 presos de prisões locais, deixando cerca de 15.000 ainda atrás das grades.

As prisões dos Estados Unidos, projetadas para abrigar pessoas que cumprem sentenças de mais de um ano, também mantêm detidas outras que aguardam julgamento ou cumprem sentenças curtas por pequenos delitos.

jz/jt/dg/lca