Files
nexus/sreweekly/articles/46/02-hacker-puts-full-redundancy-code-hosting-firm-out-of-business.html
2026-09-12 17:23:01 +08:00

2478 lines
254 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en" xml:lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml" data-edition="us" data-edition-default="us" data-lang="en" data-audience="consumer" data-brand="pcworld" data-hub="b2c">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<style>:root { --advertisement-label-text: "Advertisement"; }</style> <meta name="category" content="Security Software and Services, Technology Industry">
<link rel="profile" href="https://gmpg.org/xfn/11">
<script>
window.isBrandPostSeriesLanding = "false";
</script>
<script>
window.grumi = {
key: '859c0fcb-feae-4616-afed-20011b559baa'
};
</script>
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
<meta name="amazonbot" content="noarchive">
<script>
window._sp_analytics = {
config: {
accountId: 146,
events: {
onDetectionComplete: function() {
console.log('onMessageReady');
}
},
}
};
</script>
<!-- This site is optimized with the Yoast SEO Premium plugin v22.8 (Yoast SEO v23.3) - https://yoast.com/wordpress/plugins/seo/ -->
<title>Hacker puts ‘full redundancy’ code-hosting firm out of business | PCWorld</title>
<meta name="twitter:label1" content="Written by" />
<meta name="twitter:data1" content="No Author" />
<meta name="twitter:label2" content="Est. reading time" />
<meta name="twitter:data2" content="4 minutes" />
<!-- / Yoast SEO Premium plugin. -->
<link rel='dns-prefetch' href='//rumcdn.geoedge.be' />
<link rel='dns-prefetch' href='//cdn.onthe.io' />
<link rel='dns-prefetch' href='//stats.wp.com' />
<link rel="alternate" type="application/rss+xml" title="PCWorld &raquo; Feed" href="https://www.pcworld.com/feed" />
<link rel="alternate" type="application/rss+xml" title="PCWorld &raquo; Comments Feed" href="https://www.pcworld.com/comments/feed" />
<script>
//CMP Stub
"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){for(var t,e,o=[],n=window,r=n;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(a){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o){if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5)}return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(n){}else o=t.data;var r="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;r&&window.__tcfapi(r.command,r.version,function(o,n){var a={__tcfapiReturn:{returnValue:o,success:n,callId:r.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")},r.parameter)},!1))};"undefined"!=typeof module?module.exports=t:t()}();
window.__gpp_addFrame=function(e){if(!window.frames[e]){if(document.body){var t=document.createElement("iframe");t.style.cssText="display:none",t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gpp_addFrame,10,e)}},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],__gpp.events=__gpp.events||[],!e.length||1==e.length&&"queue"==e[0])return __gpp.queue;if(1==e.length&&"events"==e[0])return __gpp.events;var t=e[0],s=e.length>1?e[1]:null,a=e.length>2?e[2]:null;if("ping"===t)s({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct",],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}},!0);else if("addEventListener"===t){"lastId"in __gpp||(__gpp.lastId=0),__gpp.lastId++;var n=__gpp.lastId;__gpp.events.push({id:n,callback:s,parameter:a}),s({eventName:"listenerRegistered",listenerId:n,data:!0,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct",],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var p=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==a){__gpp.events.splice(i,1),p=!0;break}s({eventName:"listenerRemoved",listenerId:a,data:p,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usva","10:usco","11:usut","12:usct",],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?s(!1,!0):"getSection"===t||"getField"===t?s(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t="string"==typeof e.data;try{var s=t?JSON.parse(e.data):e.data}catch(a){s=null}if("object"==typeof s&&null!==s&&"__gppCall"in s){var n=s.__gppCall;window.__gpp(n.command,function(s,a){var p={__gppReturn:{returnValue:s,success:a,callId:n.callId}};e.source.postMessage(t?JSON.stringify(p):p,"*")},"parameter"in n?n.parameter:null,"version"in n?n.version:"1.1")}},"__gpp"in window&&"function"==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener("message",window.__gpp_msghandler,!1),window.__gpp_addFrame("__gppLocator"));
</script>
<script>
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.pcworld.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.8.8"}};
/*! This file is auto-generated */
!function(s,n){var o,i,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),a=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===a[t]})}function u(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);for(var n=e.getImageData(16,16,1,1),a=0;a<n.data.length;a++)if(0!==n.data[a])return!1;return!0}function f(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\udedf")}return!1}function g(e,t,n,a){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):s.createElement("canvas"),o=r.getContext("2d",{willReadFrequently:!0}),i=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(function(e){i[e]=t(o,e,n,a)}),i}function t(e){var t=s.createElement("script");t.src=e,t.defer=!0,s.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",i=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){s.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+g.toString()+"("+[JSON.stringify(i),f.toString(),p.toString(),u.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"}),r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=function(e){c(n=e.data),r.terminate(),t(n)})}catch(e){}c(n=g(i,f,p,u))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
</script>
<style id='wp-emoji-styles-inline-css'>
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel='stylesheet' id='wp-block-library-css' href='https://www.pcworld.com/wp-includes/css/dist/block-library/style.min.css?ver=6.8.8' media='all' />
<style id='classic-theme-styles-inline-css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<link rel='stylesheet' id='jetpack-forms-layout-css' href='https://www.pcworld.com/wp-content/mu-plugins/jetpack-15.7/jetpack_vendor/automattic/jetpack-forms/src/../dist/contact-form/css/jetpack-forms-layout.css?ver=15.7.2' media='all' />
<style id='co-authors-plus-coauthors-style-inline-css'>
.wp-block-co-authors-plus-coauthors.is-layout-flow [class*=wp-block-co-authors-plus]{display:inline}
</style>
<style id='co-authors-plus-avatar-style-inline-css'>
.wp-block-co-authors-plus-avatar :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-avatar :where(img){vertical-align:middle}.wp-block-co-authors-plus-avatar:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-avatar.aligncenter{display:table;margin-inline:auto}
</style>
<style id='co-authors-plus-image-style-inline-css'>
.wp-block-co-authors-plus-image{margin-bottom:0}.wp-block-co-authors-plus-image :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-image :where(img){vertical-align:middle}.wp-block-co-authors-plus-image:is(.alignfull,.alignwide) :where(img){width:100%}.wp-block-co-authors-plus-image:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-image.aligncenter{display:table;margin-inline:auto}
</style>
<link rel='stylesheet' id='mediaelement-css' href='https://www.pcworld.com/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver=4.2.17' media='all' />
<link rel='stylesheet' id='wp-mediaelement-css' href='https://www.pcworld.com/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver=6.8.8' media='all' />
<style id='jetpack-sharing-buttons-style-inline-css'>
.jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em}
</style>
<style id='global-styles-inline-css'>
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='editions-desktop-css' href='https://www.pcworld.com/wp-content/client-mu-plugins/idg-editions/dist/styles/main.css?ver=0.1.0' media='all' />
<link rel='stylesheet' id='idg-sponsored-price-style-css' href='https://www.pcworld.com/wp-content/client-mu-plugins/idg-sponsored-price-comparison/dist/styles/main.css?ver=1789061449' media='all' />
<link rel='stylesheet' id='third-party-integrations-style-css' href='https://www.pcworld.com/wp-content/client-mu-plugins/idg-third-party/dist/styles/index.css?ver=1789061449' media='all' />
<style id='miso-tldr-inline-inline-css'>
</style>
<link rel='stylesheet' id='frontend-jwplayer-styles-css' href='https://www.pcworld.com/wp-content/themes/idg-b2b-base-theme/dist/styles/jwplayer.css?ver=1789061450' media='all' />
<link rel='stylesheet' id='frontend-shared-styles-css' href='https://www.pcworld.com/wp-content/themes/idg-b2b-base-theme/dist/styles/shared.css?ver=1789061450' media='all' />
<link rel='stylesheet' id='frontend-styles-css' href='https://www.pcworld.com/wp-content/themes/idg-b2b-base-theme/dist/styles/bundle.css?ver=1789061450' media='all' />
<link rel='stylesheet' id='pcworld-frontend-styles-css' href='https://www.pcworld.com/wp-content/themes/pcworld-child-theme/dist/styles/style.css?ver=1789061450' media='all' />
<link rel='stylesheet' id='child-pcworld-style-css' href='https://www.pcworld.com/wp-content/themes/pcworld-child-theme/assets/css/style.css?ver=1789061450' media='all' />
<script src="https://rumcdn.geoedge.be/859c0fcb-feae-4616-afed-20011b559baa/grumi-ip.js?ver=1" id="idg_geo_edge_code-js" async data-wp-strategy="async"></script>
<script type="text/javascript" src="https://www.pcworld.com/wp-includes/js/dist/hooks.min.js?m=1787604888g" ></script><script src="https://www.pcworld.com/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script>
<script id="wp-i18n-js-after">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
</script>
<script type="text/javascript" src="https://www.pcworld.com/wp-content/client-mu-plugins/idg-editions/dist/scripts/editions-front.js?m=1789061449g" ></script><script id="third-party-integrations-script-js-extra">
var IDG = {"settings":{"cmp":{"account":{"id":"146","base_endpoint":"https:\/\/cmpv2.pcworld.com","href":"https:\/\/pcworld.com","is_cp_multi_campaign_enabled":true},"gdpr":{"script":"https:\/\/cmpv2.pcworld.com\/unified\/wrapperMessagingWithoutDetection.js","privacy_manager_id":"199068","property_id":"7460","privacy_manager_id_amp":"172450","href_amp":"https:\/\/amp.pcworld.com"},"ccpa":{"script":"https:\/\/cmpv2.pcworld.com\/ccpa.js","origin":"https:\/\/ccpa-service.sp-prod.net","privacy_manager_id":"902550","privacy_manager_uuid":"5dfa75f712068b42714ed7b8","property_id":"16080","href_amp":"https:\/\/ccpa.amp.pcworld.com"},"gpp":{"usnat_pm_id":"1316752","is_gpp_enabled":true},"contentpass":{"contentpass_geos":"DE,AT,IE,GB","cp_base_url":"https:\/\/cp.pcworld.com","cp_property_id":"f99d735d","is_cp_enabled":true}},"gtm":{"account":{"id":"GTM-WMR8FDR6","amp_id":"","ua_number":"UA-739745-1"}},"gpt":{"consent":{"vendor_id":"5e74df5ff443bb795772df9c"},"config":{"prefix":"\/8456\/IDG.US_CSMB_PCWorld.com\/","threshold":"0","slots":[{"name":"gpt-leaderboard","template":"banner","disabled":false,"sticky_duration":"5","pos":"ATF","size":"320x50","size_definitions":[{"breakpoint":"970","sizes":"970x250,1400x250,2000x250,980x240,1x2,970x170","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"728","sizes":"728x90,468x60","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"320","sizes":"300x250,300x50,320x50,320x480,320x320,300x240","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"}],"insert_after_p":"1"},{"name":"gpt-leaderboardmainbod","template":"article","disabled":false,"insert_after_p":"4","insert_after_article":"4","insert_after_article_offset":"8","refresh_interval":"20","refresh_amount":"20","size":"300x50","pos":"BTF{{count}}","size_definitions":[{"breakpoint":"970","sizes":"728x90","min-height":"148","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4","conditional":true},{"breakpoint":"728","sizes":"300x50,320x50,300x250,320x320,320x480","min-height":"284","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"320","sizes":"300x50,320x50,300x250,320x320,320x480,300x240","min-height":"284","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"}],"insert_after_two_p":true,"page_template":[{"custom_template":"Homepage","desktop":"2","mobile":"2","feed_v2_articlelisting":[{"desktop":"8,12,16,20,24,28,32,36,40,44,48,52,56,60","mobile":"8,12,16,20,24,28,32,36,40,44,48,52,56,60","feed_v2":"Feed-V2","block_name":"feed_v2"}]},{"custom_template":"Article","desktop":"2,8,12,16,20,24,28,32,36,40,44,48,52,56,60","mobile":"2,8,12,16,20,24,28,32,36,40,44,48,52,56,60","feed_v2_articlelisting":[{"desktop":"8,12,16,20,24,28,32,36,40,44,48,52,56,60","mobile":"8,12,16,20,24,28,32,36,40,44,48,52,56,60","feed_v2":"Feed-V2","block_name":"feed_v2"}]},{"custom_template":"Archive","desktop":"2,8,12,16,20,24,28,32,36,40,44,48,52,56,60","mobile":"2,8,12,16,20,24,28,32,36,40,44,48,52,56,60","feed_v2_articlelisting":[{"desktop":"8,12,16,20,24,28,32,36,40,44,48,52,56,60","mobile":"8,12,16,20,24,28,32,36,40,44,48,52,56,60","feed_v2":"Feed-V2","block_name":"feed_v2"}]}]},{"name":"gpt-leaderboardfoot","template":"footer","disabled":false,"size":"300x50","pos":"BTF","size_definitions":[{"breakpoint":"970","sizes":"970x250,728x90","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"728","sizes":"728x90,468x60","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"320","sizes":"300x250,300x50,320x50","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"}],"insert_after_p":"1"},{"name":"gpt-rightrail","template":"right_rail","disabled":true,"size":"120x600","replace_interval":"20","replace_amount":"18","refresh_interval":"20","section":"Sidebardfpatf{{count}}","pos":"ATF1","size_definitions":[{"breakpoint":"970","sizes":"300x250,300x600,160x600,120x600,250x600","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"728","sizes":"","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"320","sizes":"","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"}],"insert_after_p":"1"},{"name":"gpt-welcome","template":"overlay","disabled":false,"size":"640x480","pos":"gpt-welcome","size_definitions":[{"breakpoint":"970","sizes":"640x480","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"728","sizes":"640x480","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"320","sizes":"","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"}],"insert_after_p":"1"},{"name":"gpt-skin","template":"skin","disabled":false,"size":"1x1","pos":"gpt-skin","size_definitions":[{"breakpoint":"970","sizes":"1x1","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"728","sizes":"","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"320","sizes":"","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"}],"insert_after_p":"1"},{"name":"gpt-contenthub-article","template":"gpt-contenthub-article","disabled":false,"pos":"gpt-contenthub","size":"728x90","size_definitions":[{"breakpoint":"970","sizes":"970x56","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"850","sizes":"850x56","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"344","sizes":"344x56","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"}],"insert_after_p":"1"},{"name":"gpt_bouncex","template":"bouncex","disabled":false,"size":"1x3","pos":"gpt_bouncex","size_definitions":[{"breakpoint":"970","sizes":"1x3","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"728","sizes":"1x3","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"},{"breakpoint":"320","sizes":"1x3","insert_after_p_instructional":"4","insert_after_p_informational":"4","insert_after_p_transactional":"4"}],"insert_after_p":"1"}],"aps_pub_id":"3051"},"adapex":{"is_adapex_enabled":true}},"permutive":{"account":{"workspace_id":"f5b3be27-f789-4ef1-8867-37c67da5b361","api_key":"84c7e805-5ce9-41f4-b988-3529488bab1c"}},"geo_edge_setting":{"config":{"enable_geo_edge":1,"geo_edge_key":"859c0fcb-feae-4616-afed-20011b559baa"}},"outbrain":{"config":{"script":"","widget_id":"AR_1","amp_widget_ids":"AMP_1","src":"https:\/\/www.pcworld.com"}},"hellobar":{"config":{"insert_first_hello_bar_after_p":"6","insert_second_hello_bar_after_p":"12"}},"nativo":{"config":{"script":"https:\/\/s.ntv.io\/serve\/load.js","insert_after_p":"18","insert_after_article":"20","insert_after_article_offset":"11"}},"taboola":{"config":{"taboola_script":"\/\/cdn.taboola.com\/libtrc\/foundry-network\/loader.js","taboola_widget_id":"alternating-thumbnails-a","mode_name":"alternating-thumbnails-stream-pcworld","default_position_mid_article":"6","mid_artcile_placements":[{"name":"mid_article","template":"mid_article","size_definitions":[{"breakpoint":"970","insert_after_x_instructional":"6","insert_after_x_informational":"6","insert_after_x_transactional":"6"},{"breakpoint":"728","insert_after_x_instructional":"6","insert_after_x_informational":"6","insert_after_x_transactional":"6"},{"breakpoint":"320","insert_after_x_instructional":"6","insert_after_x_informational":"6","insert_after_x_transactional":"6"}]}],"web_push_script":"https:\/\/cdn.taboola.com\/webpush\/publishers\/1767843\/taboola-push-sdk.js"}},"miso":{"miso_placements":{"miso_smart_answers":[{"name":"miso-smart-answers","template":"smart_answers","size_definitions":[{"breakpoint":"970","insert_after_p_instructional":"10","insert_after_p_informational":"10","insert_after_p_transactional":"10"},{"breakpoint":"728","insert_after_p_instructional":"10","insert_after_p_informational":"10","insert_after_p_transactional":"10"},{"breakpoint":"320","insert_after_p_instructional":"10","insert_after_p_informational":"10","insert_after_p_transactional":"10"}]}],"miso_ipp":[{"name":"miso-ipp","template":"ipp","size_definitions":[{"breakpoint":"970","insert_after_p_instructional":"14","insert_after_p_informational":"14","insert_after_p_transactional":"14"},{"breakpoint":"728","insert_after_p_instructional":"14","insert_after_p_informational":"14","insert_after_p_transactional":"14"},{"breakpoint":"320","insert_after_p_instructional":"14","insert_after_p_informational":"14","insert_after_p_transactional":"14"}]}],"default_position_smart_answers":"10","default_position_ipp":"14"}},"blueconic":{"config":{"script":"https:\/\/cdn.blueconic.net\/idg.js","amp_config":"https:\/\/idg.blueconic.net\/rest\/custom\/frontend\/listener_amp\/config","item_id":"c619e04f-be23-492f-a453-3eab17c0e2f6"}},"subscribers":{"config":{"id":"","script":""}},"jw_player":{"config":{"insert_after_p":"4","insert_after_article":"4","player_library_id":"kAvvfxjt","amp_player_library_id":"PcRGPrEc","floating_player_playlist_id":"Ntle5CNP","adscheduleid":"fQeHP23f","floating_player_adscheduleid":"fQeHP23f","description_url":"http:\/\/www.pcworld.com","sz":"640x480|640x360","ciu_szs":"300x250,728x90","player_branding":"https:\/\/www.pcworld.com\/wp-content\/uploads\/2021\/09\/pcworld-tv.svg","bidding_partners":[{"vp_bp_name":"MediaGrid","vp_bp_id":"101101","vp_bp_pubid":"cpVDGgDj","jw_json_object":"{\"name\":\"MediaGrid\",\"id\":\"101101\",\"pubid\":\"cpVDGgDj\"}"},{"vp_bp_name":"IndexExchange","vp_bp_id":"808552","vp_bp_pubid":"183980","jw_json_object":"{\"name\":\"IndexExchange\",\"id\":\"808552\",\"pubid\":\"183980\"}"},{"vp_bp_name":"MediaNet","vp_bp_id":"526288115","vp_bp_pubid":"8CU30876H","jw_json_object":"{\"name\":\"MediaNet\",\"id\":\"526288115\",\"pubid\":\"8CU30876H\"}"},{"vp_bp_name":"jwdemand","vp_bp_id":"","vp_bp_pubid":"","jw_json_object":"{\"name\":\"jwdemand\",\"siteid\":\"qxSSQPwA\",\"placementId\":\"24399793\",\"publisherId\":\"cpVDGgDj\"}"},{"vp_bp_name":"PubMatic","vp_bp_pubid":"158441","vp_bp_id":"4763543","jw_json_object":"{\"name\":\"PubMatic\",\"pubid\":\"158441\",\"id\":\"4763543\"}"},{"jw_json_object":"{\"name\":\"AppNexus\",\"id\":\"32650145\"}"},{"jw_json_object":"{\"name\":\"Rubicon\",\"pubid\":\"10778\",\"siteId\":\"511842\",\"zoneId\":\"3373934\"}"},{"jw_json_object":"{\"name\":\"connatix\",\"placementId\":\"130abd24-fa39-4406-b54f-1695ca217604\"}\n"}],"seconds_bt_ads":40,"jw_size_definitions":[{"name":"970","min_height":"","max_height":""},{"name":"728","min_height":"","max_height":""},{"name":"320","min_height":"","max_height":""}],"floorPriceCents":50,"ads_overrides":{"ads_json_object":""},"site_id":"qxSSQPwA","floating_placement_id":"rueU1cgH","editorial_placement_id":"8cqRkYyT","mobile_floating_player_playlist_id":"nSKQMw78","is_strategy_active":true}},"admiral":{"config":{"enable_ad_block":true,"id":"A-5AF8EB64CCA9836B6A69CC6F-1"}},"io_script":{"config":{"id":"kLODPBip38nZ","io_amp_id":"44395"}},"ms_clarity":{"config":{"project_id":"veshbl7kyo","is_enabled":true}},"overlays_privacy_policies":{"consent_overlays":{"english_overlay_message":"<div class=\"external-embed-wrapper hide-overlay-${platform}\"><div class=\"overlay-div\"><h4>External content from ${platformName}<\/h4><p>This article contains external content from ${platformName}. To view the content, we request your permission.<\/p><a class=\"consent-button\" data-cmp=\"${cmp}\" data-callback=\"${callback}\" data-type=\"hide-overlay-${platform}\" href=\"javascript:void(0)\">Show external content from ${platformName}<\/a><p>By clicking on \u201cShow external content from ${platformName}\u201d I agree that the content will be displayed to me. This allows personal data to be transmitted to ${platformName} and other third parties. You can find more information about this in our <a target=\"_blank\" href=\"${foundryPPLink}\">data protection declaration<\/a> and <a target=\"_blank\" href=\"${privacyPolicyLink}\">${platformName}<\/a>\u2019s Privacy Policy.<p><\/div><\/div>","german_overlay_message":"<div class=\"external-embed-wrapper hide-overlay-${platform}\"><div class=\"overlay-div\"><h4>Externer Inhalt von ${platformName}<\/h4><p>An dieser Stelle hat die Redaktion einen zum Inhalt des Artikels passenden externen Inhalt von ${platformName} platziert. Damit dieser angezeigt werden kann, ben\u00f6tigen wir Ihre Zustimmung.<\/p><p><a class=\"consent-button\" data-cmp=\"${cmp}\" data-callback=\"${callback}\" data-type=\"hide-overlay-${platform}\" href=\"javascript:void(0)\" style=\"border: 2px solid black;padding: 5px 10px;color: black;\">Externen Inhalt von ${platformName} anzeigen<\/a><\/p><p>Mit einem Klick auf \"Externe Inhalte von ${platformName} anzeigen\" erkl\u00e4re ich mich damit einverstanden, dass mir der Inhalt angezeigt wird. Dadurch k\u00f6nnen personenbezogene Daten an ${platformName} und andere Drittanbieter \u00fcbermittelt werden. Mehr Informationen dazu finden Sie in unserer <a target=\"_blank\" href=\"${foundryPPLink}\">Datenschutzerkl\u00e4rung<\/a> und unter <a target=\"_blank\" href=\"${privacyPolicyLink}\">${platformName}<\/a>\u2019s.<p><\/div><\/div>","sweden_overlay_message":"<div class=\"external-embed-wrapper hide-overlay-${platform}\"><div class=\"overlay-div\"><h4>Externt inneh\u00e5ll fr\u00e5n ${platformName}<\/h4><p>Den h\u00e4r artikeln inneh\u00e5ller externt inneh\u00e5ll fr\u00e5n ${platformName}. F\u00f6r att se inneh\u00e5llet ber vi om ditt tillst\u00e5nd.<\/p><p><a class=\"consent-button\" data-cmp=\"${cmp}\" data-callback=\"${callback}\" data-type=\"hide-overlay-${platform}\" href=\"javascript:void(0)\" style=\"border: 2px solid black;padding: 5px 10px;color: black;\">Visa externt inneh\u00e5ll fr\u00e5n ${platformName}<\/a><\/p><p>Genom att klicka p\u00e5 \"Visa externt inneh\u00e5ll fr\u00e5n ${platformName}\" godk\u00e4nner jag att inneh\u00e5llet kommer att visas f\u00f6r mig. Detta g\u00f6r att personuppgifter kan \u00f6verf\u00f6ras till ${platformName} och tredje part. Du kan hitta mer information om detta i v\u00e5r <a target=\"_blank\" href=\"${foundryPPLink}\">dataskyddsdeklaration<\/a> and <a target=\"_blank\" href=\"${privacyPolicyLink}\">${platformName}<\/a>\u2019s sekretesspolicy.<p><\/div><\/div>","english_generic_overlay_message":"<div class=\"external-embed-wrapper custom-html-consent-notice-${platform}\"><div class=\"overlay-div\"><h4>Allow External content<\/h4><p>This article contains external content in this section. To view the content, we request your permission.<\/p><a class=\"consent-button-generic\" platform=\"${platform}\" href=\"javascript:void(0)\">Show external content<\/a><p>By clicking on \u201cShow external content\u201d, I agree that the content will be displayed to me. This allows personal data to be transmitted to other third parties. You can find more information about this in our <a target=\"_blank\" href=\"${foundryPPLink}\">data protection declaration<\/a> and the external source\u2019s privacy policy.<p><\/div><\/div>","german_generic_overlay_message":"<div class=\"external-embed-wrapper custom-html-consent-notice-${platform}\"><div class=\"overlay-div\"><h4>Allow External content<\/h4><p>This article contains external content in this section. To view the content, we request your permission.<\/p><a class=\"consent-button-generic\" platform=\"${platform}\" href=\"javascript:void(0)\">Show external content<\/a><p>By clicking on \u201cShow external content\u201d, I agree that the content will be displayed to me. This allows personal data to be transmitted to other third parties. You can find more information about this in our <a target=\"_blank\" href=\"${foundryPPLink}\">data protection declaration<\/a> and the external source\u2019s privacy policy.<p><\/div><\/div>","sweden_generic_overlay_message":"<div class=\"external-embed-wrapper custom-html-consent-notice-${platform}\"><div class=\"overlay-div\"><h4>Allow External content<\/h4><p>This article contains external content in this section. To view the content, we request your permission.<\/p><a class=\"consent-button-generic\" platform=\"${platform}\" href=\"javascript:void(0)\">Show external content<\/a><p>By clicking on \u201cShow external content\u201d, I agree that the content will be displayed to me. This allows personal data to be transmitted to other third parties. You can find more information about this in our <a target=\"_blank\" href=\"${foundryPPLink}\">data protection declaration<\/a> and the external source\u2019s privacy policy.<p><\/div><\/div>"},"foundry_privacy_policies":{"contentpass":"https:\/\/foundryco.com\/about-us\/privacy-compliance\/","gdpr":"https:\/\/foundryco.com\/about-us\/privacy-compliance\/","ccpa":"https:\/\/foundryco.com\/about-us\/privacy-compliance\/"},"instagram_privacy_policies":{"contentpass":"https:\/\/privacycenter.instagram.com\/policy\/version\/25238980265745528\/","gdpr":"https:\/\/privacycenter.instagram.com\/policy\/version\/25238980265745528\/","ccpa":"https:\/\/privacycenter.instagram.com\/policy\/version\/25238980265745528\/"},"facebook_privacy_policies":{"contentpass":"https:\/\/www.facebook.com\/privacy\/policy\/version\/25238980265745528","gdpr":"https:\/\/www.facebook.com\/privacy\/policy\/version\/25238980265745528","ccpa":"https:\/\/www.facebook.com\/privacy\/policy\/version\/25238980265745528"},"twitter_privacy_policies":{"contentpass":"https:\/\/x.com\/de\/privacy","gdpr":"https:\/\/x.com\/en\/privacy","ccpa":"https:\/\/x.com\/en\/privacy"},"toutube_privacy_policies":{"contentpass":"https:\/\/support.google.com\/youtube\/answer\/10364219?hl=de","gdpr":"https:\/\/support.google.com\/youtube\/answer\/10364219?hl=en-GB","ccpa":"https:\/\/support.google.com\/youtube\/answer\/10364219?hl=en-GB"},"tiktok_privacy_policies":{"contentpass":"https:\/\/www.tiktok.com\/legal\/page\/eea\/privacy-policy\/de","gdpr":"https:\/\/www.tiktok.com\/legal\/page\/eea\/privacy-policy\/en","ccpa":"https:\/\/www.tiktok.com\/legal\/page\/us\/privacy-policy\/en"},"gleam_privacy_policies":{"contentpass":"https:\/\/gleam.io\/privacy","gdpr":"https:\/\/gleam.io\/privacy","ccpa":"https:\/\/gleam.io\/privacy"},"infogram_privacy_policies":{"contentpass":"https:\/\/infogram.com\/privacy","gdpr":"https:\/\/infogram.com\/privacy","ccpa":"https:\/\/infogram.com\/privacy"},"apple_podcast_privacy_policies":{"contentpass":"https:\/\/www.apple.com\/legal\/privacy\/data\/de\/apple-podcasts\/","gdpr":"https:\/\/www.apple.com\/legal\/privacy\/data\/en\/apple-podcasts","ccpa":"https:\/\/www.apple.com\/legal\/privacy\/data\/en\/apple-podcasts"},"whistleout_privacy_policies":{"contentpass":"https:\/\/www.whistleout.com\/Privacy","gdpr":"https:\/\/www.whistleout.com\/Privacy","ccpa":"https:\/\/www.whistleout.com\/Privacy"},"dutch_selection_privacy_policies":{"contentpass":"https:\/\/www.thedutchselection.com\/pages\/privacy","gdpr":"https:\/\/www.thedutchselection.com\/pages\/privacy","ccpa":"https:\/\/www.thedutchselection.com\/pages\/privacy"},"flourish_privacy_policies":{"contentpass":"https:\/\/flourish.studio\/privacy\/","gdpr":"https:\/\/flourish.studio\/privacy\/","ccpa":"https:\/\/flourish.studio\/privacy\/"},"jetpack_podcast_player_privacy_policies":{"contentpass":"https:\/\/jetpack.com\/support\/jetpack-blocks\/podcast-player-block\/","gdpr":"https:\/\/jetpack.com\/support\/jetpack-blocks\/podcast-player-block\/","ccpa":"https:\/\/jetpack.com\/support\/jetpack-blocks\/podcast-player-block\/"},"vimeo_privacy_policies":{"contentpass":"https:\/\/vimeo.com\/privacy","gdpr":"https:\/\/vimeo.com\/privacy","ccpa":"https:\/\/vimeo.com\/privacy"},"soundcloud_privacy_policies":{"contentpass":"https:\/\/soundcloud.com\/pages\/privacy","gdpr":"https:\/\/soundcloud.com\/pages\/privacy","ccpa":"https:\/\/soundcloud.com\/pages\/privacy"},"giphy_privacy_policies":{"contentpass":"https:\/\/support.giphy.com\/hc\/en-us\/articles\/360032872931-GIPHY-Privacy-Policy ","gdpr":"https:\/\/support.giphy.com\/hc\/en-us\/articles\/360032872931-GIPHY-Privacy-Policy ","ccpa":"https:\/\/support.giphy.com\/hc\/en-us\/articles\/360032872931-GIPHY-Privacy-Policy "},"reddit_privacy_policies":{"contentpass":"https:\/\/www.reddit.com\/policies\/privacy-policy ","gdpr":"https:\/\/www.reddit.com\/policies\/privacy-policy ","ccpa":"https:\/\/www.reddit.com\/policies\/privacy-policy "},"newsletter_signup_policies":{"contentpass":"https:\/\/www.macworld.com\/about\/privacy","gdpr":"https:\/\/www.macworld.com\/about\/privacy","ccpa":"https:\/\/www.macworld.com\/about\/privacy"},"spotify_privacy_policies":{"contentpass":"https:\/\/www.spotify.com\/de-en\/legal\/privacy-policy\/","gdpr":"https:\/\/www.spotify.com\/de-en\/legal\/privacy-policy\/","ccpa":"https:\/\/www.spotify.com\/de-en\/legal\/privacy-policy\/"},"bluesky_privacy_policies":{"contentpass":"https:\/\/bsky.social\/about\/support\/privacy-policy","gdpr":"https:\/\/bsky.social\/about\/support\/privacy-policy","ccpa":"https:\/\/bsky.social\/about\/support\/privacy-policy "}},"newsletter_register_para_details":{"nrp_info":{"paracount":"0"}}},"GPT":{"ad_slot_name":"security_section","prefix":"\/8456\/IDG.US_CSMB_PCWorld.com\/","targeting":{"articleId":"439918","author":"Lucian Constantin","browser":"Mozilla\/5.0(Macintosh;IntelMacOSX10_15_7)AppleWebKit\/537.36(KHTML,likeGecko)Chrome\/125.0Safari\/537.36","templateType":"article","categorySlugs":"security,technology-business","tags":"","categoryIds":"2092,1896","env":null,"productId":"","goldenIds":"941,683","channel":"security","fireplace":"false","type":"news","typeId":"8","sponsored":"false","video-autoplay":"true","manufactuer":"amazon","url":"https:\/\/www.pcworld.com\/article\/439918\/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html","zone":"news-article\/security-software-and-services","wpsponsorshipId":""},"isViaAdapex":true,"isStickyAdsRightRailActive":true},"geolocation":"US","suppress_monetization":{},"supressBb2bRightrail":"","products":[],"vendor_pricing":{"amazon":[]},"APS_UNUSED":{"pubID":"3051","scriptURL":"https:\/\/www.pcworld.com\/wp-content\/client-mu-plugins\/idg-third-party\/dist\/scripts\/apstag_library.js"},"isB2B":"","isSingle":"1","isCPEnabled":"1","isCPActiveOnThisGeo":"","isEuVisitor":"","isInstantBuybox":"1"};
</script>
<script id="third-party-integrations-script-js-before">
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({"adBlockerEnabled":true,"arenaId":"","audience":"consumer","ccpaOptedOut":"false","environment":"wp_production","sessionNumber":"@TODO","firstSessionDate":"@TODO","lastSessionDate":"@TODO","timestamp":1789094982,"url":"https:\/\/www.pcworld.com\/article\/439918\/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html","triblioPixelCode":"","isAdapexActive":true,"prodIds":"","prodCategories":"","prodManufacturers":"","prodNames":"","prodVendors":"","productBlocks":"","categories":"Security Software and Services, Technology Industry","categoryIds":"2092, 1896","categoriesSlugs":"security, technology-business","channel":"security","primaryCategory":"Security Software and Services","primaryAncestorCategoryList":"Security Software and Services","primaryAncestorCategoryListSlugs":"security","ancestorGoldenCategories":"security, technology-business","goldenTaxonomyIdPrimary":"941","gtaxPrimaryIdsList":"941","gtaxPrimarySlugsList":"security","gtaxIdList":"941, 683","gtaxList":"Security Software and Services, Technology Industry","bcGtaxIdList":[941,683],"bcGtaxList":["Security Software and Services","Technology Industry"],"language":"English","author":"Lucian Constantin","translation":"no","translationOriginalArticleId":"","translationOriginalPublication":"","translationOriginalLanguage":"","translationOriginalBrand":"","datePublished":"2014-06-19","dateTimePublished":"2014-06-19T07:45:16-07:00","daysSinceUpdated":"4466","dateTimeUpdate":"2014-06-19T07:45:16-07:00","dateUpdate":"2014-06-19","articleId":"439918","articleTitle":"Hacker puts 'full redundancy' code-hosting firm out of business","articleType":"default","isBlog":"false","blogname":"","blogId":"","brandpost":"false","content_type":"News","daysSincePublished":"4466","description":"CodeSpaces.com shut down after a hacker gained access to its Amazon EC2 account and deleted most data, including backups","displayType":"article","fireplace":"false","pageNumber":"1","page_type":"article","platform":"web","podcastSponsored":"false","property":"pcworld","source":"pcworld","sponsorName":"","sponsorshipId":"","tags":[],"legacyCmsId":"2365602","edition":"en-us","articleLocale":"","isInsiderContent":"false","insiderSignedIn":"false","adSuppression":"false","BCUID":"","legacyCmsName":"OneCMS","idgAppID":{"SITE_TYPE":[{"brand":"PCWorld","brand_short":"pcw","connectedhub":"b2c","site":"pcworld.com","sourcecms":"onecms","staff":"PCWorld Staff","type":"delivery"}],"IDG_APP_ID":"4060"},"adestraId":"","linkwrapSuppressed":"false","paragraphCount":0});
(function(){
const isContentPassOn = true;
const isDeAt = ['DE','AT'].indexOf(IDG.geolocation) !== -1; // special case
const isContentPassCookiePresent = function () {
const data = (document.cookie.match(/^(?:.*;)?\s*_cpauthhint\s*=\s*([^;]+)(?:.*)?$/) || [,null])[1]; //eslint-disable-line
console.log('^^CP cookie value = '+data);
if (data) return true;
return false
};
const fireGtm = function(){
console.log('^^GTM Firing');
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-WMR8FDR6');
};
console.log('^^Content pass is active =',isContentPassOn);
if(isContentPassOn) {
const userHasCPCookie = isContentPassCookiePresent(); //does the user have the Content pass cookie
console.log('^^User has contentpass cookie=',userHasCPCookie, ', User is DE/AT =',isDeAt);
if(userHasCPCookie || isDeAt){
document.addEventListener('consentManagerReady', () => {
if(consentManager.gdprApplies) {
const hasConsent = consentManager.checkConsentByVendor('Google Inc');
console.log('^^ContentPass on and GTM consent =',hasConsent);
if(hasConsent===true)fireGtm();
} else {//not gdpr so fire
fireGtm();
}
});
} else {//no cookie so fire
fireGtm();
}
} else {
fireGtm();
}
})();
// Permutive Stub
!function(n,e,i){if(!n){n=n||{},window.permutive=n,n.q=[],n.config={}||{},n.config.apiKey=e,n.config.environment=n.config.environment||"production";for(var o=["addon","identify","track","trigger","query","segment","segments","ready","on","once","user","consent"],r=0;r<o.length;r++){var t=o[r];n[t]=function(e){return function(){var i=Array.prototype.slice.call(arguments,0);n.q.push({functionName:e,arguments:i})}}(t)}}}( window.permutive,
'84c7e805-5ce9-41f4-b988-3529488bab1c'
);
window.googletag=window.googletag||{},window.googletag.cmd=window.googletag.cmd||[],window.googletag.cmd.push(function(){if(0===window.googletag.pubads().getTargeting("permutive").length){var g=window.localStorage.getItem("_pdfps");window.googletag.pubads().setTargeting("permutive",g?JSON.parse(g):[])}});
let categorySlug = 'security';
const stripOutIllegal = s => s.replace(/[~'"=!+#;^()<>&[]]/g,'');
window.ntvConfig = window.ntvConfig || {} ;
window.ntvConfig.keyValues = window.ntvConfig.keyValues || {};
const segs = localStorage.getItem('_pnativo');
if (segs) {
window.ntvConfig.keyValues.permutive = JSON.parse(segs).join(",");
}
const metaKeywordsTag = document.querySelector("meta[name='keywords']");
if ( metaKeywordsTag && (metaKeywordsTag.hasAttribute('content')) ) {
const kwds = metaKeywordsTag.content.split(',').filter(kw => kw.length <= 40);
window.ntvConfig.keyValues.contextual = stripOutIllegal(kwds.join(','));
}
[categorySlug].forEach(function(val) {
if (val.length !== 0) {
window.ntvConfig.keyValues.channel = stripOutIllegal(val);
}
});
if (typeof(window.ntvConfig.keyValues.channel) === "undefined") {
window.ntvConfig.keyValues.channel = "";
}
const doSomething = () => {
const boxes = document.querySelectorAll('.nativo-loading');
boxes.forEach(box => {
box.classList.remove('nativo-loading');
});
}
var ntv=ntv||{};ntv.cmd=ntv.cmd||[]; // setup command queue
ntv.cmd.push(function(){ setTimeout(doSomething, 1000) });
window._io_config = window?._io_config || {};
window._io_config["0.2.0"] = window?._io_config["0.2.0"] || [];
window._io_config["0.2.0"].push({"page_url":"https:\/\/www.pcworld.com\/article\/439918\/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html","page_url_canonical":"","page_title":"Hacker puts \u2018full redundancy\u2019 code-hosting firm out of business | PCWorld","page_type":"article","page_language":"en","article_authors":["No Author"],"article_type":"News","article_publication_date":"Thu, 19 Jun 2014 7:45:16 PDT","article_categories":["Security Software and Services"],"article_subcategories":["Technology Industry"]});
</script>
<script src="https://www.pcworld.com/wp-content/client-mu-plugins/idg-third-party/dist/scripts/index.js?ver=1789061449" id="third-party-integrations-script-js"></script>
<script type="text/javascript" src="https://www.pcworld.com/_static/??-eJydzEsKhDAMANALTSYK4mchc5ZOUzSl1pBExNvrGVy93cNTIO7VU3WMhR9gO0DKsXA1ZFrAV1YCCeoXEpujRWVxw3xKCVfSb7YPvm9E058JAtkT/ba5Hcap6duum/INaHU55g==" ></script><script async src="https://cdn.onthe.io/io.js/kLODPBip38nZ?ver=1" id="io_script_code-js"></script>
<script type="text/javascript" src="https://www.pcworld.com/_static/??-eJzTLy/QzcxLzilNSS3WzwKiwtLUokoopZebmaeXVayjj0+Rbm5melFiSSpUsX2uraG5hbmZgYmFhUUWAK/QIjE=" ></script><script type="text/javascript" src="https://www.pcworld.com/wp-content/themes/idg-b2b-base-theme/dist/scripts/custom-multiselect.js?m=1789061450g" ></script>
<script src="https://cp.pcworld.com/now.js" async fetchPriority="high" onerror="cp('fatal', arguments)"></script>
<!-- ContentPass configuration -->
<script type="text/javascript" data-description="contentpass integration">
/**
* If contentpass is enabled, we need the acps param,
* otherwise, we need type GDPR that will be called from
* client-mu-plugins/idg-third-party/src/modules/sourcepoint.js#L140.
*/
window._sp_.config.gdpr.targetingParams.acps = 'false';
window._sp_.config.isSPA = true;
(function() {
// get contentpass configuration details
var contentpassBaseUrl = 'https://cp.pcworld.com';
var contentpassPropertyId = 'f99d735d';
var cpController = contentpassBaseUrl + '/now.js';//todo - never used?
!function(C,o,n,t,P,a,s){C.CPObject=n,C[n]||(C[n]=function(){
for(var e=arguments.length,i=new Array(e),c=0;c<e;c++)i[c]=arguments[c];const[r,u,l]=i;if(C[n].q||(C[n].q=[]),
t=Array.prototype.slice.call(arguments,0),!C[n].patched&&("fatal"===r&&u&&(C[n].le=u,
Array.prototype.forEach.call(C[n].q,(function(e){"error"===e[0]&&"function"==typeof e[1]&&e[1](u)}))),
"error"===r&&"function"==typeof u&&C[n].le&&u(C[n].le),"extension"===r&&u&&l&&"function"==typeof l.init&&(l.init(),
l.initialized=!0),"authenticate"===r&&u)){try{
P=-1===(o.cookie||"").indexOf("_cpauthhint=")&&!(C.localStorage||{})._cpuser&&-1===C.location.href.toLowerCase().indexOf("cpauthenticated")
}catch(e){P=!1}P&&(a={isLoggedIn:function(){return!1},hasValidSubscription:function(){return!1}},
"function"==typeof u&&u(null,a),t=["authenticate",null])}C[n].q.push(t)});try{
((s=(o.cookie.split("_cpauthhint=")[1]||"").split(";")[0])?Number(s[1]):NaN)>0&&(o.body?o.body.classList.add("cpauthenticated"):o.addEventListener("DOMContentLoaded",(function(){
o.body.classList.add("cpauthenticated")})))}catch(e){}C[n].l=+new Date,C[n].sv=5}(window,document,"cp");
// Will activate contentpass and initialize basic interfaces for
// communicating with contentpass.
cp('create', contentpassPropertyId, {
baseUrl: contentpassBaseUrl
});
// This function will trigger rendering of the Sourcepoint consent layer. First, it will check
// whether the current user is an authenticated contentpass user. If so, the targeting parameter
// acps is set to the string value 'true' (important: the value is not a bool, but a string!).
// If the user is not an authenticated contentpass user, the targeting parameter is set to
// 'false'. Make sure to not show the consent layer when the targeting parameter is set to 'true'
// in your Sourcepoint scenario. When login status is determined, Sourcepoint is automatically
// triggered by calling window._sp_.executeMessaging().
cp('render', {
onFullConsent: function() {
console.log('[CP] onFullConsent');
//! set the below or use the above code
//window.visitorConsentedAll = true;
// Init advertising here
//
// Attention:
// When you update your vendor list without asking for re-consent
// then Sourcepoint does not signal full consent for previously
// fully consented visitors. Thus this callback is not executed,
// and partially consented impressions are not monetized at all!
//
// We therefore strongly recommend to configure your Sourcepoint
// scenario setup to always ask for re-consent on vendor updates.
//
// Alternatively you can always load vendors specifically based
// on their respective consent status according to the TCF API.
// You can find a sample integration for this on
// https://docs.contentpass.net/docs/3rdparty
}
});
(function () {
cp('authenticate', function(err, user) {
if (err || (!user.isLoggedIn() && !user.hasValidSubscription())) {
(function spExecMsg(attempt) {
var maxAttempts = 100;
if (window._sp_ && window._sp_.executeMessaging) {
if (!window._sp_.config.isSPA) {
console.warn('###### Contentpass [SPCP] Sourcepoint not in SPA mode!');
} else if (window._sp_.version) {
console.log('###### Contentpass [SPCP] Sourcepoint already running');
} else {
console.log('###### Contentpass [SPCP] Starting Sourcepoint');
window._sp_.executeMessaging();
}
return;
}
if (attempt >= maxAttempts) {
console.warn('###### Contentpass [SPCP] Sourcepoint not loaded. Stopping retry.');
return;
}
setTimeout(function () {
spExecMsg(attempt + 1);
}, 100);
})(0);
}
if (user.isLoggedIn() && user.hasValidSubscription()) {
console.log('###### Contentpass user.isLoggedIn() && hasValidSubscription. Setting acps to true');
window._sp_.config.gdpr.targetingParams.acps = 'true';
window.cpLoggedInUser = true;
}
window.cpLoggedInUser = window.cpLoggedInUser || false;
});
})();
})();
</script>
<!-- ContentPass configuration end -->
<script>
window.blocksForConsent = {
"instagram": {
"platform": "instagram",
"platformName": "Instagram.com",
"selector": ".wp-block-embed-instagram",
"privacyPolicyLink": 'instagram_privacy_policies',
"callback": "instagramCallback()"
},
"megaphone": {
"platform": "megaphone",
"platformName": "Megaphone.fm",
"selector": ".wp-block-embed-megaphone, iframe[data-src*=\"megaphone\"]",
"privacyPolicyLink": 'megaphone_privacy_policies',
"callback": "megaphoneCallback()"
},
"slideshare": {
"platform": "slideshare",
"platformName": "Slideshare.net",
"selector": "iframe[data-src*=\"slideshare.net\"]",
"privacyPolicyLink": 'slideshare_privacy_policies',
"callback": "slideshareCallback()"
},
"facebook": {
"platform": "facebook",
"platformName": "Facebook.com",
"selector": ".embed_url_facebook, iframe[data-src*=\"facebook\"]",
"privacyPolicyLink": 'facebook_privacy_policies',
"callback": "loadFacebookEmbed()"
},
"twitter": {
"platform": "twitter",
"platformName": "Twitter.com",
"selector": ".wp-block-embed-twitter",
"privacyPolicyLink": 'twitter_privacy_policies',
"callback": "twitterCallback()"
},
"x": {
"platform": "x",
"platformName": "X.com",
"selector": ".wp-block-embed-x",
"privacyPolicyLink": 'twitter_privacy_policies',
"callback": "twitterCallback()"
},
"youtube": {
"platform": "youtube",
"platformName": "Youtube.com",
"selector": ".wp-block-embed-youtube, [data-type=\"youtube\"], .youtube-video .video-container",
"privacyPolicyLink": 'toutube_privacy_policies',
"callback": "youtubeCallback()"
},
"tiktok": {
"platform": "tiktok",
"platformName": "Tiktok.com",
"selector": ".wp-block-embed-tiktok",
"privacyPolicyLink": 'tiktok_privacy_policies',
"callback": "tiktokCallback()"
},
"infogram": {
"platform": "infogram",
"platformName": "Infogram.com",
"selector": ".infogram-embed",
"privacyPolicyLink": 'infogram_privacy_policies',
"callback": "infogramCallback()"
},
"applepodcast": {
"platform": "apple",
"platformName": "Apple.com",
"selector": ".apple_podcasts iframe",
"privacyPolicyLink": 'apple_podcast_privacy_policies',
"callback": "loadApplePodcastplayer()"
},
"jetpackpodcastplayer": {
"platform": "jetpack",
"platformName": "Jetpack.com",
"selector": ".wp-block-jetpack-podcast-player",
"privacyPolicyLink": 'jetpack_podcast_player_privacy_policies',
"callback": "loadPodcastplayer()"
},
"flourish": {
"platform": "flourish",
"platformName": "Flourish.studio",
"selector": ".flourish-chart",
"privacyPolicyLink": 'flourish_privacy_policies',
"callback": "flourishCallback()",
"vendorName": "Flourish"
},
"vimeo": {
"platform": "vimeo",
"platformName": "Vimeo.com",
"selector": ".wp-block-embed-vimeo",
"privacyPolicyLink": 'vimeo_privacy_policies',
"callback": "vimeoCallback()"
},
"soundcloud": {
"platform": "soundcloud",
"platformName": "Soundcloud.com",
"selector": ".wp-block-embed-soundcloud",
"privacyPolicyLink": 'soundcloud_privacy_policies',
"callback": "soundcloudCallback()"
},
"giphy": {
"platform": "giphy",
"platformName": "Giphy.com",
"selector": ".wp-block-jetpack-gif",
"privacyPolicyLink": 'giphy_privacy_policies',
"callback": "giphyCallback()"
},
"reddit": {
"platform": "reddit",
"platformName": "Reddit.com",
"selector": ".wp-block-embed-reddit",
"privacyPolicyLink": 'reddit_privacy_policies',
"callback": "redditCallback()"
},
"spotify": {
"platform": "spotify",
"platformName": "Spotify.com",
"selector": ".wp-block-embed-spotify",
"privacyPolicyLink": 'spotify_privacy_policies',
"callback": "spotifyCallback()"
},
"bluesky": {
"platform": "bluesky",
"platformName": "Bluesky.com",
"selector": ".wp-block-embed-bluesky-social,.wp-block-embed-bluesky",
"privacyPolicyLink": 'bluesky_privacy_policies',
"callback": "blueskyCallback()"
},
"linkedin": {
"platform": "linkedin",
"platformName": "LinkedIn.com",
"selector": "iframe[data-src*=\"linkedin.com\"]",
"privacyPolicyLink": 'linkedin_privacy_policies',
"callback": "linkedinCallback()"
}
};
function getOverlayMessage(platform, platformName, privacyPolicyLink, foundryPPLink, callback, cmpType) {
let customHTMLTextOverlay = window?.IDG?.settings?.overlays_privacy_policies?.consent_overlays?.english_overlay_message ?? '';
customHTMLTextOverlay = customHTMLTextOverlay.replace(/\$\{platformName\}/g, platformName).replace(/\$\{privacyPolicyLink\}/g, privacyPolicyLink).replace(/\$\{foundryPPLink\}/g, foundryPPLink).replace(/\$\{platform\}/g, platform).replace(/\$\{callback\}/g, callback).replace(/\$\{cmp\}/g, cmpType);
return customHTMLTextOverlay;
}
function setOverlayCookie(name, value, days) {
let expires = "";
if (days) {
const date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function getOverlayCookie(name) {
const nameEQ = name + "=";
const ca = document.cookie.split(';');
for(let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) === ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
function renderOverlay(element, platform, platformName, ppLink, foundryPPLink, callback, cmpType) {
const cookieName = `hide-overlay-${platform}`;
const consentGiven = getOverlayCookie(cookieName);
console.log('[Consent] renderOverlay cookieName %s consent given %s',cookieName, consentGiven);
if (consentGiven !== 'true') {
const overlayNextExists = jQuery(element).next(`.${cookieName}`).length > 0;
const overlayPrevExists = jQuery(element).prev(`.${cookieName}`).length > 0;
if (!overlayNextExists && !overlayPrevExists) {
const textOverlay = getOverlayMessage(platform, platformName, ppLink, foundryPPLink, callback, cmpType);
jQuery(textOverlay).insertAfter(element);
jQuery(element).hide();
}
} else {
jQuery(element).show();
//eval(callback);
window[callback.split('(')[0]]();//dont think any of the have actual arguments
const src = element.getAttribute('src');
const dataSrc = element.getAttribute('data-src');
console.log('[Consent] renderOverlay src %s dataSrc %s',src, dataSrc);
if (dataSrc ) {
element.setAttribute('src', dataSrc); // Move data-src to src
}
}
}
function showOverlays(cmpType) {
console.log('[Consent] showOverlays cmpType ',cmpType);
const blocksForConsent = window?.blocksForConsent ?? [];
Object.entries(blocksForConsent).forEach(function([key, value]) {
//key = slideshare, twitter etc
const { platform, platformName, selector, privacyPolicyLink, callback } = value;
const elements = document.querySelectorAll(`${selector}`);
// selector for iframes and scripts within 'legacy_content' for the custom blcok.
const legacySelector = `.legacy_content iframe[data-src*="${platform}"], .legacy_content script[src*="${platform}"], .legacy_content script[data-src*="${platform}"], .legacy_content blockquote[class*="${platform}"]`;
// Select all iframes and scripts within the div with class 'legacy_content' that match the dynamic selectors.
const legacyElements = document.querySelectorAll(legacySelector);
const ppLink = window?.IDG?.settings?.overlays_privacy_policies?.[privacyPolicyLink]?.[cmpType];
const foundryPPLink = window?.IDG?.settings?.overlays_privacy_policies?.foundry_privacy_policies?.[cmpType];
elements.forEach(function(element) {
renderOverlay(element, platform, platformName, ppLink, foundryPPLink, callback, cmpType)
});
legacyElements.forEach(function(element) {
renderOverlay(element, platform, platformName, ppLink, foundryPPLink, `renderCustomBlockInLegacyContent('${platform}', '${callback}')`, cmpType);
});
});
}
</script>
<script>
/**
* Load podcast player if user accepted consent
**/
function iframeLoaded( podcastIframe ) {
if( podcastIframe ) {
const height = podcastIframe.contentWindow.document.body.scrollHeight + 'px';
podcastIframe.style.height = height;
}
}
function loadPodcastplayer(){
const podcastElements = document.querySelectorAll('.wp-block-jetpack-podcast-player');
if( podcastElements ){
let count = 1;
Array.from(podcastElements).map(function(element) {
if (!element.querySelector('iframe')) {
let postId = element.getAttribute('post_id');
let podcastIframe = document.createElement("iframe");
const siteUrl = document.location.origin;
podcastIframe.src = siteUrl+"/podcast-player?id="+postId+"&position="+count+'&_ajaxnonce=c7ee6f6444';
podcastIframe.width = "100%";
podcastIframe.frameBorder ="0";
podcastIframe.scrolling = "0";
podcastIframe.style.border= "none";
podcastIframe.scrolling = "no";
element.appendChild(podcastIframe);
podcastIframe.onload = function() {
setTimeout( function() { iframeLoaded( podcastIframe ); }, 1000);
};
count++;
}
});
}
}
/**
* Load Apple podcast-block if user accepted consent
**/
function loadApplePodcastplayer(){
const applePodcastElements = document.querySelectorAll('.apple_podcasts iframe');
if( applePodcastElements ){
Array.from(applePodcastElements).map(function(element) {
const dataSrc = element.getAttribute('data-url');
const dataHeight = element.getAttribute('data-height');
element.src = dataSrc;
element.height = dataHeight;
});
}
}
/**
* Load custom HTML block if user accepted consent
*/
function customHTMLCallback() {
jQuery('.legacy_content iframe, .legacy_content script, .legacy_content img').each(function(index, element) {
const dataSrc = jQuery(element).attr('data-src');
if(dataSrc) {
if( element.nodeName.toLowerCase() === 'script' ) {
let genericScript = document.createElement("script");
genericScript.type = "text/javascript";
genericScript.async = true;
genericScript.src = dataSrc;
element.parentNode.insertBefore(genericScript, element);
element.remove();
} else {
jQuery(element).attr('src', jQuery(element).attr('data-src'));
}
jQuery(element).show();
}
});
jQuery("[class*='custom-html-consent-notice-']").hide();
}
function loadTaboola() {
window._taboola = window._taboola || [];
_taboola.push({article:'auto'});
!function (e, f, u, i) {
if ( !document.getElementById(i)) {
e.async = 1;
e.src = u;
e.id = i;
f.parentNode.insertBefore(e, f);
}
}
( document.createElement('script'), document.getElementsByTagName('script')[0], '//cdn.taboola.com/libtrc/foundry-network/loader.js' ,'tb_loader_script' );
if(window.performance && typeof window.performance.mark == 'function') {
window.performance.mark('tbl_ic');
}
}
function renderCustomBlockInLegacyContent(selector, callback) {
const legacySelector = `.legacy_content iframe[data-src*="${selector}"], .legacy_content script[src*="${selector}"], .legacy_content script[data-src*="${selector}"], .legacy_content blockquote[class*="${selector}"], .legacy_content img[data-src*="${selector}"]`;
jQuery(legacySelector).each(function(index, element) {
if( element.nodeName.toLowerCase() === 'script' ) {
let genericScript = document.createElement("script");
genericScript.async = true;
genericScript.src = jQuery(element).attr('data-src');
element.parentNode.insertBefore(genericScript, element);
element.remove();
} else {
jQuery(element).attr('src', jQuery(element).attr('data-src'));
}
jQuery(element).show();
});
//eval(callback);
console.log('[Consent] renderCustomBlockInLegacyContent calling callback');
window[callback.split('(')[0]]();//dont think any of the have actual arguments
}
/**
* Load Spotify if user accepted consent.
*/
/**
* Load bluesky if user accepted consent.
*/
document.addEventListener('consentManagerReady', () => {
const debug = consentManager.debug;
if(debug)console.log('#### Widget Consent Check consentRequired %s', consentManager.consentRequired);
let vendors = [];
if(loadPodcastplayer)
vendors.push({
name: "Podigee",
callback: loadPodcastplayer,
consentOk: false
});
if(loadApplePodcastplayer)
vendors.push({
name: "Apple Podcasts",
callback: loadApplePodcastplayer,
consentOk: false
});
vendors.push({
name: "Taboola",
callback: loadTaboola,
consentOk: false
});
//if we need consent then check if - includes US optout too
if(consentManager.consentRequired === true){
vendors.forEach( (vendor)=>{
const vendorNames = (vendor.checkAdditional ?? []);
vendorNames.push(vendor.name);// array of primary i.e. name and additionals
//must pass all
vendor.consentOk = vendorNames.every( name => {
return consentManager.checkConsentByVendor(name) === true;
});
});
} else {
//no consent needed could default to this above
vendors.forEach( (vendor)=>{
vendor.consentOk = true;
});
}
//no specific vendor - need all or not applicable
if( ( consentManager.consentRequired && consentManager.consentedAll ) || !consentManager.consentRequired){
setTimeout(customHTMLCallback, 0);
if(debug)console.log('#### Widget Consent Allowing Custom');
}else if ( consentManager.consentRequired && !consentManager.consentedAll ) {
if(consentManager.gdprApplies === true)showOverlays('gdpr');
else if(consentManager.usOptOutApplies === true)showOverlays('ccpa');//todo - gpp too?
}
vendors.forEach( (vendor)=>{
if(vendor.consentOk) {
if(debug)console.log('#### Widget Consent Allowing %s', vendor.name);
try {
setTimeout(vendor.callback, 0);
} catch (error) {
console.error('#### Widget Consent Callback Error - FIX ME %s', vendor.name, error);
}
}else{
if(debug)console.log('#### Widget Consent Denying %s', vendor.name);
}
});
});
</script>
<style>img#wpstats{display:none}</style>
<script type="application/ld+json">[{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pcworld.com"},{"@type":"ListItem","position":2,"name":"Security Software and Services","item":"https:\/\/www.pcworld.com\/security"}]},{"@context":"https:\/\/schema.org","@type":"NewsArticle","url":"https:\/\/www.pcworld.com\/article\/439918\/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html","publisher":{"@type":"Organization","name":"PCWorld","url":"https:\/\/www.pcworld.com","logo":{"@type":"ImageObject","url":"https:\/\/www.pcworld.com\/wp-content\/uploads\/2022\/02\/pcworld-red.svg"}},"author":{"@type":"Organization","name":"PCWorld"},"name":"Hacker puts 'full redundancy' code-hosting firm out of business","headline":"Hacker puts 'full redundancy' code-hosting firm out of business","articleBody":"A code-hosting and project management services provider was forced to shut down operations indefinitely after a hacker broke into its cloud infrastructure and deleted customer data, including most of the company\u2019s backups.The customers of CodeSpaces.com, run by a company based in Wayne, New Jersey, called AbleBots, were informed Wednesday that their data might have been permanently lost following the compromise of the company\u2019s account on Amazon\u2019s Elastic Compute Cloud (EC2).The devastating security breach happened over a span of 12 hours and initially started with a distributed denial-of-service attack followed by an attempt to extort money from the company.The attacker also gained access to Cloud Spaces\u2019 control panel on EC2 and deleted the company\u2019s digital assets from Amazon\u2019s infrastructure when the company tried to regain control of its account.\u201cWe finally managed to get our panel access back but not before he had removed all EBS [Amazon Elastic Block Store] snapshots, S3 [Amazon Simple Storage Service] buckets, all AMI\u2019s [Amazon Machine Images], some EBS instances and several machine instances,\u201d Cloud Spaces said in an announcement on its website. \u201cIn summary, most of our data, backups, machine configurations and offsite backups were either partially or completely deleted.\u201dAccording to a cached version of the Cloud Spaces site, the company said that \u201cmore than 200 companies a week\u201d used the service.It\u2019s not clear how the attacker managed to gain access to the company\u2019s backups, especially since Cloud Spaces boasted before the attack that its hosting services had full redundancy, high availability and performed real-time backups to multiple off-site locations. The company had also claimed to have \u201ca full recovery plan that has been proven to work and is, in fact, practiced.\u201dDespite those assurances, it seems that a single security incident was enough to put the company out of business.\u201cCode Spaces will not be able to operate beyond this point, the cost of resolving this issue to date and the expected cost of refunding customers who have been left without the service they paid for will put Code Spaces in an irreversible position both financially and in terms of on going credibility,\u201d the company said following the security incident. \u201cAs such at this point in time we have no alternative but to cease trading and concentrate on supporting our affected customers in exporting any remaining data they have left with us.\u201dWhile technical details of the actual attack are lacking, the incident overall is an unfortunate example of the challenges companies face when it comes to securing their cloud-based environments and assets.\u201cWhen you don\u2019t control the infrastructure, your options to regain trust in the environment are limited,\u201d said Tim Erlin, director of security and risk, at Tripwire. \u201cA business that relies on cloud-based infrastructure and tools can\u2019t avoid the same kinds of threat modeling and controls required for any organization.\u201dSome businesses act on the misconception that when they put data into the cloud they somehow transfer responsibility and liability to the cloud provider and this is simply not true, said Amichai Shulman, CTO of Imperva.\u201cThe cloud is a tool,\u201d Shulman said. \u201cThe responsibility is with the owner of the data. Businesses have the responsibility to define what is the correct data security and monitoring policy for them.\u201dThe challenge with doing that in the cloud is the lack of visibility into who is accessing the applications, according to Schulman. Fortunately, there are an increasing number of security products that address this problem, for example, by forcing log-ins to cloud accounts through a proxy server that can detect unauthorized locations or unusual activity patterns and enforce restrictions.\u201cCloud services such as EC2 rely heavily on access keys for authentication,\u201d said Craig Young, security researcher at Tripwire. \u201cOne of the big challenges faced by users of these services is how to manage this authentication material securely. We have seen thousands of EC2 accounts abused after storing EC2 keys in public code repositories or inadvertent sharing. When a business relies on a third-party infrastructure it is crucial to solidify backup and disaster recovery plans even more so than with on-premise systems.\u201dSecurity incidents like the one involving Code Spaces are avoidable if companies take effective steps to apply strict automated controls to privileged access and to whitelist applications, said Calum MacLeod, vice president of EMEA at Lieberman Software.Code Spaces should have been using certificate-based authentication in combination with normal user IDs and passwords, MacLeod said. \u201cAdditionally credentials for such a critical application should have been on a schedule of being changed every few hours, combined with continuous discovery of the systems and applications to check if there were any changes to account settings, such as happened here with the creation of new privileged accounts that would allow sustainment of the attacker. In fact, this reads like a cyberattack 101 scenario, where ultimately the victim was breached because of their failure to properly manage privileged credentials.\u201d","wordCount":826,"datePublished":"2014-06-19T07:45:16-07:00","dateModified":"2014-06-19T07:45:16-07:00","keywords":"Security Software and Services,Technology Industry","mainEntityOfPage":"https:\/\/www.pcworld.com\/article\/439918\/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html"}]</script> <script>
window._conv_q = window._conv_q || [];
var _conv_page_type = "News";
var _conv_category_name = "Security Software and Services,Technology Industry";
var _conv_custom_v1 = "";
var _conv_custom_v2 = "article";
var _conv_custom_v3 = "";
(function () {
//document.addEventListener('DOMContentLoaded', function() {
const fireScript = function() {
console.log('[Convert] loading convert script');
const script = document.createElement('script');
script.src = '//cdn-4.convertexperiments.com/v1/js/100411965-100412822.js?environment=production';
script.async = true;
document.head.appendChild(script);
if (consentManager.eventDispatched === true) {
if( consentManager.checkConsentByVendor('Convert') !== false ){
console.log('[Convert]1 Setting cookie consent for Convert _conv_q = ' + (typeof _conv_q));
if (_conv_q) _conv_q.push({ what: "consentGiven" });
}
} else {
document.addEventListener('consentManagerReady', () => {
if( consentManager.checkConsentByVendor('Convert') !== false ){
console.log('[Convert]2 Setting cookie consent for Convert _conv_q = ' + (typeof _conv_q));
if (_conv_q) _conv_q.push({ what: "consentGiven" });
}
});
}
};
const ifCPActiveForGeo = window.IDG?.isCPActiveOnThisGeo === '1';
if (ifCPActiveForGeo && typeof window.cp === 'function') {
document.addEventListener('consentManagerReady', () => {
console.log('[Convert] CP is active for this geo, checking if user is logged in and has valid subscription');
window.cp('authenticate', function (error, user) {
if (error || (user.isLoggedIn() && user.hasValidSubscription())) {
console.log('[Convert] CP user is authenticated and has valid subscription, not loading convert script');
return;// error or CP users, do nothing
} else {
console.log('[Convert] CP user is not authenticated with valid subscription');
fireScript();
}
});
});
} else {
fireScript();
}
//});
}());
</script>
<style>
:root {
/* FAQ*/
--faq-heading-seprator-color: #d8d8d8;
--faq-input-box-border-color: #757575;
--faq-remove-link-color: #ac1f2b;
--faq-heading-color: #141414;
--faq-heading-font-family: "fira-sans", sans-serif;
--faq-title-description-font-family: "myriad-pro",sans-serif;
--faq-label-color: #AAA;
--faq-company-name-font-color: #75757A;
--faq-horizontal-line-color: #DEDEDE;
/* Image Text*/
--image-translation: "Image: ";
/* Brandpost template Text*/
--brandpost-light-color: #fff;
--brandpost-dark-color: #000;
/*JW player for Floating Player */
--jw_min_height_970: ;
--jw_max_height_970: ;
--jw_min_height_728: ;
--jw_max_height_728: ;
--jw_min_height_320: ;
--jw_max_height_320: ;
/* Base. */
--base--font-family: "canada-type-gibson", sans-serif;
--base--font-color: #111;
/* fonts */
--fira-sans-semibold: 700;
--heading--index-font-size: 18.72px;
/* headings */
--heading-three: 24px;
--heading-four: 20px;
--heading-three-line-height: 30px;
/* Blockquote. */
--blockquote--font-family: "canada-type-gibson", sans-serif;
--blockquote--font-color: #4d4d4d;
--blockquote--border-color: #5b7186;
--blockquote--font-size: 20px;
--blockquote--line-height: 28px;
--blockquote--citation-color: #111;
--blockquote--citation-font-size: 16px;
--blockquote--citation-line-height: 24px;
/* Pullquote */
--pullquote--max-width: 617px;
--pullquote--quotation-color: #cd0912;
--pullquote--quotation-font-size: 112px;
--pullquote--cite-color: #111;
--pullquote--cite-font-size: 16px;
--pullquote--text-color: #4d4d4d;
--pullquote--text-font-size: 28px;
--pullquote--quotation-font-weight: 800;
/* Social Links */
--social-link-color: #39c;
/* Text Link. */
--text-link--font-color: #2a7da7;
--text-link--hover--font-color: #2a7da7;
--text-link--active--font-color: #2a7da7;
--text-link--visited--font-color: #2a7da7;
/* Skip Link */
--skip-link--font-color: #fff;
--skip-link--background-color: #3a3a3a;
/* Heading. */
--heading--font-family: "canada-type-gibson", sans-serif;
--heading--font-color: #111;
--heading--link--font-color: #2a7da7;
--heading--index-font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
--heading--index-font-color: #000000;
/** Block - Price Comparison */
--price-comparison--border-color: #ccc;
--price-comparison--header--font-family: "canada-type-gibson", sans-serif;
--price-comparison--header--font-color: #fff;
--price-comparison--header--letter-spacing: 0.78px;
--price-comparison--header--background-color: #cd0912;
--price-comparison--record--font-family: "canada-type-gibson", sans-serif;
--price-comparison--record--border-color: #ccc;
--price-comparison--delivery-text--font-color: #3E3E3E;
--price-comparison--view-button--background-color: #2a7da7;
--price-comparison--view-button--hover--color: #3399cc;
--price-comparison--view-button--border--color: #2a7da7;
--price-comparison--view-button--border-hover--color: #3399cc;
--price-comparison--view-button--letter-spacing: 0.72px;
--price-comparison--footer--font-color: #666666;
--price-comparison--view-more-button--font-color: #cd0912;
/** Block - Product chart */
--product-chart--title--font-family: "canada-type-gibson", sans-serif;
--product-chart--information-label--font-family: "canada-type-gibson", sans-serif;
--product-chart--information-value--font-color: #1b7ea1;
--product-chart--review-link--font-color: #1b7ea1;
--product-chart--description--font-color: #4D4D4D;
--product-chart--separator--background-color: #404040;
--product-price-comparison--record--border-color: #e2e1e1;
/** Block - Product chart Pros and Cons */
--product-chart--pros-cons-title--font-family:"canada-type-gibson", sans-serif;
--product-chart--pros-cons-title--font-color: #111111;
--product-chart--pros-cons-border: 1px solid #ccc;
/** Block - Product widget */
--product-widget--border-color: #ccc;
--product-widget--block-title--background-color: #cd0912;
--product-widget--block-title--font-color: #fff;
--product-widget--block-title--letter-spacing: 0.78px;
--product-widget--block-title--font-family: "canada-type-gibson", sans-serif;
--product-widget--title--font-family: "canada-type-gibson", sans-serif;
--product-widget--title--font-color: #111111;
--product-widget--information-label--font-family: "canada-type-gibson", sans-serif;
--product-widget--information-value--font-color: #1b7ea1;
/* Button Primary. */
--button-primary--font-color: #fff;
--button-primary--border-color: #cd0912;
--button-primary--background-color: #cd0912;
--button-primary--enter--font-color: #fff;
--button-primary--enter--border-color: #cd0912;
--button-primary--enter--background-color: #cd0912;
--button-primary--hover--font-color: #fff;
--button-primary--hover--border-color: #024050;
--button-primary--hover--background-color: #024050;
--button-primary--visited--font-color: #fff;
--button-primary--visited--border-color: #cd0912;
--button-primary--visited--background-color: #cd0912;
--button-primary--border-radius: 4px;
/* Button Outline. */
--button-outline--font-color: #cd0912;
--button-outline--border-color: #cd0912;
--button-outline--enter--font-color: #fff;
--button-outline--enter--border-color: #cd0912;
--button-outline--enter--background-color: #cd0912;
--button-outline--border-radius: 4px;
/* Footer. */
--footer--background-color: #3a3a3a;
--footer--border-color: #d8d8d8;
--footer--logo-width: 200px;
/* Navigation Primary. */
--navigation-primary--font-family: "canada-type-gibson", sans-serif;
--navigation-primary--font-color: #111;
--navigation-primary--hover--font-color: #2a7da7;
--navigation-primary--background-color: #39c;
--navigation-primary--logo-width: 140px;
/* Navigation Logo Bar. */
--navigation-logo-bar--background-color: #39c;
--navigation-logo-bar--logo-width: 235px;
/* Navigation Secondary. */
--navigation-secondary--font-family: "canada-type-gibson", sans-serif;
--navigation-secondary--font-color: #4d4d4d;
--navigation-secondary--title--font-family: "proxima-nova-condensed", sans-serif;
--navigation-secondary--title--font-color: #db7900;
--navigation-secondary--border-color: #d8d8d8;
--navigation-secondary--social-icon-color: #4d4d4d;
/* Navigation Mobile. */
--navigation-mobile--font-family: "canada-type-gibson", sans-serif;
--navigation-mobile--font-color: #111;
--navigation-mobile--scroll-bar-color: #39c;
--navigation-mobile--button-color: #4d4d4d;
--navigation-mobile--menu-button-color: #2a7da7;
/* Hero. */
--hero--title-color: #3a3a3a;
--hero--border-color: #e8e8e8;
/* Article Feed */
--articleFeed--border-color: #dedede;
--articleFeed--meta--font-color: #4d4d4d;
/* Author Meta. */
--meta--posted-on--font-color: #757575;
/* Single Article. */
--single-article--border-color: #cccccc;
--single-article--bio--font-color: #4d4d4d;
--single-article--social--font-color: #888888;
--single-article--first-byline-border-color: #111;
--single-article--second-byline-border-color: #888;
/* Figcaptions. */
--figcaption--font-family: "canada-type-gibson", sans-serif;
--figcaption--font-color: #4d4d4d;
/* Image. */
--image--border-color: #ccc;
--imagecredit--font-color: #757575;
/* Eyebrows. */
--eyebrow--default--font-family: "proxima-nova-condensed", sans-serif;
--eyebrow--default--font-color: #5b7186;
--eyebrow--default--font-weight: 700;
--eyebrow--default--letter-spacing: 0.4px;
--eyebrow--sponsered--font-family: "proxima-nova-condensed", sans-serif;
--eyebrow--sponsered--font-color: #ac1f2b;
--eyebrow--sponsered--font-weight: 700;
--eyebrow--sponsered--letter-spacing: 0.4px;
/* Nativo / sponsored content eyebrow color */
--eyebrow--sponsered--content--font-color: #b95804;
--eyebrow--sponsered--dealpost--font-family: "canada-type-gibson", sans-serif;
--eyebrow--sponsered--dealpost--font-color: #4d4d4d;
--eyebrow--sponsered--dealpost--font-size: 13px;
--eyebrow--sponsered--dealpost--letter-spacing: 0;
--eyebrow--sponsered--dealpost--line-height: 20px;
--hero-eyebrow--default--font-family: "proxima-nova-condensed", sans-serif;
--hero-eyebrow--default--font-color: #fff;
--hero-eyebrow--default--font-weight: 500;
--hero-eyebrow--default--letter-spacing: auto;
--hero-eyebrow--default--background-color: #3a3a3a;
--eyebrow--sponsored--sponsored-by--font-color: #111111;
--eyebrow--sponsered--sponsored-by--font-family: "canada-type-gibson", sans-serif;
--eyebrow--sponsored--sponsored-by--font-size: 14px;
--eyebrow--sponsored--sponsored-by--letter-spacing: 0;
--eyebrow--sponsored--sponsored-by--line-height: 20px;
/* Tab Navigation */
--tab-navigation--background-color: transparent;
--tab-navigation--font-family: "canada-type-gibson", sans-serif;
--tab-navigation--font-color: #4D4D4D;
--tab-navigation--default--border-color: #D8D8D8;
--tab-navigation--active--border-color: #39c;
--tab-navigation--text-hover--border-radius: 2px;
--tab-navigation--text-hover--font-color: #297BA8;
--tab-navigation--text-hover--background-color: #E5F2FA;
--tab-navigation--text-active--font-color: #297BA8;
--tab-navigation--text-active--background-color: #E5F2FA;
--tab-navigation--text-visited--font-color: #297BA8;
--tab-navigation--text-visited--background-color: #E5F2FA;
--tab-navigation--button--font-color: #fff;
--tab-navigation--button--border-color: #2a7da7;
--tab-navigation--button--background-color: #2a7da7;
--tab-navigation--button--hover--font-color: #fff;
--tab-navigation--button--hover--border-color: #3f8ab0;
--tab-navigation--button--hover--background-color: #3f8ab0;
--tab-navigation--button--visited--font-color: #fff;
--tab-navigation--button--visited--border-color: #2a7da7;
--tab-navigation--button--visited--background-color: #2a7da7;
--tab-navigation--button--border-radius: 2px;
--tab-navigation--group--background-color: #fff;
/* Sponsorship Header. */
--sponsorship-header--font-color: #4d4d4d;
/* Sponsored Links */
--sponsored-links--title--font-color: #888888;
--sponsored-links--border-color: #d8d8d8;
/* Google Search. */
--google-search--title--font-family: "canada-type-gibson", sans-serif;
--google-search--title--font-color: #111;
--google-search--snippet--font-family: "canada-type-gibson", sans-serif;
--google-search--snippet--font-color: #4d4d4d;
/* JW Player. */
--jw-player-border-color: #ccc;
--jw-player-title-color: #111;
--jw-player-close-btn-color: #111;
/* Insider Popover.*/
--insider-popover-background-color: white;
--insider-popover-box-shadow-color: rgba(0, 0, 0, .31);
--insider-popover-help-text-color: #4a4a4a;
--insider-popover-signing-button-text-color: white;
--insider-popover-signin-button-background: #322a2a;
--insider-popover-signout-button-background: #ac1f2b;
--insiderPopover-welcome-font-color: #141414;
/* Publication list pop-up pn edit edition page */
--publication-list-container-bg: rgba(255, 255, 255, 1);
--publication-list-container-border: #111;
--publication-list-container-bs: #222;
--publication-list-bg:rgba(100, 100, 100, .6);
--publication-list-popup-header-border: #ddd;
--publication-list-popup-header-bg: #e9e9e9;
/* Right Rail Resource Block Variables */
--rr-resource-block-container-border-top: #ac1f2b;
--rr-resource-block-container-border-bottom: #dedede;
--rr-resource-block-container-header-font-color: #322a2a;
--rr-resource-block-container-header-after-font-color: #ac1f2b;
--rr-resource-block-eyebrow-font-color: #75757a;
--rr-resource-block-title-font-color: #141414;
/* Right Rail BrandPost Block Variables */
--rr-brandpost-block-container-background-color: #ebebeb;
--rr-brandpost-block-container-header-font-color: #b95804;
--rr-brandpost-block-container-header-learnmore-font-color: #322a2a;
--rr-brandpost-block-eyebrow-font-color: #322a2a;
--rr-brandpost-block-title-font-color: #141414;
--rr-brandpost-block-learnmore-background-color: #fff;
--rr-brandpost-block-learnmore-border-color: #979797;
--rr-brandpost-block-learnmore-font-color: #111;
--rr-brandpost-block-learnmore-cross-font-color: #70767b;
/* EndNote block */
--end-note-article-link: darkcyan;
/* Home Page Resource Block Variables */
--home-page-resource-block-container-border-top: #ac1f2b;
--home-page-resource-block-container-header-font-color: #322a2a;
--home-page-block-container-header-after-font-color: #ac1f2b;
--home-page-resource-block-eyebrow-font-color: #75757a;
--home-page-resource-block-item-border-color: #ccc;
--home-page-resource-block-title-font-color: #141414;
--home-page-resource-block-desc-font-color: #322a2a;
--home-page-resource-block-button-color: #b30000;
--home-page-resource-block-button-hover-font-color: #fff;
/* Article page */
--article-page-home-breadcrumb: #111;
--article-page-eyebrow-font-color: #b30000;
--article-page-subheading-font-color: #141414;
--article-page-tag-background-color: #D7D7CE;
/* Sponsorships brandpost Section */
--sponsorship-archive-breadcrumb-font-color: #111111;
--sponsorship-sponsorship-section-paragraph-color: #4D4D4D;
--sponsorship-eyebrow_text_inner-anchor-color: #111111;
--sponsorship-brandpost-divider-line-color: #D8D8D8;
--sponsors-brandpost-font-family: "canada-type-gibson", sans-serif;
--sponsors-brandpost-paragraph-font-family: "canada-type-gibson", sans-serif;
/*Sponsored Index Page */
--sponsored-index-page-slug-background-color: #eee;
--sponsorship-brandpost--title: 28px;
--sponsorship-title--line-height: 32px;
--uppercase-text: uppercase;
--sponsor-eyebrow--font-color: #75757A;
--sponsor-tooltip-learn-more--font-color: #111111;
--sponsorship-brandpost--title-color: #111111;
/* Fake Sidebar Styles*/
--fake-sidebar--default--font-weight: bold;
--fake-sidebar--default--line-height: 30px;
--fake-sidebar--default--font-size: 20px;
/*Lineup Element*/
--lineup-element-error-font-color: #ac1f2b;
--lineup-element-disabled-button-background-color: #ddd;
--lineup-element-disabled-button-font-color: #eee;
--lineup-element-button-tooltip-background-color: #757575;
--lineup-element-button-tooltip-font-color: #fff;
--lineup-element-note-font-color: #757575;
--lineup-element-button-disabled: hsla(0,0%,100%,.4);
/* LineUp Popover.*/
--lineup-popover-a-color: white;
--lineup-popover-err-color: red;
--lineup-popover-th-color: #d4d4d4;
--lineup-popover-tr-color: #f2f2f2;
--lineup-popover-paginate-a-active-color: #ddd;
--lineup-popover-paginate-a-non-active-color: #006ba1;
/* Deals Collection Block */
--deal-collection-productIndex-border-color: #12C7F1;
--deal-collection-border-color: #1e1e1e;
--deal-collection-deal-header-color: #000;
--deal-collection-deal--view-button--background-color: #2a7da7;
--deal-collection-deal-price-color: #ac1f2b;
--site-primary: #3399cc;
/* Pagination */
--pagination-color: #ac1f2b;
--pagination-hover-color: #e3e3e3;
--pagination-bg-color: #FFFFFF;
--pagination-text-color: #000000;
--pagination-hover-bor-color: #2b7da7;
/* Newsletter */
--newsletter-pre-publish-border-bottom-color: #ddd;
--newsletter--pre-publish-notice-background-color: #ecb3b3;
--newsletter-slotting-warning: #ffcc00;
--newsletter-block-note-font-color: #757575;
--newsletter-live-status-background-color: #1a3f03de;
--newsletter-block-field-border-color: #757575;
--newsletter-block-edit-button-color: #1e1e1e;
/* How to - at a glance block */
--how-to-remove-link-color: #ac1f2b;
--how-to-glance-input-border: #8c8f94;
/* Content Feed Block */
--content-feed-text-link--font-color: #a9a9a9;
--jw-player-branding: url("https://www.pcworld.com/wp-content/uploads/2021/09/pcworld-tv.svg");
/* Price Comparision search */
--price-comparision: #141414;
--price-search-text: #757575;
--search-field: #a6a4a4;
--price-comparision--description: #4d4d4d;
--price-comparison--default: #000;
--sec--border-bottom: #b0b1b3;
}
</style>
<link rel="shortcut icon" href="https://www.pcworld.com/wp-content/themes/pcworld-child-theme/src/static/img/favicon.ico" type="image/x-icon">
<link rel="icon" href="https://www.pcworld.com/wp-content/themes/pcworld-child-theme/src/static/img/favicon-32x32.png" type="image/png" sizes="32x32">
<link rel="icon" href="https://www.pcworld.com/wp-content/themes/pcworld-child-theme/src/static/img/favicon-16x16.png" type="image/png" sizes="16x16">
<meta name="msapplication-TileColor" content="#cd0912">
<meta name="theme-color" content="#ffffff">
<style>
:root {
/*Host Speaker Profile*/
--host-speaker-profile-heading-color: #141414;
--host-speaker-profile-heading-font-family: inherit;
--host-speaker-profile-title-description-font-family: inherit;
--host-speaker-title-color: #808080;
--host-speaker-description-color: #141414;
--host-speaker-label-color: #AAA;
--host-speaker-remove-link-color: #c30e0e;
--host-speaker-horizontal-line-color: #DEDEDE;
--host-speaker-company-name-font-color: #75757A;
/* Agenda Block */
--agenda-heading-event-name-color: #141414;
--agenda-heading-font-family: inherit;
--agenda-event-name-font-family: inherit;
--agenda-horizontal-block-divider-color: #dedede;
--agenda-event-month-day-date-color: #322a2a;
--agenda-event-month-date-color: #969696;
--agenda-start-end-time-color: #75757a;
--agenda-error-msg-color: #FF0000;
--agenda-day-time-text-shadow-color: #808080;
--agenda-note-text-color: #808080;
--agenda-label-text-color: #111;
--agenda-multi-day-button-background-color: #000;
--agenda-multi-day-button-text-color: #fff;
--agenda-heading-label-color: #AAA;
--agenda-details-link-color: #327F7C;
--agenda-block-mobile-background-color: #f5f5f5;
/*event content block */
--event-register-btn-bg-color: #ed1b24;
--event-register-btn-color: #fff;
--event-share-icons-color: white;
--event-share-icons-color-fb: #3b5998;
--event-share-icons-color-twitter: #00acee;
--event-share-icons-color-linkedin: #2867b2;
--event-description-top-border: #d8dad8;
--event-details-label-color: #B30000;
--event-details-text-color: #141414;
--event-logo-label: inherit, sans-serif;
--event-description-text-color: #322a2a;
--who-should-attend-heading: inherit;
--who-should-attend-text: inherit, sans-serif;
/* Event Index Page */
--border-color: #75757a;
--filter-background-color: #F6F6F6;
--base-font-color: #322a2a;
--index-more-events-title-color: #141414;
--myraid-font-family: inherit;
--myriad-regular: 400;
--myriad-bold: 700;
--base--global-white-color: #fff;
--base--global-black-color: #000;
--index-events-title-font-hover-color: #B30000;
/* Image Credit */
--image-credit-font-color: #555;
--image-credit-text: "Credit: ";
--event-hero-block-heading-color: #fff;--event-hero-dynamic-background-image: none; }
</style>
<style>
:root {
/* FAQ*/
--faq-heading-seprator-color: #d8d8d8;
--faq-input-box-border-color: #757575;
--faq-remove-link-color: #c30e0e;
--faq-heading-color: #141414;
--faq-heading-font-family: inherit;
--faq-title-description-font-family: inherit;
--faq-label-color: #AAA;
--faq-company-name-font-color: #75757A;
--faq-horizontal-line-color: #DEDEDE;
--faq-head-title--font-family: "graphik", sans-serif;
}
</style>
<style>
:root {
--min-height-970: 148px;--min-height-728: 284px;--min-height-320: 284px; }
</style>
<style>
:root {
--nav-menu-error: #b32d2e;
--promo-unit-hr: #d55d5d;
--promo-unit-title-after: #d04949;
--promo-unit-title: #322a2a;
--promo-unit-before-one: #e42e22;
--promo-unit-before-two: #f3f5f6;
--promo-unit-item-bg: #000;
/* Deals Collection Block */
--deal-collection-productIndex-border-color: #12C7F1;
--deal-collection-deal-header-color: #000;
--deal-collection-deal--view-button--background-color: #21873A;
--deal-collection-deal-price-color: #CD0912;
--site-primary: #3399cc;
--view-button--green: #3e873a;
/* Jobs Collection Block */
--job-collection-productIndex-border-color: #12C7F1;
--job-collection-job-header-color: #000;
--job-collection-job--view-button--background-color: #21873A;
--job-collection-job-price-color: #CD0912;
/* Publication list pop-up pn edit edition page */
--publication-list-container-bg: rgba(255, 255, 255, 1);
--publication-list-container-border: #111;
--publication-list-container-bs: #222;
--publication-list-bg:rgba(100, 100, 100, .6);
--publication-list-popup-header-border: #ddd;
--publication-list-popup-header-bg: #e9e9e9;
/*Lineup Element*/
--lineup-element-error-font-color: #cd423b;
--lineup-element-disabled-button-background-color: #ddd;
--lineup-element-disabled-button-font-color: #eee;
--lineup-element-button-tooltip-background-color: #757575;
--lineup-element-button-tooltip-font-color: #fff;
--lineup-element-note-font-color: #757575;
--lineup-element-button-disabled: hsla(0,0%,100%,.4);
/* LineUp Popover.*/
--lineup-popover-a-color: white;
--lineup-popover-err-color: red;
--lineup-popover-th-color: #d4d4d4;
--lineup-popover-tr-color: #f2f2f2;
--lineup-popover-paginate-a-active-color: #ddd;
--lineup-popover-paginate-a-non-active-color: #006ba1;
/* Slotting settings */
--slotting-settings-taxonomy-help-text-color: #808080;
/* Author section top */
--sponsorship-brandpost-divider-line-color: #D8D8D8;
/* Author Archive Page */
--author-archive-title: rgba(0, 0, 0, .87);
--author-job-title: #000;
--author-share-icons-divider-color: #D8D8D8;
--author-share-icon-fill-color: #111;
/* Sponsors index Page */
--sponsored-index-page-slug-background-color: #eee;
--sponsorship-brandpost--title: 28px;
--sponsorship-title--line-height: 32px;
--uppercase-text: uppercase;
--sponsor-eyebrow--font-color: #75757A;
--sponsor-tooltip-learn-more--font-color: #111111;
--sponsorship-brandpost--title-color: #111111;
/** Block - Price Comparison */
--price-comparison--border-color: #2A7DA7;
--price-comparison--header--font-family: "proxima-nova-condensed", sans-serif;
--price-comparison--header--font-color: #fff;
--price-comparison--header--letter-spacing: 0.78px;
--price-comparison--header--background-color: #2A7DA7;
--price-comparison--record--font-family: "proxima-nova", sans-serif;
--price-comparison--record--border-color: #C7C7C7;
--price-comparison--delivery-text--font-color: #3E3E3E;
--price-comparison--view-button--background-color: #21873A;
--price-comparison--view-button--hover--color: #86D54B;
--price-comparison--view-button--letter-spacing: 0.72px;
--price-comparison--footer--font-color: #666666;
--price-comparison--view-more-button--font-color: #2A7DA7;
/** Block - Product chart */
--product-chart--title--font-family: "proxima-nova", sans-serif;
--product-chart--information-label--font-family: "proxima-nova", sans-serif;
--product-chart--information-value--font-color: #2A7DA7;
--product-chart--review-link--font-color: #2A7DA7;
--product-chart--description--font-color: #4D4D4D;
--product-chart--separator--background-color: #404040;
--product-price-comparison--record--border-color: #e2e1e1;
/** Block - Product chart Pros and Cons */
--product-chart--pros-cons-title--font-family:"proxima-nova", sans-serif;
--product-chart--pros-cons-title--font-color: #111111;
--product-chart--pros-cons-border: 1px solid #ccc;
/** Block - Product widget */
--product-widget--border-color: #878787;
--product-widget--block-title--background-color: #2A7DA7;
--product-widget--block-title--font-color: #fff;
--product-widget--block-title--letter-spacing: 0.78px;
--product-widget--block-title--font-family: "proxima-nova-condensed", sans-serif;
--product-widget--title--font-family: "proxima-nova", sans-serif;
--product-widget--title--font-color: #111111;
--product-widget--information-label--font-family: "proxima-nova", sans-serif;
--product-widget--information-value--font-color: #2A7DA7;
/* How to - at a glance block */
--how-to-at-glance-text-font-family: "canada-type-gibson", sans-serif;
--how-to--step-heading--font-family: "regis", serif;
--how-to--step-border--divider-color: #B6AEAA;
--how-to--at-a-glance--background-color: #E6DCD5;
/* Sponsorship Header. */
--sponsorship-header--font-color: #4d4d4d;
/* fonts */
--fira-sans-semibold: 700;
/* responsive table gradient */
--core-table--gradient--border-color: #C5C5C5;
--core-table--gradient--alpha--border-color: #faf6f445;
/* headings */
--heading-three: 24px;
--heading-four: 20px;
--heading-three-line-height: 30px;
/* Insider Popover.*/
--insider-popover-background-color: white;
--insider-popover-box-shadow-color: rgba(0, 0, 0, .31);
--insider-popover-help-text-color: #4a4a4a;
--insiderPopover-link-color: #322a2a;
--insider-popover-signing-button-text-color: white;
--insider-popover-signin-button-background: #4a3d3d;
--insider-popover-signout-button-background: #b43017;
--insiderPopover-welcome-font-color: #141414;
/* Listing Button */
--insider-listing-primary-button-background : #4e4242;
--insiderPopover-link-hover-color:#3c807c;
--mercury-form--insider-color: #6eae00;
}
</style>
<meta name="displaytype" content="article" />
<meta name="content_type" content="News" />
<meta name="language" content="English" />
<meta name="source" content="https://www.pcworld.com/article/439918/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html" />
<link rel="canonical" href="https://www.pcworld.com/article/439918/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html" />
<meta name="date" content="June 19, 2014" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://www.pcworld.com/article/439918/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html" />
<meta property="og:site_name" content="PCWorld" />
<meta property="og:title" content="Hacker puts ‘full redundancy’ code-hosting firm out of business" />
<meta property="og:description" content="CodeSpaces.com shut down after a hacker gained access to its Amazon EC2 account and deleted most data, including backups" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:url" content="https://www.pcworld.com/article/439918/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html" />
<meta property="twitter:site" content="PCWorld" />
<meta property="twitter:title" content="Hacker puts ‘full redundancy’ code-hosting firm out of business" />
<meta property="twitter:description" content="CodeSpaces.com shut down after a hacker gained access to its Amazon EC2 account and deleted most data, including backups" />
<meta name="description" content="CodeSpaces.com shut down after a hacker gained access to its Amazon EC2 account and deleted most data, including backups" />
<!-- There is no amphtml version available for this URL. --><link rel="icon" href="https://www.pcworld.com/wp-content/uploads/2021/09/cropped-cropped-PCWorld-Site-Icon.png?w=32" sizes="32x32" />
<link rel="icon" href="https://www.pcworld.com/wp-content/uploads/2021/09/cropped-cropped-PCWorld-Site-Icon.png?w=192" sizes="192x192" />
<link rel="apple-touch-icon" href="https://www.pcworld.com/wp-content/uploads/2021/09/cropped-cropped-PCWorld-Site-Icon.png?w=180" />
<meta name="msapplication-TileImage" content="https://www.pcworld.com/wp-content/uploads/2021/09/cropped-cropped-PCWorld-Site-Icon.png?w=270" />
</head>
<body class="wp-singular post-template-default single single-post postid-439918 single-format-standard wp-theme-idg-b2b-base-theme wp-child-theme-pcworld-child-theme static-header theme-pcworld">
<div id="gpt-leaderboard-1" class="advert-sticky ad ad-banner has-ad-prefix is-sticky page-ad advert--bg-pcworld-gray" data-ad-template="banner" data-ofp="false" data-aaad="true"
data-aa-adunit="/8456/IDG.US_CSMB_PCWorld.com/security_section"
data-aa-targeting='{"pos":"ATF"}'>
</div> <div class="section-block--notificationbar" role="region" aria-label="Site notification"></div>
<div id="page" class="site">
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" style="display:none">
<defs>
<symbol id="icon-search-ai" viewBox="0 0 24 24">
<path d="M11.9087 2.26686C12.0905 1.77563 12.7853 1.77563 12.9671 2.26686L13.8718 4.71189C13.9289 4.86633 14.0507 4.9881 14.2052 5.04525L16.6502 5.94999C17.1414 6.13176 17.1414 6.82655 16.6502 7.00832L14.2052 7.91307C14.0507 7.97021 13.9289 8.09198 13.8718 8.24642L12.9671 10.6914C12.7853 11.1827 12.0905 11.1827 11.9087 10.6914L11.004 8.24642C10.9468 8.09198 10.8251 7.97021 10.6706 7.91307L8.2256 7.00832C7.73436 6.82655 7.73436 6.13176 8.2256 5.94999L10.6706 5.04525C10.8251 4.9881 10.9468 4.86633 11.004 4.71189L11.9087 2.26686Z" fill="currentColor" />
<path d="M7.72486 3.74602C7.72309 3.74634 7.72133 3.74667 7.71957 3.747C4.51968 4.34251 2.75 6.74249 2.75 10.0005C2.75 13.7107 5.19081 16.3974 9.34679 16.3974C13.3099 16.3974 15.7134 13.9542 15.9279 10.5102L14.9012 10.6296C14.7816 11.9736 14.2759 13.0787 13.4842 13.8744C12.5748 14.7885 11.2002 15.3825 9.34679 15.3825C7.4934 15.3825 6.11875 14.7885 5.20936 13.8744C4.29731 12.9577 3.76489 11.6305 3.76489 10.0005C3.76489 8.32734 4.28754 7.00442 5.18471 6.10245C5.79958 5.48429 6.63902 5.01496 7.71957 4.78182C7.72254 4.78118 7.72551 4.78054 7.72849 4.7799L7.72486 3.74602Z" fill="currentColor" />
<path d="M15.6681 15.8041C15.4699 15.6059 15.1486 15.6059 14.9505 15.8041C14.7523 16.0022 14.7523 16.3235 14.9505 16.5217L20.5324 22.1036L21.25 21.386L15.6681 15.8041Z" fill="currentColor" />
</symbol>
<symbol id="icon-magnifying-glass" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.5 4C11.333 4 12.6865 4.57379 13.5792 5.46478C14.4734 6.35713 15 7.6619 15 9.30303C15 10.9091 14.4754 12.2169 13.5767 13.1201C12.6807 14.0207 11.3262 14.6061 9.5 14.6061C7.6738 14.6061 6.31932 14.0207 5.42327 13.1201C4.5246 12.2169 4 10.9091 4 9.30303C4 7.65444 4.51498 6.35093 5.39899 5.46219C6.28065 4.57582 7.63092 4 9.5 4ZM9.5 3C13.595 3 16 5.58424 16 9.30303C16 12.9588 13.595 15.6061 9.5 15.6061C5.405 15.6061 3 12.9588 3 9.30303C3 5.58424 5.34 3 9.5 3ZM15.7286 15.0214C15.5333 14.8262 15.2167 14.8262 15.0214 15.0214C14.8262 15.2167 14.8262 15.5333 15.0214 15.7286L20.5214 21.2286L21.2286 20.5214L15.7286 15.0214Z" fill="currentColor" />
</symbol>
<symbol id="icon-layer-group" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.06082 7.98196L11.5184 11.5864C11.8201 11.7548 12.1873 11.7556 12.4897 11.5884L18.9426 8.02034L12.485 4.41588C12.1833 4.24748 11.8161 4.24675 11.5137 4.41393L5.06082 7.98196ZM3.78756 8.41649L11.031 12.4596C11.6344 12.7964 12.3688 12.7979 12.9736 12.4635L20.2141 8.45997C20.5574 8.27015 20.5583 7.777 20.2158 7.58581L12.9724 3.54269C12.369 3.20591 11.6345 3.20444 11.0298 3.5388L3.7893 7.54234C3.44602 7.73215 3.44503 8.2253 3.78756 8.41649ZM5.83179 15.5596L4.80337 14.9855L3.79099 15.5453C3.4477 15.7351 3.44672 16.2283 3.78924 16.4195L11.0327 20.4626C11.6361 20.7994 12.3705 20.8008 12.9752 20.4665L20.2158 16.4629C20.559 16.2731 20.56 15.78 20.2175 15.5888L19.2034 15.0227L18.1727 15.5926L18.9442 16.0233L12.4914 19.5913C12.189 19.7585 11.8218 19.7578 11.5201 19.5894L5.0625 15.9849L5.83179 15.5596ZM4.80337 10.9855L5.83179 11.5596L5.0625 11.9849L11.5201 15.5894C11.8218 15.7578 12.189 15.7585 12.4914 15.5913L18.9442 12.0233L18.1727 11.5926L19.2034 11.0227L20.2175 11.5888C20.56 11.78 20.559 12.2731 20.2158 12.4629L12.9752 16.4665C12.3705 16.8008 11.6361 16.7994 11.0327 16.4626L3.78924 12.4195C3.44672 12.2283 3.4477 11.7351 3.79099 11.5453L4.80337 10.9855Z" fill="currentColor" />
</symbol>
<symbol id="icon-header-back-btn" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3C14.9263 3 17.1512 3.94667 18.6453 5.48436C20.1438 7.02666 21 9.25935 21 12C21 14.6872 20.1458 16.9229 18.6428 18.4807C17.1454 20.0328 14.9194 21 12 21C9.08064 21 6.85464 20.0328 5.35716 18.4807C3.85419 16.9229 3 14.6872 3 12C3 9.25208 3.83549 7.02056 5.31975 5.48173C6.79835 3.94877 9.02006 3 12 3ZM12 2C18.3 2 22 6.1 22 12C22 17.8 18.3 22 12 22C5.7 22 2 17.8 2 12C2 6.1 5.6 2 12 2ZM13.5957 8.35355L10.0602 11.8891C9.86494 12.0843 9.86494 12.4009 10.0602 12.5962L13.5957 16.1317L12.8886 16.8388L9.3531 13.3033C8.76731 12.7175 8.76731 11.7678 9.3531 11.182L12.8886 7.64645L13.5957 8.35355Z" fill="currentColor" />
</symbol>
<symbol id="icon-globe" viewBox="0 0 24 24">
<path d="M19.4 4.8C17.6 3 15 2 12 2C8.9 2 6.4 3 4.6 4.8C2.9 6.6 2 9 2 12C2 14.9 2.9 17.4 4.6 19.2C6.4 21 9 22 12 22C15 22 17.6 21 19.4 19.2C21.1 17.4 22 14.9 22 12C22 9.1 21.1 6.6 19.4 4.8ZM21 11.5H17C17 8.8 16.5 6.5 15.7 4.8C15.4 4.2 15.1 3.7 14.7 3.3C16.3 3.7 17.6 4.4 18.6 5.5C20.1 7 20.9 9 21 11.5ZM12 21C10.9 21 9.9 20.2 9.2 18.7C8.5 17.2 8.1 15 8 12.5H16C15.9 15 15.5 17.2 14.8 18.7C14.1 20.2 13.1 21 12 21ZM8 11.5C8 8.9 8.5 6.8 9.2 5.2C9.9 3.7 10.9 3 12 3C13.1 3 14.1 3.7 14.8 5.2C15.5 6.7 16 8.9 16 11.5H8ZM5.3 5.5C6.3 4.4 7.7 3.7 9.2 3.3C8.9 3.7 8.5 4.2 8.2 4.8C7.4 6.5 7 8.8 6.9 11.5H3C3.1 9 3.9 7 5.3 5.5ZM3 12.5H7C7.1 15.2 7.5 17.5 8.3 19.2C8.6 19.8 8.9 20.3 9.3 20.7C7.7 20.3 6.4 19.6 5.4 18.5C3.9 17 3.1 14.9 3 12.5ZM18.6 18.5C17.6 19.6 16.2 20.3 14.7 20.7C15 20.3 15.4 19.8 15.7 19.2C16.5 17.5 17 15.2 17 12.5H21C20.9 14.9 20.1 17 18.6 18.5Z" fill="currentColor" />
</symbol>
<symbol id="icon-header-angle-down" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.6022 14.5942L6.65242 9.64446L5.94531 10.3516L10.8951 15.3013C11.4808 15.8871 12.4306 15.8871 13.0164 15.3013L17.9661 10.3516L17.259 9.64446L12.3093 14.5942C12.114 14.7895 11.7974 14.7895 11.6022 14.5942Z" fill="currentColor" />
</symbol>
<symbol id="icon-header-angle-up" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.3041 9.9058L17.2538 14.8555L17.9609 14.1484L13.0112 9.19869C12.4254 8.6129 11.4757 8.6129 10.8899 9.19869L5.94012 14.1484L6.64723 14.8555L11.597 9.9058C11.7922 9.71053 12.1088 9.71053 12.3041 9.9058Z" fill="currentColor" />
</symbol>
<symbol id="icon-header-angle-right" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.5942 12.3978L9.64446 17.3476L10.3516 18.0547L15.3013 13.1049C15.8871 12.5192 15.8871 11.5694 15.3013 10.9836L10.3516 6.03387L9.64446 6.74098L14.5942 11.6907C14.7895 11.886 14.7895 12.2026 14.5942 12.3978Z" fill="currentColor" />
</symbol>
<symbol id="icon-circle-bars" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.6453 5.48436C17.1512 3.94667 14.9263 3 12 3C9.02006 3 6.79835 3.94877 5.31975 5.48173C3.83549 7.02056 3 9.25208 3 12C3 14.6872 3.85419 16.9229 5.35716 18.4807C6.85464 20.0328 9.08064 21 12 21C14.9194 21 17.1454 20.0328 18.6428 18.4807C20.1458 16.9229 21 14.6872 21 12C21 9.25935 20.1438 7.02666 18.6453 5.48436ZM22 12C22 6.1 18.3 2 12 2C5.6 2 2 6.1 2 12C2 17.8 5.7 22 12 22C18.3 22 22 17.8 22 12ZM7 10.5V9.5H17V10.5H7ZM7 13.5V14.5H17V13.5H7Z" fill="currentColor" />
</symbol>
<symbol id="icon-circle-xmark" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.6453 5.48436C17.1512 3.94667 14.9263 3 12 3C9.02006 3 6.79835 3.94877 5.31975 5.48173C3.83549 7.02056 3 9.25208 3 12C3 14.6872 3.85419 16.9229 5.35716 18.4807C6.85464 20.0328 9.08064 21 12 21C14.9194 21 17.1454 20.0328 18.6428 18.4807C20.1458 16.9229 21 14.6872 21 12C21 9.25935 20.1438 7.02666 18.6453 5.48436ZM22 12C22 6.1 18.3 2 12 2C5.6 2 2 6.1 2 12C2 17.8 5.7 22 12 22C18.3 22 22 17.8 22 12ZM12 11.2851L15.1777 8.10738L15.8848 8.81449L12.7071 11.9922L15.8934 15.1785L15.1863 15.8856L12 12.6993L8.81374 15.8856L8.10663 15.1785L11.2929 11.9922L8.1152 8.81449L8.8223 8.10738L12 11.2851Z" fill="currentColor" />
</symbol>
</defs>
</svg>
<header id="SiteHeader" class="SiteHeader bg-pcworld-gray">
<div class="container">
<div class="SiteHeader__container">
<div class="SiteHeader__logo">
<a class="" href="https://www.pcworld.com" aria-label="Home page"><svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 169.36 36.72"><defs><style>.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{clip-path:url(#clip-path-2);}.cls-4{fill:#fff;}</style><clipPath id="clip-path"><rect class="cls-1" width="169.36" height="36.72"/></clipPath><clipPath id="clip-path-2"><rect class="cls-1" width="169.36" height="36.72"/></clipPath></defs><g id="PCWorld_Reverse_" data-name="PCWorld (Reverse)"><g class="cls-2"><g class="cls-3"><path class="cls-4" d="M6.15,25v11H0V2.4H9.52c9.32,0,14.42,1.45,14.42,10.67,0,9.67-7,11.93-11.78,11.93Zm0-17.45V19.23h5.19c4.47,0,6.35-1.54,6.35-6.11,0-3.84-1.35-5.57-6.49-5.57Z"/><path class="cls-4" d="M25.16,19.23c0-10.58,7-17.5,16.59-17.5a23,23,0,0,1,9.56,2l-.67,5.87a22.49,22.49,0,0,0-8.89-1.93c-6.54,0-9.86,4.86-9.86,11.59s3.32,11.58,9.86,11.58a22.66,22.66,0,0,0,8.89-1.92l.67,5.86a22.88,22.88,0,0,1-9.56,2c-9.61,0-16.59-6.92-16.59-17.49"/><polygon class="cls-4" points="87.97 36.05 82.53 36.05 75.03 13.6 67.58 36.05 61.77 36.05 52.3 2.4 58.69 2.4 65.42 26.29 72.92 2.4 77.2 2.4 84.98 25.67 91.43 2.4 97.82 2.4 87.97 36.05"/><path class="cls-4" d="M94.54,24.08c0-6.73,4.47-12.45,12.16-12.45s12.16,5.72,12.16,12.45-4.47,12.45-12.16,12.45S94.54,30.81,94.54,24.08m6.1,0c0,4.47,2.21,7.55,6.06,7.55s6-3.08,6-7.55-2.21-7.54-6-7.54-6.06,3.07-6.06,7.54"/><path class="cls-4" d="M133.81,17.26H131.6a4.9,4.9,0,0,0-4.37,2.4V36.05h-6V12h5.58l.15,2.55a9.42,9.42,0,0,1,6.39-2.94H135Z"/><path class="cls-4" d="M144.82,36.53h-2.17c-4.27,0-6.15-2.83-6.15-6.3V0h6V27.78c0,3.85.53,3.85,2.89,3.85Z"/><path class="cls-4" d="M163.73,36.05l-.09-1.34a9.4,9.4,0,0,1-5.87,1.82c-7.69,0-11.77-5.72-11.77-12.45s4.08-12.45,11.77-12.45a9.51,9.51,0,0,1,5.63,1.59V0h6V36.05Zm-11.63-12c0,4.47,2.21,7.55,6.06,7.55s5.53-3.08,5.53-7.55-1.69-7.54-5.53-7.54-6.06,3.07-6.06,7.54"/></g></g></g></svg></a> </div>
<nav class="PrimaryNav" aria-label="Primary">
<ol class="PrimaryNav__list" data-count="8"><li class="PrimaryNav__item"><a href="https://www.pcworld.com/ai" class="PrimaryNav__link"><span class="PrimaryNav__text">Consumer AI</span></a></li><li class="PrimaryNav__item"><a href="https://www.pcworld.com/home-robotics" class="PrimaryNav__link"><span class="PrimaryNav__text">Home Robotics</span></a></li><li class="PrimaryNav__item"><a href="https://www.pcworld.com/pc-performance" class="PrimaryNav__link"><span class="PrimaryNav__text">Performance</span></a></li><li class="PrimaryNav__item"><a href="https://www.pcworld.com/privacy" class="PrimaryNav__link"><span class="PrimaryNav__text">Privacy</span></a></li><li class="PrimaryNav__item"><a href="https://www.pcworld.com/productivity" class="PrimaryNav__link"><span class="PrimaryNav__text">Productivity</span></a></li><li class="PrimaryNav__item"><a href="https://www.pcworld.com/smart-answers" class="PrimaryNav__link"><span class="PrimaryNav__text">Smart Answers</span></a></li><li class="PrimaryNav__item"><a href="https://www.pcworld.com/faq" class="PrimaryNav__link"><span class="PrimaryNav__text">Magazine</span></a></li></ol> </nav>
<div class="HeaderActions">
<div class="HeaderActions__item" data-type="search">
<a href="https://www.pcworld.com/search" class="HeaderActions__link HeaderActions__search">
<span class="sr-only">
Search </span>
<i class="icon-magnifying-glass" aria-hidden="true">
<svg focusable="false" aria-hidden="true">
<use href="#icon-magnifying-glass"></use>
</svg>
</i>
</a>
</div>
<div class="HeaderActions__item" data-type="menu">
<button
class="HeaderActions__trigger"
data-menu-open="default"
type="button"
aria-expanded="false"
aria-controls="MenuAside"
aria-haspopup="true">
<span class="sr-only">
Menu </span>
<i class="icon-circle-bars" aria-hidden="true">
<svg focusable="false" aria-hidden="true">
<use href="#icon-circle-bars"></use>
</svg>
</i>
</button>
</div>
</div>
</div>
</div>
</header>
<nav class="TrendingBar bg-pcworld-gray" aria-label=""><div class="container"><ol class="TrendingBar__list"><li class="TrendingBar__label"><span class="TrendingBar__text">HOT TOPICS</span></li><li class="TrendingBar__item"><a href="https://www.pcworld.com/article/436674/best-pc-laptops.html" class="TrendingBar__link"><span class="TrendingBar__text">Best laptops</span></a></li><li class="TrendingBar__item"><a href="https://www.pcworld.com/article/406870/best-vpn-services-2.html" class="TrendingBar__link"><span class="TrendingBar__text">Best VPNs</span></a></li><li class="TrendingBar__item"><a href="https://www.pcworld.com/article/407277/best-antivirus-for-windows-pc.html" class="TrendingBar__link"><span class="TrendingBar__text">Best antivirus</span></a></li><li class="TrendingBar__item"><a href="https://www.pcworld.com/article/550968/best-laptop-deals-3.html" class="TrendingBar__link"><span class="TrendingBar__text">Laptop deals</span></a></li><li class="TrendingBar__item"><a href="https://www.pcworld.com/article/813362/best-pc-computer-deals.html" class="TrendingBar__link"><span class="TrendingBar__text">Desktop PC deals</span></a></li><li class="TrendingBar__item"><a href="https://www.pcworld.com/article/2999556/best-mini-pc-deals-top-picks-for-performance-gaming-and-more.html" class="TrendingBar__link"><span class="TrendingBar__text">Mini PC deals</span></a></li><li class="TrendingBar__item TrendingBar__item--subscribe"><a href="https://www.pcworld.com/newsletters/signup" class="SubscribeLinkBtn TrendingBar__subscribeBtn"><span class="SubscribeLinkBtn__label">Newsletters</span><span class="SubscribeLinkBtn__icon"><svg viewBox="0 0 16 16" aria-hidden="true" focusable="false"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.66927 4.33594H13.3359C13.52 4.33594 13.6693 4.48517 13.6693 4.66927V11.3359C13.6693 11.52 13.52 11.6693 13.3359 11.6693H2.66927C2.48518 11.6693 2.33594 11.52 2.33594 11.3359V4.66927C2.33594 4.48518 2.48517 4.33594 2.66927 4.33594ZM1.33594 4.66927C1.33594 3.93289 1.93289 3.33594 2.66927 3.33594H13.3359C14.0723 3.33594 14.6693 3.93289 14.6693 4.66927V11.3359C14.6693 12.0723 14.0723 12.6693 13.3359 12.6693H2.66927C1.93289 12.6693 1.33594 12.0723 1.33594 11.3359V4.66927ZM4.27735 5.58397L3.86133 5.30662L3.30662 6.13867L3.72265 6.41603L6.98305 8.58963C7.59887 9.00017 8.40113 9.00017 9.01695 8.58963L12.2774 6.41603L12.6934 6.13867L12.1387 5.30662L11.7227 5.58397L8.46225 7.75758C8.18233 7.94419 7.81767 7.94419 7.53775 7.75757L4.27735 5.58397Z" fill="currentColor"/></svg></span></a></li></ol></div></nav>
<aside id="MenuAside" class="MenuAside" aria-hidden="true" aria-label="Site menu">
<div class="MenuAside__panel">
<header class="MenuAside__header">
<div class="MenuAside__header-left">
<button type="button" class="MenuAside__trigger" data-menu-open="default" aria-controls="MenuAside" aria-haspopup="true" aria-expanded="false">
<i class="icon-header-back-btn" aria-hidden="true">
<svg focusable="false" aria-hidden="true">
<use href="#icon-header-back-btn"></use>
</svg>
</i>
<span>Back</span>
</button>
</div>
<div class="MenuAside__header-right">
<button class="MenuAside__close">
<span class="sr-only">Close</span>
<i class="icon-circle-xmark" aria-hidden="true">
<svg focusable="false" aria-hidden="true">
<use href="#icon-circle-xmark"></use>
</svg>
</i>
</button>
</div>
</header>
<div class="MenuAside__body">
<section
class="MenuAside__section"
data-menu-section="default"
role="region">
<div class="MenuAside__top"></div>
<div class="MenuAside__nav-wrapper">
<nav class="MenuAside__nav">
<div class="MenuGroup MenuGroup--single MenuGroup--search">
<a href="https://www.pcworld.com/search" class="MenuGroup__link" tabindex="0">
<i class="icon-magnifying-glass" aria-hidden="true">
<svg focusable="false" aria-hidden="true">
<use href="#icon-magnifying-glass"></use>
</svg>
</i>
<span class="MenuGroup__label">Search</span>
</a>
</div>
<div class="MenuGroup MenuGroup--single"><a href="https://www.pcworld.com/ai" class="MenuGroup__link"><span class="MenuGroup__label">CONSUMER AI</span></a></div><div class="MenuGroup MenuGroup--single"><a href="https://www.pcworld.com/home-robotics" class="MenuGroup__link"><span class="MenuGroup__label">HOME ROBOTICS</span></a></div><div class="MenuGroup MenuGroup--single"><a href="https://www.pcworld.com/pc-performance" class="MenuGroup__link"><span class="MenuGroup__label">PERFORMANCE</span></a></div><div class="MenuGroup MenuGroup--single"><a href="https://www.pcworld.com/privacy" class="MenuGroup__link"><span class="MenuGroup__label">PRIVACY</span></a></div><div class="MenuGroup MenuGroup--single"><a href="https://www.pcworld.com/productivity" class="MenuGroup__link"><span class="MenuGroup__label">PRODUCTIVITY</span></a></div><div class="MenuGroup"><button type="button" class="MenuGroup__toggle reset-button" id="aside-100193456-toggle" aria-expanded="false" aria-controls="aside-100193456-panel"><span class="MenuGroup__label">BY PRODUCT CATEGORY</span><span class="MenuGroup__icon"><i class="icon-header-angle-down" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-down"></use></svg></i></span></button><div class="MenuGroup__panel" id="aside-100193456-panel" role="region" aria-labelledby="aside-100193456-toggle" aria-hidden="true"><ol class="MenuGroup__list"><li class="MenuGroup__item"><a href="https://www.pcworld.com/accessories" class="MenuGroup__link"><span>Accessories</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/business" class="MenuGroup__link"><span>Business</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/entertainment" class="MenuGroup__link"><span>Entertainment</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/gaming" class="MenuGroup__link"><span>Gaming</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/laptops" class="MenuGroup__link"><span>Laptops</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/mobile" class="MenuGroup__link"><span>Mobile</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/monitors" class="MenuGroup__link"><span>Monitors</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/pc-components" class="MenuGroup__link"><span>Computer Components</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/security" class="MenuGroup__link"><span>Security</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/smart-home-security" class="MenuGroup__link"><span>Smart Home Security</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/software" class="MenuGroup__link"><span>Personal Software</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/storage" class="MenuGroup__link"><span>Storage</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/streaming" class="MenuGroup__link"><span>Streaming</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/wifi-networks" class="MenuGroup__link"><span>Networking</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/windows" class="MenuGroup__link"><span>Windows</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li></ol></div></div><div class="MenuGroup"><button type="button" class="MenuGroup__toggle reset-button" id="aside-100193448-toggle" aria-expanded="false" aria-controls="aside-100193448-panel"><span class="MenuGroup__label">BY STORY TYPE</span><span class="MenuGroup__icon"><i class="icon-header-angle-down" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-down"></use></svg></i></span></button><div class="MenuGroup__panel" id="aside-100193448-panel" role="region" aria-labelledby="aside-100193448-toggle" aria-hidden="true"><ol class="MenuGroup__list"><li class="MenuGroup__item"><a href="https://www.pcworld.com/news" class="MenuGroup__link"><span>News</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/best-picks" class="MenuGroup__link"><span>Best Picks</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/reviews" class="MenuGroup__link"><span>Reviews</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/howto" class="MenuGroup__link"><span>How-To</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/deals" class="MenuGroup__link"><span>Deals</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li></ol></div></div><div class="MenuGroup"><button type="button" class="MenuGroup__toggle reset-button" id="aside-100193522-toggle" aria-expanded="false" aria-controls="aside-100193522-panel"><span class="MenuGroup__label">BLOGS</span><span class="MenuGroup__icon"><i class="icon-header-angle-down" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-down"></use></svg></i></span></button><div class="MenuGroup__panel" id="aside-100193522-panel" role="region" aria-labelledby="aside-100193522-toggle" aria-hidden="true"><ol class="MenuGroup__list"><li class="MenuGroup__item"><a href="https://www.pcworld.com/boost-mode" class="MenuGroup__link"><span>Boost Mode</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/prompt-mode" class="MenuGroup__link"><span>Prompt Mode</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/safe-mode" class="MenuGroup__link"><span>Safe Mode</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/smart-mode" class="MenuGroup__link"><span>Smart Mode</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/full-nerd" class="MenuGroup__link"><span>The Full Nerd</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/cord-cutter-confidential" class="MenuGroup__link"><span>Cord-Cutter Confidential</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/try-this" class="MenuGroup__link"><span>Try This</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li></ol></div></div><div class="MenuGroup"><button type="button" class="MenuGroup__toggle reset-button" id="aside-100193523-toggle" aria-expanded="false" aria-controls="aside-100193523-panel"><span class="MenuGroup__label">EVENTS</span><span class="MenuGroup__icon"><i class="icon-header-angle-down" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-down"></use></svg></i></span></button><div class="MenuGroup__panel" id="aside-100193523-panel" role="region" aria-labelledby="aside-100193523-toggle" aria-hidden="true"><ol class="MenuGroup__list"><li class="MenuGroup__item"><a href="https://www.pcworld.com/annual-awards" class="MenuGroup__link"><span>Annual Awards</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/back-to-school" class="MenuGroup__link"><span>Back to School</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/black-friday" class="MenuGroup__link"><span>Black Friday</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/ces" class="MenuGroup__link"><span>CES</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/computex" class="MenuGroup__link"><span>Computex</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/prime-day" class="MenuGroup__link"><span>Prime Day</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li></ol></div></div><div class="MenuGroup MenuGroup--single"><a href="https://www.pcworld.com/newsletters/signup" class="MenuGroup__link"><span class="MenuGroup__label">NEWSLETTERS</span></a></div><div class="MenuGroup"><button type="button" class="MenuGroup__toggle reset-button" id="aside-100193453-toggle" aria-expanded="false" aria-controls="aside-100193453-panel"><span class="MenuGroup__label">DIGITAL MAGAZINE</span><span class="MenuGroup__icon"><i class="icon-header-angle-down" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-down"></use></svg></i></span></button><div class="MenuGroup__panel" id="aside-100193453-panel" role="region" aria-labelledby="aside-100193453-toggle" aria-hidden="true"><ol class="MenuGroup__list"><li class="MenuGroup__item"><a href="https://simplecirc.com/subscribe/pcworld" target="_blank" class="MenuGroup__link"><span>Digital Magazine - Subscribe</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/faq" class="MenuGroup__link"><span>Digital Magazine - Info</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://simplecirc.com/give_a_gift/pcworld" target="_blank" class="MenuGroup__link"><span>Gift Subscription</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li></ol></div></div><div class="MenuGroup MenuGroup--single"><a href="https://www.pcworld.com/smart-answers" class="MenuGroup__link"><span class="MenuGroup__label">SMART ANSWERS</span></a></div><div class="MenuGroup"><button type="button" class="MenuGroup__toggle reset-button" id="aside-100193409-toggle" aria-expanded="false" aria-controls="aside-100193409-panel"><span class="MenuGroup__label">CLIENT CONTENT</span><span class="MenuGroup__icon"><i class="icon-header-angle-down" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-down"></use></svg></i></span></button><div class="MenuGroup__panel" id="aside-100193409-panel" role="region" aria-labelledby="aside-100193409-toggle" aria-hidden="true"><ol class="MenuGroup__list"><li class="MenuGroup__item"><a href="https://www.pcworld.com/brandposts" class="MenuGroup__link"><span>BrandPosts</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-1password-password-manager-buyers-guide" class="MenuGroup__link"><span>The 1Password Guide to Password Managers</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-avast-online-security-buyers-guide" class="MenuGroup__link"><span>The Avast Online Security Buyer’s Guide</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-dell-2026-buying-guide-laptops-monitors-and-alienware-gaming-gear" class="MenuGroup__link"><span>The Dell 2026 buying guide: Laptops, monitors and Alienware gaming gear</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-dell-and-alienware-2026-wish-list" class="MenuGroup__link"><span>The Dell &amp; Alienware 2026 Wish List</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-easeus-pc-utility-buying-guide" class="MenuGroup__link"><span>The EaseUS PC Utility Buying Guide</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/ecovacs-robot-vacuum-window-cleaner-buying-guide" class="MenuGroup__link"><span>The 2026 ECOVACS Robot Vacuum &amp; Window Robot Buying Guide</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-gigabyte-ai-gaming-laptop-buyers-guide" class="MenuGroup__link"><span>The GIGABYTE AI Gaming Laptop Buyer’s Guide</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/msi-temp" class="MenuGroup__link"><span>The MSI AI PC Buyer’s Guide: From Mini AI PCs to Powerful AI Workstations</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/msi-guide-how-fix-wifi-dead-zones-upgrade-wifi-7-at-home" class="MenuGroup__link"><span>The MSI Guide to Wi-Fi 7: How to Fix Wireless Dead Zones and Upgrade to Wi-Fi 7 at Home</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-msi-guide-to-gaming-peripherals" class="MenuGroup__link"><span>The MSI Guide to Wireless Gaming Peripherals</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-navimow-robot-lawn-mower-buying-guide" class="MenuGroup__link"><span>The Navimow Robot Lawn Mower Buying Guide</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-norton-security-buyers-guide" class="MenuGroup__link"><span>The Norton Security Buyer’s Guide</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-norton-security-uk-buyers-guide" class="MenuGroup__link"><span>The Norton Security UK Buyer’s Guide</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-norton-small-business-security-buyers-guide" class="MenuGroup__link"><span>The Norton Small Business Security Buyer’s Guide</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-optery-guide-to-personal-data-removal" class="MenuGroup__link"><span>The Optery Guide to Personal Data Removal</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-roborock-guide-to-smarter-floor-cleaning" class="MenuGroup__link"><span>The Roborock Guide to Smarter Floor Cleaning</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-rog-custom-gaming-keyboard-buyers-guide" class="MenuGroup__link"><span>How to Choose an ROG Custom Gaming Keyboard</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-seagate-lacie-external-storage-buyers-guide" class="MenuGroup__link"><span>The Seagate &amp; LaCie External Storage Buyer’s Guide</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-t-mobile-5g-and-fiber-home-internet-buying-guide" class="MenuGroup__link"><span>The T-Mobile 5G and Fiber Home Internet Buying Guide</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-tp-link-guide-to-modern-mesh-home-wi-fi" class="MenuGroup__link"><span>The TP-Link Guide to Modern Mesh Home Wi-Fi</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li><li class="MenuGroup__item"><a href="https://www.pcworld.com/the-zotac-gaming-graphics-card-mek-pc-buyers-guide" class="MenuGroup__link"><span>The ZOTAC GAMING Graphics Card &amp; MEK PC Buyer’s Guide</span><i class="icon-header-angle-right" aria-hidden="true"><svg focusable="false" aria-hidden="true"><use href="#icon-header-angle-right"></use></svg></i></a></li></ol></div></div> </nav>
</div>
</section>
</div>
</div>
</aside>
<div id="MenuOverlay" class="MenuOverlay" aria-hidden="true"></div>
<div class="advert">
<div class="container advert__container">
<div class="advert__content">
<div id="gpt-contenthub-article-1" class="ad page-ad has-ad-prefix ad-article ad-contenthubartbanner" data-ad-template="gpt-contenthub-article" data-ofp="false" data-aaad="true" data-aa-adunit="/8456/IDG.US_CSMB_PCWorld.com/security_section" data-aa-targeting='{"pos":"gpt-contenthub"}'></div>
</div>
</div>
</div><main id="primary">
<div class="article-hero">
<div class="container">
<div class="affiliate-disclaimer"><p>When you purchase through links in our articles, we may earn a small commission. This doesn't affect our <a href="https://www.pcworld.com/about/affiliate-link-policy" target="_blank"><u>editorial independence</u></a>.</p></div> <nav class="breadcrumbs-nav" aria-label="Breadcrumb">
<ol class="breadcrumb-list" itemprop="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList">
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="https://www.pcworld.com" >
<span itemprop="name">Home</span>
</a>
<meta itemprop="position" content="1">
</li><li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a itemprop="item" href="https://www.pcworld.com/security" style="pointer-events: auto;">
<span itemprop="name">Security Software and Services</span>
</a>
<meta itemprop="position" content="2">
</li> </ol>
</nav>
<div class="grid article-hero__top">
<div class="col-12 col-8@md col-6@lg col-start-3@lg">
<div class="author">
<div class="author__content">
<div class="author__name">by Lucian Constantin</div>
</div>
</div> </div>
<div class="col-12 col-4@md">
<div class="article-hero__social">
<div class="social-share-menu">
<ul class="social-share-menu__buttons"><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="linkedin" aria-label="Share on LinkedIn">
<i class="icon-linkedin"><svg><use xlink:href="#icon-linkedin"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="bluesky" aria-label="Share on Bluesky">
<i class="icon-bluesky"><svg><use xlink:href="#icon-bluesky"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="x" aria-label="Share on X">
<i class="icon-x"><svg><use xlink:href="#icon-x"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="facebook" aria-label="Share on Facebook">
<i class="icon-facebook"><svg><use xlink:href="#icon-facebook"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="reddit" aria-label="Share on Reddit">
<i class="icon-reddit"><svg><use xlink:href="#icon-reddit"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="email" aria-label="Share via Email">
<i class="icon-email"><svg><use xlink:href="#icon-email"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="print" aria-label="Print">
<i class="icon-print"><svg><use xlink:href="#icon-print"></use></svg></i>
</button>
</li></ul> </div>
</div>
</div>
</div>
<div class="grid article-hero__main">
<div class="col-12 col-9@lg col-start-3@lg">
<h1 class="article-hero__title">Hacker puts ‘full redundancy’ code-hosting firm out of business</h1>
<div class="card">
<div class="card__info">
<span class="card_story">News</span>
</div>
<div class="card__info card__info--light">
<span>Jun 19, 2014</span></div>
</div>
<div class="article-hero__social">
<div class="social-share-menu">
<ul class="social-share-menu__buttons">
<li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="linkedin" aria-label="Share on LinkedIn">
<i class="icon-linkedin"><svg aria-hidden="true"><use xlink:href="#icon-linkedin"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="x" aria-label="Share on X">
<i class="icon-x"><svg aria-hidden="true"><use xlink:href="#icon-x"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="bluesky" aria-label="Share on Bluesky">
<i class="icon-bluesky"><svg aria-hidden="true"><use xlink:href="#icon-bluesky"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="facebook" aria-label="Share on Facebook">
<i class="icon-facebook"><svg aria-hidden="true"><use xlink:href="#icon-facebook"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="reddit" aria-label="Share on Reddit">
<i class="icon-reddit"><svg aria-hidden="true"><use xlink:href="#icon-reddit"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="email" aria-label="Share via Email">
<i class="icon-email"><svg aria-hidden="true"><use xlink:href="#icon-email"></use></svg></i>
</button>
</li><li class="social-share-menu__button">
<button class="social-share-button" type="button" data-platform="print" aria-label="Print">
<i class="icon-print"><svg aria-hidden="true"><use xlink:href="#icon-print"></use></svg></i>
</button>
</li> </ul>
</div>
</div>
</div>
</div>
</div>
</div>
<aside class="social-share-sticky-menu is-collapsed ">
<div class="social-share-sticky-menu__wrapper">
<ol class="social-share-sticky-menu__buttons">
<li class="social-share-sticky-menu__button">
<button class="social-share-button reset-button"
type="button"
data-platform="linkedin"
aria-label="Share on LinkedIn">
<i class="icon-linkedin"><svg aria-hidden="true">
<use xlink:href="#icon-linkedin"></use>
</svg></i>
</button>
</li>
<li class="social-share-sticky-menu__button">
<button class="social-share-button reset-button"
type="button"
data-platform="x"
aria-label="Share on X">
<i class="icon-x"><svg aria-hidden="true">
<use xlink:href="#icon-x"></use>
</svg></i>
</button>
</li>
<li class="social-share-sticky-menu__button">
<button class="social-share-button reset-button"
type="button"
data-platform="bluesky"
aria-label="Share on ">
<i class="icon-bluesky"><svg aria-hidden="true">
<use xlink:href="#icon-bluesky"></use>
</svg></i>
</button>
</li>
<li class="social-share-sticky-menu__button">
<button class="social-share-button reset-button"
type="button"
data-platform="facebook"
aria-label="Share on Facebook">
<i class="icon-facebook"><svg aria-hidden="true">
<use xlink:href="#icon-facebook"></use>
</svg></i>
</button>
</li>
<li class="social-share-sticky-menu__button">
<button class="social-share-button reset-button"
type="button"
data-platform="reddit"
aria-label="Share on Reddit">
<i class="icon-reddit"><svg aria-hidden="true">
<use xlink:href="#icon-reddit"></use>
</svg></i>
</button>
</li>
<li class="social-share-sticky-menu__button">
<button class="social-share-button reset-button"
type="button"
data-platform="email"
aria-label="Share via Email">
<i class="icon-email"><svg aria-hidden="true">
<use xlink:href="#icon-email"></use>
</svg></i>
</button>
</li>
<li class="social-share-sticky-menu__button">
<button class="social-share-button reset-button"
type="button"
data-platform="print"
aria-label="Print this page">
<i class="icon-print"><svg aria-hidden="true">
<use xlink:href="#icon-print"></use>
</svg></i>
</button>
</li>
</ol>
<button type="button" aria-label="Expand/Collapse" class="social-share-sticky-menu__toggle-button">
<div class="social-share-sticky-menu__toggle-button-icon">
<i class="icon-chevron-down"><svg aria-hidden="true">
<use xlink:href="#icon-chevron-down"></use>
</svg></i>
</div>
</button>
</div>
</aside>
<article id="post-439918" class="post-legacy post-439918 post type-post status-publish format-standard category-security category-technology-business languages-en publication-pcworld publication-us-default story_types-news article_type-default origin-onecms link-wrapped-content">
<section class="foundry-layout-article article">
<div class="foundry-layout-grid container grid entry-content">
<div class="foundry-layout-content col-12 col-10@md col-8@lg">
<div class="core">
<div class="article__main">
<header class="article-column grid grid--cols-10@md grid--cols-8@lg">
<div class="col-12 col-10@md col-6@lg col-start-3@lg ">
<div class="article-column__content">
</div>
</div>
</header>
<div id="post-toc"></div><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<div id="remove_no_follow">
<?xml encoding="utf-8" ?><body><div class="grid grid--cols-10@md grid--cols-8@lg article-column">
<div class="col-12 col-10@md col-6@lg col-start-3@lg">
<div class="article-column__content"> <p>A code-hosting and project management services provider was forced to shut down operations indefinitely after a hacker broke into its cloud infrastructure and deleted customer data, including most of the company&rsquo;s backups.</p><p>The customers of CodeSpaces.com, run by a company based in Wayne, New Jersey, called AbleBots, were informed Wednesday that their data might have been permanently lost following the compromise of the company&rsquo;s account on Amazon&rsquo;s Elastic Compute Cloud (EC2).</p><div class="show@md">
<div class="grid grid--cols-10@md grid--cols-8@lg">
<div class="col-12 col-10@md col-6@lg col-start-3@lg">
<div class="advert advert--bleed-right">
<div class="advert__container">
<div class="advert__content">
<div id="gpt-leaderboardmainbod-1" class="ad page-ad has-ad-prefix ad-article" data-ad-template="article" data-ofp="false" data-aaad="true" data-aa-adunit="/8456/IDG.US_CSMB_PCWorld.com/security_section" data-aa-targeting='{"pos":"BTF1"}'></div>
</div>
</div>
</div>
</div>
</div>
</div><p>The devastating security breach happened over a span of 12 hours and initially started with a distributed denial-of-service attack followed by an attempt to extort money from the company.</p><p>The attacker also gained access to Cloud Spaces&rsquo; control panel on EC2 and deleted the company&rsquo;s digital assets from Amazon&rsquo;s infrastructure when the company tried to regain control of its account.<aside class="jwPlayer--floatingContainer" role="complementary" data-nosnippet>
<div id="jwplayer--floatingVideo" class="jwplayer">
<!--js block injected -->
</div>
</aside></p><p>&ldquo;We finally managed to get our panel access back but not before he had removed all EBS [Amazon Elastic Block Store] snapshots, S3 [Amazon Simple Storage Service] buckets, all AMI&rsquo;s [Amazon Machine Images], some EBS instances and several machine instances,&rdquo; Cloud Spaces said in an <a href="https://go.skimresources.com?id=111346X1569483&amp;xs=1&amp;url=https://www.codespaces.com/&amp;xcust=2-0-439918-1-0-0-0-0&amp;sref=https://www.pcworld.com/article/439918/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html" rel="nofollow" data-subtag="2-0-439918-1-0-0-0-0" data-domain-name="codespaces" target="_blank">announcement on its website</a>. &ldquo;In summary, most of our data, backups, machine configurations and offsite backups were either partially or completely deleted.&rdquo;</p><p>According to a <a href="https://go.skimresources.com?id=111346X1569483&amp;xs=1&amp;url=https://cc.bingj.com/cache.aspx?q=http%3a%2f%2fwww.codespaces.com%2ffeatures&amp;d=5060542194591485&amp;mkt=en-US&amp;setlang=en-US&amp;w=2p1U9NgDowf9RNTuOQaX2IWIaozBQL1X&amp;xcust=2-0-439918-1-0-0-0-0&amp;sref=https://www.pcworld.com/article/439918/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html" rel="nofollow" data-subtag="2-0-439918-1-0-0-0-0" data-domain-name="bingj" target="_blank">cached version of the Cloud Spaces site</a>, the company said that &ldquo;more than 200 companies a week&rdquo; used the service.</p><div class="hellobar" id="hello-bar-1"></div><div id="taboola-mid-article-thumbnails"></div><script type="text/javascript">window._taboola = window._taboola || []; _taboola.push({mode: 'alternating-thumbnails-stream-pcworld',container: 'taboola-mid-article-thumbnails',placement: 'Mid Article Thumbnails',target_type: 'mix'});</script><p>It&rsquo;s not clear how the attacker managed to gain access to the company&rsquo;s backups, especially since Cloud Spaces boasted before the attack that its hosting services had full redundancy, high availability and performed real-time backups to multiple off-site locations. The company had also claimed to have &ldquo;a full recovery plan that has been proven to work and is, in fact, practiced.&rdquo;</p><p>Despite those assurances, it seems that a single security incident was enough to put the company out of business.</p><div class="show@md">
<div class="grid grid--cols-10@md grid--cols-8@lg">
<div class="col-12 col-10@md col-6@lg col-start-3@lg">
<div class="advert advert--bleed-right">
<div class="advert__container">
<div class="advert__content">
<div id="gpt-leaderboardmainbod-2" class="ad page-ad has-ad-prefix ad-article" data-ad-template="article" data-ofp="false" data-aaad="true" data-aa-adunit="/8456/IDG.US_CSMB_PCWorld.com/security_section" data-aa-targeting='{"pos":"BTF2"}'></div>
</div>
</div>
</div>
</div>
</div>
</div><p>&ldquo;Code Spaces will not be able to operate beyond this point, the cost of resolving this issue to date and the expected cost of refunding customers who have been left without the service they paid for will put Code Spaces in an irreversible position both financially and in terms of on going credibility,&rdquo; the company said following the security incident. &ldquo;As such at this point in time we have no alternative but to cease trading and concentrate on supporting our affected customers in exporting any remaining data they have left with us.&rdquo;</p><p>While technical details of the actual attack are lacking, the incident overall is an unfortunate example of the challenges companies face when it comes to securing their cloud-based environments and assets.</p><div id="miso-smart-answers-faq"></div><p>&ldquo;When you don&rsquo;t control the infrastructure, your options to regain trust in the environment are limited,&rdquo; said Tim Erlin, director of security and risk, at Tripwire. &ldquo;A business that relies on cloud-based infrastructure and tools can&rsquo;t avoid the same kinds of threat modeling and controls required for any organization.&rdquo;</p><p>Some businesses act on the misconception that when they put data into the cloud they somehow transfer responsibility and liability to the cloud provider and this is simply not true, said Amichai Shulman, CTO of Imperva.</p><div class="hellobar" id="hello-bar-2"></div><div class="show@md">
<div class="grid grid--cols-10@md grid--cols-8@lg">
<div class="col-12 col-10@md col-6@lg col-start-3@lg">
<div class="advert advert--bleed-right">
<div class="advert__container">
<div class="advert__content">
<div id="gpt-leaderboardmainbod-3" class="ad page-ad has-ad-prefix ad-article" data-ad-template="article" data-ofp="false" data-aaad="true" data-aa-adunit="/8456/IDG.US_CSMB_PCWorld.com/security_section" data-aa-targeting='{"pos":"BTF3"}'></div>
</div>
</div>
</div>
</div>
</div>
</div><p>&ldquo;The cloud is a tool,&rdquo; Shulman said. &ldquo;The responsibility is with the owner of the data. Businesses have the responsibility to define what is the correct data security and monitoring policy for them.&rdquo;</p><p>The challenge with doing that in the cloud is the lack of visibility into who is accessing the applications, according to Schulman. Fortunately, there are an increasing number of security products that address this problem, for example, by forcing log-ins to cloud accounts through a proxy server that can detect unauthorized locations or unusual activity patterns and enforce restrictions.</p><div id="miso-ipp"></div><p>&ldquo;Cloud services such as EC2 rely heavily on access keys for authentication,&rdquo; said Craig Young, security researcher at Tripwire. &ldquo;One of the big challenges faced by users of these services is how to manage this authentication material securely. We have seen thousands of EC2 accounts abused after storing EC2 keys in public code repositories or inadvertent sharing. When a business relies on a third-party infrastructure it is crucial to solidify backup and disaster recovery plans even more so than with on-premise systems.&rdquo;</p><p>Security incidents like the one involving Code Spaces are avoidable if companies take effective steps to apply strict automated controls to privileged access and to whitelist applications, said Calum MacLeod, vice president of EMEA at Lieberman Software.</p><div class="show@md">
<div class="grid grid--cols-10@md grid--cols-8@lg">
<div class="col-12 col-10@md col-6@lg col-start-3@lg">
<div class="advert advert--bleed-right">
<div class="advert__container">
<div class="advert__content">
<div id="gpt-leaderboardmainbod-4" class="ad page-ad has-ad-prefix ad-article" data-ad-template="article" data-ofp="false" data-aaad="true" data-aa-adunit="/8456/IDG.US_CSMB_PCWorld.com/security_section" data-aa-targeting='{"pos":"BTF4"}'></div>
</div>
</div>
</div>
</div>
</div>
</div><p>Code Spaces should have been using certificate-based authentication in combination with normal user IDs and passwords, MacLeod said. &ldquo;Additionally credentials for such a critical application should have been on a schedule of being changed every few hours, combined with continuous discovery of the systems and applications to check if there were any changes to account settings, such as happened here with the creation of new privileged accounts that would allow sustainment of the attacker. In fact, this reads like a cyberattack 101 scenario, where ultimately the victim was breached because of their failure to properly manage privileged credentials.&rdquo;</p></div></div></div>
</body></div>
<div class="grid grid--cols-10@md grid--cols-8@lg article-column" id="newsletter-end-wrapper"><div class="col-12 col-10@md col-6@lg col-start-3@lg"><div class="article-column__content"><div id="newsletter-end" class="newsletter"></div></div></div></div><div id="nativo2" class="nativo"></div> </div>
</div>
</div>
<div class="foundry-layout-sidebar col-12 col-10@md col-3@lg col-start-10@lg" id="rightrail-wrapper" data-sticky="true">
<div class="article__side">
</div>
</div>
</div>
</section>
</article>
</main>
<div class="advert">
<div class="container advert__container">
<div class="advert__content">
<div id="gpt-leaderboardfoot-1" class="ad page-ad has-ad-prefix ad-footer" data-ad-template="footer" data-ofp="false" data-aaad="true" data-aa-adunit="/8456/IDG.US_CSMB_PCWorld.com/security_section" data-aa-targeting='{"pos":"BTF"}'></div>
</div>
</div>
</div><div class="taboola_container"><div id="taboola-feed-below-article-thumbnails" data-src="https://www.pcworld.com/article/439918/hacker-puts-full-redundancy-codehosting-firm-out-of-business.html" data-widget-id="alternating-thumbnails-a"></div></div> <script type="text/javascript">
window._taboola = window._taboola || [];
_taboola.push({'article':'auto'});
_taboola.push({
mode: 'alternating-thumbnails-a',
container: 'taboola-feed-below-article-thumbnails',
placement: 'Feed Below Article Thumbnails',
target_type: 'mix'
});
</script>
<svg style="position: absolute; width: 0; height: 0; overflow: hidden;" aria-hidden="true" xmlns="http://www.w3.org/2000/svg">
<defs>
<symbol id="logo-foundry" fill="none" viewBox="0 0 109 27">
<path fill="currentColor" d="M53.82.406c2.039 0 3.223 1.328 3.223 3.223 0 1.896-1.18 3.224-3.247 3.224-2.068 0-3.224-1.352-3.224-3.224S51.752.406 53.82.406ZM45.162 18.93c0 1.328-.125 2.483-.54 3.443-1.108 2.531-3.42 3.863-6.566 3.863-3.147 0-5.583-1.327-6.69-3.863-.421-.96-.54-2.115-.54-3.443V8.672h4.426v10.01c0 .788.048 1.428.273 1.943.468 1.084 1.475 1.476 2.535 1.476.936 0 1.944-.392 2.412-1.476.22-.515.272-1.155.272-1.943V8.672h4.427V18.93h-.01ZM61.121 15.582v10.306h-4.427v-9.986c0-.788-.047-1.427-.272-1.943-.468-1.084-1.475-1.576-2.607-1.576-1.132 0-2.14.492-2.608 1.576-.22.516-.272 1.155-.272 1.943v9.986h-4.427V15.582c0-1.327.124-2.483.54-3.443 1.108-2.53 3.42-3.887 6.762-3.887 3.343 0 5.659 1.352 6.762 3.887.42.96.54 2.116.54 3.443M100.38 15.387l3.639-6.715h4.699l-6.174 11.165v6.05h-4.528v-6.05L91.894 8.672h4.866l3.62 6.715ZM12.325 8.672H0v17.216h4.427v-5.826h7.359v-3.988h-7.36v-3.39h7.9V8.672Z" />
<path fill="currentColor" d="M53.82.406c2.039 0 3.223 1.328 3.223 3.223 0 1.896-1.18 3.224-3.247 3.224-2.068 0-3.224-1.352-3.224-3.224S51.752.406 53.82.406ZM45.162 18.93c0 1.328-.125 2.483-.54 3.443-1.108 2.531-3.42 3.863-6.566 3.863-3.147 0-5.583-1.327-6.69-3.863-.421-.96-.54-2.115-.54-3.443V8.672h4.426v10.01c0 .788.048 1.428.273 1.943.468 1.084 1.475 1.476 2.535 1.476.936 0 1.944-.392 2.412-1.476.22-.515.272-1.155.272-1.943V8.672h4.427V18.93h-.01ZM61.121 15.582v10.306h-4.427v-9.986c0-.788-.047-1.427-.272-1.943-.468-1.084-1.475-1.576-2.607-1.576-1.132 0-2.14.492-2.608 1.576-.22.516-.272 1.155-.272 1.943v9.986h-4.427V15.582c0-1.327.124-2.483.54-3.443 1.108-2.53 3.42-3.887 6.762-3.887 3.343 0 5.659 1.352 6.762 3.887.42.96.54 2.116.54 3.443M86.188 20.453h-2.78v5.435h-4.427V8.672h8.214c3.295 0 5.755 2.188 5.755 5.855 0 2.264-.936 3.983-2.56 5.02l2.655 6.346h-4.723l-2.14-5.435.006-.005Zm-2.78-3.863h2.78c1.647 0 2.359-.788 2.359-2.068 0-1.203-.712-2.044-2.36-2.044h-2.779v4.112Zm2.78 3.863h-2.78v5.435h-4.427V8.672h8.214c3.295 0 5.755 2.188 5.755 5.855 0 2.264-.936 3.983-2.56 5.02l2.655 6.346h-4.723l-2.14-5.435.006-.005Zm-2.78-3.863h2.78c1.647 0 2.359-.788 2.359-2.068 0-1.203-.712-2.044-2.36-2.044h-2.779v4.112ZM62.626 25.888V8.672h6.37c5.582 0 8.854 3.396 8.854 8.61 0 5.215-2.928 8.61-8.587 8.61h-6.642l.005-.004ZM67.052 22h1.844c2.88 0 4.427-1.576 4.427-4.723s-1.552-4.723-4.427-4.723h-1.844V22Zm-4.427 3.887V8.672h6.37c5.583 0 8.855 3.396 8.855 8.61 0 5.215-2.928 8.61-8.587 8.61h-6.642l.005-.004ZM67.053 22h1.844c2.88 0 4.427-1.576 4.427-4.723s-1.552-4.723-4.427-4.723h-1.844V22ZM21.375 8.329c5.19 0 8.266 3.81 8.266 8.953 0 5.144-3.2 8.954-8.266 8.954-5.067 0-8.29-3.786-8.29-8.954 0-5.167 3.223-8.954 8.29-8.954ZM21.351 22.2c2.335 0 3.81-1.943 3.81-4.794 0-3.147-1.475-5.043-3.69-5.043-2.412 0-3.888 1.896-3.888 4.794 0 3.1 1.476 5.043 3.763 5.043m.024-13.873c5.191 0 8.267 3.811 8.267 8.954 0 5.144-3.2 8.954-8.267 8.954-5.067 0-8.29-3.786-8.29-8.954 0-5.167 3.223-8.954 8.29-8.954Zm-.024 13.873c2.335 0 3.811-1.943 3.811-4.794 0-3.147-1.476-5.043-3.691-5.043-2.412 0-3.888 1.896-3.888 4.794 0 3.1 1.476 5.043 3.764 5.043M12.325 8.672H0v17.216h4.427v-5.826h7.359v-3.988h-7.36v-3.39h7.9V8.672Z" />
</symbol>
<symbol id="icon-quote" viewBox="0 0 16 16">
<path fill="currentColor" d="M12.314 13.333c-1.005 0-1.87-.326-2.597-.978-.726-.707-1.089-1.576-1.089-2.61 0-.815.252-1.929.754-3.342.503-1.468 1.564-2.908 3.183-4.321.056-.055.14-.082.252-.082.056 0 .111.027.167.082.056.054.056.108 0 .163-.447.815-.81 1.685-1.089 2.609-.279.87-.14 1.304.42 1.304 1.004 0 1.87.354 2.596 1.06.726.707 1.089 1.55 1.089 2.528 0 1.033-.363 1.902-1.089 2.609-.726.652-1.592.978-2.597.978Zm-8.628 0c-1.005 0-1.871-.326-2.597-.978C.363 11.648 0 10.779 0 9.745c0-.815.251-1.929.754-3.342.503-1.468 1.564-2.908 3.183-4.321.056-.055.14-.082.251-.082.056 0 .112.027.168.082.056.054.056.108 0 .163-.447.815-.81 1.685-1.089 2.609-.28.87-.14 1.304.419 1.304 1.005 0 1.87.354 2.597 1.06.726.707 1.089 1.55 1.089 2.528 0 1.033-.363 1.902-1.09 2.609-.725.652-1.59.978-2.596.978Z" />
</symbol>
<symbol id="icon-rss" viewBox="0 0 16 16">
<path d="M3.66406 11.3359C4.29406 11.3359 4.66406 11.7459 4.66406 12.3359C4.66406 12.9159 4.29406 13.3359 3.66406 13.3359C3.03406 13.3359 2.66406 12.9159 2.66406 12.3359C2.66406 11.7459 3.02406 11.3359 3.66406 11.3359Z" fill="currentColor" />
<path d="M12.5304 12.9852V13.1352H12.6804H13.118H13.268V12.9852C13.268 10.264 12.187 7.65438 10.2629 5.73017L10.1568 5.83624L10.2629 5.73017C8.33866 3.80596 5.72915 2.725 3.00781 2.725H2.85781V2.875V3.31264V3.46264H3.00781C5.53332 3.46264 7.95535 4.46592 9.74124 6.25173C11.5271 8.0377 12.5304 10.4599 12.5304 12.9852Z" fill="currentColor" stroke="currentColor" stroke-width="0.3" />
<path d="M8.26478 13.1652V12.9902C8.26478 11.5961 7.71088 10.2589 6.72502 9.273C6.72501 9.27299 6.72501 9.27299 6.72501 9.27299M8.26478 13.1652L3.00781 7.55827C4.44844 7.55827 5.83003 8.13057 6.84876 9.14925L6.72501 9.27299M8.26478 13.1652H8.43978M8.26478 13.1652H8.43978M6.72501 9.27299C5.7391 8.28713 4.40202 7.73327 3.00781 7.73327H2.83281V7.55827V7.3125V7.1375H3.00781C4.56014 7.1375 6.04869 7.75411 7.14631 8.85174L7.02257 8.97548M6.72501 9.27299L7.02257 8.97548M7.02257 8.97548L7.14631 8.85174C8.24391 9.94936 8.86055 11.438 8.86055 12.9902M7.02257 8.97548L8.86055 12.9902M8.43978 13.1652H8.68555H8.86055M8.43978 13.1652H8.86055M8.86055 13.1652V12.9902M8.86055 13.1652V12.9902" fill="currentColor" stroke="currentColor" stroke-width="0.35" />
</symbol>
<symbol id="icon-bluesky" viewBox="0 0 16 16">
<path d="M7.997 6.88C7.435 5.793 5.911 3.76 4.492 2.759c-1.359-.96-1.879-.794-2.216-.64-.393.18-.463.784-.463 1.138 0 .355.193 2.915.323 3.34.421 1.412 1.914 1.89 3.29 1.735.07-.01.14-.021.214-.028a4.47 4.47 0 0 1-.214.028C3.41 8.63 1.616 9.364 3.97 11.98c2.585 2.676 3.543-.572 4.035-2.223.492 1.647 1.057 4.78 3.986 2.223 2.202-2.223.604-3.35-1.412-3.649a4.47 4.47 0 0 1-.214-.028c.074.01.144.017.214.028 1.377.155 2.873-.323 3.29-1.735.127-.428.324-2.985.324-3.34 0-.354-.07-.958-.464-1.138-.34-.154-.857-.32-2.216.64C10.083 3.762 8.56 5.792 7.997 6.88Z" fill="currentColor" />
</symbol>
<symbol id="icon-facebook" viewBox="0 0 16 16">
<path d="M8.0026 2.33594C9.87894 2.33594 11.2705 2.94094 12.1937 3.89113C13.1214 4.84593 13.6693 6.24529 13.6693 8.0026C13.6693 9.72309 13.1234 11.1255 12.1913 12.0916C11.3742 12.9385 10.1949 13.5185 8.64591 13.6438V10.0727H10.0062L10.2658 8.33228H8.64591V7.20236C8.64591 6.72576 8.87436 6.26255 9.59866 6.26255H10.3359V4.78187C10.3359 4.78187 9.66615 4.66406 9.02753 4.66406C7.69315 4.66406 6.82088 5.49678 6.82088 7.0069V8.33496H5.33594V10.0754H6.82088V13.5799C5.53419 13.3763 4.53354 12.8375 3.81393 12.0916C2.8818 11.1255 2.33594 9.72309 2.33594 8.0026C2.33594 6.23802 2.87143 4.83983 3.78902 3.8885C4.70095 2.94304 6.08933 2.33594 8.0026 2.33594ZM8.0026 1.33594C12.2026 1.33594 14.6693 4.06927 14.6693 8.0026C14.6693 11.8693 12.2026 14.6693 8.0026 14.6693C3.8026 14.6693 1.33594 11.8693 1.33594 8.0026C1.33594 4.06927 3.73594 1.33594 8.0026 1.33594Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" />
</symbol>
<symbol id="icon-linkedin" viewBox="0 0 16 16">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.05661 2.66406C3.27583 2.66406 2.64062 3.29858 2.64062 4.0785C2.64062 4.85876 3.27583 5.49352 4.05661 5.49352C4.83678 5.49352 5.47146 4.85873 5.47146 4.0785C5.4715 3.29858 4.83678 2.66406 4.05661 2.66406ZM5.13075 6.09375H2.9849C2.88967 6.09375 2.8125 6.17095 2.8125 6.26615V13.1598C2.8125 13.2551 2.88967 13.3322 2.9849 13.3322H5.13075C5.22598 13.3322 5.30315 13.2551 5.30315 13.1598V6.26615C5.30315 6.17095 5.22598 6.09375 5.13075 6.09375ZM8.70451 6.71335C9.09094 6.29237 9.72804 5.92188 10.5899 5.92188C13.0068 5.92188 13.3327 7.66898 13.3327 9.37802V13.1593C13.3327 13.2546 13.2555 13.3317 13.1603 13.3317H11.0183C10.9231 13.3317 10.8459 13.2546 10.8459 13.1593V9.80765C10.8459 8.86922 10.7766 8.1514 9.90403 8.1514C9.10284 8.1514 8.79065 8.59917 8.79065 9.74852V13.1593C8.79065 13.2545 8.71348 13.3317 8.61824 13.3317H6.47709C6.38186 13.3317 6.30469 13.2545 6.30469 13.1593V6.26561C6.30469 6.17041 6.38186 6.09321 6.47709 6.09321H8.53211C8.62735 6.09321 8.70451 6.17041 8.70451 6.26561V6.71335Z" fill="currentColor" />
</symbol>
<symbol id="icon-email" viewBox="0 0 16 16">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.66927 4.33594H13.3359C13.52 4.33594 13.6693 4.48517 13.6693 4.66927V11.3359C13.6693 11.52 13.52 11.6693 13.3359 11.6693H2.66927C2.48518 11.6693 2.33594 11.52 2.33594 11.3359V4.66927C2.33594 4.48518 2.48517 4.33594 2.66927 4.33594ZM1.33594 4.66927C1.33594 3.93289 1.93289 3.33594 2.66927 3.33594H13.3359C14.0723 3.33594 14.6693 3.93289 14.6693 4.66927V11.3359C14.6693 12.0723 14.0723 12.6693 13.3359 12.6693H2.66927C1.93289 12.6693 1.33594 12.0723 1.33594 11.3359V4.66927ZM4.27735 5.58397L3.86133 5.30662L3.30662 6.13867L3.72265 6.41603L6.98305 8.58963C7.59887 9.00017 8.40113 9.00017 9.01695 8.58963L12.2774 6.41603L12.6934 6.13867L12.1387 5.30662L11.7227 5.58397L8.46225 7.75758C8.18233 7.94419 7.81767 7.94419 7.53775 7.75757L4.27735 5.58397Z" fill="currentColor" />
</symbol>
<symbol id="icon-x" viewBox="0 0 16 16">
<path d="M9.142 7.081 13.609 2H12.55L8.671 6.412 5.573 2H2l4.685 6.672L2 14h1.059l4.096-4.66L10.427 14H14L9.141 7.081Zm-1.45 1.65-.475-.665L3.44 2.78h1.626l3.048 4.266.475.664 3.962 5.546h-1.626L7.692 8.73Z" stroke="currentColor" stroke-width="0.3" fill="currentColor" />
</symbol>
<symbol id="icon-twitter" viewBox="0 0 16 16">
<path d="M9.142 7.081 13.609 2H12.55L8.671 6.412 5.573 2H2l4.685 6.672L2 14h1.059l4.096-4.66L10.427 14H14L9.141 7.081Zm-1.45 1.65-.475-.665L3.44 2.78h1.626l3.048 4.266.475.664 3.962 5.546h-1.626L7.692 8.73Z" fill="currentColor" />
</symbol>
<symbol id="icon-print" viewBox="0 0 16 16">
<path d="M5 2.33594V5.0026H4V2.33594V1.33594H5H11H12V2.33594V5.0026H11V2.33594H5ZM12 12H12.0026H13.3359C14.0723 12 14.6693 11.403 14.6693 10.6667V7.33333C14.6693 6.59695 14.0723 6 13.3359 6H2.66927C1.93289 6 1.33594 6.59695 1.33594 7.33333V10.6667C1.33594 11.403 1.93289 12 2.66927 12H4V13.6693V14.6693H5H11H12V13.6693V12ZM12 11H12.0026H13.3359C13.52 11 13.6693 10.8508 13.6693 10.6667V7.33333C13.6693 7.14924 13.52 7 13.3359 7H2.66927C2.48518 7 2.33594 7.14924 2.33594 7.33333V10.6667C2.33594 10.8508 2.48518 11 2.66927 11H4V10.3359V9.33594H5H11H12V10.3359V11ZM5 12H5.0026V11H5V10.3359H11V13.6693H5V12Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" />
</symbol>
<symbol id="icon-reddit" viewBox="0 0 16 16">
<path d="M8.003 2.328c1.876 0 3.268.605 4.19 1.555.928.955 1.476 2.354 1.476 4.112 0 1.72-.546 3.123-1.478 4.089-.926.96-2.319 1.578-4.188 1.578-1.87 0-3.262-.618-4.19-1.578-.931-.966-1.477-2.369-1.477-4.09 0-1.764.535-3.162 1.453-4.113.912-.946 2.3-1.553 4.214-1.553Zm0-1c4.2 0 6.666 2.733 6.666 6.667 0 3.866-2.466 6.667-6.666 6.667s-6.667-2.8-6.667-6.667c0-3.934 2.4-6.667 6.667-6.667Zm3.126 3.978a.636.636 0 0 0-.627-.642.597.597 0 0 0-.329.097.62.62 0 0 0-.226.264l-1.455-.318a.171.171 0 0 0-.12.022.176.176 0 0 0-.07.101L7.86 6.98c-.934.03-1.771.311-2.376.766a.877.877 0 0 0-.604-.252.891.891 0 0 0-.879.902c0 .174.049.344.141.49a.882.882 0 0 0 .38.332c-.015.087-.022.18-.022.275 0 1.385 1.568 2.504 3.508 2.504s3.508-1.119 3.508-2.504c0-.09-.007-.18-.02-.267a.936.936 0 0 0 .505-.83.891.891 0 0 0-.879-.902.832.832 0 0 0-.604.252c-.598-.44-1.428-.73-2.341-.765l.4-1.927 1.301.281a.65.65 0 0 0 .2.436.617.617 0 0 0 .87-.02.652.652 0 0 0 .182-.445Zm-5.14 3.732c0-.353.281-.642.627-.642.344 0 .625.288.625.642a.635.635 0 0 1-.625.642.635.635 0 0 1-.627-.642Zm2.756 0c0-.354.281-.642.625-.642.345 0 .626.289.626.642a.635.635 0 0 1-.625.642.635.635 0 0 1-.626-.642Zm-2.228 1.458a.162.162 0 0 1 .116-.049.16.16 0 0 1 .116.049c.267.274.843.375 1.258.375.415 0 .984-.101 1.258-.375a.163.163 0 0 1 .233 0 .189.189 0 0 1-.015.238c-.429.44-1.244.47-1.483.47-.239 0-1.061-.037-1.483-.47a.172.172 0 0 1 0-.238Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" />
</symbol>
<symbol id="icon-gnews" viewBox="0 0 16 16">
<path d="M2 2V12.8C2 13.4625 2.54062 14 3.2 14H10.4L14 10.4V2L12.8 3.2L11.6 2L10.4 3.2L9.2 2L8 3.2L6.8 2L5.6 3.2L4.4 2L3.2 3.2L2 2ZM4.4 3.5C4.4 3.5 5 4.4 5.6 4.4C6.18125 4.4 6.8 3.5 6.8 3.5C6.8 3.5 7.38125 4.4 8 4.4C8.58125 4.4 9.2 3.5 9.2 3.5C9.2 3.5 9.81875 4.4 10.4 4.4C10.9625 4.4 11.6 3.5 11.6 3.5C11.6 3.5 12.2188 4.4 12.8 4.4V10.4H8.6V11H10.4V11.6H8.6V12.2H10.4V12.8H3.2V4.4C3.7625 4.4 4.4 3.5 4.4 3.5ZM3.8 5V6.2H12.2V5H3.8ZM3.8 6.8V11H8V6.8H3.8ZM8.6 6.8V7.4H12.2V6.8H8.6ZM5 7.4V8L5.6 7.4H6.8L7.4 8H6.2V9.2L6.8 8.6H7.4V9.8L6.8 10.4H5L4.4 9.8V8L5 7.4ZM6.2 9.2L5.6 9.8H6.8V9.2H6.2ZM5.6 9.8V8H5V9.8H5.6ZM8.6 8V8.6H12.2V8H8.6ZM8.6 9.2V9.8H12.2V9.2H8.6ZM3.8 11.6V12.2H8V11.6H3.8Z" fill="currentColor" />
</symbol>
<symbol id="icon-instagram" viewBox="0 0 16 16">
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.6667 3H5.33333C4.04467 3 3 4.04467 3 5.33333V10.6667C3 11.9553 4.04467 13 5.33333 13H10.6667C11.9553 13 13 11.9553 13 10.6667V5.33333C13 4.04467 11.9553 3 10.6667 3ZM5.33333 2C3.49238 2 2 3.49239 2 5.33333V10.6667C2 12.5076 3.49239 14 5.33333 14H10.6667C12.5076 14 14 12.5076 14 10.6667V5.33333C14 3.49238 12.5076 2 10.6667 2H5.33333ZM9.49154 6.53311C9.19623 6.22917 8.72134 6 8 6C7.26006 6 6.78835 6.23127 6.49975 6.53048C6.20549 6.83556 6 7.31708 6 8C6 8.65716 6.20669 9.14285 6.51091 9.45818C6.80964 9.76781 7.28564 10 8 10C8.71436 10 9.19036 9.76781 9.48909 9.45818C9.79331 9.14285 10 8.65716 10 8C10 7.32435 9.79134 6.84166 9.49154 6.53311ZM11 8C11 6.23 9.89 5 8 5C6.08 5 5 6.23 5 8C5 9.74 6.11 11 8 11C9.89 11 11 9.74 11 8ZM11.9974 4.66667C11.9974 4.27333 11.7507 4 11.3307 4C10.9041 4 10.6641 4.27333 10.6641 4.66667C10.6641 5.05333 10.9107 5.33333 11.3307 5.33333C11.7507 5.33333 11.9974 5.05333 11.9974 4.66667Z" fill="currentColor" />
</symbol>
<symbol id="icon-xing" viewBox="0 0 16 16">
<path d="M3.82 4.37c-.104 0-.191.037-.236.108-.045.074-.038.17.01.266l1.17 2.025c.003.004.003.007 0 .01l-1.838 3.245c-.048.096-.046.192 0 .266a.255.255 0 0 0 .226.118h1.73c.26 0 .384-.175.473-.335L7.223 6.77l-1.19-2.074c-.086-.154-.216-.325-.482-.325h-1.73ZM11.09 2c-.258 0-.37.163-.463.33l-3.85 6.829c.005.012 2.458 4.511 2.458 4.511.086.154.219.33.484.33h1.728c.105 0 .186-.04.23-.11.046-.074.045-.172-.003-.268l-2.44-4.458a.01.01 0 0 1 0-.011l3.831-6.775c.049-.096.05-.194.004-.267-.044-.072-.126-.111-.23-.111H11.09Z" fill="currentColor" />
</symbol>
<symbol id="icon-spotify" viewBox="0 0 16 16">
<path d="M8.0026 2.33594C9.87894 2.33594 11.2705 2.94094 12.1937 3.89113C13.1214 4.84593 13.6693 6.24529 13.6693 8.0026C13.6693 9.72309 13.1234 11.1255 12.1913 12.0916C11.2646 13.0521 9.87196 13.6693 8.0026 13.6693C6.13324 13.6693 4.74058 13.0521 3.81393 12.0916C2.8818 11.1255 2.33594 9.72309 2.33594 8.0026C2.33594 6.23802 2.87143 4.83983 3.78902 3.8885C4.70095 2.94304 6.08933 2.33594 8.0026 2.33594ZM8.0026 1.33594C12.2026 1.33594 14.6693 4.06927 14.6693 8.0026C14.6693 11.8693 12.2026 14.6693 8.0026 14.6693C3.8026 14.6693 1.33594 11.8693 1.33594 8.0026C1.33594 4.06927 3.73594 1.33594 8.0026 1.33594ZM10.2343 10.7759C10.4106 10.8842 10.6412 10.8282 10.7487 10.652C10.857 10.4757 10.8011 10.2457 10.6248 10.1375C9.04319 9.171 7.08272 8.94618 4.79716 9.46837C4.59538 9.51418 4.46974 9.7148 4.51582 9.91613C4.56172 10.1175 4.76233 10.2436 4.96357 10.1978C7.05212 9.72056 8.82557 9.91541 10.2343 10.7759ZM10.8397 9.17244C11.0597 9.30781 11.3477 9.23833 11.4831 9.01827C11.6185 8.79858 11.5491 8.51075 11.3291 8.3753C9.477 7.23713 6.76808 6.9169 4.58908 7.57806C4.34212 7.6533 4.20262 7.91403 4.27714 8.16145C4.3522 8.40842 4.61347 8.54783 4.86088 8.47313C6.76853 7.89396 9.22689 8.18107 10.8397 9.17244ZM4.57567 6.62322C6.42194 6.06287 9.61236 6.16844 11.5462 7.31705C11.812 7.47545 12.1576 7.38752 12.3152 7.12084C12.4736 6.85453 12.3862 6.51018 12.119 6.35187C9.89253 5.03009 6.36929 4.9058 4.24987 5.54923C3.95323 5.63932 3.78601 5.95262 3.87583 6.24926C3.96565 6.54582 4.27921 6.71313 4.57567 6.62322Z" fill-rule="evenodd" clip-rule="evenodd" fill="currentColor" />
</symbol>
<symbol id="icon-youtube" viewBox="0 0 16 16">
<path d="M8 3.355c-.392 0-3.85.008-4.821.265a1.989 1.989 0 0 0-1.412 1.395C1.503 5.99 1.5 7.917 1.5 7.998c0 .08.003 2.007.268 2.984.184.679.725 1.213 1.412 1.395.97.256 4.43.264 4.82.264.39 0 3.85-.008 4.821-.265a1.989 1.989 0 0 0 1.412-1.395c.265-.977.268-2.902.268-2.983 0-.081-.003-2.007-.268-2.983a1.989 1.989 0 0 0-1.412-1.395c-.97-.257-4.43-.265-4.82-.265H8Zm0 8.309c-1.026 0-3.848-.042-4.565-.232a1.002 1.002 0 0 1-.712-.703c-.231-.853-.234-2.713-.234-2.731 0-.019.003-1.878.234-2.731.093-.343.366-.613.712-.704.717-.189 3.539-.231 4.565-.231 1.026 0 3.848.042 4.565.232.347.091.62.361.712.703.231.853.234 2.712.234 2.73 0 .02-.003 1.879-.234 2.732a1.001 1.001 0 0 1-.712.703c-.717.19-3.539.232-4.565.232Z" fill="currentColor" />
<path d="M9.263 7.995 7.414 9.227V6.762l1.849 1.233Z" fill="currentColor" stroke="currentColor" />
</symbol>
<symbol id="icon-video" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 6.5h16a.5.5 0 0 1 .5.5v10a.5.5 0 0 1-.5.5H4a.5.5 0 0 1-.5-.5V7a.5.5 0 0 1 .5-.5ZM2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7Zm11.57 5.857L10 15V9l3.57 2.143a1 1 0 0 1 0 1.714Z" fill="currentColor" />
</symbol>
<symbol id="icon-user" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 4.5c.925 0 1.512.293 1.87.66.363.375.63.974.63 1.84 0 .84-.264 1.444-.634 1.829-.363.375-.952.671-1.866.671-.914 0-1.503-.296-1.866-.671C9.764 8.444 9.5 7.84 9.5 7c0-.877.263-1.474.62-1.844.348-.36.93-.656 1.88-.656ZM12 3c2.52 0 4 1.64 4 4 0 2.32-1.48 4-4 4S8 9.32 8 7c0-2.36 1.44-4 4-4Zm4.814 13.275C15.772 15.203 14.184 14.5 12 14.5c-2.23 0-3.812.706-4.84 1.771C6.123 17.346 5.5 18.943 5.5 21H4c0-4.72 2.88-8 8-8 5.04 0 8 3.28 8 8h-1.5c0-2.046-.637-3.645-1.686-4.725Z" fill="currentColor" />
</symbol>
<symbol id="icon-apple-podcasts" viewBox="0 0 24 24">
<path d="M11.432 20.546c-.681-.244-.827-.575-1.107-2.515-.324-2.255-.395-3.65-.207-4.093.25-.586.927-.919 1.873-.922.94-.004 1.624.332 1.874.922.189.441.118 1.838-.207 4.093-.221 1.575-.342 1.974-.647 2.241-.418.37-1.012.473-1.575.274h-.004Zm-2.91-2.314c-2.351-1.157-3.858-3.114-4.406-5.718-.137-.673-.16-2.275-.03-2.893.342-1.655.997-2.95 2.085-4.094C7.739 3.874 9.756 3 12 3c2.222 0 4.231.858 5.761 2.461 1.164 1.21 1.819 2.491 2.154 4.179.114.561.114 2.092.007 2.724a8.091 8.091 0 0 1-3.082 5.04c-.58.437-1.994 1.2-2.222 1.2-.084 0-.092-.087-.053-.438.068-.563.136-.68.456-.814.51-.213 1.378-.831 1.91-1.366a7.27 7.27 0 0 0 1.91-3.363c.198-.784.176-2.527-.044-3.334-.695-2.567-2.787-4.56-5.351-5.093-.746-.153-2.101-.153-2.855 0-2.595.532-4.741 2.625-5.397 5.258-.175.714-.175 2.459 0 3.174.434 1.743 1.561 3.341 3.037 4.293.25.167.512.317.784.449.32.137.388.25.448.814.038.342.03.441-.053.441-.053 0-.441-.167-.852-.365l-.036-.028Zm.031-3.095c-.792-.632-1.491-1.752-1.78-2.851-.176-.664-.176-1.926.007-2.587.48-1.787 1.796-3.172 3.622-3.823.625-.22 2.008-.268 2.778-.1 2.648.588 4.529 3.24 4.165 5.871-.145 1.06-.51 1.931-1.157 2.74-.32.409-1.096 1.095-1.233 1.095-.022 0-.044-.26-.044-.575v-.573l.396-.472c1.492-1.787 1.385-4.282-.244-5.921-.631-.637-1.362-1.012-2.306-1.185-.609-.113-.738-.113-1.377-.007-.97.158-1.722.535-2.39 1.194-1.64 1.618-1.746 4.129-.254 5.917l.393.474v.58c0 .32-.026.58-.057.58-.031 0-.251-.152-.487-.343l-.032-.014Zm2.64-3.107c-.676-.316-1.042-.91-1.05-1.685 0-.696.389-1.304 1.058-1.66.427-.222 1.18-.222 1.606 0 .473.256.828.686.99 1.199.441 1.5-1.15 2.816-2.588 2.144l-.015.002Z" fill="currentColor" />
<path d="M12.114 12.325a1.898 1.898 0 1 0 0-3.795 1.898 1.898 0 0 0 0 3.796ZM12.298 13.06c.215.025.428.068.635.13a2.3 2.3 0 0 1 .636.318c.168.121.29.248.366.401.076.153.114.336.137.636.015.3.015.713-.053 1.491a53.146 53.146 0 0 1-.313 2.636c-.106.726-.182 1.05-.281 1.286a1.152 1.152 0 0 1-.845.738 1.83 1.83 0 0 1-.441.038 1.893 1.893 0 0 1-.442-.038c-.174-.038-.401-.106-.57-.243-.176-.137-.29-.335-.381-.594-.091-.259-.16-.57-.251-1.195a66.213 66.213 0 0 1-.29-2.26 18.148 18.148 0 0 1-.112-1.522c-.006-.328.008-.491.044-.647.036-.15.098-.291.183-.419a1.389 1.389 0 0 1 .661-.504c.157-.06.32-.106.485-.137.197-.038.426-.075.543-.091a.596.596 0 0 1 .248 0l.04-.024Z" fill="currentColor" />
</symbol>
<symbol id="icon-arrow-up-right-from-square" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="m19.19 3.75-9.72 9.72-.53.53L10 15.06l.53-.53 9.72-9.72v4.94h1.5V3a.747.747 0 0 0-.75-.75h-6.75v1.5h4.94ZM4 5.75a.25.25 0 0 0-.25.25v14c0 .138.112.25.25.25h14a.25.25 0 0 0 .25-.25V11.717h1.5V20A1.75 1.75 0 0 1 18 21.75H4A1.75 1.75 0 0 1 2.25 20V6c0-.966.784-1.75 1.75-1.75H12.283v1.5H4Z" fill="currentColor" />
</symbol>
<symbol id="icon-calendar" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M20 5.5H4a.5.5 0 0 0-.5.5v2.25h17V6a.5.5 0 0 0-.5-.5ZM3.5 18V9.75h17V18a.5.5 0 0 1-.5.5H4a.5.5 0 0 1-.5-.5ZM4 4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4Zm5.42 10.292c0 .75.198 1.092.696 1.092.48 0 .666-.354.666-1.098v-.156c0-.75-.198-1.098-.678-1.098-.486 0-.684.348-.684 1.092v.168Zm2.712-.03c0 1.38-.804 2.172-2.058 2.172-1.236 0-2.004-.768-2.004-2.136v-.168c0-1.374.882-2.13 2.028-2.13 1.14 0 2.034.678 2.034 2.1v.162Zm3.254 2.094h-1.362v-2.952l-.792.474V12.75l.984-.684h1.17v4.29Z" fill="currentColor" />
</symbol>
<symbol id="icon-caret-down" viewBox="0 0 24 24">
<path d="m6 8 4.3 7.1c.8 1.3 2.7 1.3 3.4 0L18 8H6Z" fill="currentColor" />
</symbol>
<symbol id="icon-circle-bars" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.287 5.833C16.902 4.408 14.815 3.5 12 3.5c-2.87 0-4.952.91-6.32 2.329C4.303 7.256 3.5 9.353 3.5 12c0 2.58.819 4.684 2.217 6.134C7.107 19.574 9.196 20.5 12 20.5c2.804 0 4.893-.926 6.283-2.366C19.681 16.684 20.5 14.58 20.5 12c0-2.636-.822-4.735-2.213-6.167ZM22 12c0-5.9-3.7-10-10-10C5.6 2 2 6.1 2 12c0 5.8 3.7 10 10 10s10-4.2 10-10ZM7 10.75v-1.5h10v1.5H7Zm0 2.5v1.5h10v-1.5H7Z" fill="currentColor" />
</symbol>
<symbol id="icon-circle-chevron-down" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3C14.9263 3 17.1512 3.94667 18.6453 5.48436C20.1438 7.02666 21 9.25935 21 12C21 14.6872 20.1458 16.9229 18.6428 18.4807C17.1454 20.0328 14.9194 21 12 21C9.08064 21 6.85464 20.0328 5.35716 18.4807C3.85419 16.9229 3 14.6872 3 12C3 9.25208 3.83549 7.02056 5.31975 5.48173C6.79835 3.94877 9.02006 3 12 3ZM12 2C18.3 2 22 6.1 22 12C22 17.8 18.3 22 12 22C5.7 22 2 17.8 2 12C2 6.1 5.6 2 12 2ZM8.15043 10.1464L11.686 13.682C11.8812 13.8772 12.1978 13.8772 12.3931 13.682L15.9286 10.1464L16.6357 10.8536L13.1002 14.3891C12.5144 14.9749 11.5646 14.9749 10.9789 14.3891L7.44332 10.8536L8.15043 10.1464Z" fill="currentColor" />
</symbol>
<symbol id="icon-circle-chevron-left" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3.5c2.815 0 4.902.908 6.287 2.333C19.678 7.265 20.5 9.364 20.5 12c0 2.58-.819 4.684-2.217 6.134-1.39 1.44-3.479 2.366-6.283 2.366-2.804 0-4.893-.926-6.283-2.366C4.319 16.684 3.5 14.58 3.5 12c0-2.647.803-4.744 2.18-6.171C7.048 4.41 9.13 3.5 12 3.5ZM12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10S2 17.8 2 12C2 6.1 5.6 2 12 2Zm1.773 6.53-3.536 3.536a.25.25 0 0 0 0 .353l3.536 3.536-1.061 1.06-3.536-3.535a1.75 1.75 0 0 1 0-2.475l3.536-3.535 1.06 1.06Z" fill="currentColor" />
</symbol>
<symbol id="icon-circle-chevron-right" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3.5c2.815 0 4.902.908 6.287 2.333C19.678 7.265 20.5 9.364 20.5 12c0 2.58-.819 4.684-2.217 6.134-1.39 1.44-3.479 2.366-6.283 2.366-2.804 0-4.893-.926-6.283-2.366C4.319 16.684 3.5 14.58 3.5 12c0-2.647.803-4.744 2.18-6.171C7.048 4.41 9.13 3.5 12 3.5ZM12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10S2 17.8 2 12C2 6.1 5.6 2 12 2ZM9.712 8.53l3.535 3.536a.25.25 0 0 1 0 .353l-3.535 3.536 1.06 1.06 3.536-3.535a1.75 1.75 0 0 0 0-2.475L10.773 7.47 9.712 8.53Z" fill="currentColor" />
</symbol>
<symbol id="icon-circle-chevron-up" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3C14.9263 3 17.1512 3.94667 18.6453 5.48436C20.1438 7.02666 21 9.25935 21 12C21 14.6872 20.1458 16.9229 18.6428 18.4807C17.1454 20.0328 14.9194 21 12 21C9.08064 21 6.85464 20.0328 5.35716 18.4807C3.85419 16.9229 3 14.6872 3 12C3 9.25208 3.83549 7.02056 5.31975 5.48173C6.79835 3.94877 9.02006 3 12 3ZM12 2C18.3 2 22 6.1 22 12C22 17.8 18.3 22 12 22C5.7 22 2 17.8 2 12C2 6.1 5.6 2 12 2ZM15.9257 14.3555L12.3902 10.82C12.1949 10.6247 11.8783 10.6247 11.6831 10.82L8.14753 14.3555L7.44042 13.6484L10.976 10.1129C11.5617 9.52712 12.5115 9.52712 13.0973 10.1129L16.6328 13.6484L15.9257 14.3555Z" fill="currentColor"/>
</symbol>
<symbol id="icon-circle-xmark" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.287 5.833C16.902 4.408 14.815 3.5 12 3.5c-2.87 0-4.952.91-6.32 2.329C4.303 7.256 3.5 9.353 3.5 12c0 2.58.819 4.684 2.217 6.134C7.107 19.574 9.196 20.5 12 20.5c2.804 0 4.893-.926 6.283-2.366C19.681 16.684 20.5 14.58 20.5 12c0-2.636-.822-4.735-2.213-6.167ZM22 12c0-5.9-3.7-10-10-10C5.6 2 2 6.1 2 12c0 5.8 3.7 10 10 10s10-4.2 10-10Zm-9.998-1.069 3-3 1.06 1.061-3 3 3.01 3.009-1.062 1.06-3.008-3.008-3.01 3.01-1.061-1.06 3.01-3.01L7.94 8.99 9 7.93l3.002 3.002Z" fill="currentColor" />
</symbol>
<symbol id="icon-chevron-down" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="m11.776 14.42-4.95-4.95-1.06 1.061 4.95 4.95a1.75 1.75 0 0 0 2.474 0l4.95-4.95-1.06-1.06-4.95 4.95a.25.25 0 0 1-.354 0Z" fill="currentColor" />
</symbol>
<symbol id="icon-chevron-left" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="m10.08 11.87 4.95-4.95-1.061-1.06-4.95 4.95a1.75 1.75 0 0 0 0 2.474l4.95 4.95 1.06-1.06-4.95-4.95a.25.25 0 0 1 0-.354Z" fill="currentColor" />
</symbol>
<symbol id="icon-chevron-right" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="m14.42 12.224-4.95 4.95 1.061 1.06 4.95-4.95a1.75 1.75 0 0 0 0-2.474l-4.95-4.95-1.06 1.06 4.95 4.95a.25.25 0 0 1 0 .354Z" fill="currentColor" />
</symbol>
<symbol id="icon-chevron-up" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="m12.13 10.08 4.95 4.95 1.06-1.061-4.95-4.95a1.75 1.75 0 0 0-2.474 0l-4.95 4.95 1.06 1.06 4.95-4.95a.25.25 0 0 1 .354 0Z" fill="currentColor" />
</symbol>
<symbol id="icon-globe" viewBox="0 0 24 24">
<path d="M19.4 4.8C17.6 3 15 2 12 2 8.9 2 6.4 3 4.6 4.8 2.9 6.6 2 9 2 12c0 2.9.9 5.4 2.6 7.2C6.4 21 9 22 12 22s5.6-1 7.4-2.8c1.7-1.8 2.6-4.3 2.6-7.2 0-2.9-.9-5.4-2.6-7.2Zm1.1 6.4H17c-.1-2.6-.5-4.8-1.3-6.5-.1-.3-.3-.6-.5-.8 1.2.4 2.2 1 3.1 1.8 1.3 1.5 2 3.3 2.2 5.5ZM12 20.5c-.9 0-1.7-.7-2.3-2-.7-1.4-1.1-3.4-1.2-5.8h7c-.1 2.3-.5 4.4-1.2 5.8-.6 1.3-1.4 2-2.3 2Zm-3.5-9.3c.1-2.3.5-4.3 1.2-5.8.6-1.3 1.4-1.9 2.3-1.9.9 0 1.7.7 2.3 1.9.7 1.4 1.1 3.4 1.2 5.8h-7ZM5.7 5.8C6.5 5 7.5 4.4 8.8 4c-.2.2-.4.5-.5.8-.8 1.6-1.2 3.8-1.3 6.4H3.5c.2-2.2.9-4 2.2-5.4Zm-2.2 6.9H7c.1 2.6.5 4.8 1.3 6.4.2.3.3.6.5.8-1.2-.4-2.2-1-3.1-1.9-1.3-1.2-2-3.1-2.2-5.3Zm14.8 5.4c-.8.9-1.9 1.5-3.1 1.9.2-.2.3-.5.5-.8.8-1.6 1.2-3.8 1.3-6.4h3.5c-.2 2.1-.9 4-2.2 5.3Z" fill="currentColor" />
</symbol>
<symbol id="icon-google-podcasts" viewBox="0 0 24 24">
<path d="M12 6.9c-.606 0-1.098-.476-1.098-1.063V4.562c0-.587.492-1.062 1.098-1.062.606 0 1.098.475 1.098 1.062v1.275c0 .587-.492 1.062-1.098 1.062ZM12 15.826c-.606 0-1.098-.476-1.098-1.063V9.24c0-.587.492-1.062 1.098-1.062.606 0 1.098.475 1.098 1.062v5.524c0 .587-.492 1.063-1.098 1.063ZM10.902 19.438c0 .587.492 1.062 1.098 1.062.606 0 1.098-.476 1.098-1.062v-1.275c0-.587-.492-1.063-1.098-1.063-.606 0-1.098.476-1.098 1.063v1.275ZM8.049 17.098c-.607 0-1.098-.476-1.098-1.063v-1.274c0-.587.491-1.063 1.098-1.063.606 0 1.097.476 1.097 1.063v1.274c0 .587-.49 1.063-1.097 1.063ZM14.854 9.24c0 .586.49 1.062 1.097 1.062s1.098-.476 1.098-1.063V7.964c0-.586-.491-1.062-1.098-1.062-.606 0-1.097.476-1.097 1.062V9.24ZM8.049 12.429c-.607 0-1.098-.476-1.098-1.062V7.542c0-.587.491-1.062 1.098-1.062.606 0 1.097.475 1.097 1.062v3.825c0 .586-.49 1.062-1.097 1.062ZM14.854 16.466c0 .587.49 1.062 1.097 1.062s1.098-.475 1.098-1.062V12.64c0-.586-.491-1.062-1.098-1.062-.606 0-1.097.476-1.097 1.062v3.825ZM4.098 13.704C3.49 13.704 3 13.228 3 12.64v-1.274c0-.587.491-1.063 1.098-1.063.606 0 1.097.476 1.097 1.063v1.274c0 .587-.491 1.063-1.097 1.063ZM18.805 12.641c0 .587.491 1.063 1.097 1.063.607 0 1.098-.476 1.098-1.063v-1.274c0-.587-.491-1.063-1.098-1.063-.606 0-1.097.476-1.097 1.063v1.274Z" fill="currentColor" />
</symbol>
<symbol id="icon-layer-group" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="m6.09 7.984 5.672 3.166a.5.5 0 0 0 .486 0l5.665-3.132-5.672-3.166a.5.5 0 0 0-.485 0L6.09 7.983Zm-1.546.855 6.487 3.62a2 2 0 0 0 1.943.005l6.482-3.585.055-.03.703-.389a.5.5 0 0 0 .002-.874l-.702-.392-.054-.03-6.488-3.621a2 2 0 0 0-1.942-.004L4.548 7.123l-.055.03-.704.39a.5.5 0 0 0-.001.873l.701.392.055.03Zm2.254 6.758-1.543-.861-.706.39-.055.03-.703.39a.5.5 0 0 0-.002.873l.702.392.054.03h.001l6.487 3.621a2 2 0 0 0 1.942.004l6.482-3.584.055-.03.704-.39a.5.5 0 0 0 .002-.873l-.702-.392-.055-.03-.711-.398-1.546.855.71.397-5.665 3.133a.5.5 0 0 1-.485-.001l-5.672-3.166.706-.39Zm-1.543-4.861 1.543.86-.706.391 5.672 3.166a.5.5 0 0 0 .485 0l5.666-3.132-.712-.397 1.547-.855.71.397h.001l.055.031.702.392a.5.5 0 0 1-.002.874l-.704.389-.054.03-6.483 3.585a2 2 0 0 1-1.942-.004l-6.487-3.621-.055-.03-.702-.393a.5.5 0 0 1 .002-.874l.703-.389.055-.03.706-.39Z" fill="currentColor" />
</symbol>
<symbol id="icon-search-ai" viewBox="0 0 64 64">
<path fill="currentColor" d="M31.268 6.6c.462-1.248 2.227-1.248 2.689 0l2.298 6.212c.146.392.455.702.847.847l6.212 2.298c1.248.462 1.248 2.227 0 2.689l-6.212 2.299a1.434 1.434 0 0 0-.847.846l-2.298 6.212c-.462 1.248-2.227 1.248-2.689 0l-2.298-6.212a1.434 1.434 0 0 0-.847-.846l-6.212-2.3c-1.248-.46-1.248-2.226 0-2.688l6.212-2.298c.392-.146.701-.455.847-.847L31.268 6.6Z" />
<path fill="currentColor" fill-rule="evenodd" d="M20.603 9.703C12.167 11.243 7.5 17.55 7.5 26.119c0 9.733 6.403 16.78 17.305 16.78 10.381 0 16.683-6.39 17.261-15.405l-4.045.45c-.335 3.12-1.533 5.616-3.306 7.399-2.097 2.107-5.343 3.563-9.91 3.563s-7.813-1.456-9.91-3.563c-2.107-2.118-3.402-5.243-3.402-9.224 0-4.108 1.278-7.216 3.338-9.286 1.375-1.383 3.28-2.485 5.803-3.062l-.03-4.068Zm21.255 31.17a1.997 1.997 0 0 0-2.824 2.823L53.676 58.34l2.824-2.824-14.642-14.642Z" clip-rule="evenodd" />
</symbol>
<symbol id="icon-magnifying-glass" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.5 4.5c1.726 0 2.943.538 3.726 1.319.785.783 1.274 1.952 1.274 3.484 0 1.495-.486 2.669-1.278 3.464-.787.792-2.006 1.34-3.722 1.34-1.716 0-2.935-.548-3.722-1.34-.792-.795-1.278-1.969-1.278-3.464 0-1.543.48-2.71 1.253-3.488C6.523 5.04 7.736 4.5 9.5 4.5Zm0-1.5C13.595 3 16 5.584 16 9.303c0 3.656-2.405 6.303-6.5 6.303-4.095 0-6.5-2.647-6.5-6.303C3 5.584 5.34 3 9.5 3Zm6.405 11.845a.75.75 0 1 0-1.06 1.06l5.5 5.5 1.06-1.06-5.5-5.5Z" fill="currentColor" />
</symbol>
<symbol id="icon-play" viewBox="0 0 24 24">
<path d="m7 20 10.002-6.155c1.374-.846 1.374-2.844 0-3.69L7 4v16Z" fill="currentColor" />
</symbol>
<symbol id="icon-podcast" viewBox="0 0 24 24">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.75 2.25v19.5h-1.5V2.25h1.5Zm3 17.5V4.25h-1.5v15.5h1.5Zm-6-12.5v9.5h-1.5v-9.5h1.5Zm12 3v3.5h-1.5v-3.5h1.5Zm-3 5.5v-7.5h-1.5v7.5h1.5Zm-13-4.25c.473 0 .75.307.75.75 0 .435-.277.75-.75.75S2 12.685 2 12.25c0-.443.27-.75.75-.75Zm19.25.75c0-.443-.277-.75-.75-.75-.48 0-.75.307-.75.75 0 .435.277.75.75.75s.75-.315.75-.75Z" fill="currentColor" />
</symbol>
<symbol id="icon-soundcloud" viewBox="0 0 24 24">
<path d="M7 17h1.25V9.128a3.214 3.214 0 0 0-1.25.69V17Zm-2.5-5.325v5.316l.08.009h1.17v-5.334H4.58l-.08.009ZM2 14.332c0 .968.504 1.808 1.25 2.276V12.06A2.675 2.675 0 0 0 2 14.332ZM9.5 17h1.25V9.475A3.12 3.12 0 0 0 9.5 9.03V17Zm9.92-5.333h-.704c.036-.218.058-.439.058-.667 0-2.21-1.733-4-3.87-4-1.16 0-2.195.534-2.904 1.37V17h7.42c1.424 0 2.58-1.194 2.58-2.668 0-1.472-1.156-2.665-2.58-2.665Z" fill="currentColor" />
</symbol>
<symbol id="icon-messenger" viewBox="0 0 12 12">
<path fill="currentColor" d="M2.25 6.75 4.5 4.5l2.25.75L9 4.5 6.75 6.75 4.5 6Zm0 0" />
<path fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width=".75" d="M5.625 1.125c-2.484 0-4.5 1.922-4.5 4.297 0 1.332.5 2.414 1.5 3.203v1.5l1.406-.938c.657.094 1.059.188 1.594.188 2.484 0 4.5-1.582 4.5-3.953 0-2.375-2.016-4.297-4.5-4.297Zm0 0" />
</symbol>
<symbol id="icon-whatsapp" viewBox="0 0 12 12">
<path fill="currentColor" d="M 5.625 0.75 C 2.9375 0.75 0.75 2.9375 0.75 5.625 C 0.75 6.597656 1.0625 7.488281 1.554688 8.25 L 0.714844 10.589844 L 3.324219 9.855469 C 4.015625 10.234375 4.78125 10.5 5.625 10.5 C 8.316406 10.5 10.5 8.316406 10.5 5.625 C 10.5 2.9375 8.316406 0.75 5.625 0.75 Z M 5.625 1.5 C 7.90625 1.5 9.75 3.34375 9.75 5.625 C 9.75 7.90625 7.90625 9.75 5.625 9.75 C 4.84375 9.75 4.121094 9.53125 3.492188 9.152344 L 3.355469 9.066406 L 1.910156 9.472656 L 2.378906 8.171875 L 2.265625 8.011719 C 1.785156 7.335938 1.5 6.515625 1.5 5.625 C 1.5 3.34375 3.34375 1.5 5.625 1.5 Z M 3.796875 3 C 3.710938 3 3.570312 3.035156 3.453125 3.175781 C 3.335938 3.3125 3 3.652344 3 4.335938 C 3 5.019531 3.464844 5.679688 3.527344 5.773438 C 3.59375 5.867188 4.4375 7.273438 5.734375 7.875 C 6.042969 8.019531 6.28125 8.105469 6.46875 8.167969 C 6.78125 8.273438 7.0625 8.257812 7.285156 8.222656 C 7.53125 8.183594 8.046875 7.886719 8.15625 7.5625 C 8.261719 7.238281 8.265625 6.957031 8.230469 6.898438 C 8.199219 6.839844 8.113281 6.804688 7.984375 6.738281 C 7.855469 6.667969 7.21875 6.332031 7.101562 6.289062 C 6.984375 6.238281 6.898438 6.21875 6.808594 6.355469 C 6.722656 6.496094 6.476562 6.808594 6.402344 6.898438 C 6.324219 6.992188 6.253906 7.003906 6.125 6.933594 C 5.992188 6.863281 5.574219 6.71875 5.082031 6.242188 C 4.699219 5.875 4.4375 5.421875 4.367188 5.28125 C 4.289062 5.140625 4.355469 5.066406 4.421875 5 C 4.480469 4.933594 4.550781 4.835938 4.613281 4.753906 C 4.679688 4.671875 4.699219 4.613281 4.742188 4.519531 C 4.789062 4.425781 4.765625 4.34375 4.734375 4.277344 C 4.699219 4.207031 4.441406 3.523438 4.335938 3.242188 C 4.230469 2.972656 4.121094 3.007812 4.042969 3.007812 C 3.96875 3 3.882812 3 3.796875 3 Z M 3.796875 3 " />
</symbol>
<symbol id="icon-telegram" viewBox="0 0 18 18">
<path fill="currentColor" d="M 15.429688 2.257812 C 15.179688 2.230469 14.910156 2.269531 14.636719 2.378906 C 14.300781 2.511719 9.011719 4.734375 4.082031 6.8125 L 2.453125 7.496094 C 1.820312 7.753906 1.503906 8.167969 1.503906 8.730469 C 1.503906 9.121094 1.667969 9.652344 2.460938 9.964844 L 5.210938 11.066406 C 5.449219 11.78125 6 13.4375 6.140625 13.878906 C 6.222656 14.140625 6.429688 14.796875 6.957031 14.949219 C 7.066406 14.988281 7.175781 15.007812 7.292969 15.003906 C 7.625 15.003906 7.863281 14.851562 7.980469 14.761719 L 9.726562 13.285156 L 11.851562 15.246094 C 11.933594 15.328125 12.363281 15.75 12.945312 15.75 C 13.671875 15.75 14.222656 15.144531 14.335938 14.5625 C 14.398438 14.242188 16.445312 3.964844 16.445312 3.96875 C 16.628906 3.140625 16.300781 2.714844 16.085938 2.53125 C 15.90625 2.378906 15.679688 2.285156 15.429688 2.257812 Z M 14.933594 3.878906 C 14.648438 5.296875 13.109375 13.035156 12.875 14.148438 L 9.773438 11.277344 L 7.667969 13.0625 L 8.25 10.78125 C 8.25 10.78125 12.273438 6.710938 12.515625 6.472656 C 12.710938 6.285156 12.75 6.21875 12.75 6.152344 C 12.75 6.0625 12.703125 6 12.601562 6 C 12.507812 6 12.378906 6.089844 12.3125 6.132812 C 11.453125 6.667969 7.804688 8.746094 6.007812 9.769531 L 3.398438 8.726562 L 4.664062 8.195312 C 7.886719 6.839844 13.628906 4.421875 14.933594 3.878906 Z M 14.933594 3.878906 " />
</symbol>
</defs>
</svg>
<footer id="SiteFooter" class="SiteFooter" role="contentinfo">
<div class="container">
<div class="SiteFooterSections">
<div class="SiteFooterSections__section"><div class="SiteFooterSection__inner"><h3 class="SiteFooterList__title"><button type="button" id="footer-trigger-100193478-1" class="SiteFooterList__trigger" aria-expanded="false" aria-controls="footer-panel-100193478-1"><span class="SiteFooterList__txt">ABOUT</span><span class="SiteFooterList__Icon"><i class="icon-circle-chevron-down"><svg aria-hidden="true"><use xlink:href="#icon-circle-chevron-down"></use></svg></i></span></button></h3><div id="footer-panel-100193478-1" class="SiteFooterList__wrapper" role="region" aria-labelledby="footer-trigger-100193478-1" hidden><ol class="SiteFooterList__list"><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/about"><span>About Us</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/our-brands/pcworld/"><span>Advertise</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/ad-choices/"><span>Ad Choices</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/about/contact"><span>Contact Us</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/work-here/"><span>Foundry Careers</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/smart-answers"><span>Smart Answers</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/annual-awards"><span>Annual Awards</span></a></li></ol></div></div></div><div class="SiteFooterSections__section"><div class="SiteFooterSection__inner"><h3 class="SiteFooterList__title"><button type="button" id="footer-trigger-100193479-2" class="SiteFooterList__trigger" aria-expanded="false" aria-controls="footer-panel-100193479-2"><span class="SiteFooterList__txt">POLICIES</span><span class="SiteFooterList__Icon"><i class="icon-circle-chevron-down"><svg aria-hidden="true"><use xlink:href="#icon-circle-chevron-down"></use></svg></i></span></button></h3><div id="footer-panel-100193479-2" class="SiteFooterList__wrapper" role="region" aria-labelledby="footer-trigger-100193479-2" hidden><ol class="SiteFooterList__list"><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/about/affiliate-link-policy"><span>Editorial Ethics Policy</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/privacy-policy/"><span>Privacy Policy</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/cookie-policy/"><span>Cookie Policy</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/terms-of-service-agreement/"><span>Terms of Service</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://foundryco.com/copyright-notice/"><span>Copyright Notice</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink ccpa-btn"><svg width="36" height="18" viewBox="0 0 36 18" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M0 9C0 4.02944 4.02944 0 9 0H26.55C31.5206 0 35.55 4.02944 35.55 9C35.55 13.9706 31.5206 18 26.55 18H9C4.02944 18 0 13.9706 0 9Z" fill="white"/><path d="M26.55 16.639V18H9V16.639H26.55ZM34.189 9C34.189 4.78108 30.7689 1.36099 26.55 1.36099H9C4.78108 1.36099 1.36099 4.78108 1.36099 9C1.36099 13.2189 4.78108 16.639 9 16.639V18L8.88369 17.9993C3.96673 17.937 0 13.9317 0 9C0 4.02944 4.02944 0 9 0H26.55C31.5206 0 35.55 4.02944 35.55 9C35.55 13.9706 31.5206 18 26.55 18V16.639C30.7689 16.639 34.189 13.2189 34.189 9Z" fill="#0C0C0C"/><path d="M20.1278 0H26.4889C31.4595 0 35.4889 4.02944 35.4889 9C35.4889 13.9706 31.4595 18 26.4889 18H15.3L20.1278 0Z" fill="#0C0C0C"/><path fill-rule="evenodd" clip-rule="evenodd" d="M15.1173 5.39716C15.3997 5.62614 15.4432 6.04084 15.2143 6.32341L10.3641 12.3106C9.95411 12.8167 9.19625 12.8563 8.73578 12.3957L5.89839 9.55738C5.64129 9.30021 5.64129 8.88325 5.89839 8.62607C6.15548 8.3689 6.57232 8.3689 6.82941 8.62607L9.49453 11.292L14.1913 5.4942C14.4202 5.21163 14.8348 5.16818 15.1173 5.39716Z" fill="#0C0C0C"/><path fill-rule="evenodd" clip-rule="evenodd" d="M21.8574 5.10241C22.1216 4.85253 22.5383 4.86418 22.7881 5.12845L29.133 11.8406C29.3829 12.1049 29.3712 12.5217 29.107 12.7716C28.8428 13.0214 28.4262 13.0098 28.1764 12.7455L21.8314 6.03336C21.5816 5.76909 21.5932 5.35229 21.8574 5.10241Z" fill="white"/><path fill-rule="evenodd" clip-rule="evenodd" d="M29.2128 5.20528C29.4699 5.46245 29.4699 5.87942 29.2128 6.13659L22.6827 12.6687C22.4256 12.9259 22.0088 12.9259 21.7517 12.6687C21.4946 12.4115 21.4946 11.9946 21.7517 11.7374L28.2817 5.20528C28.5388 4.9481 28.9557 4.9481 29.2128 5.20528Z" fill="white"/></svg><span>Privacy Settings</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/about/member-preferences#cookie"><span>European Privacy Settings</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/about/ccpa"><span>California: Do Not Sell My Personal Info</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/about/member-preferences"><span>Reader Preferences</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://info.wrightsmedia.com/foundry-media-licensing"><span>Licensing &amp; Eprints</span></a></li></ol></div></div></div><div class="SiteFooterSections__section"><div class="SiteFooterSection__inner"><h3 class="SiteFooterList__title"><button type="button" id="footer-trigger-100193480-3" class="SiteFooterList__trigger" aria-expanded="false" aria-controls="footer-panel-100193480-3"><span class="SiteFooterList__txt">PCWORLD CATEGORIES</span><span class="SiteFooterList__Icon"><i class="icon-circle-chevron-down"><svg aria-hidden="true"><use xlink:href="#icon-circle-chevron-down"></use></svg></i></span></button></h3><div id="footer-panel-100193480-3" class="SiteFooterList__wrapper" role="region" aria-labelledby="footer-trigger-100193480-3" hidden><ol class="SiteFooterList__list"><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/ai"><span>Consumer AI</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/home-robotics"><span>Home Robotics</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/pc-performance"><span>Performance</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/privacy"><span>Privacy</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/productivity"><span>Productivity</span></a></li></ol></div></div></div><div class="SiteFooterSections__section"><div class="SiteFooterSection__inner"><h3 class="SiteFooterList__title"><button type="button" id="footer-trigger-100193481-4" class="SiteFooterList__trigger" aria-expanded="false" aria-controls="footer-panel-100193481-4"><span class="SiteFooterList__txt">SUBSCRIBE</span><span class="SiteFooterList__Icon"><i class="icon-circle-chevron-down"><svg aria-hidden="true"><use xlink:href="#icon-circle-chevron-down"></use></svg></i></span></button></h3><div id="footer-panel-100193481-4" class="SiteFooterList__wrapper" role="region" aria-labelledby="footer-trigger-100193481-4" hidden><ol class="SiteFooterList__list"><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://simplecirc.com/subscribe/pcworld"><span>Digital Magazine - Subscribe</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/faq"><span>Digital Magazine - Info</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://simplecirc.com/give_a_gift/pcworld"><span>Gift Subscription</span></a></li><li class="SiteFooterList__listItem"><a class="SiteFooterList__listItemLink" href="https://www.pcworld.com/newsletters/signup"><span>Newsletters</span></a></li></ol></div></div></div>
</div>
<div class="SiteFooterSections">
<div class="SiteFooterSections__section">
<div class="SiteFooter__logo">
<a href="https://foundryco.com/" target="_blank" rel="noreferrer" aria-label="Go to Foundry website"><svg width="157" height="38" viewBox="0 0 157 38" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M77.5198 0.58374C80.4569 0.58374 82.1628 2.4929 82.1628 5.21928C82.1628 7.94567 80.4638 9.85482 77.4854 9.85482C74.5071 9.85482 72.8425 7.91133 72.8425 5.21928C72.8425 2.52723 74.5415 0.58374 77.5198 0.58374Z" fill="currentColor"/>
<path d="M65.0492 27.2227C65.0492 29.1318 64.8704 30.7937 64.272 32.1741C62.6762 35.8139 59.347 37.7299 54.8142 37.7299C50.2813 37.7299 46.7733 35.8207 45.1775 32.1741C44.5722 30.7937 44.4002 29.1318 44.4002 27.2227V12.4713H50.7765V26.8655C50.7765 27.9987 50.8453 28.9189 51.1686 29.6606C51.8427 31.2195 53.294 31.7827 54.821 31.7827C56.1692 31.7827 57.6205 31.2195 58.2946 29.6606C58.611 28.9189 58.6867 27.9987 58.6867 26.8655V12.4713H65.063V27.2227H65.0492Z" fill="currentColor"/>
<path d="M88.0369 22.4086V37.2286H81.6606V22.8687C81.6606 21.7355 81.5919 20.8153 81.2686 20.0736C80.5945 18.5147 79.1431 17.8074 77.5129 17.8074C75.8828 17.8074 74.4314 18.5147 73.7573 20.0736C73.4409 20.8153 73.3653 21.7355 73.3653 22.8687V37.2286H66.989V22.4086C66.989 20.4994 67.1678 18.8375 67.7662 17.4571C69.362 13.8174 72.6912 11.867 77.5061 11.867C82.321 11.867 85.657 13.8105 87.2459 17.4571C87.8512 18.8375 88.0232 20.4994 88.0232 22.4086" fill="currentColor"/>
<path d="M144.584 22.127L149.826 12.4713H156.594L147.7 28.5275V37.2286H141.18V28.5275L132.361 12.4713H139.371L144.584 22.127Z" fill="currentColor"/>
<path d="M17.7532 12.4713H0V37.2286H6.3763V28.8502H16.9759V23.1159H6.3763V18.24H17.7532V12.4713Z" fill="currentColor"/>
<path d="M77.5198 0.58374C80.4569 0.58374 82.1628 2.4929 82.1628 5.21928C82.1628 7.94567 80.4638 9.85482 77.4854 9.85482C74.5071 9.85482 72.8425 7.91133 72.8425 5.21928C72.8425 2.52723 74.5415 0.58374 77.5198 0.58374Z" fill="currentColor"/>
<path d="M65.0492 27.2227C65.0492 29.1318 64.8704 30.7937 64.272 32.1741C62.6762 35.8139 59.347 37.7299 54.8142 37.7299C50.2813 37.7299 46.7733 35.8207 45.1775 32.1741C44.5722 30.7937 44.4002 29.1318 44.4002 27.2227V12.4713H50.7765V26.8655C50.7765 27.9987 50.8453 28.9189 51.1686 29.6606C51.8427 31.2195 53.294 31.7827 54.821 31.7827C56.1692 31.7827 57.6205 31.2195 58.2946 29.6606C58.611 28.9189 58.6867 27.9987 58.6867 26.8655V12.4713H65.063V27.2227H65.0492Z" fill="currentColor"/>
<path d="M88.0369 22.4086V37.2286H81.6606V22.8687C81.6606 21.7355 81.5919 20.8153 81.2686 20.0736C80.5945 18.5147 79.1431 17.8074 77.5129 17.8074C75.8828 17.8074 74.4314 18.5147 73.7573 20.0736C73.4409 20.8153 73.3653 21.7355 73.3653 22.8687V37.2286H66.989V22.4086C66.989 20.4994 67.1678 18.8375 67.7662 17.4571C69.362 13.8174 72.6912 11.867 77.5061 11.867C82.321 11.867 85.657 13.8105 87.2459 17.4571C87.8512 18.8375 88.0232 20.4994 88.0232 22.4086" fill="currentColor"/>
<path d="M124.142 29.4134H120.139V37.2286H113.762V12.4713H125.593C130.339 12.4713 133.882 15.6166 133.882 20.8909C133.882 24.146 132.533 26.6183 130.195 28.1086L134.019 37.2354H127.216L124.135 29.4203L124.142 29.4134ZM120.139 23.8576H124.142C126.515 23.8576 127.54 22.7245 127.54 20.884C127.54 19.1534 126.515 17.9447 124.142 17.9447H120.139V23.8576ZM124.142 29.4134H120.139V37.2286H113.762V12.4713H125.593C130.339 12.4713 133.882 15.6166 133.882 20.8909C133.882 24.146 132.533 26.6183 130.195 28.1086L134.019 37.2354H127.216L124.135 29.4203L124.142 29.4134ZM120.139 23.8576H124.142C126.515 23.8576 127.54 22.7245 127.54 20.884C127.54 19.1534 126.515 17.9447 124.142 17.9447H120.139V23.8576Z" fill="currentColor"/>
<path d="M90.2036 37.2286V12.4713H99.3795C107.42 12.4713 112.132 17.3541 112.132 24.8534C112.132 32.3527 107.916 37.2354 99.7647 37.2354H90.1968L90.2036 37.2286ZM96.5799 31.6384H99.235C103.383 31.6384 105.611 29.3722 105.611 24.8465C105.611 20.3209 103.376 18.0546 99.235 18.0546H96.5799V31.6384ZM90.2036 37.2286V12.4713H99.3795C107.42 12.4713 112.132 17.3541 112.132 24.8534C112.132 32.3527 107.916 37.2354 99.7647 37.2354H90.1968L90.2036 37.2286ZM96.5799 31.6384H99.235C103.383 31.6384 105.611 29.3722 105.611 24.8465C105.611 20.3209 103.376 18.0546 99.235 18.0546H96.5799V31.6384Z" fill="currentColor"/>
<path d="M30.7878 11.9769C38.2647 11.9769 42.6944 17.4571 42.6944 24.8534C42.6944 32.2496 38.0858 37.7299 30.7878 37.7299C23.4898 37.7299 18.8469 32.284 18.8469 24.8534C18.8469 17.4228 23.4898 11.9769 30.7878 11.9769ZM30.7534 31.9269C34.117 31.9269 36.2424 29.1318 36.2424 25.0319C36.2424 20.5063 34.117 17.7799 30.9254 17.7799C27.4518 17.7799 25.3264 20.5063 25.3264 24.6748C25.3264 29.1318 27.4518 31.9269 30.7465 31.9269M30.7809 11.9769C38.2578 11.9769 42.6875 17.4571 42.6875 24.8534C42.6875 32.2496 38.0789 37.7299 30.7809 37.7299C23.4829 37.7299 18.84 32.284 18.84 24.8534C18.84 17.4228 23.4829 11.9769 30.7809 11.9769ZM30.7465 31.9269C34.1101 31.9269 36.2355 29.1318 36.2355 25.0319C36.2355 20.5063 34.1101 17.7799 30.9185 17.7799C27.4449 17.7799 25.3195 20.5063 25.3195 24.6748C25.3195 29.1318 27.4449 31.9269 30.7397 31.9269" fill="currentColor"/>
<path d="M17.7532 12.4713H0V37.2286H6.3763V28.8502H16.9759V23.1159H6.3763V18.24H17.7532V12.4713Z" fill="currentColor"/>
</svg></a> </div>
<div class="SiteFooter__social">
<ul class="SiteFooter__socialList"><li class="SiteFooter__socialListItem"><a class="SiteFooter__socialLink" href="https://www.facebook.com/PCWorld/" target="_blank" rel="noreferrer" aria-label="Facebook"><span class="SiteFooter__socialLinkText sr-only">Facebook</span><span class="SiteFooter__socialLinkIcon"><i class="icon-facebook"><svg><use xlink:href="#icon-facebook"></use></svg></i></span></a></li><li class="SiteFooter__socialListItem"><a class="SiteFooter__socialLink" href="https://twitter.com/pcworld" target="_blank" rel="noreferrer" aria-label="X"><span class="SiteFooter__socialLinkText sr-only">X</span><span class="SiteFooter__socialLinkIcon"><i class="icon-twitter"><svg><use xlink:href="#icon-twitter"></use></svg></i></span></a></li><li class="SiteFooter__socialListItem"><a class="SiteFooter__socialLink" href="https://www.youtube.com/channel/UCDC1Pas1aocEA5HBl7jp0ew" target="_blank" rel="noreferrer" aria-label="YouTube"><span class="SiteFooter__socialLinkText sr-only">YouTube</span><span class="SiteFooter__socialLinkIcon"><i class="icon-youtube"><svg><use xlink:href="#icon-youtube"></use></svg></i></span></a></li><li class="SiteFooter__socialListItem"><a class="SiteFooter__socialLink" href="https://www.linkedin.com/company/pc-world_2/" target="_blank" rel="noreferrer" aria-label="LinkedIn"><span class="SiteFooter__socialLinkText sr-only">LinkedIn</span><span class="SiteFooter__socialLinkIcon"><i class="icon-linkedin"><svg><use xlink:href="#icon-linkedin"></use></svg></i></span></a></li></ul> </div>
</div>
</div>
<div class="SiteFooter__bottom">
<div class="SiteFooter__legal">
<a href="https://foundryco.com/terms-of-service-agreement/" target="_blank" rel="noreferrer"><span>© 2026 FoundryCo, Inc. All Rights Reserved.</span></a> </div>
</div>
</div>
</footer>
<!-- start:hf --><!-- end:hf --></div><!-- #page-->
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/pcworld-child-theme\/*","\/wp-content\/themes\/idg-b2b-base-theme\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script>
jQuery(document).on("click",".consent-button",function() {
const consentButton = event.target;
const embedType = jQuery(consentButton).data('type');
const callback = jQuery(consentButton).data('callback');
if (callback) {//podigee has its own so callback is not present
const cmpType = jQuery(consentButton).data('cmp');
setOverlayCookie(embedType, true, 30);
jQuery('.' + embedType).each(function() {
jQuery(this).hide();
});
//eval(callback);//todo - safer way? window["functionName"](arguments);
console.log(`[Consent] click calling callback and calling showOverlays`);
//todo - not sure needed as showoverlays does this too
window[callback.split('(')[0]]();//dont think any of the have actual arguments
showOverlays(cmpType);
}
});
</script>
<script type="text/javascript">
function getGenericOverlayMessage(platform) {
let customHTMLTextOverlay = window?.IDG?.settings?.overlays_privacy_policies?.consent_overlays?.english_generic_overlay_message ?? '';
const foundryPPLink = window?.IDG?.settings?.overlays_privacy_policies?.foundry_privacy_policies?.gdpr;
customHTMLTextOverlay = customHTMLTextOverlay.replace(/\$\{platform\}/g, platform).replace(/\$\{foundryPPLink\}/g, foundryPPLink);
return customHTMLTextOverlay;
}
// Function to check if the custom blocks should be excluded based on keywords.
function isExcluded(element) {
const platform = jQuery(element).attr('generic-overlay-domain');
const cookieName = `hide-generic-overlay-${platform}`;
const consentGiven = getOverlayCookie(cookieName);
if (consentGiven === 'true') {
return true;
}
// Check if blocksForConsent is defined.
const excludeCustomBlocks = typeof window?.blocksForConsent !== 'undefined' ? Object.values(window?.blocksForConsent).map(block => block.platform) : [];
const dataSrc = jQuery(element).attr('data-src');
if (!dataSrc) return false; // If there's no src attribute, don't exclude
return excludeCustomBlocks.some(keyword => dataSrc.includes(keyword));
}
jQuery('.legacy_content iframe, .legacy_content script, .legacy_content img').each(function(index, element) {
// Check if the element contains any of the exclude keywords
if (!isExcluded(element)) {
const platform = jQuery(element).attr('generic-overlay-domain');
if(platform){
const genericCookieName = `custom-html-consent-notice-${platform}`;
const genericOverlayNextExists = jQuery(element).next(`.${genericCookieName}`).length > 0;
const genericOverlayPrevExists = jQuery(element).prev(`.${genericCookieName}`).length > 0;
// Add the custom overlay and hide the element if not excluded
if (!genericOverlayPrevExists && !genericOverlayNextExists) {
jQuery(element).after(getGenericOverlayMessage(platform));
jQuery(element).hide();
}
}
} else {
const platform = jQuery(element).attr('generic-overlay-domain');
if(platform){
const cookieName = `hide-generic-overlay-${platform}`;
const consentGiven = getOverlayCookie(cookieName);
if (consentGiven === 'true') {
if( element.nodeName.toLowerCase() === 'script' ) {
let genericScript = document.createElement("script");
genericScript.type = "text/javascript";
genericScript.async = true;
genericScript.src = jQuery(element).attr('data-src');
element.parentNode.insertBefore(genericScript, element);
element.remove();
} else {
jQuery(element).attr('src', jQuery(element).attr('data-src'));
}
jQuery(element).show();
}
}
}
});
/*
* Visitor has not consented to everything so we need to add click-event handlers to the consent-buttons
*/
jQuery(document).on("click", ".consent-button-generic", function(event) {
const buttonElement = event.target;
const platform = jQuery(buttonElement).attr('platform');
if(platform) {
const legacySelector = `.legacy_content iframe[generic-overlay-domain="${platform}"], .legacy_content script[generic-overlay-domain="${platform}"], .legacy_content img[generic-overlay-domain="${platform}"]`;
jQuery(legacySelector).each(function(index, element) {
if( element.nodeName.toLowerCase() === 'script' ) {
let genericScript = document.createElement("script");
genericScript.type = "text/javascript";
genericScript.async = true;
genericScript.src = jQuery(element).attr('data-src');
element.parentNode.insertBefore(genericScript, element);
element.remove();
} else {
jQuery(element).attr('src', jQuery(element).attr('data-src'));
}
jQuery(element).show();
const cookieName = `hide-generic-overlay-${platform}`;
setOverlayCookie(cookieName, true, 30)
});
const platformOverlaySelector = `.custom-html-consent-notice-${platform}`;
jQuery(platformOverlaySelector).hide();
}
});
</script>
<script>
document.addEventListener('consentManagerReady', () => {
const debug = consentManager.debug;
window.enablePodigee = function () {
const scripts = document.querySelectorAll('.podigee-podcast-player');
scripts.forEach(function(script) {
script.setAttribute('src', script.getAttribute('data-src'));
script.removeAttribute('data-src');
});
};
if(consentManager.consentRequired === true){
window.podigeeCallback = function () {
enablePodigee();
jQuery('.wp-block-embed-podigee div.external-embed-wrapper').hide();
return false;
};
if (consentManager.checkConsentByVendor("podigee")){
if(debug)console.log('#### Podigee consent given');
enablePodigee();
} else {
if(debug)console.log('#### Podigee no consent given');
// Text overlay HTML
const podigeeTextOverlay = '<div class="external-embed-wrapper" style="padding-bottom: 25px;"><div style="position: relative;background: lightgray;z-index: 1;padding: 15px;" class="embed-consent-notice" data-type="podigee"><h4>External content from podigee.com</h4><p>This block contains external content from podigee.com that is contextually relevant to this article. In order to display it, we need your consent.</p><p><a class="consent-button" data-type="podigee" href="javascript:void(0);" onclick="podigeeCallback()">Show external content from podigee.com</a></p><p>By clicking on &quot;Show external content from podigee.com&quot; I agree that the content will be displayed to me. This allows personal data to be sent to <a href="https://www.podigee.com">podigee.com</a> and other third parties. You can find more information about this in our <a href="/datenschutz#external">privacy policy</a> and at <a href="https://www.podigee.com/en/about/privacy">https://www.podigee.com/en/about/privacy</a>.</p></div></div>';
// Add textoverlay inside podigee emded div
jQuery('.wp-block-embed-podigee').each(function(index,element) {
if (element.closest(".wp-block-embed-podigee")?.querySelectorAll('.external-embed-wrapper')?.length === 0) {
jQuery(element).prepend(podigeeTextOverlay);
}
});
}
} else {
if(debug)console.log('#### Podigee no consent needed');
enablePodigee();
}
});
</script>
<div id="gpt-skin-1" class="ad ad-skin" data-ad-template="skin" data-ofp="true" data-aaad="true" data-aa-adunit="/8456/IDG.US_CSMB_PCWorld.com/security_section" data-aa-targeting='{"pos":"gpt-skin"}'></div><div id="gpt_bouncex-1" class="ad ad-bouncex" data-ad-template="bouncex" data-ofp="true" data-aaad="true" data-aa-adunit="/8456/IDG.US_CSMB_PCWorld.com/security_section" data-aa-targeting='{"pos":"gpt_bouncex"}'></div><div id="gpt-welcome-1" class="ad ad-overlay" data-ad-template="overlay" data-ofp="true" data-aaad="true" data-aa-adunit="/8456/IDG.US_CSMB_PCWorld.com/security_section" data-aa-targeting='{"pos":"gpt-welcome"}'></div> <script type="text/javascript">
window._taboola = window._taboola || [];
_taboola.push({flush: true});
</script>
<link rel='stylesheet' id='typekit-styles-css' href='https://use.typekit.net/bki7yeu.css?ver=1.0.0' media='all' />
<script type="text/javascript" src="https://www.pcworld.com/wp-content/client-mu-plugins/idg-third-party/dist/scripts/frontend-brandpost-block.js?m=1789061449g" ></script><script id="frontend-scripts-js-extra">
var siteData = {"site":"pcworld.com","connectedhub":"b2c"};
var googleSearch = {"search_engine_id":"50b714da855b604aa","search_title":"Search","search_slug":"search"};
</script>
<script defer src="https://www.pcworld.com/wp-content/themes/idg-b2b-base-theme/dist/scripts/bundle.js?ver=1789061450" id="frontend-scripts-js"></script>
<script id="ajaxload_posts-js-extra">
var ajaxload_params = {"ajaxurl":"https:\/\/www.pcworld.com\/wp-admin\/admin-ajax.php","nonce":"fb8928a635"};
</script>
<script defer src="https://www.pcworld.com/wp-content/themes/idg-b2b-base-theme/dist/scripts/ajaxload-posts.js?ver=1" id="ajaxload_posts-js"></script>
<script id="ajaxload_events-js-extra">
var ajaxload_event_params = {"ajaxurl":"https:\/\/www.pcworld.com\/wp-admin\/admin-ajax.php","nonce":"9f9519edb3"};
</script>
<script type="text/javascript" src="https://www.pcworld.com/_static/??-eJxtjDkOhDAMAD+EcUB7USDeksNaEgViYQt4/ka0bDPFSDN4MPiyKq2KOtNCgjF8wfUOnBWCy2GIoih+i6yCNtkzFxuA9lpJm6TB+4X9UbYcwM+x8t+GuabTMnbvz2Be3eNp0g/DmzOH" ></script><script id="jetpack-stats-js-before">
_stq = window._stq || [];
_stq.push([ "view", {"v":"ext","blog":"195343407","post":"439918","tz":"-7","srv":"www.pcworld.com","hp":"vip","j":"1:15.7.2"} ]);
_stq.push([ "clickTrackerInit", "195343407", "439918" ]);
</script>
<script src="https://stats.wp.com/e-202637.js" id="jetpack-stats-js" defer data-wp-strategy="defer"></script>
<script src="https://www.pcworld.com/wp-content/themes/idg-b2b-base-theme/lib/scripts/class.ConsentManager.js?ver=1.3.0" id="enqueued-script-consent-manager-js"></script>
<script id="enqueued-script-consent-manager-js-after">
(function(){
//todo put somewhere common as needed elsewhere in other tickets.
//look for the cookie for content pass
const isContentPassCookiePresent = function () {
const data = (document.cookie.match(/^(?:.*;)?\s*_cpauthhint\s*=\s*([^;]+)(?:.*)?$/) || [,null])[1]; //eslint-disable-line
if (data) return true;
return false;
};
//fire the admiral script wrapped in consent or not
const fireScript = function(isConsentRequired){
window.admiral = window.admiral || function() {(admiral.q = admiral.q || []).push(arguments)};
window.admiral('targeting', 'set', 'story_type', 'News');
window.admiral('targeting', 'set', 'is_article', 'yes');
if(isConsentRequired){
document.addEventListener('consentManagerReady', () => {
if(consentManager.consentedAll === true){
console.log('++Admiral firing - with consent');
!(function(h,_name,a,H,v){v=function(){(v.q=v.q||[]).push(arguments)},h[_name=a(a(_name))]=h[_name]||v,h[_name].v=h[_name].v||3,h[_name].s=3+128})(window,'%25%361%64m%69%25%372%61l',decodeURI);!(function(h,a,H,v,l,O,k,o,V){O=(function(h,a,H,v,l,O,k,o,V,L,G,B,Q,f,K){function j(){return o&&o.now()}function P(h){return v(v(h))}function g(v,o,V,L){if(!(O++||new RegExp(P("%28%62%256F%74%25%37%43%257%33p%25%36%39%25%36%34%25%365%257%32|c%25%37%32%25%36%31%25%37%37%256C%25%37%43%25%368%65%61d%256%43%25%36%35s%73%25%37C%6Aav%61/%257%43%25%367%6F%256Fg%25%36Ce%25%37%43%25%362%25%36%39ng%25%37C%79%2561%25%36Ed%25%365%25%378%257%43d%25%375%256%33%256B%25%364u%63%6B%25%329"),"i").test(navigator.userAgent||"")||(new(function(){o=(function g(e,t,r,n){if(!e||(function e(r,n){return r&&(n=t[r[0]])&&n(e,r[1]||[])})(e))return r.apply(this,n||[])}([],[],function(d,c,e,f,i,m,y){e=d.createElement("div");e.innerHTML="<div class=\"DCDOr\"><div class=\"eRIqgq a__s1p0xe8r-0\"><div class=\"ezkXGa a__s1p0xe8r-0\"><div class=\"iiuuQR\"><h3 class=\"kMGqeO\">Something went wrong. Disable your adblocker on PC World.<\/h3><div class=\"eFEjHN\">It looks like your adblocker is attempting to interfere with the intended operation of this site. Please add us to your adblocker's allowlist. Click below for instructions.<\/div><button data-lg19c-0 data-3vxd4ynjhq=\"https://m%79.get%61d%6d%69ral.com/instructions\" class=\"ilBcVx a__s1p0xe8r-1\">Disable my adblocker<\/button><\/div><\/div><\/div><div class=\"idHFrh\"><span class=\"bRORkN\"><a href=\"https://fo%72ms.gle/6M6VTS3mmHXGbFjM8\" target=\"_blank\" class=\"dWdYmI\">Contact support<\/a><\/span><span class=\"bRORkN\">|<\/span><span class=\"bRORkN\"><a href=\"https://%67e%74%61%6%34%6di%72%61l.com/pb/\" target=\"_blank\" class=\"dWdYmI\">We're using <img src=\"https://%70ubim%67s.net/412d3541463845423634434341393833364236413639434336462d31_logo.svg\" class=\"ggJJaU\" /><\/a><\/span><\/div><\/div>";f=["click",function(e){var t=e.currentTarget.getAttribute("data-3vxd4ynjhq"),r=e.currentTarget.parentElement,n=document.createElement("iframe");n.src=t,n.style="margin: 36px 0;outline: 0;border: 0;width: 100%;height: 400px;",r.replaceWith(n);var i=function(e){var t=e.data,o=t.goBack,c=t.blockerDisabled;o?(n.replaceWith(r),window.removeEventListener("message",i)):c&&window.location.reload()};window.addEventListener("message",i)}];for (i=0;i<f.length;i+=2){(m=e.querySelector('[data-lg19c-'+i+']'))&&m.addEventListener(f[i],f[i+1])}y=d.createElement("style");y[c](d.createTextNode(".DCDOr{all:initial;position:fixed;top:0;right:0;bottom:0;left:0;font-family:Arial;overflow:auto;background-color:rgba(255,255,255,1);z-index:2147483647;}.DCDOr .a__s1p0xe8r-0{width:100%;height:100%;margin:0 auto;}.DCDOr .a__s1p0xe8r-1{cursor:pointer;border:none;font-weight:700;}.eRIqgq{max-width:740px;position:relative;}.ezkXGa{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}.iiuuQR{display:inline-block;max-width:700px;width:100%;color:rgba(24,33,57,1);}.idHFrh{position:fixed;bottom:0;height:40px;width:100%;text-align:center;line-height:40px;font-size:13px;color:rgba(12,44,91,1);background-color:rgba(24,33,57,0.05);}.ggJJaU{height:15px;vertical-align:middle;}.kMGqeO{box-sizing:border-box;text-align:left;margin:0 0 5px;font-size:24px;line-height:28px;font-weight:500;}.eFEjHN{box-sizing:border-box;text-align:left;margin:0 0 15px;font-size:14px;line-height:22px;}.bRORkN{display:inline-block;margin-right:5px;line-height:40px;}.dWdYmI{-webkit-text-decoration:none;text-decoration:none;color:rgba(12,44,91,1);}.ilBcVx{width:100%;height:33px;background-color:rgba(0,0,0,1);color:rgba(244,244,246,1);border-radius:3px;margin-bottom:24px;}"));d.body[c](y);d.body[c](e);window['_afsr']=!0;return {u:"%7B%22candidates%22:%5B%7B%22batchID%22:%2269f22f33dc7106fd1baa0f07%22,%22candidateID%22:%2269f22f33dc7106fd1baa0f08%22,%22groups%22:%5B%22purpose:failsafe%22%5D,%22payload%22:%7B%22name%22:%22Failsafe%22%7D,%22payloadType%22:%22template%22,%22triggers%22:%5B%7B%22type%22:%22adblockerDisabled%22%7D%5D,%22tsUpdated%22:1777479475.635%7D%5D%7D"}},[document,"appendChild"]))}),l++||v))){V=a.sessionStorage;try{L=JSON.parse(V[P(k)]).slice(-4)}catch(G){L=[]}L.push([H(),{p:""+a.location,r:""+h.referrer,cs:o,t:1,fc:f}]),V[P(k)]=JSON.stringify(L)}}function y(h,a){a=(function(h,a,H){if(!o)return!1;for(a=(h=o.getEntriesByType("resource")).length;H=h[--a];)if(!H.deliveryType&&H.transferSize>300&&H.fetchStart>L)return!0;return!1})(),h=!navigator.onLine||!B&&!a,a||(f=8),!B&&V&&(f=16),g(h)}return o=a.performance,V=a.fetch,Q=function(r,s){return r<2&&s},L=j(),function(v,l){return v||l?(V&&1==v&&(G=H(),V((function(H,v,l,O,k,o,V,L){for(v=(H=h.getElementsByTagName("link")).length,O=(a.origin||"").length||1;O&&(l=H[--v]);)if(k=(l.href||"").substring(0,O),V=0===(l.type||"").indexOf("image/"),L="icon"===l.rel||(l.rel||"").indexOf(" icon")>=0,(V||L)&&("/"===k[0]||k===a.origin)&&(o=l.href,V&&L))return l.href;return o||"/favicon.ico"})(),{mode:"no-cors",credentials:"omit",cache:"no-cache"}).then((function(){B=!0,K&&y()}),(function(h){B=!1}))),v>=4?(B===undefined&&V?(K=!0,setTimeout(y,Math.max(4e3-(H()-G),Math.max(2e3-(j()-L),0)))):y(),""):v<3?Q&&Q(v,l)||l:"https://succeedscene.com/assets/js/h6gnepjvxvhc.index.js"):g()}})(document,window,Date.now,decodeURI,0,0,'%25%36%31%25%366%25%37%33%2576%25%369si%25%37%34s','%2561%256%34%256D%72l%4C%6F%61%25%36%34%25%365d');try{a[H]=a[H]||function(h){h?k[h]=!0:O()},k=a[H]}catch(L){return void O()}!(function G(a,H,B,Q){function f(){try{if(k[B&&B.src||H]||k[o])return}catch(L){return void O()}B&&(B.remove(),B=null),clearTimeout(V),!a&&H&&(H+=(-1===H.indexOf("?")?"?":"&")+"r=1"),(H=O(++a,H))&&G(a,H)}B=h.createElement(v),Q=h.getElementsByTagName(v)[0],B.async=1,B.src=H,a>0&&(B.fetchPriority="high"),V=setTimeout(f,6e3+2e3*a),B[l]("error",f),B[l]("load",f),Q.parentNode.insertBefore(B,Q)})(0,o="https://coloradoserves.com/assets/js/h6gnepjvxvhc.index.js")})(document,window,"QS01QUY4RUI2NENDQTk4MzZCNkE2OUNDNkYtMQ","script","addEventListener",{});;
;
!(function(h,a,H,v,l,O,k,o,V,L,G,_name,B,Q,f,K,j,P,g,y,s,t){_name=(G=function(h){return a(a(h))})('%256%31%256%34m%25%36%39%72%2561%256%43'),B=h.localStorage,Q=h.sessionStorage,f=G('%255%46a%2564%6D%2572%25%36C%256%33%25%36%42%76%70'),j=h.location;try{0===document.referrer.indexOf(j.origin)?(K=new URLSearchParams(j.search)).get(G('%25%35Fa%2563%25%37%32i'))?((P=K.get(G('%25%35%46%25%361%63%25%374')))===G('%65%25%37%38t%65%6Ed')?g=[["\u0061d\u006di\u0072al\u002d\u0065\u0078tende\u0064","true"||_name]]:P===G('%257%33ha%25%370%25%36%35')&&(g=[["a\u0064\u006dir\u0061l-shap\u0065d","true"||_name]]),g&&(Q[f]=JSON.stringify(g))):g=JSON.parse(Q[f]||"[]"):delete Q[f]}catch(E){g=[]}function Y(a,H){try{a=JSON.parse(B["_aQS01QUY4RUI2NENDQTk4MzZCNkE2OUNDNkYtMQ"]||"{}").lgk||[]}catch(E){a=[]}g&&(a=a.concat(g)),a&&a.length&&(H=h[y].pubads())&&a.forEach((function(h){h&&h[0]&&H.setTargeting(h[0],h[1]||"")}))}y=G('%67o%25%36%46%67%256%43%65t%256%31%25%367');try{t=(s=h[y]=h[y]||{}).cmd=s.cmd||[],typeof s.pubads===H?Y():typeof t.unshift===H?t.unshift(Y):t.push(Y)}catch(E){}})(window,decodeURI,"function");;
}else{
console.warn('++Admiral not firing - consent all='+consentManager.consentedAll);
}
});
}else{
console.log('++Admiral firing - no consent needed');
!(function(h,_name,a,H,v){v=function(){(v.q=v.q||[]).push(arguments)},h[_name=a(a(_name))]=h[_name]||v,h[_name].v=h[_name].v||3,h[_name].s=3+128})(window,'%25%361%64m%69%25%372%61l',decodeURI);!(function(h,a,H,v,l,O,k,o,V){O=(function(h,a,H,v,l,O,k,o,V,L,G,B,Q,f,K){function j(){return o&&o.now()}function P(h){return v(v(h))}function g(v,o,V,L){if(!(O++||new RegExp(P("%28%62%256F%74%25%37%43%257%33p%25%36%39%25%36%34%25%365%257%32|c%25%37%32%25%36%31%25%37%37%256C%25%37%43%25%368%65%61d%256%43%25%36%35s%73%25%37C%6Aav%61/%257%43%25%367%6F%256Fg%25%36Ce%25%37%43%25%362%25%36%39ng%25%37C%79%2561%25%36Ed%25%365%25%378%257%43d%25%375%256%33%256B%25%364u%63%6B%25%329"),"i").test(navigator.userAgent||"")||(new(function(){o=(function g(e,t,r,n){if(!e||(function e(r,n){return r&&(n=t[r[0]])&&n(e,r[1]||[])})(e))return r.apply(this,n||[])}([],[],function(d,c,e,f,i,m,y){e=d.createElement("div");e.innerHTML="<div class=\"DCDOr\"><div class=\"eRIqgq a__s1p0xe8r-0\"><div class=\"ezkXGa a__s1p0xe8r-0\"><div class=\"iiuuQR\"><h3 class=\"kMGqeO\">Something went wrong. Disable your adblocker on PC World.<\/h3><div class=\"eFEjHN\">It looks like your adblocker is attempting to interfere with the intended operation of this site. Please add us to your adblocker's allowlist. Click below for instructions.<\/div><button data-lg19c-0 data-3vxd4ynjhq=\"https://m%79.get%61d%6d%69ral.com/instructions\" class=\"ilBcVx a__s1p0xe8r-1\">Disable my adblocker<\/button><\/div><\/div><\/div><div class=\"idHFrh\"><span class=\"bRORkN\"><a href=\"https://fo%72ms.gle/6M6VTS3mmHXGbFjM8\" target=\"_blank\" class=\"dWdYmI\">Contact support<\/a><\/span><span class=\"bRORkN\">|<\/span><span class=\"bRORkN\"><a href=\"https://%67e%74%61%6%34%6di%72%61l.com/pb/\" target=\"_blank\" class=\"dWdYmI\">We're using <img src=\"https://%70ubim%67s.net/412d3541463845423634434341393833364236413639434336462d31_logo.svg\" class=\"ggJJaU\" /><\/a><\/span><\/div><\/div>";f=["click",function(e){var t=e.currentTarget.getAttribute("data-3vxd4ynjhq"),r=e.currentTarget.parentElement,n=document.createElement("iframe");n.src=t,n.style="margin: 36px 0;outline: 0;border: 0;width: 100%;height: 400px;",r.replaceWith(n);var i=function(e){var t=e.data,o=t.goBack,c=t.blockerDisabled;o?(n.replaceWith(r),window.removeEventListener("message",i)):c&&window.location.reload()};window.addEventListener("message",i)}];for (i=0;i<f.length;i+=2){(m=e.querySelector('[data-lg19c-'+i+']'))&&m.addEventListener(f[i],f[i+1])}y=d.createElement("style");y[c](d.createTextNode(".DCDOr{all:initial;position:fixed;top:0;right:0;bottom:0;left:0;font-family:Arial;overflow:auto;background-color:rgba(255,255,255,1);z-index:2147483647;}.DCDOr .a__s1p0xe8r-0{width:100%;height:100%;margin:0 auto;}.DCDOr .a__s1p0xe8r-1{cursor:pointer;border:none;font-weight:700;}.eRIqgq{max-width:740px;position:relative;}.ezkXGa{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}.iiuuQR{display:inline-block;max-width:700px;width:100%;color:rgba(24,33,57,1);}.idHFrh{position:fixed;bottom:0;height:40px;width:100%;text-align:center;line-height:40px;font-size:13px;color:rgba(12,44,91,1);background-color:rgba(24,33,57,0.05);}.ggJJaU{height:15px;vertical-align:middle;}.kMGqeO{box-sizing:border-box;text-align:left;margin:0 0 5px;font-size:24px;line-height:28px;font-weight:500;}.eFEjHN{box-sizing:border-box;text-align:left;margin:0 0 15px;font-size:14px;line-height:22px;}.bRORkN{display:inline-block;margin-right:5px;line-height:40px;}.dWdYmI{-webkit-text-decoration:none;text-decoration:none;color:rgba(12,44,91,1);}.ilBcVx{width:100%;height:33px;background-color:rgba(0,0,0,1);color:rgba(244,244,246,1);border-radius:3px;margin-bottom:24px;}"));d.body[c](y);d.body[c](e);window['_afsr']=!0;return {u:"%7B%22candidates%22:%5B%7B%22batchID%22:%2269f22f33dc7106fd1baa0f07%22,%22candidateID%22:%2269f22f33dc7106fd1baa0f08%22,%22groups%22:%5B%22purpose:failsafe%22%5D,%22payload%22:%7B%22name%22:%22Failsafe%22%7D,%22payloadType%22:%22template%22,%22triggers%22:%5B%7B%22type%22:%22adblockerDisabled%22%7D%5D,%22tsUpdated%22:1777479475.635%7D%5D%7D"}},[document,"appendChild"]))}),l++||v))){V=a.sessionStorage;try{L=JSON.parse(V[P(k)]).slice(-4)}catch(G){L=[]}L.push([H(),{p:""+a.location,r:""+h.referrer,cs:o,t:1,fc:f}]),V[P(k)]=JSON.stringify(L)}}function y(h,a){a=(function(h,a,H){if(!o)return!1;for(a=(h=o.getEntriesByType("resource")).length;H=h[--a];)if(!H.deliveryType&&H.transferSize>300&&H.fetchStart>L)return!0;return!1})(),h=!navigator.onLine||!B&&!a,a||(f=8),!B&&V&&(f=16),g(h)}return o=a.performance,V=a.fetch,Q=function(r,s){return r<2&&s},L=j(),function(v,l){return v||l?(V&&1==v&&(G=H(),V((function(H,v,l,O,k,o,V,L){for(v=(H=h.getElementsByTagName("link")).length,O=(a.origin||"").length||1;O&&(l=H[--v]);)if(k=(l.href||"").substring(0,O),V=0===(l.type||"").indexOf("image/"),L="icon"===l.rel||(l.rel||"").indexOf(" icon")>=0,(V||L)&&("/"===k[0]||k===a.origin)&&(o=l.href,V&&L))return l.href;return o||"/favicon.ico"})(),{mode:"no-cors",credentials:"omit",cache:"no-cache"}).then((function(){B=!0,K&&y()}),(function(h){B=!1}))),v>=4?(B===undefined&&V?(K=!0,setTimeout(y,Math.max(4e3-(H()-G),Math.max(2e3-(j()-L),0)))):y(),""):v<3?Q&&Q(v,l)||l:"https://succeedscene.com/assets/js/h6gnepjvxvhc.index.js"):g()}})(document,window,Date.now,decodeURI,0,0,'%25%36%31%25%366%25%37%33%2576%25%369si%25%37%34s','%2561%256%34%256D%72l%4C%6F%61%25%36%34%25%365d');try{a[H]=a[H]||function(h){h?k[h]=!0:O()},k=a[H]}catch(L){return void O()}!(function G(a,H,B,Q){function f(){try{if(k[B&&B.src||H]||k[o])return}catch(L){return void O()}B&&(B.remove(),B=null),clearTimeout(V),!a&&H&&(H+=(-1===H.indexOf("?")?"?":"&")+"r=1"),(H=O(++a,H))&&G(a,H)}B=h.createElement(v),Q=h.getElementsByTagName(v)[0],B.async=1,B.src=H,a>0&&(B.fetchPriority="high"),V=setTimeout(f,6e3+2e3*a),B[l]("error",f),B[l]("load",f),Q.parentNode.insertBefore(B,Q)})(0,o="https://coloradoserves.com/assets/js/h6gnepjvxvhc.index.js")})(document,window,"QS01QUY4RUI2NENDQTk4MzZCNkE2OUNDNkYtMQ","script","addEventListener",{});;
;
!(function(h,a,H,v,l,O,k,o,V,L,G,_name,B,Q,f,K,j,P,g,y,s,t){_name=(G=function(h){return a(a(h))})('%256%31%256%34m%25%36%39%72%2561%256%43'),B=h.localStorage,Q=h.sessionStorage,f=G('%255%46a%2564%6D%2572%25%36C%256%33%25%36%42%76%70'),j=h.location;try{0===document.referrer.indexOf(j.origin)?(K=new URLSearchParams(j.search)).get(G('%25%35Fa%2563%25%37%32i'))?((P=K.get(G('%25%35%46%25%361%63%25%374')))===G('%65%25%37%38t%65%6Ed')?g=[["\u0061d\u006di\u0072al\u002d\u0065\u0078tende\u0064","true"||_name]]:P===G('%257%33ha%25%370%25%36%35')&&(g=[["a\u0064\u006dir\u0061l-shap\u0065d","true"||_name]]),g&&(Q[f]=JSON.stringify(g))):g=JSON.parse(Q[f]||"[]"):delete Q[f]}catch(E){g=[]}function Y(a,H){try{a=JSON.parse(B["_aQS01QUY4RUI2NENDQTk4MzZCNkE2OUNDNkYtMQ"]||"{}").lgk||[]}catch(E){a=[]}g&&(a=a.concat(g)),a&&a.length&&(H=h[y].pubads())&&a.forEach((function(h){h&&h[0]&&H.setTargeting(h[0],h[1]||"")}))}y=G('%67o%25%36%46%67%256%43%65t%256%31%25%367');try{t=(s=h[y]=h[y]||{}).cmd=s.cmd||[],typeof s.pubads===H?Y():typeof t.unshift===H?t.unshift(Y):t.push(Y)}catch(E){}})(window,decodeURI,"function");
}
};
const isEu = IDG?.isEuVisitor === '1';
//const isCPEnabledOnSite = IDG?.isCPEnabled === '1';
const isCPActiveOnGeo = IDG?.isCPActiveOnThisGeo === '1';
const isCPCookiePresent = isContentPassCookiePresent();
let isConsentRequired = true;
if(isEu){
if(isCPActiveOnGeo){
if(isCPCookiePresent){
;//consent needed
}else{
isConsentRequired = false;
}
}else if ('SE' === IDG?.geolocation) {
//hack job for SE as they dont have Reject ALL
isConsentRequired = false;
}else{
;//consent needed
}
}else{
;// check consent but if GPP or ROW will just fall through
}
console.log('++Admiral isEu=',isEu,'geo',IDG?.geolocation,'isCPActiveOnGeo=',isCPActiveOnGeo,'isCPCookiePresent=',isCPCookiePresent,'isConsentRequired=',isConsentRequired);
fireScript(isConsentRequired);
})();
document.addEventListener("consentManagerReady", () => {
const vendors = ["Miso Technologies, Inc", "Miso"];
const hasConsentMiso = consentManager.checkConsentByVendors(vendors);
if (hasConsentMiso.some(vendor => !vendor["Has Consent"])) return;
console.log("[MISO SCRIPT] Consent given for Miso. Loading script...");
const initMisoSearchAnnouncements = () => {
if (
window.innerWidth <= 992 ||
!foundry_is_publisher(["cio", "nww", "cw", "iw", "cso"]) ||
!foundry_is_language(["en", "de"])
) return;
document.querySelectorAll('use').forEach(use => {
const ref = use.getAttribute('href') || use.getAttribute('xlink:href');
if (ref === '#icon-magnifying-glass') {
use.setAttribute('href', '#icon-search-ai');
use.setAttributeNS(
'http://www.w3.org/1999/xlink',
'href',
'#icon-search-ai'
);
}
});
console.log("[MISO SCRIPT] Conditions met, initializing Miso search announcements.");
};
initMisoSearchAnnouncements();
});
document.addEventListener('consentManagerReady', () => {
const hasConsentYouTube = consentManager.checkConsentByVendors([
'YouTube',
'YT'
]);
if (hasConsentYouTube.some(vendor => vendor['Has Consent'] === false)) {
console.log('[YOUTUBE SCRIPT] Consent not given for YouTube.');
} else {
console.log('[YOUTUBE SCRIPT] Consent given for YouTube. Loading script...');
}
});
document.addEventListener('consentManagerReady', () => {
const hasConsentAdobeTypekit = consentManager.checkConsentByVendors([
'Adobe Typekit'
]);
if (hasConsentAdobeTypekit.every(vendor => vendor['Has Consent'] === true)) {
if (foundry_is_edition('kr')) {
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'https://use.typekit.net/ihi5tse.css';
document.head.appendChild(link);
}
}
});
(function(){
document.addEventListener('consentManagerReady', () => {
const key = 'veshbl7kyo';
const debug = consentManager.debug;
if ( ! (key && key.length > 3)){
console.warn('[MS Clarity] is enabled but key is too short key=' + key);
return;
}
const hasConsent = consentManager.checkConsentByVendor('Microsoft Clarity');
if (debug) console.log('[MS CLARITY] hasConsent =',hasConsent );
if(hasConsent){
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", key);
if (debug) console.log('[MS CLARITY] checkClarityLoaded allowCookies= typeof window.clarity=', (typeof window.clarity) );
window.clarity("consent");
}
});
})();
document.addEventListener('consentManagerReady', () => {
const vendors = ['Subscribers'];
const hasConsentSubscribers = consentManager.checkConsentByVendors(vendors);
if (hasConsentSubscribers.some(vendor => vendor['Has Consent'] === false)) {
return;
} else {
if (foundry_is_language('en')) {
console.log('Language is English');
// subscribers english ..
}
if (foundry_is_edition('kr')) {
console.log('Edition is Korean');
// subscribers in korean ..
}
if (foundry_is_edition('ja')) {
console.log('Edition is Japanese');
// subscribers in japanese ..
}
}
});
</script>
<script type="text/javascript" src="https://www.pcworld.com/_static/??-eJylkb0OwjAMhF+IYED8DoiBgYUuqGJ3UpO6pEkVW6C+PRVI7NDBi3X3yXeGZ2dcikpRQWtqSYArb+zCGotC5r2DwBbEZe5UwKW2S3HQm1tKSnnayAR+pwQUmZ5IC4zox1EuhFWRMv3J+OaJ+GCPyimOuaZM3gc6fpxXFrYcWPsxyAoVz9hTLjO6+y9lSXYgOmRy0AjU7OswzOdrh3Y/32x3s/V8uZo1L4sPv3o=" ></script><script>window.onload = setTimeout(function() {
(function () {
window.aax = window.aax || {};
var aax = window.aax;
aax.initTime = new Date().getTime();
aax.pubId = "AAXFGX83C";
aax.ver = "1.2";
aax.hst = window.location.hostname;
var aaxEndpoint = "https://c.aaxads.com/aax.js?pub=" + aax.pubId + "&hst=" + aax.hst + "&ver=" + aax.ver;
console.log('Blockthrough Running (was Acceptable Ads - AAX)', aax);
function loadScript(endpoint) {
var scriptTag = document.createElement("script"),
placeTag = document.getElementsByTagName("script")[0];
scriptTag.type = "text/javascript";
scriptTag.async = true;
scriptTag.src = endpoint;
placeTag.parentNode.insertBefore(scriptTag, placeTag);
}
loadScript(aaxEndpoint);
})();
window.aax = window.aax || {};
window.aax.cmd = window.aax.cmd || [];
window.aax.cmd.push(function() {
if (window.aax.getAbpStatus && window.aax.getAbpStatus()) {
document.querySelectorAll('.ad').forEach((ad) => {
if (ad.hasChildNodes()) {
ad.classList.add('has-loaded');
ad.classList.add('has-rendered');
}
});
window.googletag = window.googletag || {};
window.googletag.cmd = window.googletag.cmd || [];
window.googletag.cmd.push(function() {
googletag.pubads().refresh(null, { changeCorrelator: false });
});
}
});
}, 8000);</script>
</body>
</html>