(function () {
  //Inject code v5.2

  var highcharts = document.createElement('script');
  var injectVersion = 5;
  var cdn = 'https://code.highcharts.com/';
  var loaded = 0;  
  var encodedUrl = encodeURI('https://https://app.everviz.com//show/-rvMbxX7X');
  var chartCreated = false;
  var chart = false;
  var delayGen = 0;
  var scripts = [
    "highcharts.js",
    "modules/stock.js",
    "highcharts-more.js",
    "highcharts-3d.js",
    "modules/data.js",
    "modules/exporting.js",
    "modules/funnel.js",
    "modules/solid-gauge.js",
    "modules/export-data.js",
    "modules/accessibility.js"
  ];

  var legacyElementClassName = 'highcharts--rvMbxX7X';
  var elementClassName = 'everviz--rvMbxX7X';
  var externalCSS = [
    "https://app.everviz.com/fonts/-kdRxC3Ef/font.css",
    "https://app.everviz.com/fonts/mIQoHgFro/font.css",
    "https://app.everviz.com/fonts/b7ssKVeRa/font.css",
    "https://app.everviz.com/static/fonts/gordita/style.css",
    "https://app.everviz.com/resources/css/highcharts-data-table.css"
  ];

  var extraScripts = [
  "https://app.everviz.com/resources/js/highcharts-scroll-animation.js",
  "https://app.everviz.com/resources/js/everviz-utils.js",
  "https://app.everviz.com/resources/js/highcharts-overrides.js"
  ];

  var options = {"chart":{"type":"line","polar":false,"style":{"fontFamily":"Telesans Agate-Regular","fontSize":"14px"},"parallelAxes":{"stackLabels":{"style":{"fontSize":"14px"}}}},"title":{"align":"left","x":10,"style":{"fontFamily":"Austin News Deck-Semibold","color":"#333333","fontSize":"22px","fontWeight":"normal","fontStyle":"normal","fill":"#333333","width":"566px"},"margin":15,"text":"<div>On your bike</div>","useHTML":true},"subtitle":{"align":"left","x":10,"style":{"fontFamily":"Austin News Deck-Italic","color":"#666666","fontSize":"22px","fontWeight":"normal","fontStyle":"normal","fill":"#666666","width":"566px"},"text":"<div>Cycling frequency as a % of pre-Covid levels</div>","useHTML":true},"plotOptions":{"series":{"allowPointSelect":true,"states":{"select":{"color":"#EFFFEF","borderColor":"black","dashStyle":"dot"}},"marker":{"enabled":false},"lineWidth":3,"label":{"style":{"font-weight":"bold","fontFamily":"Telesans Agate-Regular","fontSize":"14px"},"enabled":false},"events":{}},"area":{"fillOpacity":0.2,"marker":{"enabled":false,"symbol":"diamond"},"dataLabels":{"style":{"fontSize":"14px"}},"label":{"style":{"font-weight":"bold","fontFamily":"Telesans Agate-Regular","fontSize":"14px"}}},"line":{"marker":{"symbol":"diamond"}}},"exporting":{"enabled":false,"url":"https://api.everviz.com/export"},"credits":{"href":"https://www.gov.uk/government/statistics/transport-use-during-the-coronavirus-covid-19-pandemic","position":{"x":-7,"y":-3},"style":{"cursor":"pointer","color":"#999999","fontSize":"10px","fontFamily":"Telesans Agate-Regular"},"text":"<div>SOURCE: DEPARTMENT FOR TRANSPORT</div>","useHTML":true},"colors":["#0021af","#17e698","#2f114f","#fff7b3","#ff77b7","#96efff","#f43939"],"legend":{"align":"left","verticalAlign":"top","itemMarginBottom":10,"x":-10,"symbolRadius":0,"floating":false,"itemStyle":{"fontFamily":"Telesans Agate-Regular","color":"#333333","fontSize":"14px","fontWeight":"normal","fontStyle":"normal","cursor":"pointer","textOverflow":"ellipsis"},"borderRadius":0,"squareSymbol":true,"shadow":false,"rtl":false,"reversed":false,"symbolPadding":4,"symbolHeight":12,"padding":8,"enabled":false},"series":[{"data":[],"turboThreshold":0,"type":"line","name":"% vs pre-Covid level"}],"tooltip":{"pointFormat":"<span style=\"color:{point.color}\"></span> {series.name}: <b>{point.y}</b><br/>","borderRadius":0,"borderWidth":1,"enabled":true,"headerFormat":"","shadow":false,"style":{"color":"#333333","cursor":"default","fontSize":"12px","pointerEvents":"none","whiteSpace":"nowrap","fontFamily":"Telesans Agate-Regular"},"padding":6},"caption":{"style":{"fontFamily":"Telesans Agate-Regular","color":"#666666","fontSize":"18px","fontWeight":"normal","fontStyle":"normal","fill":"#666666","width":"610px"}},"stockTools":{"gui":{"enabled":false}},"navigation":{"bindingsClassName":"tools-container","events":{}},"labels":{"items":[],"style":{"color":"#333333","position":"absolute","fontFamily":"Telesans Agate-Regular","fontSize":"14px"}},"pane":{"background":[]},"responsive":{"rules":[]},"yAxis":{"title":{"useHTML":true,"text":"%"}},"xAxis":{"lineColor":"black","tickColor":"black"},"annotations":[],"lang":{"shortMonths":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"weekdays":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"months":["January","February","March","April","May","June","July","August","September","October","November","December"],"numericSymbols":["k","M","G","T","P","E"]},"data":{"csv":"\"Date\";\"% vs pre-Covid level\"\n\"08/03/2020\";89\n\"09/03/2020\";105\n\"10/03/2020\";82\n\"11/03/2020\";118\n\"12/03/2020\";120\n\"13/03/2020\";99\n\"14/03/2020\";127\n\"15/03/2020\";93\n\"16/03/2020\";104\n\"17/03/2020\";77\n\"18/03/2020\";93\n\"19/03/2020\";91\n\"20/03/2020\";82\n\"21/03/2020\";118\n\"22/03/2020\";126\n\"23/03/2020\";86\n\"24/03/2020\";85\n\"25/03/2020\";128\n\"26/03/2020\";132\n\"27/03/2020\";106\n\"28/03/2020\";125\n\"29/03/2020\";83\n\"30/03/2020\";72\n\"31/03/2020\";96\n\"01/04/2020\";111\n\"02/04/2020\";110\n\"03/04/2020\";112\n\"04/04/2020\";200\n\"05/04/2020\";225\n\"06/04/2020\";105\n\"07/04/2020\";137\n\"08/04/2020\";155\n\"09/04/2020\";168\n\"10/04/2020\";179\n\"11/04/2020\";288\n\"12/04/2020\";248\n\"13/04/2020\";121\n\"14/04/2020\";134\n\"15/04/2020\";194\n\"16/04/2020\";203\n\"17/04/2020\";101\n\"18/04/2020\";143\n\"19/04/2020\";321\n\"20/04/2020\";139\n\"21/04/2020\";150\n\"22/04/2020\";201\n\"23/04/2020\";220\n\"24/04/2020\";188\n\"25/04/2020\";292\n\"26/04/2020\";341\n\"27/04/2020\";158\n\"28/04/2020\";49\n\"29/04/2020\";112\n\"30/04/2020\";97\n\"01/05/2020\";123\n\"02/05/2020\";308\n\"03/05/2020\";257\n\"04/05/2020\";155\n\"05/05/2020\";131\n\"06/05/2020\";227\n\"07/05/2020\";225\n\"08/05/2020\";237\n\"09/05/2020\";384\n\"10/05/2020\";150\n\"11/05/2020\";100\n\"12/05/2020\";144\n\"13/05/2020\";152\n\"14/05/2020\";210\n\"15/05/2020\";174\n\"16/05/2020\";316\n\"17/05/2020\";311\n\"18/05/2020\";164\n\"19/05/2020\";168\n\"20/05/2020\";231\n\"21/05/2020\";224\n\"22/05/2020\";121\n\"23/05/2020\";161\n\"24/05/2020\";263\n\"25/05/2020\";283\n\"26/05/2020\";166\n\"27/05/2020\";225\n\"28/05/2020\";235\n\"29/05/2020\";197\n\"30/05/2020\";322\n\"31/05/2020\";321\n\"01/06/2020\";183\n\"02/06/2020\";183\n\"03/06/2020\";119\n\"04/06/2020\";169\n\"05/06/2020\";114\n\"06/06/2020\";125\n\"07/06/2020\";222\n\"08/06/2020\";164\n\"09/06/2020\";169\n\"10/06/2020\";125\n\"11/06/2020\";124\n\"12/06/2020\";113\n\"13/06/2020\";286\n\"14/06/2020\";304\n\"15/06/2020\";168\n\"16/06/2020\";145\n\"17/06/2020\";167\n\"18/06/2020\";95\n\"19/06/2020\";118\n\"20/06/2020\";286\n\"21/06/2020\";186\n\"22/06/2020\";179\n\"23/06/2020\";180\n\"24/06/2020\";201\n\"25/06/2020\";243\n\"26/06/2020\";147\n\"27/06/2020\";127\n\"28/06/2020\";180\n\"29/06/2020\";93\n\"30/06/2020\";125\n\"01/07/2020\";155\n\"02/07/2020\";155\n\"03/07/2020\";114\n\"04/07/2020\";178\n\"05/07/2020\";176\n\"06/07/2020\";138\n\"07/07/2020\";109\n\"08/07/2020\";100\n\"09/07/2020\";112\n\"10/07/2020\";133\n\"11/07/2020\";232\n\"12/07/2020\";253\n\"13/07/2020\";110\n\"14/07/2020\";125\n\"15/07/2020\";127\n\"16/07/2020\";164\n\"17/07/2020\";134\n\"18/07/2020\";186\n\"19/07/2020\";195\n\"20/07/2020\";144\n\"21/07/2020\";133\n\"22/07/2020\";151\n\"23/07/2020\";137\n\"24/07/2020\";130\n\"25/07/2020\";116\n\"26/07/2020\";207\n\"27/07/2020\";66\n\"28/07/2020\";114\n\"29/07/2020\";159\n\"30/07/2020\";175\n\"31/07/2020\";124\n\"01/08/2020\";189\n\"02/08/2020\";188\n\"03/08/2020\";125\n\"04/08/2020\";105\n\"05/08/2020\";120\n\"06/08/2020\";157\n\"07/08/2020\";126\n\"08/08/2020\";202\n\"09/08/2020\";189\n\"10/08/2020\";122\n\"11/08/2020\";119\n\"12/08/2020\";129\n\"13/08/2020\";125\n\"14/08/2020\";96\n\"15/08/2020\";135\n\"16/08/2020\";132\n\"17/08/2020\";102\n\"18/08/2020\";108\n\"19/08/2020\";82\n\"20/08/2020\";184\n\"21/08/2020\";62\n\"22/08/2020\";143\n\"23/08/2020\";167\n\"24/08/2020\";114\n\"25/08/2020\";44\n\"26/08/2020\";121\n\"27/08/2020\";94\n\"28/08/2020\";66\n\"29/08/2020\";133\n\"30/08/2020\";178\n\"31/08/2020\";132\n\"01/09/2020\";115\n\"02/09/2020\";107\n\"03/09/2020\";126\n\"04/09/2020\";106\n\"05/09/2020\";175\n\"06/09/2020\";177\n\"07/09/2020\";99\n\"08/09/2020\";111\n\"09/09/2020\";142\n\"10/09/2020\";143\n\"11/09/2020\";99\n\"12/09/2020\";168\n\"13/09/2020\";195\n\"14/09/2020\";122\n\"15/09/2020\";117\n\"16/09/2020\";133\n\"17/09/2020\";154\n\"18/09/2020\";119\n\"19/09/2020\";167\n\"20/09/2020\";182\n\"21/09/2020\";125\n\"22/09/2020\";122\n\"23/09/2020\";81\n\"24/09/2020\";116\n\"25/09/2020\";87\n\"26/09/2020\";123\n\"27/09/2020\";137\n\"28/09/2020\";114\n\"29/09/2020\";104\n\"30/09/2020\";86\n\"01/10/2020\";129\n\"02/10/2020\";60\n\"03/10/2020\";60\n\"04/10/2020\";70\n\"05/10/2020\";95\n\"06/10/2020\";84\n\"07/10/2020\";127\n\"08/10/2020\";109\n\"09/10/2020\";95\n\"10/10/2020\";126\n\"11/10/2020\";166\n\"12/10/2020\";79\n\"13/10/2020\";117\n\"14/10/2020\";142\n\"15/10/2020\";115\n\"16/10/2020\";102\n\"17/10/2020\";138\n\"18/10/2020\";154\n\"19/10/2020\";92\n\"20/10/2020\";76\n\"21/10/2020\";62\n\"22/10/2020\";106\n\"23/10/2020\";74\n\"24/10/2020\";83\n\"25/10/2020\";126\n\"26/10/2020\";74\n\"27/10/2020\";50\n\"28/10/2020\";81\n\"29/10/2020\";69\n\"30/10/2020\";75\n\"31/10/2020\";79\n\"01/11/2020\";83\n\"02/11/2020\";70\n\"03/11/2020\";70\n\"04/11/2020\";110\n\"05/11/2020\";106\n\"06/11/2020\";95\n\"07/11/2020\";172\n\"08/11/2020\";118\n\"09/11/2020\";76\n\"10/11/2020\";78\n\"11/11/2020\";95\n\"12/11/2020\";111\n\"13/11/2020\";89\n\"14/11/2020\";72\n\"15/11/2020\";91\n\"16/11/2020\";82\n\"17/11/2020\";80\n\"18/11/2020\";77\n\"19/11/2020\";99\n\"20/11/2020\";67\n\"21/11/2020\";130\n\"22/11/2020\";174\n\"23/11/2020\";78\n\"24/11/2020\";73\n\"25/11/2020\";80\n\"26/11/2020\";107\n\"27/11/2020\";76\n\"28/11/2020\";112\n\"29/11/2020\";134\n\"30/11/2020\";66\n\"01/12/2020\";77\n\"02/12/2020\";94\n\"03/12/2020\";63\n\"04/12/2020\";73\n\"05/12/2020\";108\n\"06/12/2020\";83\n\"07/12/2020\";72\n\"08/12/2020\";68\n\"09/12/2020\";86\n\"10/12/2020\";87\n\"11/12/2020\";77\n\"12/12/2020\";112\n\"13/12/2020\";51\n\"14/12/2020\";77\n\"15/12/2020\";77\n\"16/12/2020\";76\n\"17/12/2020\";104\n\"18/12/2020\";59\n\"19/12/2020\";97\n\"20/12/2020\";121\n\"21/12/2020\";50\n\"22/12/2020\";65\n\"23/12/2020\";50\n\"24/12/2020\";83\n\"25/12/2020\";27\n\"26/12/2020\";72\n\"27/12/2020\";93\n\"28/12/2020\";55\n\"29/12/2020\";50\n\"30/12/2020\";68\n\"31/12/2020\";53\n\"01/01/2021\";38\n\"02/01/2021\";85\n\"03/01/2021\";86\n\"04/01/2021\";64\n\"05/01/2021\";54\n\"06/01/2021\";69\n\"07/01/2021\";59\n\"08/01/2021\";47\n\"09/01/2021\";87\n\"10/01/2021\";95\n\"11/01/2021\";70\n\"12/01/2021\";60\n\"13/01/2021\";63\n\"14/01/2021\";41\n\"15/01/2021\";58\n\"16/01/2021\";66\n\"17/01/2021\";152\n\"18/01/2021\";82\n\"19/01/2021\";51\n\"20/01/2021\";50\n\"21/01/2021\";82\n\"22/01/2021\";87\n\"23/01/2021\";117\n\"24/01/2021\";43\n\"25/01/2021\";44\n\"26/01/2021\";40\n\"27/01/2021\";84\n\"28/01/2021\";85\n\"29/01/2021\";74\n\"30/01/2021\";72\n\"31/01/2021\";104\n\"01/02/2021\";63\n\"02/02/2021\";46\n\"03/02/2021\";84\n\"04/02/2021\";90\n\"05/02/2021\";87\n\"06/02/2021\";121\n\"07/02/2021\";60\n\"08/02/2021\";42\n\"09/02/2021\";37\n\"10/02/2021\";54\n\"11/02/2021\";47\n\"12/02/2021\";41\n\"13/02/2021\";60\n\"14/02/2021\";61\n\"15/02/2021\";90\n\"16/02/2021\";59\n\"17/02/2021\";78\n\"18/02/2021\";91\n\"19/02/2021\";66\n\"20/02/2021\";132\n\"21/02/2021\";165\n\"22/02/2021\";75\n\"23/02/2021\";71\n\"24/02/2021\";87\n\"25/02/2021\";113\n\"26/02/2021\";117\n\"27/02/2021\";204\n\"28/02/2021\";198\n\"01/03/2021\";81\n\"02/03/2021\";76\n\"03/03/2021\";80\n\"04/03/2021\";90\n\"05/03/2021\";87\n\"06/03/2021\";152\n\"07/03/2021\";168\n\"08/03/2021\";87\n\"09/03/2021\";107\n\"10/03/2021\";68\n\"11/03/2021\";79\n\"12/03/2021\";84\n\"13/03/2021\";98\n\"14/03/2021\";117\n\"15/03/2021\";89\n\"16/03/2021\";76\n\"17/03/2021\";112\n\"18/03/2021\";103\n\"19/03/2021\";88\n\"20/03/2021\";163\n\"21/03/2021\";180\n\"22/03/2021\";99\n\"23/03/2021\";82\n\"24/03/2021\";100\n\"25/03/2021\";111\n\"26/03/2021\";62\n\"27/03/2021\";169\n\"28/03/2021\";95\n\"29/03/2021\";100\n\"30/03/2021\";121\n\"31/03/2021\";129\n\"01/04/2021\";104\n\"02/04/2021\";100\n\"03/04/2021\";137\n\"04/04/2021\";153\n\"05/04/2021\";60\n\"06/04/2021\";58\n\"07/04/2021\";76\n\"08/04/2021\";96\n\"09/04/2021\";77\n\"10/04/2021\";113\n\"11/04/2021\";142\n\"12/04/2021\";80\n\"13/04/2021\";88\n\"14/04/2021\";108\n\"15/04/2021\";101\n\"16/04/2021\";88\n\"17/04/2021\";152\n\"18/04/2021\";155\n\"19/04/2021\";94\n\"20/04/2021\";95\n\"21/04/2021\";105\n\"22/04/2021\";124\n\"23/04/2021\";101\n\"24/04/2021\";162\n\"25/04/2021\";143\n\"26/04/2021\";86\n\"27/04/2021\";82\n\"28/04/2021\";83\n\"29/04/2021\";115\n\"30/04/2021\";89\n\"01/05/2021\";132\n\"02/05/2021\";140\n\"03/05/2021\";49\n\"04/05/2021\";64\n\"05/05/2021\";104\n\"06/05/2021\";114\n\"07/05/2021\";106\n\"08/05/2021\";62\n\"09/05/2021\";146\n\"10/05/2021\";78\n\"11/05/2021\";83\n\"12/05/2021\";112\n\"13/05/2021\";92\n\"14/05/2021\";101\n\"15/05/2021\";94\n\"16/05/2021\";107\n\"17/05/2021\";80\n\"18/05/2021\";79\n\"19/05/2021\";96\n\"20/05/2021\";87\n\"21/05/2021\";60\n\"22/05/2021\";114\n\"23/05/2021\";96\n\"24/05/2021\";67\n\"25/05/2021\";71\n\"26/05/2021\";104\n\"27/05/2021\";128\n\"28/05/2021\";83\n\"29/05/2021\";133\n\"30/05/2021\";132\n\"31/05/2021\";110\n\"01/06/2021\";87\n\"02/06/2021\";106\n\"03/06/2021\";106\n\"04/06/2021\";79\n\"05/06/2021\";147\n\"06/06/2021\";137\n\"07/06/2021\";95\n\"08/06/2021\";101\n\"09/06/2021\";121\n\"10/06/2021\";125\n\"11/06/2021\";89\n\"12/06/2021\";154\n\"13/06/2021\";153\n\"14/06/2021\";90\n\"15/06/2021\";101\n\"16/06/2021\";126\n\"17/06/2021\";101\n\"18/06/2021\";62\n\"19/06/2021\";159\n\"20/06/2021\";98\n\"21/06/2021\";68\n\"22/06/2021\";89\n\"23/06/2021\";123\n\"24/06/2021\";113\n\"25/06/2021\";83\n\"26/06/2021\";146\n\"27/06/2021\";110\n\"28/06/2021\";73\n\"29/06/2021\";83\n\"30/06/2021\";107\n\"01/07/2021\";131\n\"02/07/2021\";97\n\"03/07/2021\";104\n\"04/07/2021\";117\n\"05/07/2021\";88\n\"06/07/2021\";70\n\"07/07/2021\";96\n\"08/07/2021\";117\n\"09/07/2021\";90\n\"10/07/2021\";116\n\"11/07/2021\";141\n\"12/07/2021\";65\n\"13/07/2021\";89\n\"14/07/2021\";116\n\"15/07/2021\";120\n\"16/07/2021\";101\n\"17/07/2021\";154\n\"18/07/2021\";145\n\"19/07/2021\";95\n\"20/07/2021\";89\n\"21/07/2021\";111\n\"22/07/2021\";118\n\"23/07/2021\";95\n\"24/07/2021\";111\n\"25/07/2021\";106\n\"26/07/2021\";96\n\"27/07/2021\";71\n\"28/07/2021\";78\n\"29/07/2021\";108\n\"30/07/2021\";56\n\"31/07/2021\";119\n\"01/08/2021\";114\n\"02/08/2021\";88\n\"03/08/2021\";85\n\"04/08/2021\";116\n\"05/08/2021\";83\n\"06/08/2021\";59\n\"07/08/2021\";87\n\"08/08/2021\";75\n\"09/08/2021\";67\n\"10/08/2021\";94\n\"11/08/2021\";100\n\"12/08/2021\";106\n\"13/08/2021\";80\n\"14/08/2021\";131\n\"15/08/2021\";128\n\"16/08/2021\";79\n\"17/08/2021\";70\n\"18/08/2021\";92\n\"19/08/2021\";100\n\"20/08/2021\";87\n\"21/08/2021\";81\n\"22/08/2021\";168\n\"23/08/2021\";89\n\"24/08/2021\";88\n\"25/08/2021\";112\n\"26/08/2021\";111\n\"27/08/2021\";87\n\"28/08/2021\";132\n\"29/08/2021\";123\n\"30/08/2021\";77\n\"31/08/2021\";74\n\"01/09/2021\";95\n\"02/09/2021\";103\n\"03/09/2021\";90\n\"04/09/2021\";137\n\"05/09/2021\";160\n\"06/09/2021\";98\n\"07/09/2021\";100\n\"08/09/2021\";117\n\"09/09/2021\";96\n\"10/09/2021\";82\n\"11/09/2021\";137\n\"12/09/2021\";153\n\"13/09/2021\";93\n\"14/09/2021\";57\n\"15/09/2021\";111\n\"16/09/2021\";120\n\"17/09/2021\";92","seriesMapping":[{"x":0,"y":1}]}};
  var optionsStub;
  
  var templateDataSettings = {};

  var pluginCode = {};;

  function isScriptAlreadyIncluded(src){
    var scripts = document.getElementsByTagName("script");
    for (var i = 0; i < scripts.length; i++) {
      if (scripts[i].hasAttribute('src')) {
        const scriptTag = scripts[i].getAttribute('src') || '';
        if ((scriptTag.indexOf(src) >= 0) || 
            (scriptTag.indexOf('highcharts.src.js') > -1 && src === 'highcharts.js') ||
            ((scriptTag.indexOf('stock/highstock.js') > -1) && src === 'modules/highstock.js')) {
          return true;
        }
      }
    }
    return false;
  }

  function loadCSS() {
    var cssLength = externalCSS.length;
    for(var i=0; i < cssLength; i++) {
      var css = document.createElement('link');
      css.rel  = 'stylesheet';
      css.type = "text/css";
      css.href = externalCSS[i];
      document.body.appendChild(css);
    }
  }

  function allScriptsIncluded(){
    var allScripts = scripts.concat(extraScripts);
    var haveAllScriptsBeenIncluded = true;
    var scriptsToUse = document.getElementsByTagName("script");
    for(var n=0;n<allScripts.length;n++) {
      if (!isScriptAlreadyIncluded(allScripts[n], scriptsToUse)) {
        haveAllScriptsBeenIncluded = false;
        break;
      }
    }
    return haveAllScriptsBeenIncluded;
  }

  function modifyOptions(){
    if (options.data) {
      options.data.complete = function(options) {
        const keys = Object.keys(templateDataSettings || {});
        keys.forEach(function(key) {
          const serie = options.series[key];
          (serie.data || []).forEach(function(d, i) {
            if (templateDataSettings[key].data && templateDataSettings[key].data[i]) {
              window["everviz"].merge(d, templateDataSettings[key].data[i]);
            }
          })
        })  
        return options;
      }
    }
    
    optionsStub = window["everviz"].createStub(options);
    window["everviz"].merge(options, pluginCode);
    if ('Chart' === 'Map') window["everviz"].modifyMapType(options);
  }

  function createChart() {
    if(chartCreated) return;

    var hasProj4 = extraScripts.indexOf('https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.6/proj4.js') > -1;

    if (!allScriptsIncluded() || 
      (hasProj4 && !window.proj4) || 
      !window["everviz"].merge ||
      !window["everviz"].createStub) {
      setTimeout(createChart, 200);
      return;
    }  

    modifyOptions();

    if (hasProj4) delayGen = 100;

    if (typeof window['Highcharts'] !== 'undefined') {
      
    if (window['everviz'] && window['everviz'].tooltipFormatter && 
        options.everviz && options.everviz.tooltip){
      if (!options.tooltip) options.tooltip = {};
      options.tooltip.formatter = window['everviz'].tooltipFormatter;
    }


    if (options.yAxis && options.yAxis.length === 1) options.yAxis = options.yAxis[0];
    if (options.xAxis && options.xAxis.length === 1) options.xAxis = options.xAxis[0];
    if (options.zAxis && options.zAxis.length === 1) options.zAxis = options.zAxis[0];

    /*
// Sample of extending options:
Highcharts.merge(true, options, {
    chart: {
        backgroundColor: "#bada55"
    },
    plotOptions: {
        series: {
            cursor: "pointer",
            events: {
                click: function(event) {
                    alert(this.name + " clicked\n" +
                          "Alt: " + event.altKey + "\n" +
                          "Control: " + event.ctrlKey + "\n" +
                          "Shift: " + event.shiftKey + "\n");
                }
            }
        }
    }
});
*/


      if (options && (options.lang || options.global)) {
        Highcharts.setOptions({
          global: options.global || {},
          lang: options.lang || {}
        });
      }

      if (Highcharts.Annotation) {
        Highcharts.Annotation.ControlPoint.prototype.redraw = function (animation) {
          this.graphic[animation ? 'animate' : 'attr'](
              this.options.positioner ? this.options.positioner.call(this, this.target) : null
          );
        };
      }

      chartCreated = true;
      window.HighchartsCloud.hasLoaded = true; 
      setTimeout(function(){
          if (window["everviz"] && window["everviz"].pendingAnim) {
            //TODO: change to using classes instead.
            //Bit of work to do there due to backward compatibility
            const elements = document.querySelectorAll(
              '#' + elementClassName + 
              ', #' + legacyElementClassName
            );
            const elementsArray = Array.prototype.slice.call(elements);
            elementsArray.forEach(function(element, elementIndex) {

              window["everviz"].updateRenderTo(optionsStub, element);
              chart = new Highcharts.Chart(optionsStub);

              window["everviz"].pendingAnim({
                id: element.id + '-' + elementIndex, 
                loaded: false,
                options: options,
                appear:function(){
                  chart.destroy();

                  window["everviz"].updateRenderTo(options, element);
                  chart = new Highcharts.Chart(options); 

                },
                element: element
              });
            });

          } else {
            const element = document.querySelector('#' + legacyElementClassName);
            if (element) new Highcharts.Chart(legacyElementClassName, options);  
            else new Highcharts.Chart(elementClassName, options);  
            
          }
      }, delayGen);
    }
  }

  function check(scripts, cb) {
    if (loaded === scripts.length) {
      if (cb) {
        cb();
      } else {


        //Create first project
        if (!window.HighchartsCloud.versions ||
           (window.HighchartsCloud.versions && window.HighchartsCloud.versions.length !== window.HighchartsCloud.ondone.length)) {
             
          for (var i = 0; i < window.HighchartsCloud.ondone.length; i++) {
            try {
              window.HighchartsCloud.ondone[i]();
            } catch(e) {
              console.error(e);
            }
          }
        } else {
          if (window.HighchartsCloud.stack.length) {
            window.HighchartsCloud.stack[0]();
            window.HighchartsCloud.stack.shift();
            const shouldRenderNextChart = window.HighchartsCloud.stack.length > 0;
            if (shouldRenderNextChart) {
              window.HighchartsCloud.stack[0](true);
            }
          }
        }
        
      }
    }
  }

  function loadScript(s, scripts, cb) {
    if (!s) next();
    
    function next() {
      ++loaded;
      if (loaded < scripts.length) {
        loadScript(scripts[loaded], scripts, cb);
      }
      check(scripts, cb);
    }

    if (isScriptAlreadyIncluded(s)) {
      return next();
    }

    var n = document.createElement('script');

    n.onload = function () {
      next();
    };

    if (s.indexOf('https') >= 0) {
      n.src = s;
    } else {
      n.src = cdn + s;
    }
    document.body.appendChild(n);
  }

  function loadExtraScripts(){
    if (extraScripts.length > 0) {
      loaded = 0;
      loadScript(extraScripts[0], extraScripts);
    } else {
      check(scripts);
    }
  }

  function loadExtraScriptsAndMakeChart(isUsingStack){
    loaded = 0;
    loadCSS();
    if (extraScripts.length > 0) {
      if (isUsingStack) {
        window.HighchartsCloud.stack[0] = createChart;
        loadScript(extraScripts[0], extraScripts);
      }
      else loadScript(extraScripts[0], extraScripts, createChart);
    } else {
      check(extraScripts);
    }
  }

  function getAllScripts(){
    var evervizScripts = [];
    var allScripts = scripts.map(function(script) {
      return 'highcharts/'+ script.replace('highcharts/highcharts.js', 'highcharts.js').replace('.js', '');
    }).concat(
      extraScripts.map(function(script) {
        if (script.indexOf('https://code.highcharts.com/') > -1) {
          return 'highcharts/'+ script.replace('https://code.highcharts.com/', '').replace('.js', '');
        } else if (script.indexOf('https://app.everviz.com/') > -1) {
          evervizScripts.push(script);
          return null;
        } else return script;
      }).filter(function(s) {
        return s !== null;
      })
    );

    allScripts.forEach(function(script) {
      if (window.HighchartsCloud.allScripts)
        window.HighchartsCloud.allScripts[script] = 1
    });

    return {
      allHighchartsScripts: allScripts,
      evervizScripts: evervizScripts
    }
  }

  function loadRequireJSScript(){
    require.config({
      packages: [{
        name: 'highcharts',
        main: 'highcharts'
      }],
      paths: {
        'highcharts': 'https://code.highcharts.com'
      }
    });

    const allScripts = getAllScripts();

    require(
      allScripts.allHighchartsScripts,
      function (Highcharts) {
        //Attach highcharts to the window for use in the everviz scripts
        window.Highcharts = Highcharts;
        if (allScripts && allScripts.evervizScripts.length) {
          require(allScripts.evervizScripts, function(){
            createChart();
            loadCSS();
          })
        } else {
          createChart();
          loadCSS();
        }
      }
    );
  }

  function loadInitialScript(){
    if (window['require'] && typeof require === "function" && typeof require.specified === "function") {
      loadRequireJSScript();
    } else {
      getAllScripts()
      loadScript(scripts[0], scripts, loadExtraScripts);
      loadCSS();
    }
  }

  if (typeof window['HighchartsCloud'] === 'undefined') {
    window.HighchartsCloud = {
      ondone: [createChart],
      stack: [createChart],
      hasWrapped: false,
      hasLoaded: false,
      externalCSS: externalCSS,
      versions: [injectVersion],
      types: ['chart'],
      allScripts: {},
      projectUUIDs: {'-rvMbxX7X': 1},
    };

    loadInitialScript();

  } else {
    if (window.HighchartsCloud.externalCSS) window.HighchartsCloud.externalCSS.push(externalCSS);
    if (!window.HighchartsCloud.hasLoaded) {
      if (!window.HighchartsCloud.projectUUIDs) window.HighchartsCloud.projectUUIDs = {};

      if (!window.HighchartsCloud.projectUUIDs['-rvMbxX7X']) {

        window.HighchartsCloud.projectUUIDs['-rvMbxX7X'] = 1;
        window.HighchartsCloud.ondone.push(loadExtraScriptsAndMakeChart);
        if (window.HighchartsCloud.stack) {
          window.HighchartsCloud.stack.push(loadExtraScriptsAndMakeChart);
          window.HighchartsCloud.versions.push(injectVersion);
          window.HighchartsCloud.types.push('chart');
        }

      }
      if (window['require'] && typeof require === "function" && typeof require.specified === "function") {
        getAllScripts()
        loadRequireJSScript();
      }
    }
    else {
      if (window['require'] && typeof require === "function" && typeof require.specified === "function") {
        loadRequireJSScript();
      } else {
        getAllScripts()
        loadExtraScriptsAndMakeChart();
      }
    }
  }

}());
