(function () {
  //Inject code v3.0.4

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

  var cdn = 'https://code.highcharts.com/';
  var loaded = 0;  
  var encodedUrl = encodeURI('https://https://app.everviz.com//show/cHjQI9c8C');
  var chartCreated = 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 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/resources/css/highcharts-small-screen-annotations.css",
    "https://app.everviz.com/static/fonts/gordita/style.css",
    "https://app.everviz.com/resources/css/highcharts-data-table.css"
  ];

  var extraScripts = [
  "https://code.highcharts.com/modules/annotations.js",
  "https://code.highcharts.com/modules/annotations-advanced.js",
  "https://app.everviz.com/resources/js/highcharts-small-screen-annotations.js",
  "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":"Tesla's rocketing share price","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":"It hit an all-time high on the day of its stock split on August 31"},"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"}},"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"},"linecap":"round"}},"exporting":{"enabled":false},"credits":{"href":"https://everviz.com","position":{"x":-7,"y":-3},"style":{"cursor":"pointer","color":"#999999","fontSize":"10px","fontFamily":"Telesans Agate-Regular"},"text":"Yahoo Finance"},"colors":["#0021af","#3266ca","#64aae4","#96efff","#fff7b3","#ff77b7","#ba5594","#743372","#2f114f","#17e698","#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,"_colorIndex":0,"_symbolIndex":0,"type":"line"}],"tooltip":{"pointFormat":" <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":"Share price ($) "},"lineColor":"#ccd6eb","tickColor":"#ccd6eb"},"xAxis":{"lineColor":"black","tickColor":"black"},"annotations":[],"data":{"csv":"Date;Tesla share price\n18/11/2019;69.998001\n19/11/2019;71.903999\n20/11/2019;70.444\n21/11/2019;70.966003\n22/11/2019;66.608002\n25/11/2019;67.267998\n26/11/2019;65.783997\n27/11/2019;66.258003\n29/11/2019;65.987999\n02/12/2019;66.973999\n03/12/2019;67.239998\n04/12/2019;66.606003\n05/12/2019;66.073997\n06/12/2019;67.178001\n09/12/2019;67.905998\n10/12/2019;69.767998\n11/12/2019;70.540001\n12/12/2019;71.935997\n13/12/2019;71.678001\n16/12/2019;76.300003\n17/12/2019;75.797997\n18/12/2019;78.629997\n19/12/2019;80.807999\n20/12/2019;81.117996\n23/12/2019;83.844002\n24/12/2019;85.050003\n26/12/2019;86.188004\n27/12/2019;86.075996\n30/12/2019;82.940002\n31/12/2019;83.666\n02/01/2020;86.052002\n03/01/2020;88.601997\n06/01/2020;90.307999\n07/01/2020;93.811996\n08/01/2020;98.428001\n09/01/2020;96.267998\n10/01/2020;95.629997\n13/01/2020;104.972\n14/01/2020;107.584\n15/01/2020;103.699997\n16/01/2020;102.697998\n17/01/2020;102.099998\n21/01/2020;109.440002\n22/01/2020;113.912003\n23/01/2020;114.440002\n24/01/2020;112.963997\n27/01/2020;111.603996\n28/01/2020;113.379997\n29/01/2020;116.197998\n30/01/2020;128.162003\n31/01/2020;130.113998\n03/02/2020;156\n04/02/2020;177.412003\n05/02/2020;146.940002\n06/02/2020;149.792007\n07/02/2020;149.613998\n10/02/2020;154.255997\n11/02/2020;154.876007\n12/02/2020;153.457993\n13/02/2020;160.800003\n14/02/2020;160.005997\n18/02/2020;171.679993\n19/02/2020;183.483994\n20/02/2020;179.882004\n21/02/2020;180.199997\n24/02/2020;166.757996\n25/02/2020;159.981995\n26/02/2020;155.759995\n27/02/2020;135.800003\n28/02/2020;133.598007\n02/03/2020;148.723999\n03/03/2020;149.102005\n04/03/2020;149.899994\n05/03/2020;144.908005\n06/03/2020;140.695999\n09/03/2020;121.599998\n10/03/2020;129.065994\n11/03/2020;126.846001\n12/03/2020;112.110001\n13/03/2020;109.323997\n16/03/2020;89.014\n17/03/2020;86.040001\n18/03/2020;72.244003\n19/03/2020;85.528\n20/03/2020;85.505997\n23/03/2020;86.858002\n24/03/2020;101\n25/03/2020;107.849998\n26/03/2020;105.632004\n27/03/2020;102.872002\n30/03/2020;100.426003\n31/03/2020;104.800003\n01/04/2020;96.311996\n02/04/2020;90.893997\n03/04/2020;96.001999\n06/04/2020;103.248001\n07/04/2020;109.089996\n08/04/2020;109.767998\n09/04/2020;114.599998\n13/04/2020;130.190002\n14/04/2020;141.977997\n15/04/2020;145.966003\n16/04/2020;149.042007\n17/04/2020;150.778\n20/04/2020;149.272003\n21/04/2020;137.343994\n22/04/2020;146.421997\n23/04/2020;141.126007\n24/04/2020;145.029999\n27/04/2020;159.75\n28/04/2020;153.824005\n29/04/2020;160.102005\n30/04/2020;156.376007\n01/05/2020;140.264008\n04/05/2020;152.238007\n05/05/2020;153.641998\n06/05/2020;156.516006\n07/05/2020;156.007996\n08/05/2020;163.884003\n11/05/2020;162.257996\n12/05/2020;161.882004\n13/05/2020;158.192001\n14/05/2020;160.666\n15/05/2020;159.834\n18/05/2020;162.725998\n19/05/2020;161.602005\n20/05/2020;163.112\n21/05/2020;165.520004\n22/05/2020;163.376007\n26/05/2020;163.774002\n27/05/2020;164.046005\n28/05/2020;161.162003\n29/05/2020;167\n01/06/2020;179.619995\n02/06/2020;176.311996\n03/06/2020;176.591995\n04/06/2020;172.876007\n05/06/2020;177.132004\n08/06/2020;189.983994\n09/06/2020;188.134003\n10/06/2020;205.009995\n11/06/2020;194.567993\n12/06/2020;187.056\n15/06/2020;198.179993\n16/06/2020;196.425995\n17/06/2020;198.358002\n18/06/2020;200.792007\n19/06/2020;200.179993\n22/06/2020;198.863998\n23/06/2020;200.356003\n24/06/2020;192.169998\n25/06/2020;197.195999\n26/06/2020;191.947998\n29/06/2020;201.869995\n30/06/2020;215.962006\n01/07/2020;223.925995\n02/07/2020;241.731995\n06/07/2020;274.31601\n07/07/2020;277.971985\n08/07/2020;273.175995\n09/07/2020;278.855988\n10/07/2020;308.929993\n13/07/2020;299.411987\n14/07/2020;303.359985\n15/07/2020;309.201996\n16/07/2020;300.127991\n17/07/2020;300.167999\n20/07/2020;328.600006\n21/07/2020;313.671997\n22/07/2020;318.466003\n23/07/2020;302.614014\n24/07/2020;283.399994\n27/07/2020;307.920013\n28/07/2020;295.298004\n29/07/2020;299.821991\n30/07/2020;297.497986\n31/07/2020;286.152008\n03/08/2020;297\n04/08/2020;297.399994\n05/08/2020;297.003998\n06/08/2020;297.915985\n07/08/2020;290.541992\n10/08/2020;283.713989\n11/08/2020;274.877991\n12/08/2020;310.951996\n13/08/2020;324.200012\n14/08/2020;330.141998\n17/08/2020;367.127991\n18/08/2020;377.417999\n19/08/2020;375.705994\n20/08/2020;400.365997\n21/08/2020;409.996002\n24/08/2020;402.839996\n25/08/2020;404.667999\n26/08/2020;430.634003\n27/08/2020;447.75\n28/08/2020;442.679993\n31/08/2020;498.320007\n01/09/2020;475.049988\n02/09/2020;447.369995\n03/09/2020;407\n04/09/2020;418.320007\n08/09/2020;330.209991\n09/09/2020;366.279999\n10/09/2020;371.339996\n11/09/2020;372.720001\n14/09/2020;419.619995\n15/09/2020;449.76001\n16/09/2020;441.76001\n17/09/2020;423.429993\n18/09/2020;442.149994\n21/09/2020;449.390015\n22/09/2020;424.230011\n23/09/2020;380.359985\n24/09/2020;387.790009\n25/09/2020;407.339996\n28/09/2020;421.200012\n29/09/2020;419.070007\n30/09/2020;429.01001\n01/10/2020;448.160004\n02/10/2020;415.089996\n05/10/2020;425.679993\n06/10/2020;413.980011\n07/10/2020;425.299988\n08/10/2020;425.920013\n09/10/2020;434\n12/10/2020;442.299988\n13/10/2020;446.649994\n14/10/2020;461.299988\n15/10/2020;448.880005\n16/10/2020;439.670013\n19/10/2020;430.829987\n20/10/2020;421.940002\n21/10/2020;422.640015\n22/10/2020;425.790009\n23/10/2020;420.630005\n26/10/2020;420.279999\n27/10/2020;424.679993\n28/10/2020;406.019989\n29/10/2020;410.829987\n30/10/2020;388.040009\n02/11/2020;400.51001\n03/11/2020;423.899994\n04/11/2020;420.980011\n05/11/2020;438.089996\n06/11/2020;429.950012\n09/11/2020;421.26001\n10/11/2020;410.359985\n11/11/2020;417.130005\n12/11/2020;411.76001\n13/11/2020;408.5","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 (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) {

          var chart = new Highcharts.Chart('highcharts-cHjQI9c8C', optionsStub); 
          window["everviz"].pendingAnim({
            id: 'highcharts-cHjQI9c8C', 
            loaded: false,
            options: options,
            appear:function(){
              chart.destroy();
              chart = new Highcharts.Chart('highcharts-cHjQI9c8C', options); 
            },
            element: document.querySelector('#highcharts-cHjQI9c8C')
          });
        } else {
          new Highcharts.Chart('highcharts-cHjQI9c8C', options);   
        }
      }, delayGen);
    }
  }

  function check(scripts, cb) {
    if (loaded === scripts.length) {
      if (cb) {
        cb();
      } else {
        for (var i = 0; i < window.HighchartsCloud.ondone.length; i++) {
          try {
            window.HighchartsCloud.ondone[i]();
          } catch(e) {
            console.error(e);
          }
        }
      }
    }
  }

  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(){
    loaded = 0;
    loadCSS();
    if (extraScripts.length > 0) {
      loadScript(extraScripts[0], extraScripts, createChart);
    } else {
      check(extraScripts);
    }
  }

  if (typeof window['HighchartsCloud'] === 'undefined') {
    window.HighchartsCloud = {
      ondone: [createChart],
      hasWrapped: false,
      hasLoaded: false,
      externalCSS: externalCSS
    };

    loadScript(scripts[0], scripts, loadExtraScripts);
    loadCSS();

  } else {
    if (window.HighchartsCloud.externalCSS) window.HighchartsCloud.externalCSS.push(externalCSS);
    if (!window.HighchartsCloud.hasLoaded) window.HighchartsCloud.ondone.push(loadExtraScriptsAndMakeChart);
    else loadExtraScriptsAndMakeChart();
  }

}());
