CINXE.COM
Le bon choix : cuisine et éléctroménager | Le Huffington Post
<!DOCTYPE html> <html lang="fr"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://www.huffingtonpost.fr/news/le-bon-choix-cuisine-et-electromenager/","20191021192505","https://web.archive.org/","web","/_static/", "1571685905"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"> <title>Le bon choix : cuisine et éléctroménager | Le Huffington Post</title> <meta name="viewport" content="width=1000"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/> <meta name="description" content="Le HuffPost vous propose, en plus des conseils d’achats, des comparatifs et tests détaillés sur des produits en particulier."/> <meta property="og:type" content="website"/> <meta property="og:image" content="https://web.archive.org/web/20191021192505im_/https://o.aolcdn.com/hss/storage/midas/5cd7402448aee839518fb7718319b859/205237316/H-no-image.png"/> <meta property="og:site_name" content="Le Huffington Post"/> <meta name="og:title" content="Le bon choix : cuisine & éléctroménager"/> <meta name="og:description" content="Le HuffPost vous propose, en plus des conseils d’achats, des comparatifs et tests détaillés sur des produits en particulier."/> <meta property="og:app_id" content="211284542274496"/> <meta property="fb:app_id" content="211284542274496"/> <meta property="twitter:site" content="LeHuffPost"/> <meta property="twitter:card" content="summary_large_image"/> <meta property="twitter:title" content="Le bon choix : cuisine & éléctroménager"/> <meta property="twitter:image" content="https://o.aolcdn.com/hss/storage/midas/5cd7402448aee839518fb7718319b859/205237316/H-no-image.png"/> <meta name="twitter:description" content="Le HuffPost vous propose, en plus des conseils d’achats, des comparatifs et tests détaillés sur des produits en particulier."/> <meta property="fb:pages" content="211284542274496"/> <link rel="canonical" href="https://web.archive.org/web/20191021192505/https://www.huffingtonpost.fr/news/le-bon-choix-cuisine-et-electromenager/"> <script type="application/ld+json"> { "@context": "https://web.archive.org/web/20191021192505/http://schema.org", "@type": "WebPage" } </script> <link rel="alternate" media="only screen and (max-width: 640px)" href="https://web.archive.org/web/20191021192505/https://m.huffingtonpost.fr/news/le-bon-choix-cuisine-et-electromenager/"/> <link rel="shortcut icon" href="https://web.archive.org/web/20191021192505im_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/favicon.ico"> <link rel="icon" href="https://web.archive.org/web/20191021192505im_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/favicon.ico" type="image/x-icon"/> <base href="/web/20191021192505/https://www.huffingtonpost.fr/"> <link rel="stylesheet" href="https://web.archive.org/web/20191021192505cs_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/css/vendor.min.css"> <link rel="stylesheet" href="https://web.archive.org/web/20191021192505cs_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/css/styles.min.css"> <!--[if IE]> <script src="https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/js/promise.min.js"></script> <![endif]--> <script src="https://web.archive.org/web/20191021192505js_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/js/common.min.js"></script> <link href="https://web.archive.org/web/20191021192505cs_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/css/editions/fr.css" rel="stylesheet"/> <!-- IOS Smart App Banner --> <meta content="app-id=306621789" name="apple-itunes-app"> <!-- Android Smart App Banner --> <link rel="manifest" href="/web/20191021192505/https://www.huffingtonpost.fr/manifest.json"> <script type="application/javascript" data-script="cmp-stub.js"> /* CMP 2.14.0 */ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=2)}({2:function(e,t){!function(){var e=!1;function t(e){var t="string"==typeof e.data,n=e.data;if(t)try{n=JSON.parse(e.data)}catch(e){}if(n&&n.__cmpCall){var r=n.__cmpCall;window.__cmp(r.command,r.parameter,function(n,o){var a={__cmpReturn:{returnValue:n,success:o,callId:r.callId}};e&&e.source&&e.source.postMessage(t?JSON.stringify(a):a,"*")})}}"function"==typeof __cmp||(window.__cmp=function(){var t=arguments;if(__cmp.a=__cmp.a||[],!t.length)return __cmp.a;"ping"===t[0]?t[2]({gdprAppliesGlobally:e,cmpLoaded:!1},!0):__cmp.a.push([].slice.apply(t))},function e(){if(document.body&&document.body.firstChild){var t=document.body,n=document.createElement("iframe");n.style.display="none",n.height=n.width=0,n.name="__cmpLocator",t.insertBefore(n,t.firstChild)}else setTimeout(e,5)}(),window.addEventListener?window.addEventListener("message",t,!1):window.attachEvent("onmessage",t))}()}}); </script> <link rel="stylesheet" href="https://web.archive.org/web/20191021192505cs_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/gdpr/fr-consent/fr-consent.css"> <!-- DFP PREFIX CONFIGURATION --> <script type="text/javascript"> window.dfpPrefix = ""; window.dfpPrefixController = {}; (function(){ var slotPrefix = "/128139881/HUFF_huffpost/lebonchoix/lebonchoix/"; var slotPrefixOverride = ""; //For FR slotPrefix = slotPrefix + "hp/"; var results = new RegExp('[\?&]dfp_test_prefix=([^&#]*)').exec(window.location.href); if (results && results[1]){ window.dfpPrefix = results[1].trim().replace(/^\/+|\/+$/g, ''); } else { slotPrefix = slotPrefixOverride || slotPrefix; window.dfpPrefix = slotPrefix; } window.ADS_CONFIG = { adUnit: window.dfpPrefix.replace(/(\s*\/*\s*)*$/g, ""), formats: { inread: { desktop: ['fluid', [2,2], [630, 355]] } } }; })(); </script> <script type="text/javascript"> (function(){ if (!window.ADS_CONFIG) { var __tmp1 = window.console && window.console.error("ADS_CONFIG not defined!"); } window.googletag = window.googletag || {}; window.googletag.cmd = window.googletag.cmd || []; window.googletag.slots = window.googletag.slots || {}; var utility = { addClassToNode: function(node, name) { function getNodeClassName() { return node.className.replace(/^\s*|\s*$/g, "").replace(/\s+/g, " "); } if ((getNodeClassName()).indexOf(name) === -1) { node.className = getNodeClassName() + " " + name; } } }; googletag.cmd.push(function() { googletag.pubads().addEventListener("slotRenderEnded", function(event) { var div = document.getElementById(event.slot.getSlotElementId()); var __tmp2 = window.console && window.console.log("Slot rendered for div: " + div.id); utility.addClassToNode(div, 'ad-rendered'); return; }); }); var targeting = {}; targeting.category = "le-bon-choix"; targeting.rub = "le-bon-choix-cuisine-et-electromenager"; //temp function get_url_query(variable) { var query = window.location.search.substring(1); var vars = query.split('&'); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split('='); if (decodeURIComponent(pair[0]) == variable) { return decodeURIComponent(pair[1]); } } return ''; } var dfptest = get_url_query('dfptest'); if (dfptest !== '') { targeting.test_target = dfptest; } window.ADS_CONFIG.targets = {}; for (var k in targeting) { window.ADS_CONFIG.targets[k] = targeting[k]; } var __tmp3 = window.console && window.console.log(window.ADS_CONFIG); })(); </script> <script> var _HPJS = (function (_mod) { "use strict"; _mod.loadJS = function (src, options) { var options = options || {}; var ref = window.document.getElementsByTagName("script")[0]; var script = window.document.createElement("script"); script.src = src; script.async = options.async; script.defer = options.defer; ref.parentNode.insertBefore(script, ref); return script; } _mod.loadJSLater = function (url, timeout) { var ran = false; var loader = function () { if (ran) { return; } ran = true; _mod.loadJS(url, {async:true}); } window.addEventListener ? window.addEventListener("load",loader,false) : window.attachEvent && window.attachEvent("onload",loader); // in case the load event never fires setTimeout(loader, timeout || 15000); } _mod.waitForGlobal = function(identifier, cb, poll) { var test = typeof identifier === "function" ? identifier : function() { return !!window[identifier]; }; var interval; if(test()) { cb(); } else { interval = setInterval(function(){ if(test()) { cb(); clearInterval(interval); } }, poll || 50); } }; return _mod; }(_HPJS || {})); </script> <script> window.waitForGlobal = function(identifier, cb, poll) { var test = typeof identifier === "function" ? identifier : function() { return !!window[identifier]; }; var interval; if(test()) { cb(); } else { interval = setInterval(function(){ if(test()) { cb(); clearInterval(interval); } }, poll || 50); } }; window.modulousQueue = (function() { var queue = []; var run = false; function runner(fn) { setTimeout(function(){ try { fn(); } catch (e) { } }, 0); } return { add: function(fn) { var _tmp1 = !run && queue.push(fn); var _tmp2 = run && runner(fn); }, runAll: function() { var i = 0; run = true; for(;i<queue.length;i++) { runner(queue[i]); } queue = []; } }; }()); setTimeout(function(){ waitForGlobal('jQuery', modulousQueue.runAll); }, 5000); </script> <meta name="taboola.category" content=""/> <!-- ads_asset_insert --> <!-- RAPID INITIALIZATION --><script type="text/javascript" src="https://web.archive.org/web/20191021192505js_/https://s.yimg.com/ss/rapid3.js"></script> <script type="text/javascript">window.rapidConfig = {"spaceid":1197803189,"keys":{"ver":"huffpostcms","st_sec":"fr.hpmg","pt":"minihome","pct":"topic","p_sec":"le-bon-choix","p_subsec":"le-bon-choix-cuisine-et-electromenager"},"nonanchor_track_class":"yr-track","async_all_clicks":true}; var guce_referrer = getQueryStringParameter(window.location.href, "guce_referrer_us"); if (guce_referrer) { window.rapidConfig.referrer = base64Url_decode(guce_referrer); } if (window.Tracking.cobrand) { window.rapidConfig.keys['pl1'] = window.Tracking.cobrand; } window.RapidInstance = new window.YAHOO.i13n.Rapid(window.rapidConfig); </script> <!-- Begin Google Analytics --> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://web.archive.org/web/20191021192505/https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-71081-1', 'auto'); ga('send', 'pageview'); </script> <!-- End Google Analytics --> <!-- AT Internet --> <script type="text/javascript" src="//web.archive.org/web/20191021192505js_/https://tag.aticdn.net/494071/smarttag.js"></script> <script type="text/javascript"> var ATTag = new ATInternet.Tracker.Tag({ log: 'logc2', logSSL: 'logs13', secure: true, site: 494071, domain: 'xiti.com' }); var customObject = { page_type: 'Topic', vertical: 26, page_name: 'Le bon choix : cuisine & éléctroménager' }; (function () { 'use strict'; ATTag.page.send({ customObject: customObject }); }) (); </script> <!-- End AT Internet --> <script> window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.async = true; js.src = "//web.archive.org/web/20191021192505/https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); t._e = []; t.ready = function(f) { t._e.push(f); }; return t; }(document, "script", "twitter-wjs")); </script> <script async defer src="//web.archive.org/web/20191021192505js_/https://platform.instagram.com/en_US/embeds.js"></script> </head><body class="country-fr locale-fr_FR page--skin-life bnp"> <div id="fb-root"></div> <script>(function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.async = true; js.src = "//web.archive.org/web/20191021192505/https://connect.facebook.net/fr_FR/sdk.js#xfbml=1&version=v2.10&appId=211284542274496"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> <!-- ads_top_1x1 --> <div id="modulous_top_1x1" class="ad_spot"> <div id="cover" data-format="cover" class="ad-top_1x1 dfp-slot "></div><div id="habillage" data-format="habillage" class="ad-top_1x1 dfp-slot "></div> </div> <div id="AolTrafficInfo" data-blogid="1045"></div> <div class="left-nav yr-life-left-nav" role="menu"> <div class="left-nav__header"> <button aria-label="Close Menu" class="hamburger-close hamburger-close-button" type="button"></button> <div class="nav-editions yr-life-editions"> <ul class="nav-editions__dropdown"> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=AU" data-edition="au"> Australia </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=BR" data-edition="br"> Brasil </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=CA" data-edition="ca"> Canada </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=ES" data-edition="es"> España </a> </li> <li class="nav-editions__dropdown__item nav-editions__dropdown__item--selected"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=FR" data-edition="fr"> France </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=GR" data-edition="gr"> Ελλάδα (Greece) </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=IN" data-edition="in"> India </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=IT" data-edition="it"> Italia </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=JP" data-edition="jp"> 日本 (Japan) </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=KR" data-edition="kr"> 한국 (Korea) </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=MG" data-edition="mg"> Maghreb </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=QC" data-edition="qc"> Québec (en français) </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=UK" data-edition="uk"> United Kingdom </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=US" data-edition="us"> United States </a> </li> </ul> <div class="nav-editions__buttons"><a class="nav-editions__buttons__current nav-editions-open-button yr-life-editions-open" data-s-text="France" href="#">France</a> <a class="nav-editions__buttons__close nav-editions-close-button" href="#">FERMER</a> </div> </div> </div> <div class="left-nav__body"> <form class="nav-search" id="left-nav-search" action="/web/20191021192505/https://www.huffingtonpost.fr/search/" accept-charset="UTF-8" method="get"> <i class="icon-Nav_Search_Life"></i> <a href="#" class="nav-search__cancel nav-search-close-button" id="left-nav-search-close-button"></a> <input type="text" autocomplete="off" placeholder="Rechercher sur Le HuffPost" class="nav-search__keywords" id="left-nav-search-input" name="keywords"></form> <ul class="left-nav-menu yr-life-sections"> <li class="left-nav-menu__item yr-life-section-item" data-s-value="Politique"> <a class="left-nav-menu__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/politique/">Politique</a> <ul class="left-nav-menu__subitems"> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/emmanuel-macron/" target="_self"> Emmanuel Macron </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/elections-municipales/" target="_self"> Municipales 2020 </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/sondages/" target="_self"> Sondages </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/assemblee-nationale/" target="_self"> Assemblée nationale </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/police/" target="_self"> Police </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/terrorisme/" target="_self"> Terrorisme </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/justice/" target="_self"> Justice </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/gilets-jaunes/" target="_self"> Gilets jaunes </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/lrem/" target="_self"> LREM </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/paris/" target="_self"> Paris </a> </li> </ul> </li> <li class="left-nav-menu__item yr-life-section-item" data-s-value="International"> <a class="left-nav-menu__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/international/">International</a> <ul class="left-nav-menu__subitems"> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/donald-trump/" target="_self"> Donald Trump </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/etats-unis/" target="_self"> Etats-Unis </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/elections-americaines/" target="_self"> Election américaine </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/europe/" target="_self"> Europe </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/brexit/" target="_self"> Brexit </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/afrique/" target="_self"> Afrique </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/asie/" target="_self"> Asie </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/environnement/" target="_self"> Environnement </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/rechauffement-climatique/" target="_self"> Réchauffement climatique </a> </li> </ul> </li> <li class="left-nav-menu__item yr-life-section-item" data-s-value="Économie"> <a class="left-nav-menu__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/economie/">Économie</a> <ul class="left-nav-menu__subitems"> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/techno/" target="_self"> Techno </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/impots/" target="_self"> Impots </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/immobilier/" target="_self"> Immobilier </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/chomage/" target="_self"> Chômage </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/emploi/" target="_self"> Emploi </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/smartphones/" target="_self"> Smartphones </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/objets-connectes/" target="_self"> Objets connectés </a> </li> </ul> </li> <li class="left-nav-menu__item yr-life-section-item" data-s-value="C'est La Vie"> <a class="left-nav-menu__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/cest-la-vie/">C'est La Vie</a> <ul class="left-nav-menu__subitems"> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/bien-etre/" target="_self"> Bien-être </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/alimentation/" target="_self"> Alimentation </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/forme/" target="_self"> Forme </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/sexualite/" target="_self"> Sexualité </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/voyage/" target="_self"> Voyage </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/femmes/" target="_self"> Femmes </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/parents/" target="_self"> Parents </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/psychologie/" target="_self"> Psycho </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/sante/" target="_self"> Santé </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/temoignage/" target="_self"> Témoignage </a> </li> </ul> </li> <li class="left-nav-menu__item yr-life-section-item" data-s-value="Culture"> <a class="left-nav-menu__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/culture/">Culture</a> <ul class="left-nav-menu__subitems"> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/cinema/" target="_self"> Cinéma </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/series-tele/" target="_self"> Séries télé </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/musique/" target="_self"> Musique </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/jeux-video/" target="_self"> Jeux vidéo </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/livres/" target="_self"> Livres </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/art/" target="_self"> Art </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/science/" target="_self"> Science </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/people/" target="_self"> People </a> </li> </ul> </li> <li class="left-nav-menu__item yr-life-section-item" data-s-value="Le Bon Choix"> <a class="left-nav-menu__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/le-bon-choix/">Le Bon Choix</a> <ul class="left-nav-menu__subitems"> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/le-bon-choix-smartphones-et-high-tech/" target="_self"> Smartphone et high tech </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/le-bon-choix-jeux-et-jouets/" target="_self"> Jeux et jouets </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/le-bon-choix-bien-etre-et-hygiene/" target="_self"> Bien être et hygiène </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/le-bon-choix-cuisine-et-electromenager/" target="_self"> Cuisine et électroménager </a> </li> </ul> </li> <li class="left-nav-menu__item yr-life-section-item" data-s-value="Le Huffplay"> <a class="left-nav-menu__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/video/">Le Huffplay</a> </li> <li class="left-nav-menu__item yr-life-section-item" data-s-value="Plus"> <a class="left-nav-menu__item__link" href="#">Plus</a> <ul class="left-nav-menu__subitems"> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/le-bon-lien/" target="_self"> Le bon lien </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/cest-demain/" target="_self"> C'est demain </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/ca-marche/" target="_self"> Ça marche </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/vie-de-bureau/" target="_self"> Vie de bureau </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/medias/" target="_self"> Médias </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/reseaux-sociaux/" target="_self"> Réseaux sociaux </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/mode/" target="_self"> Mode </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/insolite/" target="_self"> Insolite </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/animaux/" target="_self"> Animaux </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/sport/" target="_self"> Sport </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/faits-divers/" target="_self"> Faits divers </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/jouets/" target="_self"> Jouets </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/jeux-de-societe/" target="_self"> Jeux de société </a> </li> <li class="left-nav-menu__subitems__item yr-life-section-subitem"><a class="left-nav-menu__subitems__item__link" href="/web/20191021192505/https://www.huffingtonpost.fr/news/electromenager/" target="_self"> Electroménager </a> </li> </ul> </li> </ul> </div> <div class="left-nav__footer"> <div class="left-nav__footer__social"> <div class="social-buttons social-buttons--left-nav"> <div class="social-buttons__label"> Suivez-nous </div> <div class="social-buttons__icons yr-life-social-list"> <a class="social-list__item social-list__item--facebook icon-Social_Facebook_Circle yr-social-list-item" href="https://web.archive.org/web/20191021192505/https://facebook.com/LeHuffPost" data-social-overlay="top-nav__facebook-overlay" data-social-name="facebook" aria-label="Suivez-nous sur facebook" target="_blank"></a><a class="social-list__item social-list__item--twitter icon-Social_Twitter_Circle yr-social-list-item" href="https://web.archive.org/web/20191021192505/https://twitter.com/LeHuffPost" data-social-overlay="top-nav__twitter-overlay" data-social-name="twitter" aria-label="Suivez-nous sur twitter" target="_blank"></a><a class="social-list__item social-list__item--instagram icon-Social_Instagram_Circle yr-social-list-item" href="https://web.archive.org/web/20191021192505/https://www.instagram.com/lehuffpost/" data-social-overlay="top-nav__instagram-overlay" data-social-name="instagram" aria-label="Suivez-nous sur instagram" target="_blank"></a><a class="social-list__item social-list__item--flipboard icon-Social_Flipboard_Circle yr-social-list-item" href="https://web.archive.org/web/20191021192505/https://flipboard.com/@LeHuffpost" data-social-overlay="top-nav__flipboard-overlay" data-social-name="flipboard" aria-label="Suivez-nous sur flipboard" target="_blank"></a> </div> </div> </div> <div class="left-nav__footer__links"> <a class="left-nav__footer__links__item" href="https://web.archive.org/web/20191021192505/https://www.huffingtonpost.fr/p/conditions-generales.html">Termes</a> | <a class="left-nav__footer__links__item" href="https://web.archive.org/web/20191021192505/https://www.huffingtonpost.fr/p/charte-de-confidentialite">Règles de respect de la vie privée</a> </div> <div class="left-nav__footer__copyright"> Fait partie de <b>HuffPost News</b> </div> </div> </div> <div class="page-wrapper"> <!-- ads_pushdown --> <div id="modulous_pushdown" class="ad_spot desktop-only"> </div> <div class="master-container"> <header id="desktop__main_header" class="header header_skin_life js-header" role="banner"> <nav class="header__content yr-masthead"> <ul class="nav-icons"> <li class="nav-icons__item"> <a class="nav-icons__item__link hamburger-nav hamburger-open-button yr-hamburger-open icon-Nav_Hamburger" href="https://web.archive.org/web/20191021192505/https://www.huffingtonpost.fr/" aria-label="Le Huffington Post"></a> </li> <li class="nav-icons__item nav-icons__search"> <form class="nav-search" id="header-search" action="/web/20191021192505/https://www.huffingtonpost.fr/search/" accept-charset="UTF-8" method="get"> <i class="icon-Nav_Search_Life"></i> <a href="#" class="nav-search__cancel nav-search-close-button" id="header-search-close-button"></a> <input type="text" autocomplete="off" placeholder="Rechercher sur Le HuffPost" class="nav-search__keywords" id="header-search-input" name="keywords"></form> <a class="nav-icons__item__link icon-Nav_Search_Life nav-search-open-button yr-search-open" href="/web/20191021192505/https://www.huffingtonpost.fr/search/" aria-label="Rechercher"></a> </li> </ul> <div class="header__item header__logo"> <a class="logo yr-logo" href="/web/20191021192505/https://www.huffingtonpost.fr/"> <img alt="The Huffington Post" class="logo__img" src="https://web.archive.org/web/20191021192505im_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/images/logos/HuffPost.svg"> </a> </div> </nav> <nav class="top-nav yr-nav"> <div class="top-nav__inner"> <div class="top-nav__item top-nav__item--politique yr-nav-item" data-edition="france" data-s-type="section" data-s-value="Politique"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="Politique" href="/web/20191021192505/https://www.huffingtonpost.fr/politique/"> <span>Politique</span> </a> </div> <div class="top-nav__item top-nav__item--international yr-nav-item" data-edition="france" data-s-type="section" data-s-value="International"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="International" href="/web/20191021192505/https://www.huffingtonpost.fr/international/"> <span>International</span> </a> </div> <div class="top-nav__item top-nav__item--economie yr-nav-item" data-edition="france" data-s-type="section" data-s-value="Économie"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="Économie" href="/web/20191021192505/https://www.huffingtonpost.fr/economie/"> <span>Économie</span> </a> </div> <div class="top-nav__item top-nav__item--c-est-la-vie yr-nav-item" data-edition="france" data-s-type="section" data-s-value="C'est La Vie"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="C'est La Vie" href="/web/20191021192505/https://www.huffingtonpost.fr/cest-la-vie/"> <span>C'est La Vie</span> </a> </div> <div class="top-nav__item top-nav__item--culture yr-nav-item" data-edition="france" data-s-type="section" data-s-value="Culture"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="Culture" href="/web/20191021192505/https://www.huffingtonpost.fr/culture/"> <span>Culture</span> </a> </div> <div class="top-nav__item top-nav__item--le-bon-choix yr-nav-item" data-edition="france" data-s-type="section" data-s-value="Le Bon Choix"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="Le Bon Choix" href="/web/20191021192505/https://www.huffingtonpost.fr/le-bon-choix/"> <span>Le Bon Choix</span> </a> </div> <div class="top-nav__item top-nav__item--le-huffplay yr-nav-item" data-edition="france" data-s-type="section" data-s-value="Le Huffplay"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="Le Huffplay" href="/web/20191021192505/https://www.huffingtonpost.fr/video/"> <span>Le Huffplay</span> </a> </div> </div> <div class="nav-editions yr-life-editions"> <ul class="nav-editions__dropdown"> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=AU" data-edition="au"> Australia </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=BR" data-edition="br"> Brasil </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=CA" data-edition="ca"> Canada </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=ES" data-edition="es"> España </a> </li> <li class="nav-editions__dropdown__item nav-editions__dropdown__item--selected"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=FR" data-edition="fr"> France </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=GR" data-edition="gr"> Ελλάδα (Greece) </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=IN" data-edition="in"> India </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=IT" data-edition="it"> Italia </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=JP" data-edition="jp"> 日本 (Japan) </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=KR" data-edition="kr"> 한국 (Korea) </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=MG" data-edition="mg"> Maghreb </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=QC" data-edition="qc"> Québec (en français) </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=UK" data-edition="uk"> United Kingdom </a> </li> <li class="nav-editions__dropdown__item"> <a class="yr-edition-link" href="https://web.archive.org/web/20191021192505/https://www.huffpost.com/?country=US" data-edition="us"> United States </a> </li> </ul> <div class="nav-editions__buttons"><a class="nav-editions__buttons__current nav-editions-open-button yr-life-editions-open" data-s-text="France" href="#">France</a> <a class="nav-editions__buttons__close nav-editions-close-button" href="#">FERMER</a> </div> </div> <div class="top-nav-sticky top-nav-sticky--a-page bounceInDown hide "> <nav class="top-nav--front-page top-nav--sticky"> <div class="top-nav__inner"> <div class="top-nav__item top-nav__item--politique yr-nav-item" data-edition="france" data-s-type="section" data-s-value="Politique"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="Politique" href="/web/20191021192505/https://www.huffingtonpost.fr/politique/"> <span>Politique</span> </a> </div> <div class="top-nav__item top-nav__item--international yr-nav-item" data-edition="france" data-s-type="section" data-s-value="International"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="International" href="/web/20191021192505/https://www.huffingtonpost.fr/international/"> <span>International</span> </a> </div> <div class="top-nav__item top-nav__item--economie yr-nav-item" data-edition="france" data-s-type="section" data-s-value="Économie"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="Économie" href="/web/20191021192505/https://www.huffingtonpost.fr/economie/"> <span>Économie</span> </a> </div> <div class="top-nav__item top-nav__item--c-est-la-vie yr-nav-item" data-edition="france" data-s-type="section" data-s-value="C'est La Vie"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="C'est La Vie" href="/web/20191021192505/https://www.huffingtonpost.fr/cest-la-vie/"> <span>C'est La Vie</span> </a> </div> <div class="top-nav__item top-nav__item--culture yr-nav-item" data-edition="france" data-s-type="section" data-s-value="Culture"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="Culture" href="/web/20191021192505/https://www.huffingtonpost.fr/culture/"> <span>Culture</span> </a> </div> <div class="top-nav__item top-nav__item--le-bon-choix yr-nav-item" data-edition="france" data-s-type="section" data-s-value="Le Bon Choix"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="Le Bon Choix" href="/web/20191021192505/https://www.huffingtonpost.fr/le-bon-choix/"> <span>Le Bon Choix</span> </a> </div> <div class="top-nav__item top-nav__item--le-huffplay yr-nav-item" data-edition="france" data-s-type="section" data-s-value="Le Huffplay"> <a class="top-nav__item__link yr-life-nav-item-link" data-s-text="Le Huffplay" href="/web/20191021192505/https://www.huffingtonpost.fr/video/"> <span>Le Huffplay</span> </a> </div> </div> </nav> <ul class="nav-icons"> <li class="nav-icons__item"> <a class="nav-icons__item__link hamburger-nav hamburger-open-button yr-hamburger-open icon-Nav_Hamburger" href="https://web.archive.org/web/20191021192505/https://www.huffingtonpost.fr/" aria-label="Le Huffington Post"></a> </li> <li class="nav-icons__item nav-icons__item--logo"> <a class="nav-icons__item__link yr-logo" href="https://web.archive.org/web/20191021192505/https://www.huffingtonpost.fr/" aria-label="Le Huffington Post"> <i class="icon-Social-HuffPost"></i> <img alt="The Huffington Post" class="nav-icons__item__logo" src="https://web.archive.org/web/20191021192505im_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/images/logos/HuffPost.svg"> </a> </li> </ul> </div> </nav> </header> <div class="inner-container row" role="main"> <!-- ads_leaderboard_flex --> <div id="modulous_leaderboard_flex" class="ad_spot desktop-only sticky-advertisement"><style type="text/css"> #topnav_margin_btm { margin: 0 !important; } </style> <div id="ad_leaderboard_flex" class="ad_wrapper_"><div id="banniere_haute" data-format="banniere_haute" class="ad-leaderboard_flex dfp-slot "></div></div> <script type="text/javascript">if (typeof HPAds !== 'undefined') { HPAds.ad_onload('div[id^="ad_leaderboard_flex"] iframe','HPAds.ad_uac_onload_handler(\' iframe[class^="uac_"]\',this,\'bottom_ad_border_div\',10)'); }</script></div> <h1 class="section-name"> <span>Le bon choix : cuisine & éléctroménager</span> </h1> <div class="page__content"> <div class="bnp__heading"> <!-- ads_splash_takeover --> <div id="modulous_splash_takeover" class="ad_spot"></div> </div> </div> <div class="page__content"> <div class="page__content__row"> <div class="col col--body-left bnp__card-list yr-col-body-left"> <div class="desktop-only"> <a name="blogRail"></a> <div class="apage-rail-cards"> <div style="padding-top: 0" id="card_left_1" class="card card--apage card--apage-featured card--apage-entries-1 card--has-image yr-card"> <div class="card__content"> <a class="card__image card__link yr-card-image " href="/web/20191021192505/https://www.huffingtonpost.fr/entry/les-meilleurs-barbecues-au-charbon-electrique-ou-a-gaz_fr_5cb6f110e4b082aab08eb377?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self"> <span class="card__image__wrapper "> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5cb6f2e6230000f4006db423.jpeg?ops=538_307" alt="Les meilleurs barbecues au charbon, électriques ou à gaz de" class="card__image__src"> <span class="image-credit">LeoPatrizi via Getty Images</span> </span> </a> <!-- /.card__image --> <ul class="card__headlines"> <li class="card__entry"> <h3 class="card__headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/les-meilleurs-barbecues-au-charbon-electrique-ou-a-gaz_fr_5cb6f110e4b082aab08eb377?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">Les meilleurs barbecues au charbon, électriques ou à gaz de 2019</a> </h3> </li> </ul> <!-- /.card__headlines --> </div> <!-- /.card__content --> </div> <!-- /.card--apage --> <div id="card_left_2" class="card card--apage card--apage-featured card--apage-entries-1 card--has-image yr-card"> <div class="card__content"> <a class="card__image card__link yr-card-image " href="/web/20191021192505/https://www.huffingtonpost.fr/2019/03/22/les-meilleurs-cuiseurs-vapeur-pour-une-cuisine-saine-et-legere_a_23696762/?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self"> <span class="card__image__wrapper "> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5ca1fe43240000ab00066e74.png?ops=538_307" alt="LE BON CHOIX DU WEEK-END - Les meilleurs cuiseurs vapeur pour manger sain et" class="card__image__src"> </span> </a> <!-- /.card__image --> <ul class="card__headlines"> <li class="card__entry"> <h3 class="card__headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/2019/03/22/les-meilleurs-cuiseurs-vapeur-pour-une-cuisine-saine-et-legere_a_23696762/?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">LE BON CHOIX DU WEEK-END - Les meilleurs cuiseurs vapeur pour manger sain et léger</a> </h3> </li> </ul> <!-- /.card__headlines --> </div> <!-- /.card__content --> </div> <!-- /.card--apage --> </div> </div> </div> <div class="col col--body-center bnp__card-list yr-col-body-center"> <a name="midRail"></a> <div class="apage-rail-cards"> <div style="padding-top: 0" id="card_center_1" class="card card--apage card--apage-featured card--apage-entries-1 card--has-image yr-card"> <div class="card__content"> <div class="card__label"> <h3 class="card__label__text"> Le bon choix </h3> </div> <a class="card__image card__link yr-card-image " href="/web/20191021192505/https://www.huffingtonpost.fr/entry/le-magimix-cook-expert-premium-xl-est-fait-pour-vous-si_fr_5da0313ee4b02c9da04827a7?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self"> <span class="card__image__wrapper "> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5da0a7522000005807500059.png?cache=c7YZqAokLR&ops=538_307" alt="Le Magimix Cook Expert Premium XL est fait pour vous" class="card__image__src"> </span> </a> <!-- /.card__image --> <ul class="card__headlines"> <li class="card__entry"> <h3 class="card__headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/le-magimix-cook-expert-premium-xl-est-fait-pour-vous-si_fr_5da0313ee4b02c9da04827a7?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">Le Magimix Cook Expert Premium XL est fait pour vous si...</a> </h3><div class="card__description"> <a class="card__link yr-card-description" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/le-magimix-cook-expert-premium-xl-est-fait-pour-vous-si_fr_5da0313ee4b02c9da04827a7?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">Le nouveau robot cuiseur de Magimix sera-t-il celui qui vous fera craquer? Découvrez si le Cook Expert Premium XL est fait pour vous (et s'il vaut ses 1399 euros).</a> </div> </li> </ul> <!-- /.card__headlines --> </div> <!-- /.card__content --> </div> <!-- /.card--apage --> <div id="card_center_2" class="card card--apage card--apage-featured card--apage-entries-1 card--has-image yr-card"> <div class="card__content"> <a class="card__image card__link yr-card-image " href="/web/20191021192505/https://www.huffingtonpost.fr/entry/les-meilleurs-aspirateurs-robots-efficaces_fr_5ce29d28e4b09e05780827f6?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self"> <span class="card__image__wrapper "> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5ce3c3b62100004309809dfa.jpeg?ops=538_307" alt="Les meilleurs aspirateurs robots efficaces en" class="card__image__src"> <span class="image-credit">Tech Media Network (Tom's Guide)</span> </span> </a> <!-- /.card__image --> <ul class="card__headlines"> <li class="card__entry"> <h3 class="card__headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/les-meilleurs-aspirateurs-robots-efficaces_fr_5ce29d28e4b09e05780827f6?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">Les meilleurs aspirateurs robots efficaces en 2019</a> </h3><div class="card__description"> <a class="card__link yr-card-description" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/les-meilleurs-aspirateurs-robots-efficaces_fr_5ce29d28e4b09e05780827f6?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">L'aspirateur robot moderne est capable de récolter la saleté en profondeur et de vous faire économiser un temps fou en ménage. Le comparatif du HuffPost met en avant les meilleures références de 2019.</a> </div> </li> </ul> <!-- /.card__headlines --> </div> <!-- /.card__content --> </div> <!-- /.card--apage --> <div id="card_center_3" class="card card--apage card--apage-featured card--apage-entries-1 card--has-image yr-card"> <div class="card__content"> <a class="card__image card__link yr-card-image " href="/web/20191021192505/https://www.huffingtonpost.fr/entry/cuisine-saine-comment-bien-choisir-des-ustensiles-de-cuisson_fr_5cb6dedce4b082aab08e6355?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self"> <span class="card__image__wrapper "> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5cb9f089230000bd026db666.jpeg?cache=wzGD28kQ06&ops=538_307" alt="Les meilleurs matériaux pour une cuisine" class="card__image__src"> <span class="image-credit">Liountmila Korelidou via Getty Images</span> </span> </a> <!-- /.card__image --> <ul class="card__headlines"> <li class="card__entry"> <h3 class="card__headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/cuisine-saine-comment-bien-choisir-des-ustensiles-de-cuisson_fr_5cb6dedce4b082aab08e6355?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">Les meilleurs matériaux pour une cuisine saine</a> </h3><div class="card__description"> <a class="card__link yr-card-description" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/cuisine-saine-comment-bien-choisir-des-ustensiles-de-cuisson_fr_5cb6dedce4b082aab08e6355?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">Manger sainement, oui... Mais encore faut-il que la cuisson suive. Comment choisir ses ustensiles dans des matières durables et exempt de produits toxique ou de perturbateurs endocriniens? Suivez le guide pour un matériel antiadhésif sans substances nocives.</a> </div> </li> </ul> <!-- /.card__headlines --> </div> <!-- /.card__content --> </div> <!-- /.card--apage --> <div id="card_center_4" class="card card--apage card--apage-featured card--apage-entries-1 card--has-image yr-card"> <div class="card__content"> <a class="card__image card__link yr-card-image " href="/web/20191021192505/https://www.huffingtonpost.fr/entry/les-meilleurs-barbecues-electriques-de-tables-pour-votre-balcon_fr_5cb44593e4b082aab0885419?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self"> <span class="card__image__wrapper "> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5cb5da60240000e201044a40.jpeg?ops=538_307" alt="LE BON CHOIX DU WEEK-END - Les meilleurs barbecues électriques pour votre" class="card__image__src"> <span class="image-credit">mbbirdy via Getty Images</span> </span> </a> <!-- /.card__image --> <ul class="card__headlines"> <li class="card__entry"> <h3 class="card__headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/les-meilleurs-barbecues-electriques-de-tables-pour-votre-balcon_fr_5cb44593e4b082aab0885419?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">LE BON CHOIX DU WEEK-END - Les meilleurs barbecues électriques pour votre balcon</a> </h3><div class="card__description"> <a class="card__link yr-card-description" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/les-meilleurs-barbecues-electriques-de-tables-pour-votre-balcon_fr_5cb44593e4b082aab0885419?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">Le HuffPost a comparé les meilleurs modèles de barbecues électriques de 2019 chez Weber, Tefal et Philips pour les balcons et terrasses. Voici notre guide d'achat.</a> </div> </li> </ul> <!-- /.card__headlines --> </div> <!-- /.card__content --> </div> <!-- /.card--apage --> <div id="card_center_5" class="card card--apage card--apage-standard card--apage-entries-1 card--has-image yr-card"> <div class="card__content"> <a class="card__image card__link yr-card-image " href="/web/20191021192505/https://www.huffingtonpost.fr/2019/02/01/pour-la-chandeleur-faut-il-investir-dans-une-crepiere-ou-garder-sa-bonne-vieille-poele-a-crepes_a_23656823/?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self"> <span class="card__image__wrapper "> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5ca1fdcb2400001901c8846c.jpeg?ops=250_140" alt="Pour la Chandeleur, de quelle crêpière avez-vous" class="card__image__src"> </span> </a> <!-- /.card__image --> <ul class="card__headlines"> <li class="card__entry"> <h3 class="card__headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/2019/02/01/pour-la-chandeleur-faut-il-investir-dans-une-crepiere-ou-garder-sa-bonne-vieille-poele-a-crepes_a_23656823/?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">Pour la Chandeleur, de quelle crêpière avez-vous besoin?</a> </h3> </li> </ul> <!-- /.card__headlines --> </div> <!-- /.card__content --> </div> <!-- /.card--apage --> <div id="card_center_6" class="card card--apage card--apage-standard card--apage-entries-1 card--has-image yr-card"> <div class="card__content"> <a class="card__image card__link yr-card-image " href="/web/20191021192505/https://www.huffingtonpost.fr/2018/12/04/pour-acheter-une-bonne-cave-a-vin-combien-faut-il-depenser_a_23583800/?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self"> <span class="card__image__wrapper "> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5ca1fce024000086064f5912.jpeg?ops=250_140" alt="Combien faut-il dépenser pour une bonne cave à" class="card__image__src"> </span> </a> <!-- /.card__image --> <ul class="card__headlines"> <li class="card__entry"> <h3 class="card__headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/2018/12/04/pour-acheter-une-bonne-cave-a-vin-combien-faut-il-depenser_a_23583800/?utm_hp_ref=fr-le-bon-choix-cuisine-et-electromenager" target="_self">Combien faut-il dépenser pour une bonne cave à vin?</a> </h3> </li> </ul> <!-- /.card__headlines --> </div> <!-- /.card__content --> </div> <!-- /.card--apage --> </div></div> <div class="col col--body-right yr-col-body-right"> <!-- ads_right_rail_upper--> <div id="modulous_right_rail_upper" class="ad_spot desktop-only"> </div> <!-- ads_right_rail_flex --> <div id="modulous_right_rail_flex" class="ad_spot desktop-only"> <script type="text/javascript"> if ( "function" === typeof(adSetSyncDelay) ) { adSetSyncDelay('125'); } </script> <div id="ad_right_rail_flex" class="ad_wrapper_top"><div id="pave_haut" data-format="pave_haut" class="ad-right_rail_flex dfp-slot "></div></div> </div> <div id="right-rail-trending"> <section class="component js-scroll loaded recirc recirc--trending recirc--apage recirc--page yr-trending"> <div class="recirc__zone__title"> <h3 class="recirc__title trending"> On en parle </h3> </div> <div id="trending_1" class="recirc__content"> <div class="card recirc__item yr-card"> <div class="card__content"> <a class="card__image yr-card-image" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/une-des-journaux-australiens-est-elle-censuree_fr_5dad5798e4b0f34e3a786844?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending"> <div class="card__image__wrapper"> <div class="card__image card__image--cover-bg"> <div class="card__image__src"> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5dad59b6200000d219506409.png?ops=150_150" alt="Pourquoi la Une des journaux australiens est-elle censurée ce"> </div> </div> </div> </a> <div class="card__headlines"> <h2 class="card__headline js-card-headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/une-des-journaux-australiens-est-elle-censuree_fr_5dad5798e4b0f34e3a786844?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending">Pourquoi la Une des journaux australiens est-elle censurée ce lundi?</a> </h2> </div> </div> </div> </div> <div id="trending_2" class="recirc__content"> <div class="card recirc__item yr-card"> <div class="card__content"> <a class="card__image yr-card-image" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/nouveau-coup-dur-pour-johnson-le_fr_5dadc367e4b0f34e3a79d54b?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending"> <div class="card__image__wrapper"> <div class="card__image card__image--cover-bg"> <div class="card__image__src"> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5dadc4a6210000431d34a942.jpeg?cache=kINSIQrH3i&ops=150_150" alt="Le président du Parlement refuse à Johnson un nouveau vote sur l'accord de"> </div> </div> </div> </a> <div class="card__headlines"> <h2 class="card__headline js-card-headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/nouveau-coup-dur-pour-johnson-le_fr_5dadc367e4b0f34e3a79d54b?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending">Le président du Parlement refuse à Johnson un nouveau vote sur l'accord de Brexit</a> </h2> </div> </div> </div> </div> <div id="trending_3" class="recirc__content"> <div class="card recirc__item yr-card"> <div class="card__content"> <a class="card__image yr-card-image" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/nicolas-ghesquiere-na-pas-apprecie-de-voir-trump-chez-vuitton-au-texas_fr_5dad5872e4b0422422c7b133?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending"> <div class="card__image__wrapper"> <div class="card__image card__image--cover-bg"> <div class="card__image__src"> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5dad5b712100005820ad35ef.jpeg?cache=oTGnIBZ9Hz&ops=150_150" alt="Le styliste Nicolas Ghesquière n'a pas apprécié de voir Trump chez Vuitton au"> </div> </div> </div> </a> <div class="card__headlines"> <h2 class="card__headline js-card-headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/nicolas-ghesquiere-na-pas-apprecie-de-voir-trump-chez-vuitton-au-texas_fr_5dad5872e4b0422422c7b133?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending">Le styliste Nicolas Ghesquière n'a pas apprécié de voir Trump chez Vuitton au Texas</a> </h2> </div> </div> </div> </div> <div id="trending_4" class="recirc__content"> <div class="card recirc__item yr-card"> <div class="card__content"> <a class="card__image yr-card-image" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/les-smartphones-dans-les-poches-dangereux-pour-la-sante-ce-que-dit-le-rapport-de-lanses_fr_5dad7cf2e4b0f34e3a78ca8f?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending"> <div class="card__image__wrapper"> <div class="card__image card__image--cover-bg"> <div class="card__image__src"> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5dad87b1200000631b50645e.jpeg?ops=150_150" alt="Les smartphones dans les poches, dangereux pour la santé? Ce que dit le rapport de"> </div> </div> </div> </a> <div class="card__headlines"> <h2 class="card__headline js-card-headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/les-smartphones-dans-les-poches-dangereux-pour-la-sante-ce-que-dit-le-rapport-de-lanses_fr_5dad7cf2e4b0f34e3a78ca8f?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending">Les smartphones dans les poches, dangereux pour la santé? Ce que dit le rapport de l'Anses</a> </h2> </div> </div> </div> </div> <div id="trending_5" class="recirc__content"> <div class="card recirc__item yr-card"> <div class="card__content"> <a class="card__image yr-card-image" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/joaquin-phoenix-jared-leto-aurait-tente-de-faire-annuler-le-joker_fr_5dad5dc4e4b08cfcc31e4358?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending"> <div class="card__image__wrapper"> <div class="card__image card__image--cover-bg"> <div class="card__image__src"> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5dad6854200000141b506429.jpeg?cache=1icq8LlSPH&ops=150_150" alt="Jaloux de Joaquin Phoenix, Jared Leto aurait tenté de faire annuler"> </div> </div> </div> </a> <div class="card__headlines"> <h2 class="card__headline js-card-headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/joaquin-phoenix-jared-leto-aurait-tente-de-faire-annuler-le-joker_fr_5dad5dc4e4b08cfcc31e4358?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending">Jaloux de Joaquin Phoenix, Jared Leto aurait tenté de faire annuler "Joker"</a> </h2> </div> </div> </div> </div> <div id="trending_6" class="recirc__content"> <div class="card recirc__item yr-card"> <div class="card__content"> <a class="card__image yr-card-image" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/revocation-patrick-balkany-jugee-prematuree-par-le-gouvernement_fr_5dada265e4b0f34e3a79244c?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending"> <div class="card__image__wrapper"> <div class="card__image card__image--cover-bg"> <div class="card__image__src"> <img src="https://web.archive.org/web/20191021192505im_/https://img.huffingtonpost.com/asset/5dadaa3d210000e81dad3693.png?cache=rIlfJYjxEn&ops=150_150" alt="Le gouvernement juge " prématuré" d'évoquer la révocation de"> </div> </div> </div> </a> <div class="card__headlines"> <h2 class="card__headline js-card-headline"> <a class="card__link yr-card-headline" href="/web/20191021192505/https://www.huffingtonpost.fr/entry/revocation-patrick-balkany-jugee-prematuree-par-le-gouvernement_fr_5dada265e4b0f34e3a79244c?ncid=other_trending_qeesnbnu0l8&utm_campaign=trending">Le gouvernement juge "prématuré" d'évoquer la révocation de Balkany</a> </h2> </div> </div> </div> </div> </section> </div> <style type="text/css"> .follow-us__body::before { background-color: #0dbe98; } .follow-us .newsletter-signup input[type="submit"] { color: #0dbe98; } </style> <div class="desktop-only follow-us yr-follow-us"> <section class="follow-us__body"> <div class="follow-us__header"> <h3>S'INSCRIRE ET NOUS SUIVRE LE BON CHOIX</h3> </div> <div class="email" style="display: list-item;"> <div class="follow-us__description"> <p>Avec la newsletter quotidienne du HuffPost, recevez par email les infos les plus importantes et les meilleurs articles du jour. <a href="https://web.archive.org/web/20191021192505/https://www.huffingtonpost.fr/p/charte-de-confidentialite" target="_blank">En savoir plus</a> </p> </div> <form class="newsletter-signup" method="POST"> <div class="newsletter-header icon-Social_Mail">Newsletter</div> <input name="slug" type="hidden" value="le-bon-choix"> <input class="text" name="email" placeholder="adresse@email.fr" type="text" aria-label="email"> <label class="signup_error" style="display:none;"><strong>Veuillez entrer une adresse valide</strong></label> <label class="signup_error_terms" style="display:none;"><strong>Please accept our terms of service and privacy policy</strong></label> <label class="follow-us__description accept-terms-label"><input type="checkbox" class="accept-terms-checkbox" id="accept-terms" name="accept-terms" value="1">En cliquant sur « S'inscrire », je reconnais avoir pris connaissance de la <a href="https://web.archive.org/web/20191021192505/https://www.huffingtonpost.fr/p/charte-de-confidentialite">Politique de confidentialité</a> du HuffPost et des droits dont je dispose sur mes données personnelles</label> <div class="submit-button-group"> <input class="subscribe-submit yr-newsletter-submit yr-track" type="submit" value="S'inscrire"> <span class="newsletter-signup__submit-arrow icon-arrow-right-grey"></span> </div> <label class="signup_success" style="display:none;"><strong>Merci pour votre inscription! Vous allez bientôt recevoir un email de confirmation.</strong></label> <label class="signup_failure" style="display:none;"><strong>Nous avons un problème avec votre inscription. Veuillez réessayer.</strong></label> </form> </div> <!-- /.email --> <ul class="follow-us__networks"> <li class="twitter follow-us-networks-item " data-network="twitter" data-social-overlay="follow-us__twitter-overlay"> <a class="twitter follow-us-networks-item-link entry__link--omit yr-follow-us-link" data-href="https://twitter.com/LeHuffPost" href="https://web.archive.org/web/20191021192505/https://twitter.com/LeHuffPost" data-social-name="twitter" title="Suivez-nous sur Twitter" target="_blank" style=""> <i class="follow-us-networks-item-link-icon icon-Social_Twitter"></i> <span class="follow-us-networks-item-link-text" style="">Twitter</span> </a> </li> <li class="facebook follow-us-networks-item even" data-network="facebook" data-social-overlay="follow-us__facebook-overlay"> <a class="facebook follow-us-networks-item-link entry__link--omit yr-follow-us-link" data-href="https://facebook.com/LeHuffPost" href="https://web.archive.org/web/20191021192505/https://facebook.com/LeHuffPost" data-social-name="facebook" title="Suivez-nous sur Facebook" target="_blank" style=""> <i class="follow-us-networks-item-link-icon icon-Social_Facebook"></i> <span class="follow-us-networks-item-link-text" style="">Facebook</span> </a> </li> <li class="snapchat follow-us-networks-item " data-network="snapchat" data-social-overlay="follow-us__snapchat-overlay"> <a class="snapchat follow-us-networks-item-link entry__link--omit yr-follow-us-link" data-href="images/snapchat/huffpost-fr.png" href="images/snapchat/huffpost-fr.png" data-social-name="snapchat" title="Suivez-nous sur Snapchat" target="_blank" style=""> <i class="follow-us-networks-item-link-icon icon-Social_Snapchat"></i> <span class="follow-us-networks-item-link-text" style="">Snapchat</span> </a> </li> <li class="instagram follow-us-networks-item even" data-network="instagram" data-social-overlay="follow-us__instagram-overlay"> <a class="instagram follow-us-networks-item-link entry__link--omit yr-follow-us-link" data-href="https://www.instagram.com/lehuffpost/" href="https://web.archive.org/web/20191021192505/https://www.instagram.com/lehuffpost/" data-social-name="instagram" title="Suivez-nous sur Instagram" target="_blank" style=""> <i class="follow-us-networks-item-link-icon icon-Social_Instagram"></i> <span class="follow-us-networks-item-link-text" style="">Instagram</span> </a> </li> </ul> </section> <div class="mod-footer"></div> </div> <div id="follow-us__snapchat-overlay" class="social-overlay social-overlay--snapchat hidden"><div class="social-overlay__content"><div class="social-overlay__close"><div class="icon-close-x"></div><span>FERMER</span></div><div class="social-overlay__qr"><a href="https://web.archive.org/web/20191021192505/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/images/snapchat/huffpost-fr.png" target="_blank"><img src="https://web.archive.org/web/20191021192505im_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/images/snapchat/huffpost-fr.png"></a></div></div></div> <!-- ads_text_sponsorship --> <div id="modulous_text_sponsorship" class="ad_bottom_margin_10 ad_spot desktop-only"> <div id="pave_milieu" data-format="pave_milieu" class="ad-text_sponsorship dfp-slot "></div> </div> <!-- ads_right_rail_lower --> <div id="modulous_right_rail_lower" class="ad_spot desktop-only ad_bottom_margin_10"> </div> <div class="card-most-popular"> <div id="modulous_gravity_most_popular" class="ad_spot"> </div> </div> <!-- ads_right_rail_recirc --> <div id="modulous_right_rail_recirc" class="ad_bottom_margin_10 ad_spot desktop-only"> </div> <!-- ads_right_rail_300x250_lower --> <div id="modulous_right_rail_300x250_lower" class="ad_spot desktop-only ad_bottom_margin_15"> <div id="ad_right_rail_300x250_lower" class="ad_wrapper_"><div id="pave_bas" data-format="pave_bas" class="ad-right_rail_300x250_lower dfp-slot "></div></div> </div> </div> </div> </div> </div> </div> <footer id="desktop__main_footer" class="huffpost-footer huffpost-footer_skin_life yr-footer"> <!-- ads_leaderboard_bottom --> <div id="modulous_leaderboard_bottom" class="ad_spot desktop-only"> <div id="ad_leaderboard_bottom" class="ad_leaderboard_bottom ad_wrapper_" style="display:table;margin:0 auto;padding:5px 0 15px;"><div id="banniere_basse" data-format="banniere_basse" class="ad-leaderboard_bottom dfp-slot "></div></div> </div> <div id="footer-marker"></div> <div class="footer__top"> <div class="footer__logo"> <a class="footer__logo__link yr-logo" href="/web/20191021192505/https://www.huffingtonpost.fr/"> <i class="icon-Social-HuffPost"></i> <img alt="HuffPost" class="footer__img" src="https://web.archive.org/web/20191021192505im_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/images/logos/HuffPost_Int'l_FR_white.svg" role="presentation"> </a> </div> <ul class="footer__nav bn-footer-links yr-life-sections"> <li class="footer__nav__item yr-life-section-item"> <a class="footer__nav__link" href="/web/20191021192505/https://www.huffingtonpost.fr/politique/"> Politique </a> </li> <li class="footer__nav__item yr-life-section-item"> <a class="footer__nav__link" href="/web/20191021192505/https://www.huffingtonpost.fr/international/"> International </a> </li> <li class="footer__nav__item yr-life-section-item"> <a class="footer__nav__link" href="/web/20191021192505/https://www.huffingtonpost.fr/economie/"> Économie </a> </li> <li class="footer__nav__item yr-life-section-item"> <a class="footer__nav__link" href="/web/20191021192505/https://www.huffingtonpost.fr/cest-la-vie/"> C'est La Vie </a> </li> <li class="footer__nav__item yr-life-section-item"> <a class="footer__nav__link" href="/web/20191021192505/https://www.huffingtonpost.fr/culture/"> Culture </a> </li> <li class="footer__nav__item yr-life-section-item"> <a class="footer__nav__link" href="/web/20191021192505/https://www.huffingtonpost.fr/le-bon-choix/"> Le Bon Choix </a> </li> <li class="footer__nav__item yr-life-section-item"> <a class="footer__nav__link" href="/web/20191021192505/https://www.huffingtonpost.fr/video/"> Le Huffplay </a> </li> <li class="footer__nav__item yr-life-section-item"> <a class="footer__nav__link" href="#"> Plus </a> </li> </ul> <ul class="footer__list footer__list--vertical bn-footer-links yr-life-footer-links"> <li class="footer__list__item yr-life-footer-link"> <a class="footer__link" href="https://web.archive.org/web/20191021192505/https://www.mpublicite.fr/"> Votre publicité </a> </li> <li class="footer__list__item yr-life-footer-link"> <a class="footer__link" href="/web/20191021192505/https://www.huffingtonpost.fr/p/mentions-legales"> Mentions légales </a> </li> <li class="footer__list__item yr-life-footer-link"> <a class="footer__link" href="/web/20191021192505/https://www.huffingtonpost.fr/p/cookies-et-autres-technologies"> Cookies </a> </li> <li class="footer__list__item yr-life-footer-link"> <a class="footer__link" href="/web/20191021192505/https://www.huffingtonpost.fr/p/conditions-generales"> Conditions d'utilisation (Actualisée) </a> </li> <li class="footer__list__item yr-life-footer-link"> <a class="footer__link" href="/web/20191021192505/https://www.huffingtonpost.fr/rss/index.xml"> RSS </a> </li> <li class="footer__list__item yr-life-footer-link"> <a class="footer__link" href="/web/20191021192505/https://www.huffingtonpost.fr/p/charte-de-confidentialite"> Confidentialité (Actualisée) </a> </li> <li class="footer__list__item yr-life-footer-link"> <a class="footer__link" href="/web/20191021192505/https://www.huffingtonpost.fr/p/a-propos-de-nous"> À propos de nous </a> </li> <li class="footer__list__item yr-life-footer-link"> <a class="footer__link" href="/web/20191021192505/https://www.huffingtonpost.fr/p/gdpr/gestion-des-cookies"> Gestion des cookies </a> </li> <li class="footer__list__item yr-life-footer-link"> <a class="footer__link" href="/web/20191021192505/https://www.huffingtonpost.fr/p/nous-contacter"> Nous contacter </a> </li> </ul> </div> <div class="footer__bottom"> <div class="footer__bottom__nav"> <div class="footer__bottom__nav__item"> © 2018 Le Huffington Post SAS. Tous droits réservés. </div> <div class="footer__rights">Fait partie de <b>HuffPost News</b></div> </div> </div> </footer> <div class="popup-overlay"></div> <!--modulous footer --> <script type="text/javascript"> (function() { function load_adscript() { var scriptTag = document.createElement('script'), firstScriptTag = document.getElementsByTagName('script')[0]; scriptTag.src = '//web.archive.org/web/20191021192505/https://wrapper.lemde.fr/glmaw.v0.1.0.js'; firstScriptTag.parentNode.insertBefore(scriptTag, firstScriptTag); } (function() { var use_cmp = true; var multiple_slots = document.getElementsByClassName("dfp-slot dfp-multi-slot"); for (var i = 0; i < multiple_slots.length; i++) { var slot = multiple_slots[i]; slot.id = slot.id + "_" + Math.ceil(Math.random(new Date().getTime()) * 10E9); } if (use_cmp) { waitForGlobal('HPCmp', function(){ HPCmp.checkCmpScript(function(){ load_adscript(); }); }); } else { load_adscript(); } return; })(); })(); </script> <script>window.addEventListener('load', window.modulousQueue.runAll);</script> <script type="text/javascript"> var wamid = '2446'; var typ = '1'; var Wvar = []; var cat1 = ''; var cat2 = ''; var contentu = ''; waitForGlobal('jQuery', function(){ (function($){ var evt = null; cat1 = 'le-bon-choix'; contentu = 'vertical'; cat1 = 'news'; cat2 = 'le-bon-choix-cuisine-et-electromenager'; var el = $('div.nav__item a[href^="/news/' + cat2 + '"]').closest('div.nav__item').find('a.nav__item__link'); if (el.length) { var arr = el.attr('href').replace(/\/$/, "").split("/"); cat1 = arr[1] || cat1; } contentu = 'big_news'; Wvar.push('site','huffingtonpostFR'); Wvar.push('cat1',cat1); Wvar.push('cat2',cat2); Wvar.push('contenu',contentu); Wvar.push('device','desktop'); Wvar.push('idcrm',''); if (evt) { Wvar.push('evt', evt); } var __tmp = window.console && window.console.log(Wvar); (function(){ var w = document.createElement("script"); w.type = "text/javascript"; w.src = document.location.protocol + "//web.archive.org/web/20191021192505/https://cstatic.weborama.fr/js/wam/customers/wamfactory_dpm.lemonde.min.js?rnd="+new Date().getTime(); w.async = true; var body = document.getElementsByTagName('script')[0]; body.parentNode.insertBefore(w,body); return; })(); })(jQuery); }); </script> <noscript> <h2>Using a mobile device? Go to <a href="https://web.archive.org/web/20191021192505/https://m.huffingtonpost.fr/">https://m.huffingtonpost.fr/</a> for HuffPost Mobile.</h2> </noscript> <div id="mobile_promo"></div> <script> var _comscore = _comscore || []; _comscore.push({"c1":2,"c2":6723616,"c3":"","c4":"","c5":"france","c6":"","c15":"","options":{"url_append":"comscorekw=france"}}); (function() { var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; s.src = (document.location.protocol == "https:" ? "https://web.archive.org/web/20191021192505/https://sb" : "http://b") + ".scorecardresearch.com/beacon.js"; el.parentNode.insertBefore(s, el); })(); </script> <noscript> <img src="https://web.archive.org/web/20191021192505im_/https://sb.scorecardresearch.com/p?c1=2&c2=6723616&c3=&c4=&c5=france&c6=&c15=&cv=2.0&cj=1"/> </noscript><iframe style="height: 1px; width: 1px; border: 0px none; position: absolute; display: none; left: 0px; top: 0px; z-index: 0;" src="//web.archive.org/web/20191021192505if_/https://cstatic.weborama.fr/iframe/customers/premium.html?idEditeur=1166&idSite=239"></iframe> <!-- Start ACPM trackcode --> <script> (function(){ // 1. Loading the measurement system var aS = document.createElement('script'); aS.type = 'text/javascript'; aS.async = true; aS.src = 'https://web.archive.org/web/20191021192505/https://tag.audience.acpm.fr/js/on-1.0.min.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(aS, s); // 2. Sending the measurement if(aS.addEventListener) { aS.addEventListener('load', function(){ aSloaded(); }, false) } else { aS.onreadystatechange = function () { if (aS.readyState in {complete: 1, loaded: 1}) { aSloaded(); } }; } aSloaded = function(){ var tag = new Acpm.Tag('279079217246'); tag.send(); }; })(); </script> <!-- End ACPM trackcode --> <script async defer src="//web.archive.org/web/20191021192505js_/https://platform.instagram.com/en_US/embeds.js"></script> <script async defer src="//web.archive.org/web/20191021192505js_/https://assets.pinterest.com/js/pinit.js"></script> <script type="text/javascript"> window.jsConfig = {}; </script> <script src="https://web.archive.org/web/20191021192505js_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/js/vendor.min.js"></script> <script src="https://web.archive.org/web/20191021192505js_/https://amp.assets.huffpost.com/assets-8d6915bec703d3f366afa7431b00a7e7/js/scripts.min.js"></script> <script type="text/javascript"> // Rapid beacon is only enabled when core Rapid is active if (window.RapidInstance) { $(document).ready(function() { var rapidElements =[{"type":"sec","value":"masthead","selector":".yr-masthead"},{"type":"sec","value":"nav","selector":".yr-nav","childrenSelector":".yr-nav-item"},{"type":"sec","value":"masthead-responsive","selector":".yr-masthead-responsive"},{"type":"sec","value":"nav-responsive","selector":".yr-nav-responsive","childrenSelector":".yr-nav-item"},{"type":"sec","value":"entry-text","selector":".yr-entry-text"},{"type":"sec","value":"col1","selector":".yr-col-body-left","childrenSelector":".yr-card"},{"type":"sec","value":"col2","selector":".yr-col-body-center","childrenSelector":".yr-card"},{"type":"sec","value":"col3","selector":".yr-col-body-right"},{"type":"sec","value":"splash","selector":".yr-splash","childrenSelector":".splash-inner"},{"type":"sec","value":"apage-rail-mobile","selector":".yr-apage-rail-mw","childrenSelector":".yr-card"},{"type":"sec","value":"content-rail-mobile","selector":".yr-content-rail-mw","childrenSelector":".yr-card"},{"type":"sec","value":"entry-header","selector":".yr-entry-header"},{"type":"sec","value":"entry-text","selector":".yr-entry-text"},{"type":"sec","value":"entry-footer","selector":".yr-entry-footer"},{"type":"sec","value":"newsletter-toaster","selector":".yr-newsletter-toaster"},{"type":"sec","value":"newsletter-form","selector":".yr-newsletter-form"},{"type":"sec","value":"bottom-nav","selector":".yr-share-bottom"},{"type":"sec","value":"video-playlists","selector":".yr-video-playlists"},{"type":"sec","value":"video-content","selector":".yr-video-content"},{"type":"sec","value":"more-videos","selector":".yr-more-videos","childrenSelector":".yr-card"},{"type":"sec","value":"conversations","selector":".yr-conversations"},{"type":"sec","value":"footer","selector":".yr-footer"},{"type":"sec","value":"modal","selector":".yr-modal"},{"type":"sec","value":"static-content","selector":".yr-static-content"},{"type":"sec","value":"author-header","selector":".yr-author-header"},{"type":"sec","value":"author-bio","selector":".yr-author-bio"},{"type":"subsec","value":"latest-entries","selector":".yr-latest-entries","childrenSelector":".yr-card"},{"type":"subsec","value":"video","selector":".yr-videos-for-you","childrenSelector":".yr-card"},{"type":"subsec","value":"top-videos","selector":".yr-top-videos","childrenSelector":".yr-card"},{"type":"subsec","value":"trending","selector":".yr-trending","childrenSelector":".yr-card"},{"type":"subsec","valueFromAttribute":"data-s-value","selector":".yr-nav-item"},{"type":"subsec","valueFromAttribute":"data-s-value","selector":".yr-hamburger-menu-block"},{"type":"subsec","value":"follow","selector":".yr-social-list"},{"type":"subsec","value":"slideshow","selector":".yr-slideshow"},{"type":"subsec","value":"listicle","selector":".yr-listicle","childrenSelector":".yr-listicle-slide"},{"type":"subsec","value":"related-articles","selector":".yr-related-entries","childrenSelector":".yr-related-entry"},{"type":"subsec","value":"authors","selector":".yr-authors","childrenSelector":".yr-author-card"},{"type":"subsec","value":"share","selector":".yr-share"},{"type":"subsec","value":"byline","selector":".yr-byline","childrenSelector":".yr-author-card"},{"type":"subsec","value":"topic-tag","selector":".yr-tag-cloud"},{"type":"subsec","value":"mod-follow","selector":".yr-follow-us"},{"type":"subsec","valueFromAttribute":"data-playlist-name","selector":".yr-video-playlist"},{"type":"subsec","value":"taboola","selector":".yr-taboola"},{"type":"subsec","value":"hamburger-menu","selector":".yr-hamburger-menu","childrenSelector":".yr-hamburger-menu-block"},{"type":"subsec","value":"pane-footer","selector":".yr-pane-footer"},{"type":"subsec","value":"edition-links","selector":".yr-edition-links"},{"type":"elm","value":"link","selector":".yr-edition-link"},{"type":"subsec","value":"corp-links","selector":".yr-footer-links"},{"type":"subsec","value":"pagination","selector":".yr-pagination"},{"type":"elm","value":"hdln","selector":".yr-card-headline"},{"type":"elm","value":"description","selector":".yr-card-description"},{"type":"elm","value":"img","selector":".yr-card-image"},{"type":"elm","value":"hdln","selector":".yr-splash-headline"},{"type":"elm","value":"hdln","selector":".yr-splash-subhead"},{"type":"elm","value":"hdln","selector":".yr-splash-ticker"},{"type":"elm","value":"img","selector":".yr-splash-image"},{"type":"elm","value":"img","selector":".yr-author-image"},{"type":"elm","value":"context_link","selector":".yr-entry-text a"},{"type":"elm","value":"context_link","selector":".yr-static-content a"},{"type":"elm","value":"hdln","selector":".yr-dropdown-column-link"},{"type":"elm","value":"img","selector":".yr-logo"},{"type":"slk","value":"HuffPost","selector":".yr-logo"},{"type":"elm","value":"btn","selector":".yr-close"},{"type":"elm","value":"btn","selector":".yr-open"},{"type":"elm","value":"btn","selector":".yr-next"},{"type":"elm","value":"btn","selector":".yr-previous"},{"type":"elm","value":"btn","selector":".yr-newsletter-submit"},{"type":"elm","value":"btn","selector":".yr-read-more-link"},{"type":"elm","value":"btn","selector":".yr-comments-open"},{"type":"slk","value":"close","selector":".yr-close"},{"type":"slk","value":"open","selector":".yr-open"},{"type":"slk","value":"next","selector":".yr-next"},{"type":"slk","value":"previous","selector":".yr-previous"},{"type":"slk","valueFromAttribute":"data-author-follow","selector":".yr-author-follow"},{"type":"slk","valueFromAttribute":"data-social-name","selector":".yr-social-list-item"},{"type":"slk","valueFromAttribute":"data-social-name","selector":".yr-share-item"},{"type":"slk","valueFromAttribute":"data-social-name","selector":".yr-follow-us-link"},{"type":"sec","value":"left-menu","selector":".yr-life-left-menu"},{"type":"sec","value":"hamburger-menu","selector":".yr-life-sections","childrenSelector":".yr-life-section-item"},{"type":"subsec","valueFromAttribute":"data-s-value","selector":".yr-life-section-item"},{"type":"elm","value":"navcat","selector":".yr-life-sections"},{"type":"itc","value":"0","selector":".yr-life-sections"},{"type":"subsec","value":"social-buttons","selector":".yr-life-social-list","childrenSelector":".yr-social-list-item"},{"type":"elm","value":"navcat","selector":".yr-life-nav-item-link"},{"type":"itc","value":"0","selector":".yr-life-nav-item-link"},{"type":"slk","valueFromAttribute":"data-s-text","selector":".yr-life-nav-item-link"},{"type":"subsec","value":"edition","selector":".yr-life-editions"},{"type":"slk","valueFromAttribute":"data-s-text","selector":".yr-life-editions-open"},{"type":"elm","value":"link","selector":".yr-life-editions-open"},{"type":"subsec","value":"corp-links","selector":".yr-life-footer-links","childrenSelector":".yr-life-footer-link"},{"type":"slk","value":"hamburger","selector":".yr-hamburger-open"},{"type":"elm","value":"btn","selector":".yr-hamburger-open"},{"type":"slk","value":"Open Search","selector":".yr-search-open"},{"type":"elm","value":"btn","selector":".yr-search-open"},{"type":"sec","value":"banners","selector":".yr-i18n-redirect"}]; MW.modules.rapid.trackElements('body', rapidElements); }); } </script> <script type="application/javascript" data-script="jquery.throttle.js"> (function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!=="boolean"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this); </script><script type="application/javascript" data-script="jquery.cookie"> !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}); </script> <script type="application/javascript" data-script="consent-string.js"> /** * browserify consent-string --standalone BY > bundle.js */ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.BY = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var _require = require('./encode'), encodeConsentString = _require.encodeConsentString, _getMaxVendorId = _require.getMaxVendorId, encodeVendorIdsToBits = _require.encodeVendorIdsToBits, encodePurposeIdsToBits = _require.encodePurposeIdsToBits; var _require2 = require('./decode'), decodeConsentString = _require2.decodeConsentString; var _require3 = require('./utils/definitions'), vendorVersionMap = _require3.vendorVersionMap; /** * Regular expression for validating */ var consentLanguageRegexp = /^[a-z]{2}$/; var ConsentString = function () { function ConsentString() { var baseString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; _classCallCheck(this, ConsentString); this.created = new Date(); this.lastUpdated = new Date(); this.version = 1; this.vendorList = null; this.vendorListVersion = null; this.cmpId = null; this.cmpVersion = null; this.consentScreen = null; this.consentLanguage = null; this.allowedPurposeIds = []; this.allowedVendorIds = []; // Decode the base string if (baseString) { Object.assign(this, decodeConsentString(baseString)); } } _createClass(ConsentString, [{ key: 'getConsentString', value: function getConsentString() { var updateDate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; if (!this.vendorList) { throw new Error('ConsentString - A vendor list is required to encode a consent string'); } if (updateDate === true) { this.lastUpdated = new Date(); } return encodeConsentString({ version: this.getVersion(), vendorList: this.vendorList, allowedPurposeIds: this.allowedPurposeIds, allowedVendorIds: this.allowedVendorIds, created: this.created, lastUpdated: this.lastUpdated, cmpId: this.cmpId, cmpVersion: this.cmpVersion, consentScreen: this.consentScreen, consentLanguage: this.consentLanguage, vendorListVersion: this.vendorListVersion }); } }, { key: 'getLastUpdated', value: function getLastUpdated() { return this.lastUpdated; } }, { key: 'setLastUpdated', value: function setLastUpdated() { var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; if (date) { this.lastUpdated = new Date(date); } else { this.lastUpdated = new Date(); } } }, { key: 'getCreated', value: function getCreated() { return this.created; } }, { key: 'setCreated', value: function setCreated() { var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; if (date) { this.created = new Date(date); } else { this.created = new Date(); } } }, { key: 'getMaxVendorId', value: function getMaxVendorId() { return _getMaxVendorId(this.vendorList.vendors); } }, { key: 'getParsedVendorConsents', value: function getParsedVendorConsents() { return encodeVendorIdsToBits(_getMaxVendorId(this.vendorList.vendors), this.allowedVendorIds); } }, { key: 'getParsedPurposeConsents', value: function getParsedPurposeConsents() { return encodePurposeIdsToBits(this.vendorList.purposes, this.allowedPurposeIds); } }, { key: 'getMetadataString', value: function getMetadataString() { return encodeConsentString({ version: this.getVersion(), created: this.created, lastUpdated: this.lastUpdated, cmpId: this.cmpId, cmpVersion: this.cmpVersion, consentScreen: this.consentScreen, vendorListVersion: this.vendorListVersion }); } }, { key: 'getVersion', value: function getVersion() { return this.version; } }, { key: 'getVendorListVersion', value: function getVendorListVersion() { return this.vendorListVersion; } }, { key: 'setGlobalVendorList', value: function setGlobalVendorList(vendorList) { if ((typeof vendorList === 'undefined' ? 'undefined' : _typeof(vendorList)) !== 'object') { throw new Error('ConsentString - You must provide an object when setting the global vendor list'); } if (!vendorList.vendorListVersion || !Array.isArray(vendorList.purposes) || !Array.isArray(vendorList.vendors)) { // The provided vendor list does not look valid throw new Error('ConsentString - The provided vendor list does not respect the schema from the IAB EU’s GDPR Consent and Transparency Framework'); } // Cloning the GVL // It's important as we might transform it and don't want to modify objects that we do not own this.vendorList = { vendorListVersion: vendorList.vendorListVersion, lastUpdated: vendorList.lastUpdated, purposes: vendorList.purposes, features: vendorList.features, // Clone the list and sort the vendors by ID (it breaks our range generation algorithm if they are not sorted) vendors: vendorList.vendors.slice(0).sort(function (firstVendor, secondVendor) { return firstVendor.id < secondVendor.id ? -1 : 1; }) }; this.vendorListVersion = vendorList.vendorListVersion; } }, { key: 'getGlobalVendorList', value: function getGlobalVendorList() { return this.vendorList; } }, { key: 'setCmpId', value: function setCmpId(id) { this.cmpId = id; } }, { key: 'getCmpId', value: function getCmpId() { return this.cmpId; } }, { key: 'setCmpVersion', value: function setCmpVersion(version) { this.cmpVersion = version; } }, { key: 'getCmpVersion', value: function getCmpVersion() { return this.cmpVersion; } }, { key: 'setConsentScreen', value: function setConsentScreen(screenId) { this.consentScreen = screenId; } }, { key: 'getConsentScreen', value: function getConsentScreen() { return this.consentScreen; } }, { key: 'setConsentLanguage', value: function setConsentLanguage(language) { if (consentLanguageRegexp.test(language) === false) { throw new Error('ConsentString - The consent language must be a two-letter ISO639-1 code (en, fr, de, etc.)'); } this.consentLanguage = language; } }, { key: 'getConsentLanguage', value: function getConsentLanguage() { return this.consentLanguage; } }, { key: 'setPurposesAllowed', value: function setPurposesAllowed(purposeIds) { this.allowedPurposeIds = purposeIds; } }, { key: 'getPurposesAllowed', value: function getPurposesAllowed() { return this.allowedPurposeIds; } }, { key: 'setPurposeAllowed', value: function setPurposeAllowed(purposeId, value) { var purposeIndex = this.allowedPurposeIds.indexOf(purposeId); if (value === true) { if (purposeIndex === -1) { this.allowedPurposeIds.push(purposeId); } } else if (value === false) { if (purposeIndex !== -1) { this.allowedPurposeIds.splice(purposeIndex, 1); } } } }, { key: 'isPurposeAllowed', value: function isPurposeAllowed(purposeId) { return this.allowedPurposeIds.indexOf(purposeId) !== -1; } }, { key: 'setVendorsAllowed', value: function setVendorsAllowed(vendorIds) { this.allowedVendorIds = vendorIds; } }, { key: 'getVendorsAllowed', value: function getVendorsAllowed() { return this.allowedVendorIds; } }, { key: 'setVendorAllowed', value: function setVendorAllowed(vendorId, value) { var vendorIndex = this.allowedVendorIds.indexOf(vendorId); if (value === true) { if (vendorIndex === -1) { this.allowedVendorIds.push(vendorId); } } else if (value === false) { if (vendorIndex !== -1) { this.allowedVendorIds.splice(vendorIndex, 1); } } } }, { key: 'isVendorAllowed', value: function isVendorAllowed(vendorId) { return this.allowedVendorIds.indexOf(vendorId) !== -1; } }], [{ key: 'decodeMetadataString', value: function decodeMetadataString(encodedMetadata) { var decodedString = decodeConsentString(encodedMetadata); var metadata = {}; vendorVersionMap[decodedString.version].metadataFields.forEach(function (field) { metadata[field] = decodedString[field]; }); return metadata; } }]); return ConsentString; }(); module.exports = { ConsentString: ConsentString }; },{"./decode":2,"./encode":3,"./utils/definitions":5}],2:[function(require,module,exports){ 'use strict'; var _require = require('./utils/bits'), decodeBitsToIds = _require.decodeBitsToIds, decodeFromBase64 = _require.decodeFromBase64; /** * Decode consent data from a web-safe base64-encoded string * * @param {string} consentString */ function decodeConsentString(consentString) { var _decodeFromBase = decodeFromBase64(consentString), version = _decodeFromBase.version, cmpId = _decodeFromBase.cmpId, vendorListVersion = _decodeFromBase.vendorListVersion, purposeIdBitString = _decodeFromBase.purposeIdBitString, maxVendorId = _decodeFromBase.maxVendorId, created = _decodeFromBase.created, lastUpdated = _decodeFromBase.lastUpdated, isRange = _decodeFromBase.isRange, defaultConsent = _decodeFromBase.defaultConsent, vendorIdBitString = _decodeFromBase.vendorIdBitString, vendorRangeList = _decodeFromBase.vendorRangeList, cmpVersion = _decodeFromBase.cmpVersion, consentScreen = _decodeFromBase.consentScreen, consentLanguage = _decodeFromBase.consentLanguage; var consentStringData = { version: version, cmpId: cmpId, vendorListVersion: vendorListVersion, allowedPurposeIds: decodeBitsToIds(purposeIdBitString), maxVendorId: maxVendorId, created: created, lastUpdated: lastUpdated, cmpVersion: cmpVersion, consentScreen: consentScreen, consentLanguage: consentLanguage }; if (isRange) { /* eslint no-shadow: off */ var idMap = vendorRangeList.reduce(function (acc, _ref) { var isRange = _ref.isRange, startVendorId = _ref.startVendorId, endVendorId = _ref.endVendorId; var lastVendorId = isRange ? endVendorId : startVendorId; for (var i = startVendorId; i <= lastVendorId; i += 1) { acc[i] = true; } return acc; }, {}); consentStringData.allowedVendorIds = []; for (var i = 1; i <= maxVendorId; i += 1) { if (defaultConsent && !idMap[i] || !defaultConsent && idMap[i]) { if (consentStringData.allowedVendorIds.indexOf(i) === -1) { consentStringData.allowedVendorIds.push(i); } } } } else { consentStringData.allowedVendorIds = decodeBitsToIds(vendorIdBitString); } return consentStringData; } module.exports = { decodeConsentString: decodeConsentString }; },{"./utils/bits":4}],3:[function(require,module,exports){ 'use strict'; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _require = require('./utils/bits'), encodeToBase64 = _require.encodeToBase64, padRight = _require.padRight; /** * Encode a list of vendor IDs into bits * * @param {integer} maxVendorId Highest vendor ID in the vendor list * @param {integer[]} allowedVendorIds Vendors that the user has given consent to */ function encodeVendorIdsToBits(maxVendorId) { var allowedVendorIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var vendorString = ''; for (var id = 1; id <= maxVendorId; id += 1) { vendorString += allowedVendorIds.indexOf(id) !== -1 ? '1' : '0'; } return padRight(vendorString, Math.max(0, maxVendorId - vendorString.length)); } /** * Encode a list of purpose IDs into bits * * @param {*} purposes List of purposes from the vendor list * @param {*} allowedPurposeIds List of purpose IDs that the user has given consent to */ function encodePurposeIdsToBits(purposes) { var allowedPurposeIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set(); var maxPurposeId = 0; for (var i = 0; i < purposes.length; i += 1) { maxPurposeId = Math.max(maxPurposeId, purposes[i].id); } for (var _i = 0; _i < allowedPurposeIds.length; _i += 1) { maxPurposeId = Math.max(maxPurposeId, allowedPurposeIds[_i]); } var purposeString = ''; for (var id = 1; id <= maxPurposeId; id += 1) { purposeString += allowedPurposeIds.indexOf(id) !== -1 ? '1' : '0'; } return purposeString; } /** * Convert a list of vendor IDs to ranges * * @param {object[]} vendors List of vendors from the vendor list (important: this list must to be sorted by ID) * @param {integer[]} allowedVendorIds List of vendor IDs that the user has given consent to */ function convertVendorsToRanges(vendors, allowedVendorIds) { var range = []; var ranges = []; var idsInList = vendors.map(function (vendor) { return vendor.id; }); for (var index = 0; index < vendors.length; index += 1) { var id = vendors[index].id; if (allowedVendorIds.indexOf(id) !== -1) { range.push(id); } // Do we need to close the current range? if ((allowedVendorIds.indexOf(id) === -1 // The vendor we are evaluating is not allowed || index === vendors.length - 1 // There is no more vendor to evaluate || idsInList.indexOf(id + 1) === -1 // There is no vendor after this one (ie there is a gap in the vendor IDs) ; we need to stop here to avoid including vendors that do not have consent ) && range.length) { var startVendorId = range.shift(); var endVendorId = range.pop(); range = []; ranges.push({ isRange: typeof endVendorId === 'number', startVendorId: startVendorId, endVendorId: endVendorId }); } } return ranges; } /** * Get maxVendorId from the list of vendors and return that id * * @param {object} vendors */ function getMaxVendorId(vendors) { // Find the max vendor ID from the vendor list var maxVendorId = 0; vendors.forEach(function (vendor) { if (vendor.id > maxVendorId) { maxVendorId = vendor.id; } }); return maxVendorId; } /** * Encode consent data into a web-safe base64-encoded string * * @param {object} consentData Data to include in the string (see `utils/definitions.js` for the list of fields) */ function encodeConsentString(consentData) { var maxVendorId = consentData.maxVendorId; var _consentData$vendorLi = consentData.vendorList, vendorList = _consentData$vendorLi === undefined ? {} : _consentData$vendorLi, allowedPurposeIds = consentData.allowedPurposeIds, allowedVendorIds = consentData.allowedVendorIds; var _vendorList$vendors = vendorList.vendors, vendors = _vendorList$vendors === undefined ? [] : _vendorList$vendors, _vendorList$purposes = vendorList.purposes, purposes = _vendorList$purposes === undefined ? [] : _vendorList$purposes; // if no maxVendorId is in the ConsentData, get it if (!maxVendorId) { maxVendorId = getMaxVendorId(vendors); } // Encode the data with and without ranges and return the smallest encoded payload var noRangesData = encodeToBase64(_extends({}, consentData, { maxVendorId: maxVendorId, purposeIdBitString: encodePurposeIdsToBits(purposes, allowedPurposeIds), isRange: false, vendorIdBitString: encodeVendorIdsToBits(maxVendorId, allowedVendorIds) })); var vendorRangeList = convertVendorsToRanges(vendors, allowedVendorIds); var rangesData = encodeToBase64(_extends({}, consentData, { maxVendorId: maxVendorId, purposeIdBitString: encodePurposeIdsToBits(purposes, allowedPurposeIds), isRange: true, defaultConsent: false, numEntries: vendorRangeList.length, vendorRangeList: vendorRangeList })); return noRangesData.length < rangesData.length ? noRangesData : rangesData; } module.exports = { convertVendorsToRanges: convertVendorsToRanges, encodeConsentString: encodeConsentString, getMaxVendorId: getMaxVendorId, encodeVendorIdsToBits: encodeVendorIdsToBits, encodePurposeIdsToBits: encodePurposeIdsToBits }; },{"./utils/bits":4}],4:[function(require,module,exports){ 'use strict'; /* eslint no-use-before-define: off */ var base64 = require('base-64'); var _require = require('./definitions'), versionNumBits = _require.versionNumBits, vendorVersionMap = _require.vendorVersionMap; function repeat(count) { var string = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0'; var padString = ''; for (var i = 0; i < count; i += 1) { padString += string; } return padString; } function padLeft(string, padding) { return repeat(Math.max(0, padding)) + string; } function padRight(string, padding) { return string + repeat(Math.max(0, padding)); } function encodeIntToBits(number, numBits) { var bitString = ''; if (typeof number === 'number' && !isNaN(number)) { bitString = parseInt(number, 10).toString(2); } // Pad the string if not filling all bits if (numBits >= bitString.length) { bitString = padLeft(bitString, numBits - bitString.length); } // Truncate the string if longer than the number of bits if (bitString.length > numBits) { bitString = bitString.substring(0, numBits); } return bitString; } function encodeBoolToBits(value) { return encodeIntToBits(value === true ? 1 : 0, 1); } function encodeDateToBits(date, numBits) { if (date instanceof Date) { return encodeIntToBits(date.getTime() / 100, numBits); } return encodeIntToBits(date, numBits); } function encodeLetterToBits(letter, numBits) { return encodeIntToBits(letter.toUpperCase().charCodeAt(0) - 65, numBits); } function encodeLanguageToBits(language) { var numBits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 12; return encodeLetterToBits(language.slice(0, 1), numBits / 2) + encodeLetterToBits(language.slice(1), numBits / 2); } function decodeBitsToInt(bitString, start, length) { return parseInt(bitString.substr(start, length), 2); } function decodeBitsToDate(bitString, start, length) { return new Date(decodeBitsToInt(bitString, start, length) * 100); } function decodeBitsToBool(bitString, start) { return parseInt(bitString.substr(start, 1), 2) === 1; } function decodeBitsToLetter(bitString) { var letterCode = decodeBitsToInt(bitString); return String.fromCharCode(letterCode + 65).toLowerCase(); } function decodeBitsToLanguage(bitString, start, length) { var languageBitString = bitString.substr(start, length); return decodeBitsToLetter(languageBitString.slice(0, length / 2)) + decodeBitsToLetter(languageBitString.slice(length / 2)); } function encodeField(_ref) { var input = _ref.input, field = _ref.field; var name = field.name, type = field.type, numBits = field.numBits, encoder = field.encoder, validator = field.validator; if (typeof validator === 'function') { if (!validator(input)) { return ''; } } if (typeof encoder === 'function') { return encoder(input); } var bitCount = typeof numBits === 'function' ? numBits(input) : numBits; var inputValue = input[name]; var fieldValue = inputValue === null || inputValue === undefined ? '' : inputValue; switch (type) { case 'int': return encodeIntToBits(fieldValue, bitCount); case 'bool': return encodeBoolToBits(fieldValue); case 'date': return encodeDateToBits(fieldValue, bitCount); case 'bits': return padRight(fieldValue, bitCount - fieldValue.length).substring(0, bitCount); case 'list': return fieldValue.reduce(function (acc, listValue) { return acc + encodeFields({ input: listValue, fields: field.fields }); }, ''); case 'language': return encodeLanguageToBits(fieldValue, bitCount); default: throw new Error('ConsentString - Unknown field type ' + type + ' for encoding'); } } function encodeFields(_ref2) { var input = _ref2.input, fields = _ref2.fields; return fields.reduce(function (acc, field) { acc += encodeField({ input: input, field: field }); return acc; }, ''); } function decodeField(_ref3) { var input = _ref3.input, output = _ref3.output, startPosition = _ref3.startPosition, field = _ref3.field; var type = field.type, numBits = field.numBits, decoder = field.decoder, validator = field.validator, listCount = field.listCount; if (typeof validator === 'function') { if (!validator(output)) { // Not decoding this field so make sure we start parsing the next field at // the same point return { newPosition: startPosition }; } } if (typeof decoder === 'function') { return decoder(input, output, startPosition); } var bitCount = typeof numBits === 'function' ? numBits(output) : numBits; switch (type) { case 'int': return { fieldValue: decodeBitsToInt(input, startPosition, bitCount) }; case 'bool': return { fieldValue: decodeBitsToBool(input, startPosition) }; case 'date': return { fieldValue: decodeBitsToDate(input, startPosition, bitCount) }; case 'bits': return { fieldValue: input.substr(startPosition, bitCount) }; case 'list': return decodeList(input, output, startPosition, field, listCount); case 'language': return { fieldValue: decodeBitsToLanguage(input, startPosition, bitCount) }; default: throw new Error('ConsentString - Unknown field type ' + type + ' for decoding'); } } function decodeList(input, output, startPosition, field, listCount) { var listEntryCount = 0; if (typeof listCount === 'function') { listEntryCount = listCount(output); } else if (typeof listCount === 'number') { listEntryCount = listCount; } var newPosition = startPosition; var fieldValue = []; for (var i = 0; i < listEntryCount; i += 1) { var decodedFields = decodeFields({ input: input, fields: field.fields, startPosition: newPosition }); newPosition = decodedFields.newPosition; fieldValue.push(decodedFields.decodedObject); } return { fieldValue: fieldValue, newPosition: newPosition }; } function decodeFields(_ref4) { var input = _ref4.input, fields = _ref4.fields, _ref4$startPosition = _ref4.startPosition, startPosition = _ref4$startPosition === undefined ? 0 : _ref4$startPosition; var position = startPosition; var decodedObject = fields.reduce(function (acc, field) { var name = field.name, numBits = field.numBits; var _decodeField = decodeField({ input: input, output: acc, startPosition: position, field: field }), fieldValue = _decodeField.fieldValue, newPosition = _decodeField.newPosition; if (fieldValue !== undefined) { acc[name] = fieldValue; } if (newPosition !== undefined) { position = newPosition; } else if (typeof numBits === 'number') { position += numBits; } return acc; }, {}); return { decodedObject: decodedObject, newPosition: position }; } /** * Encode the data properties to a bit string. Encoding will encode * either `selectedVendorIds` or the `vendorRangeList` depending on * the value of the `isRange` flag. */ function encodeDataToBits(data, definitionMap) { var version = data.version; if (typeof version !== 'number') { throw new Error('ConsentString - No version field to encode'); } else if (!definitionMap[version]) { throw new Error('ConsentString - No definition for version ' + version); } else { var fields = definitionMap[version].fields; return encodeFields({ input: data, fields: fields }); } } /** * Take all fields required to encode the consent string and produce the URL safe Base64 encoded value */ function encodeToBase64(data) { var definitionMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : vendorVersionMap; var binaryValue = encodeDataToBits(data, definitionMap); if (binaryValue) { // Pad length to multiple of 8 var paddedBinaryValue = padRight(binaryValue, 7 - (binaryValue.length + 7) % 8); // Encode to bytes var bytes = ''; for (var i = 0; i < paddedBinaryValue.length; i += 8) { bytes += String.fromCharCode(parseInt(paddedBinaryValue.substr(i, 8), 2)); } // Make base64 string URL friendly return base64.encode(bytes).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); } return null; } function decodeConsentStringBitValue(bitString) { var definitionMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : vendorVersionMap; var version = decodeBitsToInt(bitString, 0, versionNumBits); if (typeof version !== 'number') { throw new Error('ConsentString - Unknown version number in the string to decode'); } else if (!vendorVersionMap[version]) { throw new Error('ConsentString - Unsupported version ' + version + ' in the string to decode'); } var fields = definitionMap[version].fields; var _decodeFields = decodeFields({ input: bitString, fields: fields }), decodedObject = _decodeFields.decodedObject; return decodedObject; } /** * Decode the (URL safe Base64) value of a consent string into an object. */ function decodeFromBase64(consentString, definitionMap) { // Add padding var unsafe = consentString; while (unsafe.length % 4 !== 0) { unsafe += '='; } // Replace safe characters unsafe = unsafe.replace(/-/g, '+').replace(/_/g, '/'); var bytes = base64.decode(unsafe); var inputBits = ''; for (var i = 0; i < bytes.length; i += 1) { var bitString = bytes.charCodeAt(i).toString(2); inputBits += padLeft(bitString, 8 - bitString.length); } return decodeConsentStringBitValue(inputBits, definitionMap); } function decodeBitsToIds(bitString) { return bitString.split('').reduce(function (acc, bit, index) { if (bit === '1') { if (acc.indexOf(index + 1) === -1) { acc.push(index + 1); } } return acc; }, []); } module.exports = { padRight: padRight, padLeft: padLeft, encodeField: encodeField, encodeDataToBits: encodeDataToBits, encodeIntToBits: encodeIntToBits, encodeBoolToBits: encodeBoolToBits, encodeDateToBits: encodeDateToBits, encodeLanguageToBits: encodeLanguageToBits, encodeLetterToBits: encodeLetterToBits, encodeToBase64: encodeToBase64, decodeBitsToIds: decodeBitsToIds, decodeBitsToInt: decodeBitsToInt, decodeBitsToDate: decodeBitsToDate, decodeBitsToBool: decodeBitsToBool, decodeBitsToLanguage: decodeBitsToLanguage, decodeBitsToLetter: decodeBitsToLetter, decodeFromBase64: decodeFromBase64 }; },{"./definitions":5,"base-64":6}],5:[function(require,module,exports){ 'use strict'; /** * Number of bits for encoding the version integer * Expected to be the same across versions */ var versionNumBits = 6; /** * Definition of the consent string encoded format * * From https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/Draft_for_Public_Comment_Transparency%20%26%20Consent%20Framework%20-%20cookie%20and%20vendor%20list%20format%20specification%20v1.0a.pdf */ var vendorVersionMap = { /** * Version 1 */ 1: { version: 1, metadataFields: ['version', 'created', 'lastUpdated', 'cmpId', 'cmpVersion', 'consentScreen', 'vendorListVersion'], fields: [{ name: 'version', type: 'int', numBits: 6 }, { name: 'created', type: 'date', numBits: 36 }, { name: 'lastUpdated', type: 'date', numBits: 36 }, { name: 'cmpId', type: 'int', numBits: 12 }, { name: 'cmpVersion', type: 'int', numBits: 12 }, { name: 'consentScreen', type: 'int', numBits: 6 }, { name: 'consentLanguage', type: 'language', numBits: 12 }, { name: 'vendorListVersion', type: 'int', numBits: 12 }, { name: 'purposeIdBitString', type: 'bits', numBits: 24 }, { name: 'maxVendorId', type: 'int', numBits: 16 }, { name: 'isRange', type: 'bool', numBits: 1 }, { name: 'vendorIdBitString', type: 'bits', numBits: function numBits(decodedObject) { return decodedObject.maxVendorId; }, validator: function validator(decodedObject) { return !decodedObject.isRange; } }, { name: 'defaultConsent', type: 'bool', numBits: 1, validator: function validator(decodedObject) { return decodedObject.isRange; } }, { name: 'numEntries', numBits: 12, type: 'int', validator: function validator(decodedObject) { return decodedObject.isRange; } }, { name: 'vendorRangeList', type: 'list', listCount: function listCount(decodedObject) { return decodedObject.numEntries; }, validator: function validator(decodedObject) { return decodedObject.isRange; }, fields: [{ name: 'isRange', type: 'bool', numBits: 1 }, { name: 'startVendorId', type: 'int', numBits: 16 }, { name: 'endVendorId', type: 'int', numBits: 16, validator: function validator(decodedObject) { return decodedObject.isRange; } }] }] } }; module.exports = { versionNumBits: versionNumBits, vendorVersionMap: vendorVersionMap }; },{}],6:[function(require,module,exports){ (function (global){ /*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */ ;(function(root) { // Detect free variables `exports`. var freeExports = typeof exports == 'object' && exports; // Detect free variable `module`. var freeModule = typeof module == 'object' && module && module.exports == freeExports && module; // Detect free variable `global`, from Node.js or Browserified code, and use // it as `root`. var freeGlobal = typeof global == 'object' && global; if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { root = freeGlobal; } /*--------------------------------------------------------------------------*/ var InvalidCharacterError = function(message) { this.message = message; }; InvalidCharacterError.prototype = new Error; InvalidCharacterError.prototype.name = 'InvalidCharacterError'; var error = function(message) { // Note: the error messages used throughout this file match those used by // the native `atob`/`btoa` implementation in Chromium. throw new InvalidCharacterError(message); }; var TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; // http://whatwg.org/html/common-microsyntaxes.html#space-character var REGEX_SPACE_CHARACTERS = /[\t\n\f\r ]/g; // `decode` is designed to be fully compatible with `atob` as described in the // HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob // The optimized base64-decoding algorithm used is based on @atk’s excellent // implementation. https://gist.github.com/atk/1020396 var decode = function(input) { input = String(input) .replace(REGEX_SPACE_CHARACTERS, ''); var length = input.length; if (length % 4 == 0) { input = input.replace(/==?$/, ''); length = input.length; } if ( length % 4 == 1 || // http://whatwg.org/C#alphanumeric-ascii-characters /[^+a-zA-Z0-9/]/.test(input) ) { error( 'Invalid character: the string to be decoded is not correctly encoded.' ); } var bitCounter = 0; var bitStorage; var buffer; var output = ''; var position = -1; while (++position < length) { buffer = TABLE.indexOf(input.charAt(position)); bitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer; // Unless this is the first of a group of 4 characters… if (bitCounter++ % 4) { // …convert the first 8 bits to a single ASCII character. output += String.fromCharCode( 0xFF & bitStorage >> (-2 * bitCounter & 6) ); } } return output; }; // `encode` is designed to be fully compatible with `btoa` as described in the // HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa var encode = function(input) { input = String(input); if (/[^\0-\xFF]/.test(input)) { // Note: no need to special-case astral symbols here, as surrogates are // matched, and the input is supposed to only contain ASCII anyway. error( 'The string to be encoded contains characters outside of the ' + 'Latin1 range.' ); } var padding = input.length % 3; var output = ''; var position = -1; var a; var b; var c; var d; var buffer; // Make sure any padding is handled outside of the loop. var length = input.length - padding; while (++position < length) { // Read three bytes, i.e. 24 bits. a = input.charCodeAt(position) << 16; b = input.charCodeAt(++position) << 8; c = input.charCodeAt(++position); buffer = a + b + c; // Turn the 24 bits into four chunks of 6 bits each, and append the // matching character for each of them to the output. output += ( TABLE.charAt(buffer >> 18 & 0x3F) + TABLE.charAt(buffer >> 12 & 0x3F) + TABLE.charAt(buffer >> 6 & 0x3F) + TABLE.charAt(buffer & 0x3F) ); } if (padding == 2) { a = input.charCodeAt(position) << 8; b = input.charCodeAt(++position); buffer = a + b; output += ( TABLE.charAt(buffer >> 10) + TABLE.charAt((buffer >> 4) & 0x3F) + TABLE.charAt((buffer << 2) & 0x3F) + '=' ); } else if (padding == 1) { buffer = input.charCodeAt(position); output += ( TABLE.charAt(buffer >> 2) + TABLE.charAt((buffer << 4) & 0x3F) + '==' ); } return output; }; var base64 = { 'encode': encode, 'decode': decode, 'version': '0.1.0' }; // Some AMD build optimizers, like r.js, check for specific condition patterns // like the following: if ( typeof define == 'function' && typeof define.amd == 'object' && define.amd ) { define(function() { return base64; }); } else if (freeExports && !freeExports.nodeType) { if (freeModule) { // in Node.js or RingoJS v0.8.0+ freeModule.exports = base64; } else { // in Narwhal or RingoJS v0.7.0- for (var key in base64) { base64.hasOwnProperty(key) && (freeExports[key] = base64[key]); } } } else { // in Rhino or a web browser root.base64 = base64; } }(this)); }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{}],7:[function(require,module,exports){ 'use strict'; var _require = require('./consent-string'), ConsentString = _require.ConsentString; var _require2 = require('./decode'), decodeConsentString = _require2.decodeConsentString; var _require3 = require('./encode'), encodeConsentString = _require3.encodeConsentString; module.exports = { ConsentString: ConsentString, decodeConsentString: decodeConsentString, encodeConsentString: encodeConsentString }; },{"./consent-string":1,"./decode":2,"./encode":3}]},{},[7])(7) }); </script><script type="application/javascript" data-script="vendorService.js"> "use strict"; var cachedData = {}; var callbacks = { gvl: [], pvl: [] }; // Path changed to "/.well-known/pubvendors.json" var endpoints = { gvl: 'https://web.archive.org/web/20191021192505/https://service.cmp.oath.com/cmp/v0/vendor_list/global', pvl: "".concat(document.location.origin, "/.well-known/pubvendors.json") }; var endpointExists = {}; /** * Fetches type list, either IAB global list from Oath's file * or publisher list from pubvendors file * * @param {string} type - gvl or pvl * @param {function} callback - function(response, success) */ var fetchList = function fetchList(type, callback) { if (endpointExists[type] === false) { // we have already determined endpoint does not exist callback(undefined, false); return; } if (callbacks[type].length) { callbacks[type].push(callback); return; } if (cachedData[type]) { callback(cachedData[type], true); return; } callbacks[type].push(callback); try { fetch(endpoints[type]).then(function (response) { return response.json(); }).then(function (response) { endpointExists[type] = true; cachedData[type] = response; // pass response to callbacks while (callbacks[type].length) { callbacks[type].shift()(response, true); } }).catch(function () { endpointExists[type] = false; // pass failure response to callbacks while (callbacks[type].length) { callbacks[type].shift()(undefined, false); } }); } catch (e) { (function($) { return $.getJSON(endpoints[type]) .done(function (response) { endpointExists[type] = true; cachedData[type] = response; // pass response to callbacks while (callbacks[type].length) { callbacks[type].shift()(response, true); } }) .fail(function () { endpointExists[type] = false; // pass failure response to callbacks while (callbacks[type].length) { callbacks[type].shift()(undefined, false); } }) })(jQuery); } }; /** * Combine the global vendor list with the pubvendors.json to create * a publisher specific vendor list. The resulting list contains only * the vendors defined in the pubvendors.json file. * * @param {object} gvl - global vendor list * @param {object} pvl = publisher vendor list * @returns {object} merged vendor list object */ var mergeVendorListData = function mergeVendorListData(gvl, pvl) { var vendors = []; var gvlVendorMap = {}; var v; var id; var vendor; // build gvl vendor map for (v = 0; v < gvl.vendors.length; v += 1) { vendor = gvl.vendors[v]; gvlVendorMap[vendor.id] = vendor; } for (v = 0; v < pvl.vendors.length; v += 1) { id = pvl.vendors[v].id; if (gvlVendorMap[id]) { vendors.push(gvlVendorMap[id]); } } var mergedVL = JSON.parse(JSON.stringify(gvl)); mergedVL.vendors = vendors; return mergedVL; }; /** * Fetch global vendor list and pubvendors.json, merge * the data, and return the result in the callback * * @param {Function} callback - callback(vendorList, success} */ var getVendorList = function getVendorList(callback) { fetchList('gvl', function (gvl, gvlSuccess) { if (gvlSuccess) { fetchList('pvl', function (pvl, pvlSuccess) { if (pvlSuccess) { // merge gvl and pvl data and return it var mergedData = mergeVendorListData(gvl, pvl); callback(mergedData, !!mergedData); } else { // failed to get pubvendors.json. It either doesn't exist or is // not properly formatted. Return gvl callback(gvl, true); } }); } else { // failed to load gvl callback(undefined, false); } }); }; </script><div id="cmp-container-id"></div> <script type="application/javascript" data-script="cmp3p.js"> /* CMP 2.14.0 */ window.__cmpEnv='PROD'; !function(e){var n={};function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/",t(t.s=10)}([function(e,n,t){"use strict";var o=function(){return{parseQuery:function(e){var n={};if(e){"?"===e[0]&&(e=e.substring(1));for(var t=e.split("&"),o=0;o<t.length;o++){var r=t[o].split("=");r[0]&&(n[decodeURIComponent(r[0])]=decodeURIComponent(r[1]))}}return n},stringifyQuery:function(e){var n=[];for(var t in e)n.push(encodeURIComponent(t)+"="+encodeURIComponent(e[t]));return n.join("&")},isUndefined:function(e){return"undefined"!==e&&void 0===e},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},toBoolean:function(e){return"string"==typeof e?"true"===e||"1"===e:!!e},logMessage:function(e,n){console&&"function"==typeof console[e]&&console[e](n)},addWindowMessageListener:function(e,n){(e=e||window).addEventListener?e.addEventListener("message",n,!1):e.attachEvent("onmessage",n)},parsePostMessageData:function(e){var n=e||"";if("string"==typeof e)try{n=JSON.parse(e)}catch(e){}return n},ajax:function(e,n,t,o){var r=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),i=function(){var e=void 0!==r.status?r.status:200,n=r.responseText;try{n=200===e?JSON.parse(r.responseText):void 0}catch(e){}t(n,e)};window.XDomainRequest&&((r=new XDomainRequest).onload=i),r.onreadystatechange=function(e){4===r.readyState&&i()},n&&(r.withCredentials=!0);try{r.open("GET",e,!1!==o),r.send(null)}catch(e){t(void 0,0)}},getMetaTagContent:function(e){var n=new RegExp(":","g"),t=e.replace(n,"\\:"),o=document.head.querySelector("[name="+t+"]");return o?o.content:void 0},documentReady:function(e){"loading"!==document.readyState?e():document.addEventListener?document.addEventListener("DOMContentLoaded",e):document.attachEvent("onreadystatechange",function(){"complete"===document.readyState&&e()})},isSafeUrl:function(e){return-1===(e=(e||"").replace(" ","")).toLowerCase().indexOf("javascript:")},isHostedUI:function(e){var n=RegExp(/\.oath\.com$/),t=document.createElement("a");return t.href=e,n.test(t.hostname)}}}();n.a=o},function(e,n,t){"use strict";var o=t(0),r=function(){var e,n=function(e){return function(){var e,n,t,o,r,i=document.cookie;if(e={},i)for(n=0,t=(r=i.split(";")).length;n<t;n++)e[(o=r[n].split(/=(.+)/))[0].trim()]=(o[1]||"").trim();return e}()[e]},t=function(n,t,r){var i=new Date,a=r?31536e6:864e5;i.setTime(i.getTime()+a);var s=e?"domain="+e+"; ":"";document.cookie=o.a.isUndefined(t)?n+"=; "+s+"path=/; Max-Age=0":n+"="+t+"; "+s+"path=/; expires="+i.toGMTString()+";"},r=function(){var e=n("cmp"),t=e?o.a.parseQuery(e):{};return Math.round(Date.now()/1e3)-(t.t||0)>3600},i=function(){var e=Math.round(Date.now()/1e3),r=n("cmp"),i=r?o.a.parseQuery(r):{};i.t=e,t("cmp",o.a.stringifyQuery(i),!0)},a=function(){var e=n("cmp"),t=e?o.a.parseQuery(e):{};if(!o.a.isUndefined(t.j)&&!r())return o.a.toBoolean(t.j)},s=function(e){var r=n("cmp"),a=r?o.a.parseQuery(r):{};o.a.isUndefined(e)?delete a.j:(e=o.a.toBoolean(e),a.j=e?"1":"0"),t("cmp",o.a.stringifyQuery(a),!0),i()};return{setCookieDomain:function(n){if(n)try{var t=document.location.host.split(":")[0];new RegExp(n+"$").test(t)?e=n:o.a.logMessage("error","CMP Error: Invalid cookie domain. Domain must be an ancestor of the current domain")}catch(e){}else e=n},getConsentString:function(){var e=n("EuConsent");return"undefined"!==e?e:void 0},setConsentString:function(e,n){t("EuConsent",e,n),i()},isConsentStringStale:r,setGdprAppliesGlobally:function(e){if(e)return s(a()||o.a.toBoolean(e))},setIsUserInEU:function(e){if(!o.a.isUndefined(e))return s(a()||o.a.toBoolean(e))},setGdprApplies:s,getGdprApplies:a,getPubVendorListVersion:function(){var e=n("cmp"),t=e?o.a.parseQuery(e):{};return t.v&&parseInt(t.v)},setPubVendorListVersion:function(e){var r=n("cmp"),i=r?o.a.parseQuery(r):{};i.v=e,t("cmp",o.a.stringifyQuery(i),!0)},getAllowedOathVendorIds:function(){var e=n("cmp");return(e?o.a.parseQuery(e):{}).o||""},setAllowedOathVendorIds:function(e){var r=n("cmp"),i=r?o.a.parseQuery(r):{};e?i.o=e:delete i.o,t("cmp",o.a.stringifyQuery(i),!0)}}}();n.a=r},function(e,n){!function(){var e=!1;function n(e){var n="string"==typeof e.data,t=e.data;if(n)try{t=JSON.parse(e.data)}catch(e){}if(t&&t.__cmpCall){var o=t.__cmpCall;window.__cmp(o.command,o.parameter,function(t,r){var i={__cmpReturn:{returnValue:t,success:r,callId:o.callId}};e&&e.source&&e.source.postMessage(n?JSON.stringify(i):i,"*")})}}"function"==typeof __cmp||(window.__cmp=function(){var n=arguments;if(__cmp.a=__cmp.a||[],!n.length)return __cmp.a;"ping"===n[0]?n[2]({gdprAppliesGlobally:e,cmpLoaded:!1},!0):__cmp.a.push([].slice.apply(n))},function e(){if(document.body&&document.body.firstChild){var n=document.body,t=document.createElement("iframe");t.style.display="none",t.height=t.width=0,t.name="__cmpLocator",n.insertBefore(t,n.firstChild)}else setTimeout(e,5)}(),window.addEventListener?window.addEventListener("message",n,!1):window.attachEvent("onmessage",n))}()},function(e,n,t){"use strict";var o=t(1),r=t(0),i=function(){var e,n=[],t=!1,a=function(n){return void 0!==n&&(e=n),e},s=function(e){n.push({method:e,args:[].slice.call(arguments,1)})},d=function(e,n){if(a()||n){var t=o.a.getConsentString();void 0===t?e(void 0,!1):e(t,!0)}else s(d,e)},u=function(e){if(a()){var n=o.a.getGdprApplies();if(r.a.isUndefined(n))return e(void 0,!1);e(n,!0)}else i.queueRequestUntilInitialized(u,e)};return{isInitialized:a,queueRequestUntilInitialized:s,initializationComplete:function(){if(!a())for(a(!0);n.length;){var e=n.shift();"function"==typeof e.method&&e.method.apply(null,[].slice.call(e.args))}},setGdprAppliesGlobally:function(e){t=e,o.a.setGdprAppliesGlobally(e)},ping:function(e,n){n({gdprAppliesGlobally:t,cmpLoaded:!0})},getConsentString:d,isUserInEU:u}}();n.a=i},function(e,n,t){"use strict";var o=function(e){var n=6,t=36,o=36,r=12,i=12,a=6,s=12,d=12,u=24,c=16,l=1,f=12,p=1,g=1,v=16,m=16;!function(){var e="undefined"!=typeof exports?exports:"undefined"!=typeof self?self:window,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function t(e){this.message=e}t.prototype=new Error,t.prototype.name="InvalidCharacterError",e.btoa||(e.btoa=function(e){for(var o,r,i=String(e),a=0,s=n,d="";i.charAt(0|a)||(s="=",a%1);d+=s.charAt(63&o>>8-a%1*8)){if((r=i.charCodeAt(a+=.75))>255)throw new t("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");o=o<<8|r}return d}),e.atob||(e.atob=function(e){var o=String(e).replace(/[=]+$/,"");if(o.length%4==1)throw new t("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,i,a=0,s=0,d="";i=o.charAt(s++);~i&&(r=a%4?64*r+i:i,a++%4)?d+=String.fromCharCode(255&r>>(-2*a&6)):0)i=n.indexOf(i);return d})}();var h=function(){var e="a".charCodeAt(0),y="00000000000000000000000000000000000000000000000000",w=function(){this.binaryStr="",this.addField=function(e,n,t){var o=(e+0||0).toString(2);if(o.length<n)o=y.substr(0,n-o.length)+o;else if(o.length>n)throw new Error("Encountered an overflow setting cookie field "+t);this.binaryStr+=o}};return{build:function(e){e.version=1,e.cmpId=14,e.cmpVersion=1;var n=h.encodeBinary(e),t=h.binaryToBytes(n);return h.toWebSafeBase64(t)},setAll:function(e){var n=h.fromWebSafeBase64(e),t=h.bytesToBinary(n);return h.decodeBinary(t)},bytesToBinary:function(e){for(var n="",t=["0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"],o=function(e){return t[e>>>4&15]+t[15&e]},r=0;r<e.length;r++)n+=o(e.charCodeAt(r));return{string:n,atPos:0,getBits:function(e){var n=parseInt(this.string.substr(this.atPos,e),2);return this.atPos+=e,n}}},binaryToBytes:function(e){var n="";e+=y.substr(0,7-(e.length+7)%8);for(var t=0;t<e.length;t+=8)n+=String.fromCharCode(parseInt(e.substr(t,8),2));return n},toWebSafeBase64:function(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},fromWebSafeBase64:function(e){return atob(e.replace(/-/g,"+").replace(/_/g,"/"))},languageFromCookieValue:function(n){return String.fromCharCode(e+n/64>>>0)+String.fromCharCode(e+n%64)},languageToCookieValue:function(n){return 64*(n.charCodeAt(0)-e)+(n.charCodeAt(1)-e)},dateFromDeciseconds:function(e){return new Date(100*e)},dateToDeciseconds:function(e){return Math.floor(e.getTime()/100)},decodeBinary:function(e){var y=e.getBits(n);if(1!==y)throw new Error("Cookie version "+y+" is not supported");var w,C={version:y,created:h.dateFromDeciseconds(e.getBits(t)),lastUpdated:h.dateFromDeciseconds(e.getBits(o)),cmpId:e.getBits(r),cmpVersion:e.getBits(i),consentScreen:e.getBits(a),consentLanguage:h.languageFromCookieValue(e.getBits(s)),vendorListVersion:e.getBits(d),purposesAllowed:e.getBits(u),maxVendorId:e.getBits(c),encodingType:e.getBits(l)},b=C.maxVendorId,I=new Array(b+1);if(0===C.encodingType){var E=e.string.length-e.atPos;if(E<b)throw new Error("Incorrect bitfield size: "+E+" < "+b);for(w=0;w<b;w++)I[w+1]="1"===e.string.charAt(e.atPos+w)}else{for(C.defaultConsent=1===e.getBits(p),w=0;w<b;w++)I[w+1]=C.defaultConsent;for(C.numEntries=e.getBits(f),w=0;w<C.numEntries;w++){var S=1===e.getBits(g),A=e.getBits(v),U=S?e.getBits(m):A;if(e.atPos>e.string.length)throw new Error("Not enough bits for numEntries in ranges");if(A>U||U>b)throw new Error("Invalid vendorId range: "+A+"-"+U+". The max valid vendorId is: "+b);for(var L=A;L<=U;L++)I[L]=!C.defaultConsent}}return C.vendorConsents=I,C},encodeRanges:function(e){for(var n,t,o=new w,r=e.vendorConsents,i=!!r[1],a=!1,s=e.maxVendorId,d=0,u=2;u<=s;u++){var c=!!r[u]!=!!i;if(c&&(a||(n=u,a=!0),t=u),a&&(!c||u===s)){d++;var l=t>n;if(o.addField(l?1:0,g,"isRange"),o.addField(n,v,"startVendorId"),l&&o.addField(t,m,"endVendorId"),13+o.binaryStr.length>s)return null;a=!1}}return{binary:o,defaultConsent:i?1:0,numEntries:d}},encodeBinary:function(e){var g=e.vendorConsents,v=new w;if(1!==e.version)throw new Error("version "+e.version+" not supported");v.addField(e.version,n,"version"),v.addField(h.dateToDeciseconds(e.created),t,"created"),v.addField(h.dateToDeciseconds(e.lastUpdated),o,"lastUpdated"),v.addField(e.cmpId,r,"cmpId"),v.addField(e.cmpVersion,i,"cmpVersion"),v.addField(e.consentScreen,a,"consentScreen"),v.addField(h.languageToCookieValue(e.consentLanguage||"en"),s,"consentLanguage"),v.addField(e.vendorListVersion,d,"vendorListVersion"),v.addField(e.purposesAllowed,u,"purposesAllowed"),v.addField(e.maxVendorId,c,"maxVendorId");var m=h.encodeRanges(e);if(e.encodingType=m?1:0,v.addField(e.encodingType,l,"encodingType"),0===e.encodingType)for(var y=1;y<=e.maxVendorId;y++)v.binaryStr+=g[y]?"1":"0";else e.defaultConsent=m.defaultConsent,e.numEntries=m.numEntries,v.addField(e.defaultConsent,p,"defaultConsent"),v.addField(e.numEntries,f,"numEntries"),v.binaryStr+=m.binary.binaryStr;return v.binaryStr}}}(),y={vendorConsents:[]};return{setMaxVendorId:function(e){y.maxVendorId=e},getMaxVendorId:function(){return y.maxVendorId},setVendorConsent:function(e,n){y.vendorConsents[n]=!!e},setAllVendorConsents:function(e){for(var n=1;n<=y.maxVendorId;n++)y.vendorConsents[n]=!!e},getAllVendorConsents:function(){for(var e={},n=1;n<y.vendorConsents.length;n++)e[n]=!!y.vendorConsents[n];return e},getVendorConsent:function(e){return!!y.vendorConsents[e]},setPurposeConsent:function(e,n){var t=1<<u-n;y.purposesAllowed=e?y.purposesAllowed|t:y.purposesAllowed&~t},setAllPurposeConsents:function(e){for(var n=1;n<=24;n++){var t=1<<u-n;y.purposesAllowed=e?y.purposesAllowed|t:y.purposesAllowed&~t}},getAllPurposeConsents:function(){for(var e={},n=1;n<=u;n++){var t=1<<u-n;e[n]=0!=(y.purposesAllowed&t)}return e},getPurposeConsent:function(e){var n=1<<u-e;return 0!=(y.purposesAllowed&n)},setVendorListVersion:function(e){y.vendorListVersion=e},getVendorListVersion:function(){return y.vendorListVersion},build:function(){return y.created||(y.created=new Date),y.lastUpdated=new Date,h.build(y)},setAll:function(e){y=h.setAll(e)}}}(window);n.a=o},function(e,n,t){"use strict";var o=t(6),r=t(0),i=function(e){var n,t=o.a.cmpAPIUrl+"v0/location/eu",i=o.a.cmpAPIUrl+"v0/vendor_list/global",a=o.a.cmpAPIUrl+"v0/measurement/events",s={},d={},u={},c=function(e,n,t,o){var i="";if(n){var a=[];for(var s in n)a.push(encodeURIComponent(s)+"="+encodeURIComponent(n[s]));i="?"+a.join("&")}var d=e+i;u[d]&&u[d].length?u[d].push(t):(u[d]=[t],r.a.ajax(e+i,!1,function(e,n){for(;u[d].length;){e=200===n?e:void 0;var t=200===n;u[d].shift()(e,t)}},o))},l=function(e,n){if(s[e])n(s[e],!0);else{var t=r.a.isNumeric(e)?{version:e}:{};c(i,t,function(t,o){o?(s[e]=t,n(s[e],!0)):n(void 0,!1)})}};return{isUserInEU:function(e){c(t,null,function(n,t){e(t?r.a.toBoolean(n.result):void 0,t)})},getVendorList:l,getVendorListFromPubVendors:function(e,t){s.null?t(s.null,!0):l(null,function(o,i){if(i){for(var a=0;a<o.vendors.length;a++){var c=o.vendors[a];d[c.id]=c}!function(e,t){if(!1!==n){var o=(e||"")+"/.well-known/pubvendors.json",i=(e||"")+"/pubvendors.json";u[o]&&u[o].length?u[o].push(t):(u[o]=[t],r.a.ajax(o,!1,function(e,t){if(n=200===t)for("object"!=typeof e&&(n=!1,r.a.logMessage("error","CMP Error: Invalid pubvendors.json format"));u[o].length;)u[o].shift()(e,n);else r.a.ajax(i,!1,function(e,t){for((n=200===t)&&"object"!=typeof e&&(n=!1,r.a.logMessage("error","CMP Error: Invalid pubvendors.json format"));u[o].length;)u[o].shift()(e,n)})}))}else t(void 0,!1)}(e,function(e,n){if(n){var i=function(e,n){for(var t=[],o=0;o<n.vendors.length;o++){var i=n.vendors[o].id;d[i]?t.push(d[i]):r.a.logMessage("error","CMP Error: pubvendors.json references vendor id "+i+" which does not exist in the Global Vendor List")}var a=JSON.parse(JSON.stringify(e));return a.vendors=t,a}(o,e);s.null=i,t(i,!!i)}else s.null=o,t(s.null,!0)})}else t(void 0,!1)})},CMPEvent:function(){var n=window.location.host,t=n.indexOf(":");t>0&&(n=n.substr(0,t));var o={ev_type:"A",gdpr:"N",p_domain:n=n.substr(n.length-255)},r=null;this.setPublisherId=function(e){return isNaN(parseInt(e))||(o.p_id=e),this},this.setGdpr=function(e){return o.gdpr=e,this},this.setGdprConsent=function(e){return o.consent=e,this},this.setType=function(e){return o.ev_type=e,this},this.markConsentRenderStartTime=function(){r=Date.now();var n=this;return e.addEventListener?(e.addEventListener("beforeunload",function(){n.fire(!1)},!1),e.addEventListener("unload",function(){n.fire(!1)},!1)):(e.attachEvent("onbeforeunload",function(){n.fire(!1)}),e.attachEvent("onunload",function(){n.fire(!1)})),this},this.fire=function(e){r&&(o.ev_duration=Math.round((Date.now()-r)/1e3)),o.fired||function(e,n){c(a,e||{},function(n,t){e.fired=t},n)}(o,e)}},clearCache:function(){s={},d={},n=void 0,u={}}}}(window);n.a=i},function(e,n,t){"use strict";var o={LOCAL:{cmpAPIUrl:"https://web.archive.org/web/20191021192505/https://service-dev.cmp.oath.com/cmp/"},DEV:{cmpAPIUrl:"https://web.archive.org/web/20191021192505/https://service-dev.cmp.oath.com/cmp/"},PROD:{cmpAPIUrl:"https://web.archive.org/web/20191021192505/https://service.cmp.oath.com/cmp/"}}[window.__cmpEnv||"LOCAL"];n.a=o},,,,function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var o=t(2),r=(t.n(o),t(11)),i=t(12),a=t(13),s=t(1),d=t(5),u=t(4),c=t(0),l=t(3),f=!1,p=function(e,n){if(f&&!n)return e.__cmp;f=!0;for(var t,o=n||"function"!=typeof e.__cmp?[]:__cmp()||[],p={},g=[],v=[],m=new d.a.CMPEvent,h=function(e,n){l.a.getConsentString(function(n,o){o?e(n,!0):g.length?g.push(e):t?(g.push(e),r.a.getConsentString(function(e,n){for(s.a.setConsentString(e);g.length;)g.shift()(e,n)})):e(void 0,!0)},n)},y=function(e){t?(s.a.setConsentString(e,!1),r.a.setConsentString(e,function(n,t){t||s.a.setConsentString(e,!0)})):s.a.setConsentString(e,!0)},w=function(e){l.a.isUserInEU(function(n,t){if(t)e(n,!0);else{if(v.length)return void v.push(e);v.push(e),d.a.isUserInEU(function(e){for(s.a.setIsUserInEU(e);v.length;)v.shift()(e)})}})},C=function(e,n){h(function(e,t){w(function(o,r){n({consentData:e,gdprApplies:s.a.getGdprApplies(),hasGlobalScope:!1},t&&r)})})},b=function(e){m.markConsentRenderStartTime();var n=p.uiUrl?i.a:a.a;l.a.isInitialized()?l.a.getConsentString(function(t,o){p.consentString=t,n.renderConsents(p,function(n,t){m.setType("C").setGdprConsent(n).fire(),y(n),"function"==typeof e&&e(n,t)})}):n.renderConsents(p,function(n,t){m.setType("C").setGdprConsent(n).fire(),y(n),"function"==typeof e&&e(n,t)})},I=function(e){if(e)return{init:function(e){if(!l.a.isInitialized())if((p=e||{}).uiCustomParams=p.uiCustomParams||{},p.uiUrl||p.organizationId)if(c.a.isSafeUrl(p.uiUrl)){p.gdprAppliesGlobally&&(l.a.setGdprAppliesGlobally(!0),m.setGdpr("S"),m.setPublisherId(p.organizationId)),(t=p.sharedConsentDomain)&&r.a.init(t),s.a.setCookieDomain(p.cookieDomain);var n=s.a.getGdprApplies();!0===n?(p.gdprAppliesGlobally||m.setGdpr("C"),h(function(e){e?l.a.initializationComplete():b(l.a.initializationComplete)},!0)):!1===n?l.a.initializationComplete():d.a.isUserInEU(function(e,n){n||(e=!0),s.a.setIsUserInEU(e),e?(m.setGdpr("L"),h(function(e){e?l.a.initializationComplete():b(l.a.initializationComplete)},!0)):l.a.initializationComplete()})}else c.a.logMessage("error",'CMP Error: Invalid config value for (uiUrl). Valid format is "http[s]://example.com/path/to/cmpui.html"');else c.a.logMessage("error","CMP Error: Required config (organizationId) was not set. If you are hosting your own UI, then the uiUrl parameter is missing and the organizationId is not required.")},ping:l.a.ping,getPublisherConsents:function(e,n){C(null,function(t,o){if(o){u.a.setAll(t.consentData);var r=Array.isArray(e),i=u.a.getAllPurposeConsents();d.a.getVendorListFromPubVendors(null,function(o,a){var s={};if(a)for(var d in o.purposes){var u=o.purposes[d].id;(!r||e.indexOf(u)>-1)&&(s[u]=i[u])}else s=i;var c={gdprApplies:t.gdprApplies,hasGlobalScope:t.hasGlobalScope,standardPurposeConsents:s};n(c,!0)})}else n({},!1)})},getVendorConsents:function(e,n){C(null,function(e,t){e.consentData?d.a.getVendorListFromPubVendors(null,function(o,r){u.a.setAll(e.consentData);var i=u.a.getAllPurposeConsents(),a=u.a.getAllVendorConsents(),s={},d={};if(r){var c;for(var l in o.purposes)s[c=o.purposes[l].id]=i[c];for(var f in o.vendors)d[c=o.vendors[f].id]=a[c]}var p={metadata:e.consentData,gdprApplies:e.gdprApplies,hasGlobalScope:e.hasGlobalScope,purposeConsents:s,vendorConsents:d};n(p,t&&r)}):n({gdprApplies:e.gdprApplies,hasGlobalScope:e.hasGlobalScope,purposeConsents:{},vendorConsents:{}},t)})},getConsentData:C,getConsentString:h,isUserInEU:w,renderConsents:b}[e].apply(null,[].slice.call(arguments,1))};o.length;)try{I.apply(null,o.shift())}catch(e){c.a.logMessage("error","CMP: Error executing request",e)}return I};window.__cmp=p(window);var g={createInstance:function(e){return p(window,e)}};n.default=g},function(e,n,t){"use strict";var o=t(0),r=function(e){var n=null,t=null,r=!1,i=[],a={};var s=function(e,o,s){var d="cmp-iframe-"+Date.now();"function"==typeof s&&(a[d]=s);var u={__cmpDomainCall:{command:e,parameter:o,callId:d}};r?t.contentWindow.postMessage(JSON.stringify(u),n):i.push(u)};return{init:function(s){if(s&&(n="https://"+function(e){var n;return e!==(n=(n=(n=e.indexOf("://")>-1?e.split("/")[2]:e.split("/")[0]).split("?")[0]).split("#")[0])&&o.a.logMessage("warn","CMP Warning: sharedConsentDomain should not include the URL scheme, path or query parameters"),n}(s)+"/domain/cmp-domain.html",!document.getElementById("consent-domain-iframe"))){(t=document.createElement("iframe")).src=n,t.id="consent-domain-iframe",t.style.display="none",t.height=t.width=0;var d=function(){for(r=!0;i.length;)t.contentWindow.postMessage(JSON.stringify(i.shift()),n)};t.addEventListener?t.addEventListener("load",d,!1):t.attachEvent&&t.attachEvent("onload",d),document.body.appendChild(t),o.a.addWindowMessageListener(e,function(e){var n=o.a.parsePostMessageData(e.data).__cmpDomainReturn;if(n){var t=n.callId;if(a[t]){var r=n.returnValue,i=n.success;a[t](r,i)}}})}},getConsentString:function(e){s("getConsentString",null,e)},setConsentString:function(e,n){s("setConsentString",e,n)}}}(window);n.a=r},function(e,n,t){"use strict";var o=t(0),r=function(e,n){var t,r=null,i=null,a=null,s=!1,d=[],u=[],c={},l=function(){var o=e,r="inner";"innerWidth"in e||(r="client",o=n.documentElement||n.body);var i={width:o[r+"Width"],height:o[r+"Height"]};if(i.width<915)a.width=i.width,a.height=i.height,a.style.margin="0 auto";else{a.width=Math.min(i.width-100,1e3),a.height=Math.min(i.height-100,t.maxModalHeight||573);var s=(i.width-a.width)/2;a.style.marginTop="50px ",a.style.marginLeft=s+"px "}},f=function(e,n){if(i&&a)for(window.removeEventListener?window.removeEventListener("resize",l,!1):window.detachEvent&&window.detachEvent("onresize",l),i.parentNode.removeChild(i),i=null,s=!1;u.length;)u.shift()(e,n)};return{renderConsents:function(n,p){if((t=n||{}).siteDomain=window.location.origin,r=t.uiUrl){if(p&&u.push(p),!document.getElementById("cmp-container-id")){(i=document.createElement("div")).id="cmp-container-id",i.style.position="fixed",i.style.background="rgba(0,0,0,.5)",i.style.top=0,i.style.right=0,i.style.bottom=0,i.style.left=0,i.style.zIndex=1e4,document.body.appendChild(i),(a=document.createElement("iframe")).style.position="fixed",a.src=r,a.id="cmp-ui-iframe",a.width=0,a.height=0,a.style.display="block",a.style.border=0,i.style.zIndex=10001,l(),window.addEventListener?window.addEventListener("resize",l,!1):window.attachEvent&&window.attachEvent("onresize",l),o.a.addWindowMessageListener(e,function(e){var n=o.a.parsePostMessageData(e.data).__cmpUIReturn;if(n){var t=n.callId;if(c[t]){var r=n.returnValue,i=n.success;c[t](r,i)}}});var g=function(){for(s=!0;d.length;)a.contentWindow.postMessage(JSON.stringify(d.shift()),r)};a.addEventListener?a.addEventListener("load",g,!1):a.attachEvent&&a.attachEvent("onload",g),i.appendChild(a),function(e,n,t){var o="cmp-iframe-"+Date.now();"function"==typeof t&&(c[o]=t);var i={__cmpUICall:{command:e,parameter:n,callId:o}};s?a.contentWindow.postMessage(JSON.stringify(i),r):d.push(i)}("renderConsentUI",t,f)}}else o.a.logMessage("error","CMP Error: Required config (uiUrl) was not set")}}}(window,document);n.a=r},function(e,n,t){"use strict";var o=t(0),r=function(e,n){var t,r="/ui/version//cmpui.html",i=null,a=!1,s=[],d=[],u={},c=function(e){var n=o.a.parsePostMessageData(e.data),t=n.__cmpUIReturn;if(t){var r=t.callId;if(u[r]){var a=t.returnValue,s=t.success;u[r](a,s)}}else{var d=n.__cmpUILayout;d&&(void 0!==d.top&&(i.style.top=d.top),void 0!==d.bottom&&(i.style.bottom=d.bottom),void 0!==d.height&&(i.style.height=d.height))}},l=function(e,n){if(i)for(i.parentNode.removeChild(i),a=!1;d.length;)d.shift()(e,n)};return{renderConsents:function(n,f){if((t=n||{}).siteDomain=window.location.origin,f&&d.push(f),!document.getElementById("cmp-ui-iframe")){i=function(){var e=document.createElement("iframe");return e.style.position="fixed",e.src=r.replace("",t.uiVersion||"2"),e.id="cmp-ui-iframe",e.width="100%",e.height="0",e.style.display="block",e.style.border=0,e.style.zIndex=10001,e.style.top=0,e}(),o.a.addWindowMessageListener(e,c);var p=function(){for(a=!0;s.length;)i.contentWindow.postMessage(JSON.stringify(s.shift()),"*")};i.addEventListener?i.addEventListener("load",p,!1):i.attachEvent&&i.attachEvent("onload",p),document.body.appendChild(i),function(e,n,t){var o="cmp-iframe-"+Date.now();"function"==typeof t&&(u[o]=t);var r={__cmpUICall:{command:e,parameter:n,callId:o}};a?i.contentWindow.postMessage(JSON.stringify(r),"*"):s.push(r)}("renderConsentUI",t,l)}}}}(window,document);n.a=r}]); </script> <script>__cmp('init', {gdprAppliesGlobally: true, uiUrl: 'https://web.archive.org/web/20191021192505/https://www.huffingtonpost.fr/p/gdpr/gestion-des-cookies'});</script><script type="application/javascript" data-script="hpCmp-alpha.js"> var HPCmp = { loadScript: function(url,callback){ var w = document.createElement('script'); w.type = 'text/javascript'; w.src = url; w.onreadystatechange = callback; w.onload = callback var elementDefault = document.getElementsByTagName('script')[0]; elementDefault.parentNode.insertBefore(w,elementDefault); }, checkCmpScript: function(callback,choice){ function call() { if (typeof choice !== 'undefined' && choice) { if (HPCmp.getConsent()[choice]) { callback(); } } else { callback(); } } if (HPCmp.hasConsent()) { call(); } else { window.onload = (function($) { $(window).on("cmp_init", function() { call(); }) })(jQuery); } }, hpConsentCookieName: 'sitehpcmpchoice', euConsentCookieName: 'EuConsent', consentCookiesExpiresMonths: 13, defaultCategoriesConsentChoice: { analytics: true, ads: true, socials: true, }, validhpConsent: function() { existConsent = false; if (document.cookie.indexOf(HPCmp.hpConsentCookieName) >= 0) { var v = document.cookie.match(new RegExp(HPCmp.hpConsentCookieName + '=([^;]+)')); try { var choice = JSON.parse(decodeURIComponent(v[1])); if (typeof choice['analytics'] === "boolean" && typeof choice['ads'] === "boolean" && typeof choice['socials'] === "boolean") { var checkExist = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; if (!checkExist) { existConsent = choice; } else { existConsent = true; } } } catch(e) {} } return existConsent; }, hasConsent: function() { existConsent = HPCmp.validhpConsent(true); if (existConsent) { return (document.cookie.indexOf(HPCmp.euConsentCookieName) >= 0); } return existConsent; }, getConsent: function() { var choice = HPCmp.validhpConsent(); if (choice) { return choice; } var checkExist = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; if (!checkExist) { return HPCmp.defaultCategoriesConsentChoice; } else { return false; } }, }; (function($) { $("document").ready(function() { const cmpPolicy = (window.location.href.indexOf("/p/charte-de-confidentialite") > 0); const cmpForm = $('#cmp-form').length; if (!cmpPolicy && (!HPCmp.hasConsent() || cmpForm > 0)) { const cmpScript = function() { const expires = new Date(); expires.setMonth(expires.getMonth() + HPCmp.consentCookiesExpiresMonths); const saveConsent = function(consentString, hpConsentString, layer) { // Store ads consent cookie var cookiesEuConsent = $.cookie(HPCmp.euConsentCookieName, consentString, { path: '/', domain: 'huffingtonpost.fr', expires: expires }) var cookiesHpConsent = $.cookie(HPCmp.hpConsentCookieName, JSON.stringify(hpConsentString), { path: '/', domain: 'huffingtonpost.fr', expires: expires }) $.when(cookiesEuConsent, cookiesHpConsent).done(function () { if (cmpForm > 0) { window.location.href = '/'; } else { $.cookie('hpCmp', 0, { path: '/', domain: 'huffingtonpost.fr', expires: -1 }) if (typeof layer === 'undefined') { $("body").trigger('cmp_init'); } else { layer.slideDown(500, function() { $("body").removeClass('cmp-socials'); $(this).remove(); $("body").trigger('cmp_init'); }) } } }) } const consentData = new BY.ConsentString(); const getPurposesIds = function(purposes) {return purposes.map(function(purpose) {return purpose.id})}; const getVendorIds = function(vendors) {return vendors.map(function(vendor) {return vendor.id})}; // Calculate ads consent string const saveAdsConsent = function(consentState, callback) { getVendorList(function(vendorList) { // set global vendor list consentData.setGlobalVendorList(vendorList); // Set the consent data consentData.setCmpId(14); // Oauth CMP ID consentData.setCmpVersion(1); consentData.setConsentScreen(1); consentData.setConsentLanguage('fr'); consentData.setPurposesAllowed(consentState ? getPurposesIds(vendorList.purposes) : []); consentData.setVendorsAllowed(consentState ? getVendorIds(vendorList.vendors) : []); // Encode the data into a web-safe base64 string callback(consentData.getConsentString()); }) } if (cmpForm > 0) { $.cookie('hpCmp', 0, { path: '/', domain: 'huffingtonpost.fr', expires: -1 }) var choice = HPCmp.getConsent(); if (!choice['analytics']){ $('#cmp-analytics').prop("checked",false); } if (!choice['socials']){ $('#cmp-socials').prop("checked",false); } if (!choice['ads']){ $('#cmp-ads').prop("checked",false); } $('#cmp-validate').on('click', function() { var choice = HPCmp.defaultCategoriesConsentChoice; if (!$('#cmp-analytics').is(':checked')){ choice['analytics'] = false; } if (!$('#cmp-socials').is(':checked')){ choice['socials'] = false; } if (!$('#cmp-ads').is(':checked')){ choice['ads'] = false; } saveAdsConsent(choice['ads'], function(consentString) { saveConsent(consentString, choice); }) }); $('#cmp-form').on('click', '.cmp-more', function () { $(this).closest('.cmp-type').find('.cmp-viewmore').toggle(); }); } else { var choice = HPCmp.getConsent(true); if (choice && typeof choice['ads'] === 'boolean' || $.cookie('hpCmp') == 1) { saveAdsConsent((typeof choice['ads'] === 'boolean' ? choice['ads'] : 1), function(consentString) { saveConsent(consentString, (typeof choice['ads'] === 'boolean' ? choice : HPCmp.defaultCategoriesConsentChoice)); }) } else { var cmpFirst = true; $.cookie('hpCmp', 1, { path: '/', domain: 'huffingtonpost.fr' }) const layer = $(document.createElement('div')).addClass('cookie-warning'); const html = '<button id="cookie-warning-cross">Fermer</button><p class="cookie-warning-message"><i>Le Huffpost</i> utilise des cookies pour vous offrir une expérience utilisateur de qualité, mesurer l’audience et vous proposer des publicités personnalisées. En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de cookies dans les conditions prévues par notre <a href="/p/charte-de-confidentialite" id="cookie-info-dp" aria-label="Politique de confidentialité – nouvelle fenêtre">politique de confidentialité</a>. <a href="/p/charte-de-confidentialite" id="cookie-info-gc" aria-label="Gérer les cookies">En savoir plus et gérer les cookies</a>.</p> <div class="cookie-warning-buttons"><a class="cookie-warning-manager" id="cookie-info-wm" href="/p/gdpr/gestion-des-cookies" role="button">Paramétrer les cookies</a><button id="cookie-warning-accept">Accepter</button></div>'; layer.html(html); $("body").addClass('cmp-socials'); $(".huffpost-footer").after(layer); $('#cookie-warning-accept, #cookie-warning-cross').on('click', function(event) { if (cmpFirst) { cmpFirst = false; saveAdsConsent(1, function(consentString) { saveConsent(consentString, HPCmp.defaultCategoriesConsentChoice, layer); }) } }); $(window).on("scroll", $.throttle(1000, function(){ if (cmpFirst && $(document).scrollTop() > 250) { cmpFirst = false; saveAdsConsent(1, function(consentString) { saveConsent(consentString, HPCmp.defaultCategoriesConsentChoice, layer); }) } })) } } }; cmpScript(); } else if (cmpPolicy) { $.cookie('hpCmp', 0, { path: '/', domain: 'huffingtonpost.fr', expires: -1 }) } }) })(jQuery); </script> </div> </body> </html> <!-- FILE ARCHIVED ON 19:25:05 Oct 21, 2019 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 01:28:33 Nov 25, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.45 exclusion.robots: 0.022 exclusion.robots.policy: 0.013 esindex: 0.009 cdx.remote: 7.017 LoadShardBlock: 212.084 (3) PetaboxLoader3.datanode: 207.469 (4) PetaboxLoader3.resolve: 113.406 (2) load_resource: 152.504 -->