var H5P = H5P || {};
/**
 * Transition contains helper function relevant for transitioning
 */
H5P.Transition = (function ($) {

  /**
   * @class
   * @namespace H5P
   */
  Transition = {};

  /**
   * @private
   */
  Transition.transitionEndEventNames = {
    'WebkitTransition': 'webkitTransitionEnd',
    'transition':       'transitionend',
    'MozTransition':    'transitionend',
    'OTransition':      'oTransitionEnd',
    'msTransition':     'MSTransitionEnd'
  };

  /**
   * @private
   */
  Transition.cache = [];

  /**
   * Get the vendor property name for an event
   *
   * @function H5P.Transition.getVendorPropertyName
   * @static
   * @private
   * @param  {string} prop Generic property name
   * @return {string}      Vendor specific property name
   */
  Transition.getVendorPropertyName = function (prop) {

    if (Transition.cache[prop] !== undefined) {
      return Transition.cache[prop];
    }

    var div = document.createElement('div');

    // Handle unprefixed versions (FF16+, for example)
    if (prop in div.style) {
      Transition.cache[prop] = prop;
    }
    else {
      var prefixes = ['Moz', 'Webkit', 'O', 'ms'];
      var prop_ = prop.charAt(0).toUpperCase() + prop.substr(1);

      if (prop in div.style) {
        Transition.cache[prop] = prop;
      }
      else {
        for (var i = 0; i < prefixes.length; ++i) {
          var vendorProp = prefixes[i] + prop_;
          if (vendorProp in div.style) {
            Transition.cache[prop] = vendorProp;
            break;
          }
        }
      }
    }

    return Transition.cache[prop];
  };

  /**
   * Get the name of the transition end event
   *
   * @static
   * @private
   * @return {string}  description
   */
  Transition.getTransitionEndEventName = function () {
    return Transition.transitionEndEventNames[Transition.getVendorPropertyName('transition')] || undefined;
  };

  /**
   * Helper function for listening on transition end events
   *
   * @function H5P.Transition.onTransitionEnd
   * @static
   * @param  {domElement} $element The element which is transitioned
   * @param  {function} callback The callback to be invoked when transition is finished
   * @param  {number} timeout  Timeout in milliseconds. Fallback if transition event is never fired
   */
  Transition.onTransitionEnd = function ($element, callback, timeout) {
    // Fallback on 1 second if transition event is not supported/triggered
    timeout = timeout || 1000;
    Transition.transitionEndEventName = Transition.transitionEndEventName || Transition.getTransitionEndEventName();
    var callbackCalled = false;

    var doCallback = function () {
      if (callbackCalled) {
        return;
      }
      $element.off(Transition.transitionEndEventName, callback);
      callbackCalled = true;
      clearTimeout(timer);
      callback();
    };

    var timer = setTimeout(function () {
      doCallback();
    }, timeout);

    $element.on(Transition.transitionEndEventName, function () {
      doCallback();
    });
  };

  /**
   * Wait for a transition - when finished, invokes next in line
   *
   * @private
   *
   * @param {Object[]}    transitions             Array of transitions
   * @param {H5P.jQuery}  transitions[].$element  Dom element transition is performed on
   * @param {number=}     transitions[].timeout   Timeout fallback if transition end never is triggered
   * @param {bool=}       transitions[].break     If true, sequence breaks after this transition
   * @param {number}      index                   The index for current transition
   */
  var runSequence = function (transitions, index) {
    if (index >= transitions.length) {
      return;
    }

    var transition = transitions[index];
    H5P.Transition.onTransitionEnd(transition.$element, function () {
      if (transition.end) {
        transition.end();
      }
      if (transition.break !== true) {
        runSequence(transitions, index+1);
      }
    }, transition.timeout || undefined);
  };

  /**
   * Run a sequence of transitions
   *
   * @function H5P.Transition.sequence
   * @static
   * @param {Object[]}    transitions             Array of transitions
   * @param {H5P.jQuery}  transitions[].$element  Dom element transition is performed on
   * @param {number=}     transitions[].timeout   Timeout fallback if transition end never is triggered
   * @param {bool=}       transitions[].break     If true, sequence breaks after this transition
   */
  Transition.sequence = function (transitions) {
    runSequence(transitions, 0);
  };

  return Transition;
})(H5P.jQuery);
;var H5P = H5P || {};

/**
 * H5P-Text Utilities
 *
 * Some functions that can be useful when dealing with texts in H5P.
 *
 * @param {H5P.jQuery} $
 */
H5P.TextUtilities = function () {
  'use strict';
  /**
   * Create Text Utilities.
   *
   * Might be needed later.
   *
   * @constructor
   */
  function TextUtilities () {
  }

  // Inheritance
  TextUtilities.prototype = Object.create(H5P.EventDispatcher.prototype);
  TextUtilities.prototype.constructor = TextUtilities;

  /** @constant {object} */
  TextUtilities.WORD_DELIMITER = /[\s.?!,\';\"]/g;

  /**
   * Check if a candidate string is considered isolated (in a larger string) by
   * checking the symbol before and after the candidate.
   *
   * @param {string} candidate - String to be looked for.
   * @param {string} text - (Larger) string that should contain candidate.
   * @param {object} params - Parameters.
   * @param {object} params.delimiter - Regular expression containing symbols used to isolate the candidate.
   * @return {boolean} True if string is isolated.
   */
  TextUtilities.isIsolated = function (candidate, text, params) {
    // Sanitization
    if (!candidate || !text) {
      return;
    }
    var delimiter = (!!params && !!params.delimiter) ? params.delimiter : TextUtilities.WORD_DELIMITER;

    var pos = (!!params && !!params.index && typeof params.index === 'number') ? params.index : text.indexOf(candidate);
    if (pos < 0 || pos > text.length-1) {
      return false;
    }

    var pred = (pos === 0 ? '' : text[pos - 1].replace(delimiter, ''));
    var succ = (pos + candidate.length === text.length ? '' : text[pos + candidate.length].replace(delimiter, ''));

    if (pred !== '' || succ !== '') {
      return false;
    }
    return true;
  };

  /**
   * Check whether two strings are considered to be similar.
   * The similarity is temporarily computed by word length and number of number of operations
   * required to change one word into the other (Damerau-Levenshtein). It's subject to
   * change, cmp. https://github.com/otacke/udacity-machine-learning-engineer/blob/master/submissions/capstone_proposals/h5p_fuzzy_blanks.md
   *
   * @param {String} string1 - String #1.
   * @param {String} string2 - String #2.
   * @param {object} params - Parameters.
   * @return {boolean} True, if strings are considered to be similar.
   */
  TextUtilities.areSimilar = function (string1, string2) {
    // Sanitization
    if (!string1 || typeof string1 !== 'string') {
      return;
    }
    if (!string2 || typeof string2 !== 'string') {
      return;
    }

    // Just temporariliy this unflexible. Will be configurable via params.
    var length = Math.min(string1.length, string2.length);
    var levenshtein = H5P.TextUtilities.computeLevenshteinDistance(string1, string2, true);
    if (levenshtein === 0) {
      return true;
    }
    if ((length > 9) && (levenshtein <= 2)) {
      return true;
    }
    if ((length > 3) && (levenshtein <= 1)) {
      return true;
    }
    return false;
  };

  /**
   * Compute the (Damerau-)Levenshtein distance for two strings.
   *
   * The (Damerau-)Levenshtein distance that is returned is equivalent to the
   * number of operations that are necessary to transform one string into the
   * other. Consequently, lower numbers indicate higher similarity between the
   * two strings.
   *
   * While the Levenshtein distance counts deletions, insertions and mismatches,
   * the Damerau-Levenshtein distance also counts swapping two characters as
   * only one operation (instead of two mismatches), because this seems to
   * happen quite often.
   *
   * See http://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance for details
   *
   * @public
   * @param {string} str1 - String no. 1.
   * @param {string} str2 - String no. 2.
   * @param {boolean} [countSwapping=false] - If true, swapping chars will count as operation.
   * @returns {number} Distance.
   */
  TextUtilities.computeLevenshteinDistance = function(str1, str2, countSwapping) {
    // sanity checks
    if (typeof str1 !== 'string' || typeof str2 !== 'string') {
      return undefined;
    }
    if (countSwapping && typeof countSwapping !== 'boolean') {
      countSwapping = false;
    }

    // degenerate cases
    if (str1 === str2) {
      return 0;
    }
    if (str1.length === 0) {
      return str2.length;
    }
    if (str2.length === 0) {
      return str1.length;
    }

    // counter variables
    var i, j;

    // indicates characters that don't match
    var cost;

    // matrix for storing distances
    var distance = [];

    // initialization
    for (i = 0; i <= str1.length; i++) {
      distance[i] = [i];
    }
    for (j = 0; j <= str2.length; j++) {
      distance[0][j] = j;
    }

    // computation
    for (i = 1; i <= str1.length; i++) {
      for (j = 1; j <= str2.length; j++) {
        cost = (str1[i-1] === str2[j-1]) ? 0 : 1;
        distance[i][j] = Math.min(
          distance[i-1][j] + 1,     // deletion
          distance[i][j-1] + 1,     // insertion
          distance[i-1][j-1] + cost // mismatch
        );
        // in Damerau-Levenshtein distance, transpositions are operations
        if (countSwapping) {
          if (i > 1 && j > 1 && str1[i-1] === str2[j-2] && str1[i-2] === str2[j-1]) {
            distance[i][j] = Math.min(distance[i][j], distance[i-2][j-2] + cost);
          }
        }
      }
    }
    return distance[str1.length][str2.length];
  };

  /**
   * Compute the Jaro(-Winkler) distance for two strings.
   *
   * The Jaro(-Winkler) distance will return a value between 0 and 1 indicating
   * the similarity of two strings. The higher the value, the more similar the
   * strings are.
   *
   * See https://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance for details
   *
   * It seems that a more generalized implementation of Winkler's modification
   * can improve the results. This might be implemented later.
   * http://disi.unitn.it/~p2p/RelatedWork/Matching/Hermans_bnaic-2012.pdf
   *
   * @public
   * @param {string} str1 - String no. 1.
   * @param {string} str2 - String no. 2.
   * @param {boolean} [favorSameStart=false] - If true, strings with same start get higher distance value.
   * @param {boolean} [longTolerance=false] - If true, Winkler's tolerance for long words will be used.
   * @returns {number} Distance.
   */
  TextUtilities.computeJaroDistance = function(str1, str2, favorSameStart, longTolerance) {
    // sanity checks
    if (typeof str1 !== 'string' || typeof str2 !== 'string') {
      return undefined;
    }
    if (favorSameStart && typeof favorSameStart !== 'boolean') {
      favorSameStart = false;
    }
    if (longTolerance && typeof longTolerance !== 'boolean') {
      longTolerance = false;
    }

    // degenerate cases
    if (str1.length === 0 || str2.length === 0) {
      return 0;
    }
    if (str1 === str2) {
      return 1;
    }

    // counter variables
    var i, j, k;

    // number of matches between both strings
    var matches = 0;

    // number of transpositions between both strings
    var transpositions = 0;

    // The Jaro-Winkler distance
    var distance = 0;

    // length of common prefix up to 4 chars
    var l = 0;

    // scaling factor, should not exceed 0.25 (Winkler default = 0.1)
    var p = 0.1;

    // will be used often
    var str1Len = str1.length;
    var str2Len = str2.length;

    // determines the distance that still counts as a match
    var matchWindow = Math.floor(Math.max(str1Len, str2Len) / 2)- 1;

    // will store matches
    var str1Flags = new Array(str1Len);
    var str2Flags = new Array(str2Len);

    // count matches
    for (i = 0; i < str1Len; i++) {
      var start  = (i >= matchWindow) ? i - matchWindow : 0;
      var end = (i + matchWindow <= (str2Len - 1)) ? (i + matchWindow) : (str2Len - 1);

      for (j = start; j <= end; j++) {
        if (str1Flags[i] !== true && str2Flags[j] !== true && str1[i] === str2[j]) {
          str1Flags[i] = str2Flags[j] = true;
          matches += 1;
          break;
        }
      }
    }
    if (matches === 0) {
      return 0;
    }

    // count transpositions
    k = 0;
    for (i = 0; i < str1Len; i++) {
      if (!str1Flags[i]) {
        continue;
      }
      while (!str2Flags[k]) {
        k += 1;
      }
      if (str1[i] !== str2[k]) {
        transpositions += 1;
      }
      k += 1;
    }
    transpositions = transpositions / 2;

    // compute Jaro distance
    distance = (matches/str1Len + matches/str2Len + (matches - transpositions) / matches) / 3;

    // modification used by Winkler
    if (favorSameStart) {
      if (distance > 0.7 && str1Len > 3 && str2Len > 3) {
        while (str1[l] === str2[l] && l < 4) {
          l += 1;
        }
        distance = distance + l * p * (1 - distance);

        // modification for long words
        if (longTolerance) {
          if (Math.max(str1Len, str2Len) > 4 && matches > l + 1 && 2 * matches >= Math.max(str1Len, str2Len) + l) {
            distance += ((1.0 - distance) * ((matches - l - 1) / (str1Len + str2Len - 2 * l + 2)));
          }
        }
      }
    }

    return distance;
  };


  /**
   * Check whether a text contains a string, but fuzzy.
   *
   * This function is naive. It moves a window of needle's length (+2)
   * over the haystack's text and each move compares for similarity using
   * a given string metric. This will be slow for long texts!!!
   *
   * TODO: You might want to look into the bitap algorithm or experiment
   *       with regexps
   *
   * @param {String} needle - String to look for.
   * @param {String} haystack - Text to look in.
   */
  TextUtilities.fuzzyContains = function (needle, haystack) {
    return this.fuzzyFind(needle, haystack).contains;
  };

  /**
   * Find the first position of a fuzzy string within a text
   * @param {String} needle - String to look for.
   * @param {String} haystack - Text to look in.
   */
  TextUtilities.fuzzyIndexOf = function (needle, haystack) {
    return this.fuzzyFind(needle, haystack).indexOf;
  };

  /**
   * Find the first fuzzy match of a string within a text
   * @param {String} needle - String to look for.
   * @param {String} haystack - Text to look in.
   */
  TextUtilities.fuzzyMatch = function (needle, haystack) {
    return this.fuzzyFind(needle, haystack).match;
  };

  /**
   * Find a fuzzy string with in a text.
   * TODO: This could be cleaned ...
   * @param {String} needle - String to look for.
   * @param {String} haystack - Text to look in.
   * @param {object} params - Parameters.
   */
  TextUtilities.fuzzyFind = function (needle, haystack, params) {
    // Sanitization
    if (!needle || typeof needle !== 'string') {
      return false;
    }
    if (!haystack || typeof haystack !== 'string') {
      return false;
    }
    if (params === undefined || params.windowSize === undefined || typeof params.windowSize !== 'number') {
      params = {'windowSize': 3};
    }

    var match;

    var found = haystack.split(' ').some(function(hay) {
      match = hay;
      return H5P.TextUtilities.areSimilar(needle, hay);
    });
    if (found) {
      return {'contains' : found, 'match': match, 'index': haystack.indexOf(match)};
    }

    // This is not used for single words but for phrases
    for (var i = 0; i < haystack.length - needle.length + 1; i++) {
      var hay = [];
      for (var j = 0; j < params.windowSize; j++) {
        hay[j] = haystack.substr(i, needle.length + j);
      }

      // Checking isIsolated will e.g. prevent finding beginnings of words
      for (var j = 0; j < hay.length; j++) {
        if (TextUtilities.isIsolated(hay[j], haystack) && TextUtilities.areSimilar(hay[j], needle)) {
          match = hay[j];
          found = true;
          break;
        }
      }
      if (found) {
        break;
      }
    }
    if (!found) {
      match = undefined;
    }
    return {'contains' : found, 'match': match, 'index': haystack.indexOf(match)};
  };

  return TextUtilities;
}();
;H5P.AdvancedText = (function ($, EventDispatcher) {

  /**
   * A simple library for displaying text with advanced styling.
   *
   * @class H5P.AdvancedText
   * @param {Object} parameters
   * @param {Object} [parameters.text='New text']
   * @param {number} id
   */
  function AdvancedText(parameters, id) {
    var self = this;
    EventDispatcher.call(this);

    var html = (parameters.text === undefined ? '<em>New text</em>' : parameters.text);

    /**
     * Wipe container and add text html.
     *
     * @alias H5P.AdvancedText#attach
     * @param {H5P.jQuery} $container
     */
    self.attach = function ($container) {
      $container.addClass('h5p-advanced-text').html(html);
    };
  }

  AdvancedText.prototype = Object.create(EventDispatcher.prototype);
  AdvancedText.prototype.constructor = AdvancedText;

  return AdvancedText;

})(H5P.jQuery, H5P.EventDispatcher);
;var H5P = H5P || {};

/**
 * H5P audio module
 *
 * @external {jQuery} $ H5P.jQuery
 */
H5P.Audio = (function ($) {
  /**
  * @param {Object} params Options for this library.
  * @param {Number} id Content identifier.
  * @param {Object} extras Extras.
  * @returns {undefined}
  */
  function C(params, id, extras) {
    H5P.EventDispatcher.call(this);

    this.contentId = id;
    this.params = params;
    this.extras = extras;
    this.toggleButtonEnabled = true;

    // Retrieve previous state
    if (extras && extras.previousState !== undefined) {
      this.oldTime = extras.previousState.currentTime;
    }

    this.params = $.extend({}, {
      playerMode: 'minimalistic',
      fitToWrapper: false,
      controls: true,
      autoplay: false,
      audioNotSupported: "Your browser does not support this audio",
      playAudio: "Play audio",
      pauseAudio: "Pause audio",
      propagateButtonClickEvents: true
    }, params);

    // Required if e.g. used in CoursePresentation as area to click on
    if (this.params.playerMode === 'transparent') {
      this.params.fitToWrapper = true;
    }

    this.on('resize', this.resize, this);
  }

  C.prototype = Object.create(H5P.EventDispatcher.prototype);
  C.prototype.constructor = C;

  /**
   * Adds a minimalistic audio player with only "play" and "pause" functionality.
   *
   * @param {jQuery} $container Container for the player.
   * @param {boolean} transparentMode true: the player is only visible when hovering over it; false: player's UI always visible
   */
  C.prototype.addMinimalAudioPlayer = function ($container, transparentMode) {
    var INNER_CONTAINER = 'h5p-audio-inner';
    var AUDIO_BUTTON = 'h5p-audio-minimal-button';
    var PLAY_BUTTON = 'h5p-audio-minimal-play';
    var PLAY_BUTTON_PAUSED = 'h5p-audio-minimal-play-paused';
    var PAUSE_BUTTON = 'h5p-audio-minimal-pause';

    var self = this;
    this.$container = $container;

    self.$inner = $('<div/>', {
      'class': INNER_CONTAINER + (transparentMode ? ' h5p-audio-transparent' : '')
    }).appendTo($container);

    var audioButton = $('<button/>', {
      'class': AUDIO_BUTTON + " " + PLAY_BUTTON,
      'aria-label': this.params.playAudio
    }).appendTo(self.$inner)
      .click( function (event) {
        if (!self.params.propagateButtonClickEvents){
          event.stopPropagation();
        }

        if (!self.isEnabledToggleButton()) {
          return;
        }

        // Prevent ARIA from playing over audio on click
        this.setAttribute('aria-hidden', 'true');

        if (self.audio.paused) {
          self.play();
        }
        else {
          self.pause();
        }
      })
      .on('focusout', function () {
        // Restore ARIA, required when playing longer audio and tabbing out and back in
        this.setAttribute('aria-hidden', 'false');
      });

    // Fit to wrapper
    if (this.params.fitToWrapper) {
      audioButton.css({
        'width': '100%',
        'height': '100%'
      });
    }

    //Event listeners that change the look of the player depending on events.
    self.audio.addEventListener('ended', function () {
      audioButton
        .attr('aria-hidden', false)
        .attr('aria-label', self.params.playAudio)
        .removeClass(PAUSE_BUTTON)
        .removeClass(PLAY_BUTTON_PAUSED)
        .addClass(PLAY_BUTTON);
    });

    self.audio.addEventListener('play', function () {
      audioButton
        .attr('aria-label', self.params.pauseAudio)
        .removeClass(PLAY_BUTTON)
        .removeClass(PLAY_BUTTON_PAUSED)
        .addClass(PAUSE_BUTTON);
    });

    self.audio.addEventListener('pause', function () {
      // Don't override if initial look is set
      if (!audioButton.hasClass(PLAY_BUTTON)) {
        audioButton
          .attr('aria-hidden', false)
          .attr('aria-label', self.params.playAudio)
          .removeClass(PAUSE_BUTTON)
          .addClass(PLAY_BUTTON_PAUSED);
      }
    });

    H5P.Audio.MINIMAL_BUTTON = AUDIO_BUTTON + " " + PLAY_BUTTON;
    H5P.Audio.MINIMAL_BUTTON_PAUSED = AUDIO_BUTTON + " " + PLAY_BUTTON_PAUSED;

    this.$audioButton = audioButton;
    // Scale icon to container
    self.resize();
  };

  /**
   * Resizes the audio player icon when the wrapper is resized.
   */
  C.prototype.resize = function () {
    // Find the smallest value of height and width, and use it to choose the font size.
    if (this.params.fitToWrapper && this.$container && this.$container.width()) {
      var w = this.$container.width();
      var h = this.$container.height();
      if (w < h) {
        this.$audioButton.css({'font-size': w / 2 + 'px'});
      }
      else {
        this.$audioButton.css({'font-size': h / 2 + 'px'});
      }
    }
  };

  return C;
})(H5P.jQuery);

/**
 * Wipe out the content of the wrapper and put our HTML in it.
 *
 * @param {jQuery} $wrapper Our poor container.
 */
H5P.Audio.prototype.attach = function ($wrapper) {
  const self = this;
  $wrapper.addClass('h5p-audio-wrapper');

  // Check if browser supports audio.
  var audio = document.createElement('audio');
  if (audio.canPlayType === undefined) {
    this.attachNotSupportedMessage($wrapper);
    return;
  }

  // Add supported source files.
  if (this.params.files !== undefined && this.params.files instanceof Object) {
    for (var i = 0; i < this.params.files.length; i++) {
      var file = this.params.files[i];

      if (audio.canPlayType(file.mime)) {
        var source = document.createElement('source');
        source.src = H5P.getPath(file.path, this.contentId);
        source.type = file.mime;
        audio.appendChild(source);
      }
    }
  }

  if (!audio.children.length) {
    this.attachNotSupportedMessage($wrapper);
    return;
  }

  if (this.endedCallback !== undefined) {
    audio.addEventListener('ended', this.endedCallback, false);
  }

  audio.className = 'h5p-audio';
  audio.controls = this.params.controls === undefined ? true : this.params.controls;

  // Menu removed, because it's cut off if audio is used as H5P.Question intro
  const controlsList = 'nodownload noplaybackrate';
  audio.setAttribute('controlsList', controlsList);

  audio.preload = 'auto';
  audio.style.display = 'block';

  if (this.params.fitToWrapper === undefined || this.params.fitToWrapper) {
    audio.style.width = '100%';
    if (!this.isRoot()) {
      // Only set height if this isn't a root
      audio.style.height = '100%';
    }
  }

  this.audio = audio;

  if (this.params.playerMode === 'minimalistic') {
    audio.controls = false;
    this.addMinimalAudioPlayer($wrapper, false);
  }
  else if (this.params.playerMode === 'transparent') {
    audio.controls = false;
    this.addMinimalAudioPlayer($wrapper, true);
  }
  else {
    $wrapper.html(audio);
  }

  if (audio.controls) {
    $wrapper.addClass('h5p-audio-controls');
  }

  // Set time to saved time from previous run
  if (this.oldTime) {
    if (this.$audioButton) {
      this.$audioButton.attr('class', H5P.Audio.MINIMAL_BUTTON_PAUSED);
    }
    this.seekTo(this.oldTime);
  }

  // Avoid autoplaying in authoring tool
  if (window.H5PEditor === undefined) {
    // Keep record of autopauses.
    // I.e: we don't wanna autoplay if the user has excplicitly paused.
    self.autoPaused = true;

    // Set up intersection observer
    new IntersectionObserver(function (entries) {
      const entry = entries[0];

      if (entry.intersectionRatio == 0) {
        if (!self.audio.paused) {
          // Audio element is hidden, pause it
          self.autoPaused = true;
          self.audio.pause();
        }
      }
      else if (self.params.autoplay && self.autoPaused) {
        // Audio element is visible. Autoplay if autoplay is enabled and it was
        // not explicitly paused by a user
        self.autoPaused = false;
        self.play();
      }
    }, {
      root: document.documentElement,
      threshold: [0, 1] // Get events when it is shown and hidden
    }).observe($wrapper.get(0));
  }
};

/**
 * Attaches not supported message.
 *
 * @param {jQuery} $wrapper Our dear container.
 */
H5P.Audio.prototype.attachNotSupportedMessage = function ($wrapper) {
  $wrapper.addClass('h5p-audio-not-supported');
  $wrapper.html(
    '<div class="h5p-audio-inner">' +
      '<div class="h5p-audio-not-supported-icon"><span/></div>' +
      '<span>' + this.params.audioNotSupported + '</span>' +
    '</div>'
  );

  if (this.endedCallback !== undefined) {
    this.endedCallback();
  }
}

/**
 * Stop & reset playback.
 *
 * @returns {undefined}
 */
H5P.Audio.prototype.resetTask = function () {
  this.stop();
  this.seekTo(0);
  if (this.$audioButton) {
    this.$audioButton.attr('class', H5P.Audio.MINIMAL_BUTTON);
  }
};

/**
 * Stop the audio. TODO: Rename to pause?
 *
 * @returns {undefined}
 */
H5P.Audio.prototype.stop = function () {
  if (this.audio !== undefined) {
    this.audio.pause();
  }
};

/**
 * Play
 */
H5P.Audio.prototype.play = function () {
  if (this.audio !== undefined) {
    // play() returns a Promise that can fail, e.g. while autoplaying
    this.audio.play().catch((error) => {
      console.warn(error);
    });
  }
};

/**
 * @public
 * Pauses the audio.
 */
H5P.Audio.prototype.pause = function () {
  if (this.audio !== undefined) {
    this.audio.pause();
  }
};

/**
 * @public
 * Seek to audio position.
 *
 * @param {number} seekTo Time to seek to in seconds.
 */
H5P.Audio.prototype.seekTo = function (seekTo) {
  if (this.audio !== undefined) {
    this.audio.currentTime = seekTo;
  }
};

/**
 * @public
 * Get current state for resetting it later.
 *
 * @returns {object} Current state.
 */
H5P.Audio.prototype.getCurrentState = function () {
  if (this.audio !== undefined && this.audio.currentTime > 0) {
    const currentTime = this.audio.ended ? 0 : this.audio.currentTime;
    return {
      currentTime: currentTime
    };
  }
};

/**
 * @public
 * Disable button.
 * Not using disabled attribute to block button activation, because it will
 * implicitly set tabindex = -1 and confuse ChromeVox navigation. Clicks handled
 * using "pointer-events: none" in CSS.
 */
H5P.Audio.prototype.disableToggleButton = function () {
  this.toggleButtonEnabled = false;
  if (this.$audioButton) {
    this.$audioButton.addClass(H5P.Audio.BUTTON_DISABLED);
  }
};

/**
 * @public
 * Enable button.
 */
H5P.Audio.prototype.enableToggleButton = function () {
  this.toggleButtonEnabled = true;
  if (this.$audioButton) {
    this.$audioButton.removeClass(H5P.Audio.BUTTON_DISABLED);
  }
};

/**
 * @public
 * Check if button is enabled.
 * @return {boolean} True, if button is enabled. Else false.
 */
H5P.Audio.prototype.isEnabledToggleButton = function () {
  return this.toggleButtonEnabled;
};

/** @constant {string} */
H5P.Audio.BUTTON_DISABLED = 'h5p-audio-disabled';
;/*!
* @license SoundJS
* Visit http://createjs.com/ for documentation, updates and examples.
*
* Copyright (c) 2011-2015 gskinner.com, inc.
*
* Distributed under the terms of the MIT license.
* http://www.opensource.org/licenses/mit-license.html
*
* This notice shall be included in all copies or substantial portions of the Software.
*/

/**!
 * SoundJS FlashAudioPlugin also includes swfobject (http://code.google.com/p/swfobject/)
 */

var old = this.createjs;

this.createjs=this.createjs||{},function(){var a=createjs.SoundJS=createjs.SoundJS||{};a.version="0.6.2",a.buildDate="Thu, 26 Nov 2015 20:44:31 GMT"}(),this.createjs=this.createjs||{},createjs.extend=function(a,b){"use strict";function c(){this.constructor=a}return c.prototype=b.prototype,a.prototype=new c},this.createjs=this.createjs||{},createjs.promote=function(a,b){"use strict";var c=a.prototype,d=Object.getPrototypeOf&&Object.getPrototypeOf(c)||c.__proto__;if(d){c[(b+="_")+"constructor"]=d.constructor;for(var e in d)c.hasOwnProperty(e)&&"function"==typeof d[e]&&(c[b+e]=d[e])}return a},this.createjs=this.createjs||{},createjs.indexOf=function(a,b){"use strict";for(var c=0,d=a.length;d>c;c++)if(b===a[c])return c;return-1},this.createjs=this.createjs||{},function(){"use strict";createjs.proxy=function(a,b){var c=Array.prototype.slice.call(arguments,2);return function(){return a.apply(b,Array.prototype.slice.call(arguments,0).concat(c))}}}(),this.createjs=this.createjs||{},function(){"use strict";function BrowserDetect(){throw"BrowserDetect cannot be instantiated"}var a=BrowserDetect.agent=window.navigator.userAgent;BrowserDetect.isWindowPhone=a.indexOf("IEMobile")>-1||a.indexOf("Windows Phone")>-1,BrowserDetect.isFirefox=a.indexOf("Firefox")>-1,BrowserDetect.isOpera=null!=window.opera,BrowserDetect.isChrome=a.indexOf("Chrome")>-1,BrowserDetect.isIOS=(a.indexOf("iPod")>-1||a.indexOf("iPhone")>-1||a.indexOf("iPad")>-1)&&!BrowserDetect.isWindowPhone,BrowserDetect.isAndroid=a.indexOf("Android")>-1&&!BrowserDetect.isWindowPhone,BrowserDetect.isBlackberry=a.indexOf("Blackberry")>-1,createjs.BrowserDetect=BrowserDetect}(),this.createjs=this.createjs||{},function(){"use strict";function EventDispatcher(){this._listeners=null,this._captureListeners=null}var a=EventDispatcher.prototype;EventDispatcher.initialize=function(b){b.addEventListener=a.addEventListener,b.on=a.on,b.removeEventListener=b.off=a.removeEventListener,b.removeAllEventListeners=a.removeAllEventListeners,b.hasEventListener=a.hasEventListener,b.dispatchEvent=a.dispatchEvent,b._dispatchEvent=a._dispatchEvent,b.willTrigger=a.willTrigger},a.addEventListener=function(a,b,c){var d;d=c?this._captureListeners=this._captureListeners||{}:this._listeners=this._listeners||{};var e=d[a];return e&&this.removeEventListener(a,b,c),e=d[a],e?e.push(b):d[a]=[b],b},a.on=function(a,b,c,d,e,f){return b.handleEvent&&(c=c||b,b=b.handleEvent),c=c||this,this.addEventListener(a,function(a){b.call(c,a,e),d&&a.remove()},f)},a.removeEventListener=function(a,b,c){var d=c?this._captureListeners:this._listeners;if(d){var e=d[a];if(e)for(var f=0,g=e.length;g>f;f++)if(e[f]==b){1==g?delete d[a]:e.splice(f,1);break}}},a.off=a.removeEventListener,a.removeAllEventListeners=function(a){a?(this._listeners&&delete this._listeners[a],this._captureListeners&&delete this._captureListeners[a]):this._listeners=this._captureListeners=null},a.dispatchEvent=function(a,b,c){if("string"==typeof a){var d=this._listeners;if(!(b||d&&d[a]))return!0;a=new createjs.Event(a,b,c)}else a.target&&a.clone&&(a=a.clone());try{a.target=this}catch(e){}if(a.bubbles&&this.parent){for(var f=this,g=[f];f.parent;)g.push(f=f.parent);var h,i=g.length;for(h=i-1;h>=0&&!a.propagationStopped;h--)g[h]._dispatchEvent(a,1+(0==h));for(h=1;i>h&&!a.propagationStopped;h++)g[h]._dispatchEvent(a,3)}else this._dispatchEvent(a,2);return!a.defaultPrevented},a.hasEventListener=function(a){var b=this._listeners,c=this._captureListeners;return!!(b&&b[a]||c&&c[a])},a.willTrigger=function(a){for(var b=this;b;){if(b.hasEventListener(a))return!0;b=b.parent}return!1},a.toString=function(){return"[EventDispatcher]"},a._dispatchEvent=function(a,b){var c,d=1==b?this._captureListeners:this._listeners;if(a&&d){var e=d[a.type];if(!e||!(c=e.length))return;try{a.currentTarget=this}catch(f){}try{a.eventPhase=b}catch(f){}a.removed=!1,e=e.slice();for(var g=0;c>g&&!a.immediatePropagationStopped;g++){var h=e[g];h.handleEvent?h.handleEvent(a):h(a),a.removed&&(this.off(a.type,h,1==b),a.removed=!1)}}},createjs.EventDispatcher=EventDispatcher}(),this.createjs=this.createjs||{},function(){"use strict";function Event(a,b,c){this.type=a,this.target=null,this.currentTarget=null,this.eventPhase=0,this.bubbles=!!b,this.cancelable=!!c,this.timeStamp=(new Date).getTime(),this.defaultPrevented=!1,this.propagationStopped=!1,this.immediatePropagationStopped=!1,this.removed=!1}var a=Event.prototype;a.preventDefault=function(){this.defaultPrevented=this.cancelable&&!0},a.stopPropagation=function(){this.propagationStopped=!0},a.stopImmediatePropagation=function(){this.immediatePropagationStopped=this.propagationStopped=!0},a.remove=function(){this.removed=!0},a.clone=function(){return new Event(this.type,this.bubbles,this.cancelable)},a.set=function(a){for(var b in a)this[b]=a[b];return this},a.toString=function(){return"[Event (type="+this.type+")]"},createjs.Event=Event}(),this.createjs=this.createjs||{},function(){"use strict";function ErrorEvent(a,b,c){this.Event_constructor("error"),this.title=a,this.message=b,this.data=c}var a=createjs.extend(ErrorEvent,createjs.Event);a.clone=function(){return new createjs.ErrorEvent(this.title,this.message,this.data)},createjs.ErrorEvent=createjs.promote(ErrorEvent,"Event")}(),this.createjs=this.createjs||{},function(){"use strict";function ProgressEvent(a,b){this.Event_constructor("progress"),this.loaded=a,this.total=null==b?1:b,this.progress=0==b?0:this.loaded/this.total}var a=createjs.extend(ProgressEvent,createjs.Event);a.clone=function(){return new createjs.ProgressEvent(this.loaded,this.total)},createjs.ProgressEvent=createjs.promote(ProgressEvent,"Event")}(window),this.createjs=this.createjs||{},function(){"use strict";function LoadItem(){this.src=null,this.type=null,this.id=null,this.maintainOrder=!1,this.callback=null,this.data=null,this.method=createjs.LoadItem.GET,this.values=null,this.headers=null,this.withCredentials=!1,this.mimeType=null,this.crossOrigin=null,this.loadTimeout=b.LOAD_TIMEOUT_DEFAULT}var a=LoadItem.prototype={},b=LoadItem;b.LOAD_TIMEOUT_DEFAULT=8e3,b.create=function(a){if("string"==typeof a){var c=new LoadItem;return c.src=a,c}if(a instanceof b)return a;if(a instanceof Object&&a.src)return null==a.loadTimeout&&(a.loadTimeout=b.LOAD_TIMEOUT_DEFAULT),a;throw new Error("Type not recognized.")},a.set=function(a){for(var b in a)this[b]=a[b];return this},createjs.LoadItem=b}(),function(){var a={};a.ABSOLUTE_PATT=/^(?:\w+:)?\/{2}/i,a.RELATIVE_PATT=/^[.\/]*?\//i,a.EXTENSION_PATT=/\/?[^\/]+\.(\w{1,5})$/i,a.parseURI=function(b){var c={absolute:!1,relative:!1};if(null==b)return c;var d=b.indexOf("?");d>-1&&(b=b.substr(0,d));var e;return a.ABSOLUTE_PATT.test(b)?c.absolute=!0:a.RELATIVE_PATT.test(b)&&(c.relative=!0),(e=b.match(a.EXTENSION_PATT))&&(c.extension=e[1].toLowerCase()),c},a.formatQueryString=function(a,b){if(null==a)throw new Error("You must specify data.");var c=[];for(var d in a)c.push(d+"="+escape(a[d]));return b&&(c=c.concat(b)),c.join("&")},a.buildPath=function(a,b){if(null==b)return a;var c=[],d=a.indexOf("?");if(-1!=d){var e=a.slice(d+1);c=c.concat(e.split("&"))}return-1!=d?a.slice(0,d)+"?"+this.formatQueryString(b,c):a+"?"+this.formatQueryString(b,c)},a.isCrossDomain=function(a){var b=document.createElement("a");b.href=a.src;var c=document.createElement("a");c.href=location.href;var d=""!=b.hostname&&(b.port!=c.port||b.protocol!=c.protocol||b.hostname!=c.hostname);return d},a.isLocal=function(a){var b=document.createElement("a");return b.href=a.src,""==b.hostname&&"file:"==b.protocol},a.isBinary=function(a){switch(a){case createjs.AbstractLoader.IMAGE:case createjs.AbstractLoader.BINARY:return!0;default:return!1}},a.isImageTag=function(a){return a instanceof HTMLImageElement},a.isAudioTag=function(a){return window.HTMLAudioElement?a instanceof HTMLAudioElement:!1},a.isVideoTag=function(a){return window.HTMLVideoElement?a instanceof HTMLVideoElement:!1},a.isText=function(a){switch(a){case createjs.AbstractLoader.TEXT:case createjs.AbstractLoader.JSON:case createjs.AbstractLoader.MANIFEST:case createjs.AbstractLoader.XML:case createjs.AbstractLoader.CSS:case createjs.AbstractLoader.SVG:case createjs.AbstractLoader.JAVASCRIPT:case createjs.AbstractLoader.SPRITESHEET:return!0;default:return!1}},a.getTypeByExtension=function(a){if(null==a)return createjs.AbstractLoader.TEXT;switch(a.toLowerCase()){case"jpeg":case"jpg":case"gif":case"png":case"webp":case"bmp":return createjs.AbstractLoader.IMAGE;case"ogg":case"mp3":case"webm":return createjs.AbstractLoader.SOUND;case"mp4":case"webm":case"ts":return createjs.AbstractLoader.VIDEO;case"json":return createjs.AbstractLoader.JSON;case"xml":return createjs.AbstractLoader.XML;case"css":return createjs.AbstractLoader.CSS;case"js":return createjs.AbstractLoader.JAVASCRIPT;case"svg":return createjs.AbstractLoader.SVG;default:return createjs.AbstractLoader.TEXT}},createjs.RequestUtils=a}(),this.createjs=this.createjs||{},function(){"use strict";function AbstractLoader(a,b,c){this.EventDispatcher_constructor(),this.loaded=!1,this.canceled=!1,this.progress=0,this.type=c,this.resultFormatter=null,this._item=a?createjs.LoadItem.create(a):null,this._preferXHR=b,this._result=null,this._rawResult=null,this._loadedItems=null,this._tagSrcAttribute=null,this._tag=null}var a=createjs.extend(AbstractLoader,createjs.EventDispatcher),b=AbstractLoader;b.POST="POST",b.GET="GET",b.BINARY="binary",b.CSS="css",b.IMAGE="image",b.JAVASCRIPT="javascript",b.JSON="json",b.JSONP="jsonp",b.MANIFEST="manifest",b.SOUND="sound",b.VIDEO="video",b.SPRITESHEET="spritesheet",b.SVG="svg",b.TEXT="text",b.XML="xml",a.getItem=function(){return this._item},a.getResult=function(a){return a?this._rawResult:this._result},a.getTag=function(){return this._tag},a.setTag=function(a){this._tag=a},a.load=function(){this._createRequest(),this._request.on("complete",this,this),this._request.on("progress",this,this),this._request.on("loadStart",this,this),this._request.on("abort",this,this),this._request.on("timeout",this,this),this._request.on("error",this,this);var a=new createjs.Event("initialize");a.loader=this._request,this.dispatchEvent(a),this._request.load()},a.cancel=function(){this.canceled=!0,this.destroy()},a.destroy=function(){this._request&&(this._request.removeAllEventListeners(),this._request.destroy()),this._request=null,this._item=null,this._rawResult=null,this._result=null,this._loadItems=null,this.removeAllEventListeners()},a.getLoadedItems=function(){return this._loadedItems},a._createRequest=function(){this._request=this._preferXHR?new createjs.XHRRequest(this._item):new createjs.TagRequest(this._item,this._tag||this._createTag(),this._tagSrcAttribute)},a._createTag=function(){return null},a._sendLoadStart=function(){this._isCanceled()||this.dispatchEvent("loadstart")},a._sendProgress=function(a){if(!this._isCanceled()){var b=null;"number"==typeof a?(this.progress=a,b=new createjs.ProgressEvent(this.progress)):(b=a,this.progress=a.loaded/a.total,b.progress=this.progress,(isNaN(this.progress)||1/0==this.progress)&&(this.progress=0)),this.hasEventListener("progress")&&this.dispatchEvent(b)}},a._sendComplete=function(){if(!this._isCanceled()){this.loaded=!0;var a=new createjs.Event("complete");a.rawResult=this._rawResult,null!=this._result&&(a.result=this._result),this.dispatchEvent(a)}},a._sendError=function(a){!this._isCanceled()&&this.hasEventListener("error")&&(null==a&&(a=new createjs.ErrorEvent("PRELOAD_ERROR_EMPTY")),this.dispatchEvent(a))},a._isCanceled=function(){return null==window.createjs||this.canceled?!0:!1},a.resultFormatter=null,a.handleEvent=function(a){switch(a.type){case"complete":this._rawResult=a.target._response;var b=this.resultFormatter&&this.resultFormatter(this);b instanceof Function?b.call(this,createjs.proxy(this._resultFormatSuccess,this),createjs.proxy(this._resultFormatFailed,this)):(this._result=b||this._rawResult,this._sendComplete());break;case"progress":this._sendProgress(a);break;case"error":this._sendError(a);break;case"loadstart":this._sendLoadStart();break;case"abort":case"timeout":this._isCanceled()||this.dispatchEvent(new createjs.ErrorEvent("PRELOAD_"+a.type.toUpperCase()+"_ERROR"))}},a._resultFormatSuccess=function(a){this._result=a,this._sendComplete()},a._resultFormatFailed=function(a){this._sendError(a)},a.buildPath=function(a,b){return createjs.RequestUtils.buildPath(a,b)},a.toString=function(){return"[PreloadJS AbstractLoader]"},createjs.AbstractLoader=createjs.promote(AbstractLoader,"EventDispatcher")}(),this.createjs=this.createjs||{},function(){"use strict";function AbstractMediaLoader(a,b,c){this.AbstractLoader_constructor(a,b,c),this.resultFormatter=this._formatResult,this._tagSrcAttribute="src",this.on("initialize",this._updateXHR,this)}var a=createjs.extend(AbstractMediaLoader,createjs.AbstractLoader);a.load=function(){this._tag||(this._tag=this._createTag(this._item.src)),this._tag.preload="auto",this._tag.load(),this.AbstractLoader_load()},a._createTag=function(){},a._createRequest=function(){this._request=this._preferXHR?new createjs.XHRRequest(this._item):new createjs.MediaTagRequest(this._item,this._tag||this._createTag(),this._tagSrcAttribute)},a._updateXHR=function(a){a.loader.setResponseType&&a.loader.setResponseType("blob")},a._formatResult=function(a){if(this._tag.removeEventListener&&this._tag.removeEventListener("canplaythrough",this._loadedHandler),this._tag.onstalled=null,this._preferXHR){var b=window.URL||window.webkitURL,c=a.getResult(!0);a.getTag().src=b.createObjectURL(c)}return a.getTag()},createjs.AbstractMediaLoader=createjs.promote(AbstractMediaLoader,"AbstractLoader")}(),this.createjs=this.createjs||{},function(){"use strict";var AbstractRequest=function(a){this._item=a},a=createjs.extend(AbstractRequest,createjs.EventDispatcher);a.load=function(){},a.destroy=function(){},a.cancel=function(){},createjs.AbstractRequest=createjs.promote(AbstractRequest,"EventDispatcher")}(),this.createjs=this.createjs||{},function(){"use strict";function TagRequest(a,b,c){this.AbstractRequest_constructor(a),this._tag=b,this._tagSrcAttribute=c,this._loadedHandler=createjs.proxy(this._handleTagComplete,this),this._addedToDOM=!1,this._startTagVisibility=null}var a=createjs.extend(TagRequest,createjs.AbstractRequest);a.load=function(){this._tag.onload=createjs.proxy(this._handleTagComplete,this),this._tag.onreadystatechange=createjs.proxy(this._handleReadyStateChange,this),this._tag.onerror=createjs.proxy(this._handleError,this);var a=new createjs.Event("initialize");a.loader=this._tag,this.dispatchEvent(a),this._hideTag(),this._loadTimeout=setTimeout(createjs.proxy(this._handleTimeout,this),this._item.loadTimeout),this._tag[this._tagSrcAttribute]=this._item.src,null==this._tag.parentNode&&(window.document.body.appendChild(this._tag),this._addedToDOM=!0)},a.destroy=function(){this._clean(),this._tag=null,this.AbstractRequest_destroy()},a._handleReadyStateChange=function(){clearTimeout(this._loadTimeout);var a=this._tag;("loaded"==a.readyState||"complete"==a.readyState)&&this._handleTagComplete()},a._handleError=function(){this._clean(),this.dispatchEvent("error")},a._handleTagComplete=function(){this._rawResult=this._tag,this._result=this.resultFormatter&&this.resultFormatter(this)||this._rawResult,this._clean(),this._showTag(),this.dispatchEvent("complete")},a._handleTimeout=function(){this._clean(),this.dispatchEvent(new createjs.Event("timeout"))},a._clean=function(){this._tag.onload=null,this._tag.onreadystatechange=null,this._tag.onerror=null,this._addedToDOM&&null!=this._tag.parentNode&&this._tag.parentNode.removeChild(this._tag),clearTimeout(this._loadTimeout)},a._hideTag=function(){this._startTagVisibility=this._tag.style.visibility,this._tag.style.visibility="hidden"},a._showTag=function(){this._tag.style.visibility=this._startTagVisibility},a._handleStalled=function(){},createjs.TagRequest=createjs.promote(TagRequest,"AbstractRequest")}(),this.createjs=this.createjs||{},function(){"use strict";function MediaTagRequest(a,b,c){this.AbstractRequest_constructor(a),this._tag=b,this._tagSrcAttribute=c,this._loadedHandler=createjs.proxy(this._handleTagComplete,this)}var a=createjs.extend(MediaTagRequest,createjs.TagRequest);a.load=function(){var a=createjs.proxy(this._handleStalled,this);this._stalledCallback=a;var b=createjs.proxy(this._handleProgress,this);this._handleProgress=b,this._tag.addEventListener("stalled",a),this._tag.addEventListener("progress",b),this._tag.addEventListener&&this._tag.addEventListener("canplaythrough",this._loadedHandler,!1),this.TagRequest_load()},a._handleReadyStateChange=function(){clearTimeout(this._loadTimeout);var a=this._tag;("loaded"==a.readyState||"complete"==a.readyState)&&this._handleTagComplete()},a._handleStalled=function(){},a._handleProgress=function(a){if(a&&!(a.loaded>0&&0==a.total)){var b=new createjs.ProgressEvent(a.loaded,a.total);this.dispatchEvent(b)}},a._clean=function(){this._tag.removeEventListener&&this._tag.removeEventListener("canplaythrough",this._loadedHandler),this._tag.removeEventListener("stalled",this._stalledCallback),this._tag.removeEventListener("progress",this._progressCallback),this.TagRequest__clean()},createjs.MediaTagRequest=createjs.promote(MediaTagRequest,"TagRequest")}(),this.createjs=this.createjs||{},function(){"use strict";function XHRRequest(a){this.AbstractRequest_constructor(a),this._request=null,this._loadTimeout=null,this._xhrLevel=1,this._response=null,this._rawResponse=null,this._canceled=!1,this._handleLoadStartProxy=createjs.proxy(this._handleLoadStart,this),this._handleProgressProxy=createjs.proxy(this._handleProgress,this),this._handleAbortProxy=createjs.proxy(this._handleAbort,this),this._handleErrorProxy=createjs.proxy(this._handleError,this),this._handleTimeoutProxy=createjs.proxy(this._handleTimeout,this),this._handleLoadProxy=createjs.proxy(this._handleLoad,this),this._handleReadyStateChangeProxy=createjs.proxy(this._handleReadyStateChange,this),!this._createXHR(a)}var a=createjs.extend(XHRRequest,createjs.AbstractRequest);XHRRequest.ACTIVEX_VERSIONS=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],a.getResult=function(a){return a&&this._rawResponse?this._rawResponse:this._response},a.cancel=function(){this.canceled=!0,this._clean(),this._request.abort()},a.load=function(){if(null==this._request)return void this._handleError();null!=this._request.addEventListener?(this._request.addEventListener("loadstart",this._handleLoadStartProxy,!1),this._request.addEventListener("progress",this._handleProgressProxy,!1),this._request.addEventListener("abort",this._handleAbortProxy,!1),this._request.addEventListener("error",this._handleErrorProxy,!1),this._request.addEventListener("timeout",this._handleTimeoutProxy,!1),this._request.addEventListener("load",this._handleLoadProxy,!1),this._request.addEventListener("readystatechange",this._handleReadyStateChangeProxy,!1)):(this._request.onloadstart=this._handleLoadStartProxy,this._request.onprogress=this._handleProgressProxy,this._request.onabort=this._handleAbortProxy,this._request.onerror=this._handleErrorProxy,this._request.ontimeout=this._handleTimeoutProxy,this._request.onload=this._handleLoadProxy,this._request.onreadystatechange=this._handleReadyStateChangeProxy),1==this._xhrLevel&&(this._loadTimeout=setTimeout(createjs.proxy(this._handleTimeout,this),this._item.loadTimeout));try{this._item.values&&this._item.method!=createjs.AbstractLoader.GET?this._item.method==createjs.AbstractLoader.POST&&this._request.send(createjs.RequestUtils.formatQueryString(this._item.values)):this._request.send()}catch(a){this.dispatchEvent(new createjs.ErrorEvent("XHR_SEND",null,a))}},a.setResponseType=function(a){"blob"===a&&(a=window.URL?"blob":"arraybuffer",this._responseType=a),this._request.responseType=a},a.getAllResponseHeaders=function(){return this._request.getAllResponseHeaders instanceof Function?this._request.getAllResponseHeaders():null},a.getResponseHeader=function(a){return this._request.getResponseHeader instanceof Function?this._request.getResponseHeader(a):null},a._handleProgress=function(a){if(a&&!(a.loaded>0&&0==a.total)){var b=new createjs.ProgressEvent(a.loaded,a.total);this.dispatchEvent(b)}},a._handleLoadStart=function(){clearTimeout(this._loadTimeout),this.dispatchEvent("loadstart")},a._handleAbort=function(a){this._clean(),this.dispatchEvent(new createjs.ErrorEvent("XHR_ABORTED",null,a))},a._handleError=function(a){this._clean(),this.dispatchEvent(new createjs.ErrorEvent(a.message))},a._handleReadyStateChange=function(){4==this._request.readyState&&this._handleLoad()},a._handleLoad=function(){if(!this.loaded){this.loaded=!0;var a=this._checkError();if(a)return void this._handleError(a);if(this._response=this._getResponse(),"arraybuffer"===this._responseType)try{this._response=new Blob([this._response])}catch(b){if(window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,"TypeError"===b.name&&window.BlobBuilder){var c=new BlobBuilder;c.append(this._response),this._response=c.getBlob()}}this._clean(),this.dispatchEvent(new createjs.Event("complete"))}},a._handleTimeout=function(a){this._clean(),this.dispatchEvent(new createjs.ErrorEvent("PRELOAD_TIMEOUT",null,a))},a._checkError=function(){var a=parseInt(this._request.status);switch(a){case 404:case 0:return new Error(a)}return null},a._getResponse=function(){if(null!=this._response)return this._response;if(null!=this._request.response)return this._request.response;try{if(null!=this._request.responseText)return this._request.responseText}catch(a){}try{if(null!=this._request.responseXML)return this._request.responseXML}catch(a){}return null},a._createXHR=function(a){var b=createjs.RequestUtils.isCrossDomain(a),c={},d=null;if(window.XMLHttpRequest)d=new XMLHttpRequest,b&&void 0===d.withCredentials&&window.XDomainRequest&&(d=new XDomainRequest);else{for(var e=0,f=s.ACTIVEX_VERSIONS.length;f>e;e++){var g=s.ACTIVEX_VERSIONS[e];try{d=new ActiveXObject(g);break}catch(h){}}if(null==d)return!1}null==a.mimeType&&createjs.RequestUtils.isText(a.type)&&(a.mimeType="text/plain; charset=utf-8"),a.mimeType&&d.overrideMimeType&&d.overrideMimeType(a.mimeType),this._xhrLevel="string"==typeof d.responseType?2:1;var i=null;if(i=a.method==createjs.AbstractLoader.GET?createjs.RequestUtils.buildPath(a.src,a.values):a.src,d.open(a.method||createjs.AbstractLoader.GET,i,!0),b&&d instanceof XMLHttpRequest&&1==this._xhrLevel&&(c.Origin=location.origin),a.values&&a.method==createjs.AbstractLoader.POST&&(c["Content-Type"]="application/x-www-form-urlencoded"),b||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest"),a.headers)for(var j in a.headers)c[j]=a.headers[j];for(j in c)d.setRequestHeader(j,c[j]);return d instanceof XMLHttpRequest&&void 0!==a.withCredentials&&(d.withCredentials=a.withCredentials),this._request=d,!0},a._clean=function(){clearTimeout(this._loadTimeout),null!=this._request.removeEventListener?(this._request.removeEventListener("loadstart",this._handleLoadStartProxy),this._request.removeEventListener("progress",this._handleProgressProxy),this._request.removeEventListener("abort",this._handleAbortProxy),this._request.removeEventListener("error",this._handleErrorProxy),this._request.removeEventListener("timeout",this._handleTimeoutProxy),this._request.removeEventListener("load",this._handleLoadProxy),this._request.removeEventListener("readystatechange",this._handleReadyStateChangeProxy)):(this._request.onloadstart=null,this._request.onprogress=null,this._request.onabort=null,this._request.onerror=null,this._request.ontimeout=null,this._request.onload=null,this._request.onreadystatechange=null)},a.toString=function(){return"[PreloadJS XHRRequest]"},createjs.XHRRequest=createjs.promote(XHRRequest,"AbstractRequest")}(),this.createjs=this.createjs||{},function(){"use strict";function SoundLoader(a,b){this.AbstractMediaLoader_constructor(a,b,createjs.AbstractLoader.SOUND),createjs.RequestUtils.isAudioTag(a)?this._tag=a:createjs.RequestUtils.isAudioTag(a.src)?this._tag=a:createjs.RequestUtils.isAudioTag(a.tag)&&(this._tag=createjs.RequestUtils.isAudioTag(a)?a:a.src),null!=this._tag&&(this._preferXHR=!1)}var a=createjs.extend(SoundLoader,createjs.AbstractMediaLoader),b=SoundLoader;b.canLoadItem=function(a){return a.type==createjs.AbstractLoader.SOUND},a._createTag=function(a){var b=document.createElement("audio");return b.autoplay=!1,b.preload="none",b.src=a,b},createjs.SoundLoader=createjs.promote(SoundLoader,"AbstractMediaLoader")}(),this.createjs=this.createjs||{},function(){"use strict";var PlayPropsConfig=function(){this.interrupt=null,this.delay=null,this.offset=null,this.loop=null,this.volume=null,this.pan=null,this.startTime=null,this.duration=null},a=PlayPropsConfig.prototype={},b=PlayPropsConfig;b.create=function(a){if(a instanceof b||a instanceof Object){var c=new createjs.PlayPropsConfig;return c.set(a),c}throw new Error("Type not recognized.")},a.set=function(a){for(var b in a)this[b]=a[b];return this},a.toString=function(){return"[PlayPropsConfig]"},createjs.PlayPropsConfig=b}(),this.createjs=this.createjs||{},function(){"use strict";function Sound(){throw"Sound cannot be instantiated"}function a(a,b){this.init(a,b)}var b=Sound;b.INTERRUPT_ANY="any",b.INTERRUPT_EARLY="early",b.INTERRUPT_LATE="late",b.INTERRUPT_NONE="none",b.PLAY_INITED="playInited",b.PLAY_SUCCEEDED="playSucceeded",b.PLAY_INTERRUPTED="playInterrupted",b.PLAY_FINISHED="playFinished",b.PLAY_FAILED="playFailed",b.SUPPORTED_EXTENSIONS=["mp3","ogg","opus","mpeg","wav","m4a","mp4","aiff","wma","mid"],b.EXTENSION_MAP={m4a:"mp4"},b.FILE_PATTERN=/^(?:(\w+:)\/{2}(\w+(?:\.\w+)*\/?))?([\/.]*?(?:[^?]+)?\/)?((?:[^\/?]+)\.(\w+))(?:\?(\S+)?)?$/,b.defaultInterruptBehavior=b.INTERRUPT_NONE,b.alternateExtensions=[],b.activePlugin=null,b._masterVolume=1,Object.defineProperty(b,"volume",{get:function(){return this._masterVolume},set:function(a){if(null==Number(a))return!1;if(a=Math.max(0,Math.min(1,a)),b._masterVolume=a,!this.activePlugin||!this.activePlugin.setVolume||!this.activePlugin.setVolume(a))for(var c=this._instances,d=0,e=c.length;e>d;d++)c[d].setMasterVolume(a)}}),b._masterMute=!1,Object.defineProperty(b,"muted",{get:function(){return this._masterMute},set:function(a){if(null==a)return!1;if(this._masterMute=a,!this.activePlugin||!this.activePlugin.setMute||!this.activePlugin.setMute(a))for(var b=this._instances,c=0,d=b.length;d>c;c++)b[c].setMasterMute(a);return!0}}),Object.defineProperty(b,"capabilities",{get:function(){return null==b.activePlugin?null:b.activePlugin._capabilities},set:function(){return!1}}),b._pluginsRegistered=!1,b._lastID=0,b._instances=[],b._idHash={},b._preloadHash={},b._defaultPlayPropsHash={},b.addEventListener=null,b.removeEventListener=null,b.removeAllEventListeners=null,b.dispatchEvent=null,b.hasEventListener=null,b._listeners=null,createjs.EventDispatcher.initialize(b),b.getPreloadHandlers=function(){return{callback:createjs.proxy(b.initLoad,b),types:["sound"],extensions:b.SUPPORTED_EXTENSIONS}},b._handleLoadComplete=function(a){var c=a.target.getItem().src;if(b._preloadHash[c])for(var d=0,e=b._preloadHash[c].length;e>d;d++){var f=b._preloadHash[c][d];if(b._preloadHash[c][d]=!0,b.hasEventListener("fileload")){var a=new createjs.Event("fileload");a.src=f.src,a.id=f.id,a.data=f.data,a.sprite=f.sprite,b.dispatchEvent(a)}}},b._handleLoadError=function(a){var c=a.target.getItem().src;if(b._preloadHash[c])for(var d=0,e=b._preloadHash[c].length;e>d;d++){var f=b._preloadHash[c][d];if(b._preloadHash[c][d]=!1,b.hasEventListener("fileerror")){var a=new createjs.Event("fileerror");a.src=f.src,a.id=f.id,a.data=f.data,a.sprite=f.sprite,b.dispatchEvent(a)}}},b._registerPlugin=function(a){return a.isSupported()?(b.activePlugin=new a,!0):!1},b.registerPlugins=function(a){b._pluginsRegistered=!0;for(var c=0,d=a.length;d>c;c++)if(b._registerPlugin(a[c]))return!0;return!1},b.initializeDefaultPlugins=function(){return null!=b.activePlugin?!0:b._pluginsRegistered?!1:b.registerPlugins([createjs.WebAudioPlugin,createjs.HTMLAudioPlugin])?!0:!1},b.isReady=function(){return null!=b.activePlugin},b.getCapabilities=function(){return null==b.activePlugin?null:b.activePlugin._capabilities},b.getCapability=function(a){return null==b.activePlugin?null:b.activePlugin._capabilities[a]},b.initLoad=function(a){return b._registerSound(a)},b._registerSound=function(c){if(!b.initializeDefaultPlugins())return!1;var d;if(c.src instanceof Object?(d=b._parseSrc(c.src),d.src=c.path+d.src):d=b._parsePath(c.src),null==d)return!1;c.src=d.src,c.type="sound";var e=c.data,f=null;if(null!=e&&(isNaN(e.channels)?isNaN(e)||(f=parseInt(e)):f=parseInt(e.channels),e.audioSprite))for(var g,h=e.audioSprite.length;h--;)g=e.audioSprite[h],b._idHash[g.id]={src:c.src,startTime:parseInt(g.startTime),duration:parseInt(g.duration)},g.defaultPlayProps&&(b._defaultPlayPropsHash[g.id]=createjs.PlayPropsConfig.create(g.defaultPlayProps));null!=c.id&&(b._idHash[c.id]={src:c.src});var i=b.activePlugin.register(c);return a.create(c.src,f),null!=e&&isNaN(e)?c.data.channels=f||a.maxPerChannel():c.data=f||a.maxPerChannel(),i.type&&(c.type=i.type),c.defaultPlayProps&&(b._defaultPlayPropsHash[c.src]=createjs.PlayPropsConfig.create(c.defaultPlayProps)),i},b.registerSound=function(a,c,d,e,f){var g={src:a,id:c,data:d,defaultPlayProps:f};a instanceof Object&&a.src&&(e=c,g=a),g=createjs.LoadItem.create(g),g.path=e,null==e||g.src instanceof Object||(g.src=e+a);var h=b._registerSound(g);if(!h)return!1;if(b._preloadHash[g.src]||(b._preloadHash[g.src]=[]),b._preloadHash[g.src].push(g),1==b._preloadHash[g.src].length)h.on("complete",createjs.proxy(this._handleLoadComplete,this)),h.on("error",createjs.proxy(this._handleLoadError,this)),b.activePlugin.preload(h);else if(1==b._preloadHash[g.src][0])return!0;return g},b.registerSounds=function(a,b){var c=[];a.path&&(b?b+=a.path:b=a.path,a=a.manifest);for(var d=0,e=a.length;e>d;d++)c[d]=createjs.Sound.registerSound(a[d].src,a[d].id,a[d].data,b,a[d].defaultPlayProps);return c},b.removeSound=function(c,d){if(null==b.activePlugin)return!1;c instanceof Object&&c.src&&(c=c.src);var e;if(c instanceof Object?e=b._parseSrc(c):(c=b._getSrcById(c).src,e=b._parsePath(c)),null==e)return!1;c=e.src,null!=d&&(c=d+c);for(var f in b._idHash)b._idHash[f].src==c&&delete b._idHash[f];return a.removeSrc(c),delete b._preloadHash[c],b.activePlugin.removeSound(c),!0},b.removeSounds=function(a,b){var c=[];a.path&&(b?b+=a.path:b=a.path,a=a.manifest);for(var d=0,e=a.length;e>d;d++)c[d]=createjs.Sound.removeSound(a[d].src,b);return c},b.removeAllSounds=function(){b._idHash={},b._preloadHash={},a.removeAll(),b.activePlugin&&b.activePlugin.removeAllSounds()},b.loadComplete=function(a){if(!b.isReady())return!1;var c=b._parsePath(a);return a=c?b._getSrcById(c.src).src:b._getSrcById(a).src,void 0==b._preloadHash[a]?!1:1==b._preloadHash[a][0]},b._parsePath=function(a){"string"!=typeof a&&(a=a.toString());var c=a.match(b.FILE_PATTERN);if(null==c)return!1;for(var d=c[4],e=c[5],f=b.capabilities,g=0;!f[e];)if(e=b.alternateExtensions[g++],g>b.alternateExtensions.length)return null;a=a.replace("."+c[5],"."+e);var h={name:d,src:a,extension:e};return h},b._parseSrc=function(a){var c={name:void 0,src:void 0,extension:void 0},d=b.capabilities;for(var e in a)if(a.hasOwnProperty(e)&&d[e]){c.src=a[e],c.extension=e;break}if(!c.src)return!1;var f=c.src.lastIndexOf("/");return c.name=-1!=f?c.src.slice(f+1):c.src,c},b.play=function(a,c,d,e,f,g,h,i,j){var k;k=createjs.PlayPropsConfig.create(c instanceof Object||c instanceof createjs.PlayPropsConfig?c:{interrupt:c,delay:d,offset:e,loop:f,volume:g,pan:h,startTime:i,duration:j});var l=b.createInstance(a,k.startTime,k.duration),m=b._playInstance(l,k);return m||l._playFailed(),l},b.createInstance=function(c,d,e){if(!b.initializeDefaultPlugins())return new createjs.DefaultSoundInstance(c,d,e);var f=b._defaultPlayPropsHash[c];c=b._getSrcById(c);var g=b._parsePath(c.src),h=null;
return null!=g&&null!=g.src?(a.create(g.src),null==d&&(d=c.startTime),h=b.activePlugin.create(g.src,d,e||c.duration),f=f||b._defaultPlayPropsHash[g.src],f&&h.applyPlayProps(f)):h=new createjs.DefaultSoundInstance(c,d,e),h.uniqueId=b._lastID++,h},b.stop=function(){for(var a=this._instances,b=a.length;b--;)a[b].stop()},b.setVolume=function(a){if(null==Number(a))return!1;if(a=Math.max(0,Math.min(1,a)),b._masterVolume=a,!this.activePlugin||!this.activePlugin.setVolume||!this.activePlugin.setVolume(a))for(var c=this._instances,d=0,e=c.length;e>d;d++)c[d].setMasterVolume(a)},b.getVolume=function(){return this._masterVolume},b.setMute=function(a){if(null==a)return!1;if(this._masterMute=a,!this.activePlugin||!this.activePlugin.setMute||!this.activePlugin.setMute(a))for(var b=this._instances,c=0,d=b.length;d>c;c++)b[c].setMasterMute(a);return!0},b.getMute=function(){return this._masterMute},b.setDefaultPlayProps=function(a,c){a=b._getSrcById(a),b._defaultPlayPropsHash[b._parsePath(a.src).src]=createjs.PlayPropsConfig.create(c)},b.getDefaultPlayProps=function(a){return a=b._getSrcById(a),b._defaultPlayPropsHash[b._parsePath(a.src).src]},b._playInstance=function(a,c){var d=b._defaultPlayPropsHash[a.src]||{};if(null==c.interrupt&&(c.interrupt=d.interrupt||b.defaultInterruptBehavior),null==c.delay&&(c.delay=d.delay||0),null==c.offset&&(c.offset=a.getPosition()),null==c.loop&&(c.loop=a.loop),null==c.volume&&(c.volume=a.volume),null==c.pan&&(c.pan=a.pan),0==c.delay){var e=b._beginPlaying(a,c);if(!e)return!1}else{var f=setTimeout(function(){b._beginPlaying(a,c)},c.delay);a.delayTimeoutId=f}return this._instances.push(a),!0},b._beginPlaying=function(b,c){if(!a.add(b,c.interrupt))return!1;var d=b._beginPlaying(c);if(!d){var e=createjs.indexOf(this._instances,b);return e>-1&&this._instances.splice(e,1),!1}return!0},b._getSrcById=function(a){return b._idHash[a]||{src:a}},b._playFinished=function(b){a.remove(b);var c=createjs.indexOf(this._instances,b);c>-1&&this._instances.splice(c,1)},createjs.Sound=Sound,a.channels={},a.create=function(b,c){var d=a.get(b);return null==d?(a.channels[b]=new a(b,c),!0):!1},a.removeSrc=function(b){var c=a.get(b);return null==c?!1:(c._removeAll(),delete a.channels[b],!0)},a.removeAll=function(){for(var b in a.channels)a.channels[b]._removeAll();a.channels={}},a.add=function(b,c){var d=a.get(b.src);return null==d?!1:d._add(b,c)},a.remove=function(b){var c=a.get(b.src);return null==c?!1:(c._remove(b),!0)},a.maxPerChannel=function(){return c.maxDefault},a.get=function(b){return a.channels[b]};var c=a.prototype;c.constructor=a,c.src=null,c.max=null,c.maxDefault=100,c.length=0,c.init=function(a,b){this.src=a,this.max=b||this.maxDefault,-1==this.max&&(this.max=this.maxDefault),this._instances=[]},c._get=function(a){return this._instances[a]},c._add=function(a,b){return this._getSlot(b,a)?(this._instances.push(a),this.length++,!0):!1},c._remove=function(a){var b=createjs.indexOf(this._instances,a);return-1==b?!1:(this._instances.splice(b,1),this.length--,!0)},c._removeAll=function(){for(var a=this.length-1;a>=0;a--)this._instances[a].stop()},c._getSlot=function(a){var b,c;if(a!=Sound.INTERRUPT_NONE&&(c=this._get(0),null==c))return!0;for(var d=0,e=this.max;e>d;d++){if(b=this._get(d),null==b)return!0;if(b.playState==Sound.PLAY_FINISHED||b.playState==Sound.PLAY_INTERRUPTED||b.playState==Sound.PLAY_FAILED){c=b;break}a!=Sound.INTERRUPT_NONE&&(a==Sound.INTERRUPT_EARLY&&b.getPosition()<c.getPosition()||a==Sound.INTERRUPT_LATE&&b.getPosition()>c.getPosition())&&(c=b)}return null!=c?(c._interrupt(),this._remove(c),!0):!1},c.toString=function(){return"[Sound SoundChannel]"}}(),this.createjs=this.createjs||{},function(){"use strict";var AbstractSoundInstance=function(a,b,c,d){this.EventDispatcher_constructor(),this.src=a,this.uniqueId=-1,this.playState=null,this.delayTimeoutId=null,this._volume=1,Object.defineProperty(this,"volume",{get:this.getVolume,set:this.setVolume}),this._pan=0,Object.defineProperty(this,"pan",{get:this.getPan,set:this.setPan}),this._startTime=Math.max(0,b||0),Object.defineProperty(this,"startTime",{get:this.getStartTime,set:this.setStartTime}),this._duration=Math.max(0,c||0),Object.defineProperty(this,"duration",{get:this.getDuration,set:this.setDuration}),this._playbackResource=null,Object.defineProperty(this,"playbackResource",{get:this.getPlaybackResource,set:this.setPlaybackResource}),d!==!1&&d!==!0&&this.setPlaybackResource(d),this._position=0,Object.defineProperty(this,"position",{get:this.getPosition,set:this.setPosition}),this._loop=0,Object.defineProperty(this,"loop",{get:this.getLoop,set:this.setLoop}),this._muted=!1,Object.defineProperty(this,"muted",{get:this.getMuted,set:this.setMuted}),this._paused=!1,Object.defineProperty(this,"paused",{get:this.getPaused,set:this.setPaused})},a=createjs.extend(AbstractSoundInstance,createjs.EventDispatcher);a.play=function(a,b,c,d,e,f){var g;return g=createjs.PlayPropsConfig.create(a instanceof Object||a instanceof createjs.PlayPropsConfig?a:{interrupt:a,delay:b,offset:c,loop:d,volume:e,pan:f}),this.playState==createjs.Sound.PLAY_SUCCEEDED?(this.applyPlayProps(g),void(this._paused&&this.setPaused(!1))):(this._cleanUp(),createjs.Sound._playInstance(this,g),this)},a.stop=function(){return this._position=0,this._paused=!1,this._handleStop(),this._cleanUp(),this.playState=createjs.Sound.PLAY_FINISHED,this},a.destroy=function(){this._cleanUp(),this.src=null,this.playbackResource=null,this.removeAllEventListeners()},a.applyPlayProps=function(a){return null!=a.offset&&this.setPosition(a.offset),null!=a.loop&&this.setLoop(a.loop),null!=a.volume&&this.setVolume(a.volume),null!=a.pan&&this.setPan(a.pan),null!=a.startTime&&(this.setStartTime(a.startTime),this.setDuration(a.duration)),this},a.toString=function(){return"[AbstractSoundInstance]"},a.getPaused=function(){return this._paused},a.setPaused=function(a){return a!==!0&&a!==!1||this._paused==a||1==a&&this.playState!=createjs.Sound.PLAY_SUCCEEDED?void 0:(this._paused=a,a?this._pause():this._resume(),clearTimeout(this.delayTimeoutId),this)},a.setVolume=function(a){return a==this._volume?this:(this._volume=Math.max(0,Math.min(1,a)),this._muted||this._updateVolume(),this)},a.getVolume=function(){return this._volume},a.setMuted=function(a){return a===!0||a===!1?(this._muted=a,this._updateVolume(),this):void 0},a.getMuted=function(){return this._muted},a.setPan=function(a){return a==this._pan?this:(this._pan=Math.max(-1,Math.min(1,a)),this._updatePan(),this)},a.getPan=function(){return this._pan},a.getPosition=function(){return this._paused||this.playState!=createjs.Sound.PLAY_SUCCEEDED||(this._position=this._calculateCurrentPosition()),this._position},a.setPosition=function(a){return this._position=Math.max(0,a),this.playState==createjs.Sound.PLAY_SUCCEEDED&&this._updatePosition(),this},a.getStartTime=function(){return this._startTime},a.setStartTime=function(a){return a==this._startTime?this:(this._startTime=Math.max(0,a||0),this._updateStartTime(),this)},a.getDuration=function(){return this._duration},a.setDuration=function(a){return a==this._duration?this:(this._duration=Math.max(0,a||0),this._updateDuration(),this)},a.setPlaybackResource=function(a){return this._playbackResource=a,0==this._duration&&this._setDurationFromSource(),this},a.getPlaybackResource=function(){return this._playbackResource},a.getLoop=function(){return this._loop},a.setLoop=function(a){null!=this._playbackResource&&(0!=this._loop&&0==a?this._removeLooping(a):0==this._loop&&0!=a&&this._addLooping(a)),this._loop=a},a._sendEvent=function(a){var b=new createjs.Event(a);this.dispatchEvent(b)},a._cleanUp=function(){clearTimeout(this.delayTimeoutId),this._handleCleanUp(),this._paused=!1,createjs.Sound._playFinished(this)},a._interrupt=function(){this._cleanUp(),this.playState=createjs.Sound.PLAY_INTERRUPTED,this._sendEvent("interrupted")},a._beginPlaying=function(a){return this.setPosition(a.offset),this.setLoop(a.loop),this.setVolume(a.volume),this.setPan(a.pan),null!=a.startTime&&(this.setStartTime(a.startTime),this.setDuration(a.duration)),null!=this._playbackResource&&this._position<this._duration?(this._paused=!1,this._handleSoundReady(),this.playState=createjs.Sound.PLAY_SUCCEEDED,this._sendEvent("succeeded"),!0):(this._playFailed(),!1)},a._playFailed=function(){this._cleanUp(),this.playState=createjs.Sound.PLAY_FAILED,this._sendEvent("failed")},a._handleSoundComplete=function(){return this._position=0,0!=this._loop?(this._loop--,this._handleLoop(),void this._sendEvent("loop")):(this._cleanUp(),this.playState=createjs.Sound.PLAY_FINISHED,void this._sendEvent("complete"))},a._handleSoundReady=function(){},a._updateVolume=function(){},a._updatePan=function(){},a._updateStartTime=function(){},a._updateDuration=function(){},a._setDurationFromSource=function(){},a._calculateCurrentPosition=function(){},a._updatePosition=function(){},a._removeLooping=function(){},a._addLooping=function(){},a._pause=function(){},a._resume=function(){},a._handleStop=function(){},a._handleCleanUp=function(){},a._handleLoop=function(){},createjs.AbstractSoundInstance=createjs.promote(AbstractSoundInstance,"EventDispatcher"),createjs.DefaultSoundInstance=createjs.AbstractSoundInstance}(),this.createjs=this.createjs||{},function(){"use strict";var AbstractPlugin=function(){this._capabilities=null,this._loaders={},this._audioSources={},this._soundInstances={},this._volume=1,this._loaderClass,this._soundInstanceClass},a=AbstractPlugin.prototype;AbstractPlugin._capabilities=null,AbstractPlugin.isSupported=function(){return!0},a.register=function(a){var b=this._loaders[a.src];return b&&!b.canceled?this._loaders[a.src]:(this._audioSources[a.src]=!0,this._soundInstances[a.src]=[],b=new this._loaderClass(a),b.on("complete",this._handlePreloadComplete,this),this._loaders[a.src]=b,b)},a.preload=function(a){a.on("error",this._handlePreloadError,this),a.load()},a.isPreloadStarted=function(a){return null!=this._audioSources[a]},a.isPreloadComplete=function(a){return!(null==this._audioSources[a]||1==this._audioSources[a])},a.removeSound=function(a){if(this._soundInstances[a]){for(var b=this._soundInstances[a].length;b--;){var c=this._soundInstances[a][b];c.destroy()}delete this._soundInstances[a],delete this._audioSources[a],this._loaders[a]&&this._loaders[a].destroy(),delete this._loaders[a]}},a.removeAllSounds=function(){for(var a in this._audioSources)this.removeSound(a)},a.create=function(a,b,c){this.isPreloadStarted(a)||this.preload(this.register(a));var d=new this._soundInstanceClass(a,b,c,this._audioSources[a]);return this._soundInstances[a].push(d),d},a.setVolume=function(a){return this._volume=a,this._updateVolume(),!0},a.getVolume=function(){return this._volume},a.setMute=function(){return this._updateVolume(),!0},a.toString=function(){return"[AbstractPlugin]"},a._handlePreloadComplete=function(a){var b=a.target.getItem().src;this._audioSources[b]=a.result;for(var c=0,d=this._soundInstances[b].length;d>c;c++){var e=this._soundInstances[b][c];e.setPlaybackResource(this._audioSources[b])}},a._handlePreloadError=function(){},a._updateVolume=function(){},createjs.AbstractPlugin=AbstractPlugin}(),this.createjs=this.createjs||{},function(){"use strict";function a(a){this.AbstractLoader_constructor(a,!0,createjs.AbstractLoader.SOUND)}var b=createjs.extend(a,createjs.AbstractLoader);a.context=null,b.toString=function(){return"[WebAudioLoader]"},b._createRequest=function(){this._request=new createjs.XHRRequest(this._item,!1),this._request.setResponseType("arraybuffer")},b._sendComplete=function(){a.context.decodeAudioData(this._rawResult,createjs.proxy(this._handleAudioDecoded,this),createjs.proxy(this._sendError,this))},b._handleAudioDecoded=function(a){this._result=a,this.AbstractLoader__sendComplete()},createjs.WebAudioLoader=createjs.promote(a,"AbstractLoader")}(),this.createjs=this.createjs||{},function(){"use strict";function WebAudioSoundInstance(a,c,d,e){this.AbstractSoundInstance_constructor(a,c,d,e),this.gainNode=b.context.createGain(),this.panNode=b.context.createPanner(),this.panNode.panningModel=b._panningModel,this.panNode.connect(this.gainNode),this._updatePan(),this.sourceNode=null,this._soundCompleteTimeout=null,this._sourceNodeNext=null,this._playbackStartTime=0,this._endedHandler=createjs.proxy(this._handleSoundComplete,this)}var a=createjs.extend(WebAudioSoundInstance,createjs.AbstractSoundInstance),b=WebAudioSoundInstance;b.context=null,b._scratchBuffer=null,b.destinationNode=null,b._panningModel="equalpower",a.destroy=function(){this.AbstractSoundInstance_destroy(),this.panNode.disconnect(0),this.panNode=null,this.gainNode.disconnect(0),this.gainNode=null},a.toString=function(){return"[WebAudioSoundInstance]"},a._updatePan=function(){this.panNode.setPosition(this._pan,0,-.5)},a._removeLooping=function(){this._sourceNodeNext=this._cleanUpAudioNode(this._sourceNodeNext)},a._addLooping=function(){this.playState==createjs.Sound.PLAY_SUCCEEDED&&(this._sourceNodeNext=this._createAndPlayAudioNode(this._playbackStartTime,0))},a._setDurationFromSource=function(){this._duration=1e3*this.playbackResource.duration},a._handleCleanUp=function(){this.sourceNode&&this.playState==createjs.Sound.PLAY_SUCCEEDED&&(this.sourceNode=this._cleanUpAudioNode(this.sourceNode),this._sourceNodeNext=this._cleanUpAudioNode(this._sourceNodeNext)),0!=this.gainNode.numberOfOutputs&&this.gainNode.disconnect(0),clearTimeout(this._soundCompleteTimeout),this._playbackStartTime=0},a._cleanUpAudioNode=function(a){if(a){a.stop(0),a.disconnect(0);try{a.buffer=b._scratchBuffer}catch(c){}a=null}return a},a._handleSoundReady=function(){this.gainNode.connect(b.destinationNode);var a=.001*this._duration,c=.001*this._position;c>a&&(c=a),this.sourceNode=this._createAndPlayAudioNode(b.context.currentTime-a,c),this._playbackStartTime=this.sourceNode.startTime-c,this._soundCompleteTimeout=setTimeout(this._endedHandler,1e3*(a-c)),0!=this._loop&&(this._sourceNodeNext=this._createAndPlayAudioNode(this._playbackStartTime,0))},a._createAndPlayAudioNode=function(a,c){var d=b.context.createBufferSource();d.buffer=this.playbackResource,d.connect(this.panNode);var e=.001*this._duration;return d.startTime=a+e,d.start(d.startTime,c+.001*this._startTime,e-c),d},a._pause=function(){this._position=1e3*(b.context.currentTime-this._playbackStartTime),this.sourceNode=this._cleanUpAudioNode(this.sourceNode),this._sourceNodeNext=this._cleanUpAudioNode(this._sourceNodeNext),0!=this.gainNode.numberOfOutputs&&this.gainNode.disconnect(0),clearTimeout(this._soundCompleteTimeout)},a._resume=function(){this._handleSoundReady()},a._updateVolume=function(){var a=this._muted?0:this._volume;a!=this.gainNode.gain.value&&(this.gainNode.gain.value=a)},a._calculateCurrentPosition=function(){return 1e3*(b.context.currentTime-this._playbackStartTime)},a._updatePosition=function(){this.sourceNode=this._cleanUpAudioNode(this.sourceNode),this._sourceNodeNext=this._cleanUpAudioNode(this._sourceNodeNext),clearTimeout(this._soundCompleteTimeout),this._paused||this._handleSoundReady()},a._handleLoop=function(){this._cleanUpAudioNode(this.sourceNode),this.sourceNode=this._sourceNodeNext,this._playbackStartTime=this.sourceNode.startTime,this._sourceNodeNext=this._createAndPlayAudioNode(this._playbackStartTime,0),this._soundCompleteTimeout=setTimeout(this._endedHandler,this._duration)},a._updateDuration=function(){this.playState==createjs.Sound.PLAY_SUCCEEDED&&(this._pause(),this._resume())},createjs.WebAudioSoundInstance=createjs.promote(WebAudioSoundInstance,"AbstractSoundInstance")}(),this.createjs=this.createjs||{},function(){"use strict";function WebAudioPlugin(){this.AbstractPlugin_constructor(),this._panningModel=b._panningModel,this.context=b.context,this.dynamicsCompressorNode=this.context.createDynamicsCompressor(),this.dynamicsCompressorNode.connect(this.context.destination),this.gainNode=this.context.createGain(),this.gainNode.connect(this.dynamicsCompressorNode),createjs.WebAudioSoundInstance.destinationNode=this.gainNode,this._capabilities=b._capabilities,this._loaderClass=createjs.WebAudioLoader,this._soundInstanceClass=createjs.WebAudioSoundInstance,this._addPropsToClasses()}var a=createjs.extend(WebAudioPlugin,createjs.AbstractPlugin),b=WebAudioPlugin;b._capabilities=null,b._panningModel="equalpower",b.context=null,b._scratchBuffer=null,b._unlocked=!1,b.isSupported=function(){var a=createjs.BrowserDetect.isIOS||createjs.BrowserDetect.isAndroid||createjs.BrowserDetect.isBlackberry;return"file:"!=location.protocol||a||this._isFileXHRSupported()?(b._generateCapabilities(),null==b.context?!1:!0):!1},b.playEmptySound=function(){if(null!=b.context){var a=b.context.createBufferSource();a.buffer=b._scratchBuffer,a.connect(b.context.destination),a.start(0,0,0)}},b._isFileXHRSupported=function(){var a=!0,b=new XMLHttpRequest;try{b.open("GET","WebAudioPluginTest.fail",!1)}catch(c){return a=!1}b.onerror=function(){a=!1},b.onload=function(){a=404==this.status||200==this.status||0==this.status&&""!=this.response};try{b.send()}catch(c){a=!1}return a},b._generateCapabilities=function(){if(null==b._capabilities){var a=document.createElement("audio");if(null==a.canPlayType)return null;if(null==b.context)if(window.AudioContext)b.context=new AudioContext;else{if(!window.webkitAudioContext)return null;b.context=new webkitAudioContext}null==b._scratchBuffer&&(b._scratchBuffer=b.context.createBuffer(1,1,22050)),b._compatibilitySetUp(),"ontouchstart"in window&&"running"!=b.context.state&&(b._unlock(),document.addEventListener("mousedown",b._unlock,!0),document.addEventListener("touchend",b._unlock,!0)),b._capabilities={panning:!0,volume:!0,tracks:-1};for(var c=createjs.Sound.SUPPORTED_EXTENSIONS,d=createjs.Sound.EXTENSION_MAP,e=0,f=c.length;f>e;e++){var g=c[e],h=d[g]||g;b._capabilities[g]="no"!=a.canPlayType("audio/"+g)&&""!=a.canPlayType("audio/"+g)||"no"!=a.canPlayType("audio/"+h)&&""!=a.canPlayType("audio/"+h)}b.context.destination.numberOfChannels<2&&(b._capabilities.panning=!1)}},b._compatibilitySetUp=function(){if(b._panningModel="equalpower",!b.context.createGain){b.context.createGain=b.context.createGainNode;var a=b.context.createBufferSource();a.__proto__.start=a.__proto__.noteGrainOn,a.__proto__.stop=a.__proto__.noteOff,b._panningModel=0}},b._unlock=function(){b._unlocked||(b.playEmptySound(),"running"==b.context.state&&(document.removeEventListener("mousedown",b._unlock,!0),document.removeEventListener("touchend",b._unlock,!0),b._unlocked=!0))},a.toString=function(){return"[WebAudioPlugin]"},a._addPropsToClasses=function(){var a=this._soundInstanceClass;a.context=this.context,a._scratchBuffer=b._scratchBuffer,a.destinationNode=this.gainNode,a._panningModel=this._panningModel,this._loaderClass.context=this.context},a._updateVolume=function(){var a=createjs.Sound._masterMute?0:this._volume;a!=this.gainNode.gain.value&&(this.gainNode.gain.value=a)},createjs.WebAudioPlugin=createjs.promote(WebAudioPlugin,"AbstractPlugin")}(),this.createjs=this.createjs||{},function(){"use strict";function HTMLAudioTagPool(){throw"HTMLAudioTagPool cannot be instantiated"}function a(){this._tags=[]}var b=HTMLAudioTagPool;b._tags={},b._tagPool=new a,b._tagUsed={},b.get=function(a){var c=b._tags[a];return null==c?(c=b._tags[a]=b._tagPool.get(),c.src=a):b._tagUsed[a]?(c=b._tagPool.get(),c.src=a):b._tagUsed[a]=!0,c},b.set=function(a,c){c==b._tags[a]?b._tagUsed[a]=!1:b._tagPool.set(c)},b.remove=function(a){var c=b._tags[a];return null==c?!1:(b._tagPool.set(c),delete b._tags[a],delete b._tagUsed[a],!0)},b.getDuration=function(a){var c=b._tags[a];return null!=c&&c.duration?1e3*c.duration:0},createjs.HTMLAudioTagPool=HTMLAudioTagPool;var c=a.prototype;c.constructor=a,c.get=function(){var a;return a=0==this._tags.length?this._createTag():this._tags.pop(),null==a.parentNode&&document.body.appendChild(a),a},c.set=function(a){var b=createjs.indexOf(this._tags,a);-1==b&&(this._tags.src=null,this._tags.push(a))},c.toString=function(){return"[TagPool]"},c._createTag=function(){var a=document.createElement("audio");return a.autoplay=!1,a.preload="none",a}}(),this.createjs=this.createjs||{},function(){"use strict";function HTMLAudioSoundInstance(a,b,c,d){this.AbstractSoundInstance_constructor(a,b,c,d),this._audioSpriteStopTime=null,this._delayTimeoutId=null,this._endedHandler=createjs.proxy(this._handleSoundComplete,this),this._readyHandler=createjs.proxy(this._handleTagReady,this),this._stalledHandler=createjs.proxy(this._playFailed,this),this._audioSpriteEndHandler=createjs.proxy(this._handleAudioSpriteLoop,this),this._loopHandler=createjs.proxy(this._handleSoundComplete,this),c?this._audioSpriteStopTime=.001*(b+c):this._duration=createjs.HTMLAudioTagPool.getDuration(this.src)}var a=createjs.extend(HTMLAudioSoundInstance,createjs.AbstractSoundInstance);a.setMasterVolume=function(){this._updateVolume()},a.setMasterMute=function(){this._updateVolume()},a.toString=function(){return"[HTMLAudioSoundInstance]"},a._removeLooping=function(){null!=this._playbackResource&&(this._playbackResource.loop=!1,this._playbackResource.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED,this._loopHandler,!1))},a._addLooping=function(){null==this._playbackResource||this._audioSpriteStopTime||(this._playbackResource.addEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED,this._loopHandler,!1),this._playbackResource.loop=!0)},a._handleCleanUp=function(){var a=this._playbackResource;if(null!=a){a.pause(),a.loop=!1,a.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_ENDED,this._endedHandler,!1),a.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_READY,this._readyHandler,!1),a.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_STALLED,this._stalledHandler,!1),a.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED,this._loopHandler,!1),a.removeEventListener(createjs.HTMLAudioPlugin._TIME_UPDATE,this._audioSpriteEndHandler,!1);try{a.currentTime=this._startTime}catch(b){}createjs.HTMLAudioTagPool.set(this.src,a),this._playbackResource=null}},a._beginPlaying=function(a){return this._playbackResource=createjs.HTMLAudioTagPool.get(this.src),this.AbstractSoundInstance__beginPlaying(a)},a._handleSoundReady=function(){if(4!==this._playbackResource.readyState){var a=this._playbackResource;return a.addEventListener(createjs.HTMLAudioPlugin._AUDIO_READY,this._readyHandler,!1),a.addEventListener(createjs.HTMLAudioPlugin._AUDIO_STALLED,this._stalledHandler,!1),a.preload="auto",void a.load()}this._updateVolume(),this._playbackResource.currentTime=.001*(this._startTime+this._position),this._audioSpriteStopTime?this._playbackResource.addEventListener(createjs.HTMLAudioPlugin._TIME_UPDATE,this._audioSpriteEndHandler,!1):(this._playbackResource.addEventListener(createjs.HTMLAudioPlugin._AUDIO_ENDED,this._endedHandler,!1),0!=this._loop&&(this._playbackResource.addEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED,this._loopHandler,!1),this._playbackResource.loop=!0)),this._playbackResource.play()},a._handleTagReady=function(){this._playbackResource.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_READY,this._readyHandler,!1),this._playbackResource.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_STALLED,this._stalledHandler,!1),this._handleSoundReady()},a._pause=function(){this._playbackResource.pause()},a._resume=function(){this._playbackResource.play()},a._updateVolume=function(){if(null!=this._playbackResource){var a=this._muted||createjs.Sound._masterMute?0:this._volume*createjs.Sound._masterVolume;a!=this._playbackResource.volume&&(this._playbackResource.volume=a)}},a._calculateCurrentPosition=function(){return 1e3*this._playbackResource.currentTime-this._startTime},a._updatePosition=function(){this._playbackResource.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED,this._loopHandler,!1),this._playbackResource.addEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED,this._handleSetPositionSeek,!1);try{this._playbackResource.currentTime=.001*(this._position+this._startTime)}catch(a){this._handleSetPositionSeek(null)}},a._handleSetPositionSeek=function(){null!=this._playbackResource&&(this._playbackResource.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED,this._handleSetPositionSeek,!1),this._playbackResource.addEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED,this._loopHandler,!1))},a._handleAudioSpriteLoop=function(){this._playbackResource.currentTime<=this._audioSpriteStopTime||(this._playbackResource.pause(),0==this._loop?this._handleSoundComplete(null):(this._position=0,this._loop--,this._playbackResource.currentTime=.001*this._startTime,this._paused||this._playbackResource.play(),this._sendEvent("loop")))},a._handleLoop=function(){0==this._loop&&(this._playbackResource.loop=!1,this._playbackResource.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_SEEKED,this._loopHandler,!1))},a._updateStartTime=function(){this._audioSpriteStopTime=.001*(this._startTime+this._duration),this.playState==createjs.Sound.PLAY_SUCCEEDED&&(this._playbackResource.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_ENDED,this._endedHandler,!1),this._playbackResource.addEventListener(createjs.HTMLAudioPlugin._TIME_UPDATE,this._audioSpriteEndHandler,!1))},a._updateDuration=function(){this._audioSpriteStopTime=.001*(this._startTime+this._duration),this.playState==createjs.Sound.PLAY_SUCCEEDED&&(this._playbackResource.removeEventListener(createjs.HTMLAudioPlugin._AUDIO_ENDED,this._endedHandler,!1),this._playbackResource.addEventListener(createjs.HTMLAudioPlugin._TIME_UPDATE,this._audioSpriteEndHandler,!1))},a._setDurationFromSource=function(){this._duration=createjs.HTMLAudioTagPool.getDuration(this.src),this._playbackResource=null},createjs.HTMLAudioSoundInstance=createjs.promote(HTMLAudioSoundInstance,"AbstractSoundInstance")}(),this.createjs=this.createjs||{},function(){"use strict";function HTMLAudioPlugin(){this.AbstractPlugin_constructor(),this.defaultNumChannels=2,this._capabilities=b._capabilities,this._loaderClass=createjs.SoundLoader,this._soundInstanceClass=createjs.HTMLAudioSoundInstance}var a=createjs.extend(HTMLAudioPlugin,createjs.AbstractPlugin),b=HTMLAudioPlugin;b.MAX_INSTANCES=30,b._AUDIO_READY="canplaythrough",b._AUDIO_ENDED="ended",b._AUDIO_SEEKED="seeked",b._AUDIO_STALLED="stalled",b._TIME_UPDATE="timeupdate",b._capabilities=null,b.isSupported=function(){return b._generateCapabilities(),null!=b._capabilities},b._generateCapabilities=function(){if(null==b._capabilities){var a=document.createElement("audio");if(null==a.canPlayType)return null;b._capabilities={panning:!1,volume:!0,tracks:-1};for(var c=createjs.Sound.SUPPORTED_EXTENSIONS,d=createjs.Sound.EXTENSION_MAP,e=0,f=c.length;f>e;e++){var g=c[e],h=d[g]||g;b._capabilities[g]="no"!=a.canPlayType("audio/"+g)&&""!=a.canPlayType("audio/"+g)||"no"!=a.canPlayType("audio/"+h)&&""!=a.canPlayType("audio/"+h)}}},a.register=function(a){var b=createjs.HTMLAudioTagPool.get(a.src),c=this.AbstractPlugin_register(a);return c.setTag(b),c},a.removeSound=function(a){this.AbstractPlugin_removeSound(a),createjs.HTMLAudioTagPool.remove(a)},a.create=function(a,b,c){var d=this.AbstractPlugin_create(a,b,c);return d.setPlaybackResource(null),d},a.toString=function(){return"[HTMLAudioPlugin]"},a.setVolume=a.getVolume=a.setMute=null,createjs.HTMLAudioPlugin=createjs.promote(HTMLAudioPlugin,"AbstractPlugin")}();

H5P.SoundJS = this.createjs.Sound;

this.createjs = old || this.createjs;
;var H5P = H5P || {};

/**
 * Class responsible for creating a help text dialog
 */
H5P.JoubelHelpTextDialog = (function ($) {

  var numInstances = 0;
  /**
   * Display a pop-up containing a message.
   *
   * @param {H5P.jQuery}  $container  The container which message dialog will be appended to
   * @param {string}      message     The message
   * @param {string}      closeButtonTitle The title for the close button
   * @return {H5P.jQuery}
   */
  function JoubelHelpTextDialog(header, message, closeButtonTitle) {
    H5P.EventDispatcher.call(this);

    var self = this;

    numInstances++;
    var headerId = 'joubel-help-text-header-' + numInstances;
    var helpTextId = 'joubel-help-text-body-' + numInstances;

    var $helpTextDialogBox = $('<div>', {
      'class': 'joubel-help-text-dialog-box',
      'role': 'dialog',
      'aria-labelledby': headerId,
      'aria-describedby': helpTextId
    });

    $('<div>', {
      'class': 'joubel-help-text-dialog-background'
    }).appendTo($helpTextDialogBox);

    var $helpTextDialogContainer = $('<div>', {
      'class': 'joubel-help-text-dialog-container'
    }).appendTo($helpTextDialogBox);

    $('<div>', {
      'class': 'joubel-help-text-header',
      'id': headerId,
      'role': 'header',
      'html': header
    }).appendTo($helpTextDialogContainer);

    $('<div>', {
      'class': 'joubel-help-text-body',
      'id': helpTextId,
      'html': message,
      'role': 'document',
      'tabindex': 0
    }).appendTo($helpTextDialogContainer);

    var handleClose = function () {
      $helpTextDialogBox.remove();
      self.trigger('closed');
    };

    var $closeButton = $('<div>', {
      'class': 'joubel-help-text-remove',
      'role': 'button',
      'title': closeButtonTitle,
      'tabindex': 1,
      'click': handleClose,
      'keydown': function (event) {
        // 32 - space, 13 - enter
        if ([32, 13].indexOf(event.which) !== -1) {
          event.preventDefault();
          handleClose();
        }
      }
    }).appendTo($helpTextDialogContainer);

    /**
     * Get the DOM element
     * @return {HTMLElement}
     */
    self.getElement = function () {
      return $helpTextDialogBox;
    };

    self.focus = function () {
      $closeButton.focus();
    };
  }

  JoubelHelpTextDialog.prototype = Object.create(H5P.EventDispatcher.prototype);
  JoubelHelpTextDialog.prototype.constructor = JoubelHelpTextDialog;

  return JoubelHelpTextDialog;
}(H5P.jQuery));
;var H5P = H5P || {};

/**
 * Class responsible for creating auto-disappearing dialogs
 */
H5P.JoubelMessageDialog = (function ($) {

  /**
   * Display a pop-up containing a message.
   *
   * @param {H5P.jQuery} $container The container which message dialog will be appended to
   * @param {string} message The message
   * @return {H5P.jQuery}
   */
  function JoubelMessageDialog ($container, message) {
    var timeout;

    var removeDialog = function () {
      $warning.remove();
      clearTimeout(timeout);
      $container.off('click.messageDialog');
    };

    // Create warning popup:
    var $warning = $('<div/>', {
      'class': 'joubel-message-dialog',
      text: message
    }).appendTo($container);

    // Remove after 3 seconds or if user clicks anywhere in $container:
    timeout = setTimeout(removeDialog, 3000);
    $container.on('click.messageDialog', removeDialog);

    return $warning;
  }

  return JoubelMessageDialog;
})(H5P.jQuery);
;var H5P = H5P || {};

/**
 * Class responsible for creating a circular progress bar
 */

H5P.JoubelProgressCircle = (function ($) {

  /**
   * Constructor for the Progress Circle
   *
   * @param {Number} number The amount of progress to display
   * @param {string} progressColor Color for the progress meter
   * @param {string} backgroundColor Color behind the progress meter
   */
  function ProgressCircle(number, progressColor, fillColor, backgroundColor) {
    progressColor = progressColor || '#1a73d9';
    fillColor = fillColor || '#f0f0f0';
    backgroundColor = backgroundColor || '#ffffff';
    var progressColorRGB = this.hexToRgb(progressColor);

    //Verify number
    try {
      number = Number(number);
      if (number === '') {
        throw 'is empty';
      }
      if (isNaN(number)) {
        throw 'is not a number';
      }
    } catch (e) {
      number = 'err';
    }

    //Draw circle
    if (number > 100) {
      number = 100;
    }

    // We can not use rgba, since they will stack on top of each other.
    // Instead we create the equivalent of the rgba color
    // and applies this to the activeborder and background color.
    var progressColorString = 'rgb(' + parseInt(progressColorRGB.r, 10) +
      ',' + parseInt(progressColorRGB.g, 10) +
      ',' + parseInt(progressColorRGB.b, 10) + ')';

    // Circle wrapper
    var $wrapper = $('<div/>', {
      'class': "joubel-progress-circle-wrapper"
    });

    //Active border indicates progress
    var $activeBorder = $('<div/>', {
      'class': "joubel-progress-circle-active-border"
    }).appendTo($wrapper);

    //Background circle
    var $backgroundCircle = $('<div/>', {
      'class': "joubel-progress-circle-circle"
    }).appendTo($activeBorder);

    //Progress text/number
    $('<span/>', {
      'text': number + '%',
      'class': "joubel-progress-circle-percentage"
    }).appendTo($backgroundCircle);

    var deg = number * 3.6;
    if (deg <= 180) {
      $activeBorder.css('background-image',
        'linear-gradient(' + (90 + deg) + 'deg, transparent 50%, ' + fillColor + ' 50%),' +
        'linear-gradient(90deg, ' + fillColor + ' 50%, transparent 50%)')
        .css('border', '2px solid' + backgroundColor)
        .css('background-color', progressColorString);
    } else {
      $activeBorder.css('background-image',
        'linear-gradient(' + (deg - 90) + 'deg, transparent 50%, ' + progressColorString + ' 50%),' +
        'linear-gradient(90deg, ' + fillColor + ' 50%, transparent 50%)')
        .css('border', '2px solid' + backgroundColor)
        .css('background-color', progressColorString);
    }

    this.$activeBorder = $activeBorder;
    this.$backgroundCircle = $backgroundCircle;
    this.$wrapper = $wrapper;

    this.initResizeFunctionality();

    return $wrapper;
  }

  /**
   * Initializes resize functionality for the progress circle
   */
  ProgressCircle.prototype.initResizeFunctionality = function () {
    var self = this;

    $(window).resize(function () {
      // Queue resize
      setTimeout(function () {
        self.resize();
      });
    });

    // First resize
    setTimeout(function () {
      self.resize();
    }, 0);
  };

  /**
   * Resize function makes progress circle grow or shrink relative to parent container
   */
  ProgressCircle.prototype.resize = function () {
    var $parent = this.$wrapper.parent();

    if ($parent !== undefined && $parent) {

      // Measurements
      var fontSize = parseInt($parent.css('font-size'), 10);

      // Static sizes
      var fontSizeMultiplum = 3.75;
      var progressCircleWidthPx = parseInt((fontSize / 4.5), 10) % 2 === 0 ? parseInt((fontSize / 4.5), 10) + 4 : parseInt((fontSize / 4.5), 10) + 5;
      var progressCircleOffset = progressCircleWidthPx / 2;

      var width = fontSize * fontSizeMultiplum;
      var height = fontSize * fontSizeMultiplum;
      this.$activeBorder.css({
        'width': width,
        'height': height
      });

      this.$backgroundCircle.css({
        'width': width - progressCircleWidthPx,
        'height': height - progressCircleWidthPx,
        'top': progressCircleOffset,
        'left': progressCircleOffset
      });
    }
  };

  /**
   * Hex to RGB conversion
   * @param hex
   * @returns {{r: Number, g: Number, b: Number}}
   */
  ProgressCircle.prototype.hexToRgb = function (hex) {
    var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
    return result ? {
      r: parseInt(result[1], 16),
      g: parseInt(result[2], 16),
      b: parseInt(result[3], 16)
    } : null;
  };

  return ProgressCircle;

}(H5P.jQuery));
;var H5P = H5P || {};

H5P.SimpleRoundedButton = (function ($) {

  /**
   * Creates a new tip
   */
  function SimpleRoundedButton(text) {

    var $simpleRoundedButton = $('<div>', {
      'class': 'joubel-simple-rounded-button',
      'title': text,
      'role': 'button',
      'tabindex': '0'
    }).keydown(function (e) {
      // 32 - space, 13 - enter
      if ([32, 13].indexOf(e.which) !== -1) {
        $(this).click();
        e.preventDefault();
      }
    });

    $('<span>', {
      'class': 'joubel-simple-rounded-button-text',
      'html': text
    }).appendTo($simpleRoundedButton);

    return $simpleRoundedButton;
  }

  return SimpleRoundedButton;
}(H5P.jQuery));
;var H5P = H5P || {};

/**
 * Class responsible for creating speech bubbles
 */
H5P.JoubelSpeechBubble = (function ($) {

  var $currentSpeechBubble;
  var $currentContainer;  
  var $tail;
  var $innerTail;
  var removeSpeechBubbleTimeout;
  var currentMaxWidth;

  var DEFAULT_MAX_WIDTH = 400;

  var iDevice = navigator.userAgent.match(/iPod|iPhone|iPad/g) ? true : false;

  /**
   * Creates a new speech bubble
   *
   * @param {H5P.jQuery} $container The speaking object
   * @param {string} text The text to display
   * @param {number} maxWidth The maximum width of the bubble
   * @return {H5P.JoubelSpeechBubble}
   */
  function JoubelSpeechBubble($container, text, maxWidth) {
    maxWidth = maxWidth || DEFAULT_MAX_WIDTH;
    currentMaxWidth = maxWidth;
    $currentContainer = $container;

    this.isCurrent = function ($tip) {
      return $tip.is($currentContainer);
    };

    this.remove = function () {
      remove();
    };

    var fadeOutSpeechBubble = function ($speechBubble) {
      if (!$speechBubble) {
        return;
      }

      // Stop removing bubble
      clearTimeout(removeSpeechBubbleTimeout);

      $speechBubble.removeClass('show');
      setTimeout(function () {
        if ($speechBubble) {
          $speechBubble.remove();
          $speechBubble = undefined;
        }
      }, 500);
    };

    if ($currentSpeechBubble !== undefined) {
      remove();
    }

    var $h5pContainer = getH5PContainer($container);

    // Make sure we fade out old speech bubble
    fadeOutSpeechBubble($currentSpeechBubble);

    // Create bubble
    $tail = $('<div class="joubel-speech-bubble-tail"></div>');
    $innerTail = $('<div class="joubel-speech-bubble-inner-tail"></div>');
    var $innerBubble = $(
      '<div class="joubel-speech-bubble-inner">' +
      '<div class="joubel-speech-bubble-text">' + text + '</div>' +
      '</div>'
    ).prepend($innerTail);

    $currentSpeechBubble = $(
      '<div class="joubel-speech-bubble" aria-live="assertive">'
    ).append([$tail, $innerBubble])
      .appendTo($h5pContainer);

    // Show speech bubble with transition
    setTimeout(function () {
      $currentSpeechBubble.addClass('show');
    }, 0);

    position($currentSpeechBubble, $currentContainer, maxWidth, $tail, $innerTail);

    // Handle click to close
    H5P.$body.on('mousedown.speechBubble', handleOutsideClick);

    // Handle window resizing
    H5P.$window.on('resize', '', handleResize);

    // Handle clicks when inside IV which blocks bubbling.
    $container.parents('.h5p-dialog')
      .on('mousedown.speechBubble', handleOutsideClick);

    if (iDevice) {
      H5P.$body.css('cursor', 'pointer');
    }

    return this;
  }

  // Remove speechbubble if it belongs to a dom element that is about to be hidden
  H5P.externalDispatcher.on('domHidden', function (event) {
    if ($currentSpeechBubble !== undefined && event.data.$dom.find($currentContainer).length !== 0) {
      remove();
    }
  });

  /**
   * Returns the closest h5p container for the given DOM element.
   * 
   * @param {object} $container jquery element
   * @return {object} the h5p container (jquery element)
   */
  function getH5PContainer($container) {
    var $h5pContainer = $container.closest('.h5p-frame');

    // Check closest h5p frame first, then check for container in case there is no frame.
    if (!$h5pContainer.length) {
      $h5pContainer = $container.closest('.h5p-container');
    }

    return $h5pContainer;
  }

  /**
   * Event handler that is called when the window is resized.
   */
  function handleResize() {
    position($currentSpeechBubble, $currentContainer, currentMaxWidth, $tail, $innerTail);
  }

  /**
   * Repositions the speech bubble according to the position of the container.
   * 
   * @param {object} $currentSpeechbubble the speech bubble that should be positioned   
   * @param {object} $container the container to which the speech bubble should point 
   * @param {number} maxWidth the maximum width of the speech bubble
   * @param {object} $tail the tail (the triangle that points to the referenced container)
   * @param {object} $innerTail the inner tail (the triangle that points to the referenced container)
   */
  function position($currentSpeechBubble, $container, maxWidth, $tail, $innerTail) {
    var $h5pContainer = getH5PContainer($container);

    // Calculate offset between the button and the h5p frame
    var offset = getOffsetBetween($h5pContainer, $container);

    var direction = (offset.bottom > offset.top ? 'bottom' : 'top');
    var tipWidth = offset.outerWidth * 0.9; // Var needs to be renamed to make sense
    var bubbleWidth = tipWidth > maxWidth ? maxWidth : tipWidth;

    var bubblePosition = getBubblePosition(bubbleWidth, offset);
    var tailPosition = getTailPosition(bubbleWidth, bubblePosition, offset, $container.width());
    // Need to set font-size, since element is appended to body.
    // Using same font-size as parent. In that way it will grow accordingly
    // when resizing
    var fontSize = 16;//parseFloat($parent.css('font-size'));

    // Set width and position of speech bubble
    $currentSpeechBubble.css(bubbleCSS(
      direction,
      bubbleWidth,
      bubblePosition,
      fontSize
    ));

    var preparedTailCSS = tailCSS(direction, tailPosition);
    $tail.css(preparedTailCSS);
    $innerTail.css(preparedTailCSS);
  }

  /**
   * Static function for removing the speechbubble
   */
  var remove = function () {
    H5P.$body.off('mousedown.speechBubble');
    H5P.$window.off('resize', '', handleResize);
    $currentContainer.parents('.h5p-dialog').off('mousedown.speechBubble');
    if (iDevice) {
      H5P.$body.css('cursor', '');
    }
    if ($currentSpeechBubble !== undefined) {
      // Apply transition, then remove speech bubble
      $currentSpeechBubble.removeClass('show');

      // Make sure we remove any old timeout before reassignment
      clearTimeout(removeSpeechBubbleTimeout);
      removeSpeechBubbleTimeout = setTimeout(function () {
        $currentSpeechBubble.remove();
        $currentSpeechBubble = undefined;
      }, 500);
    }
    // Don't return false here. If the user e.g. clicks a button when the bubble is visible,
    // we want the bubble to disapear AND the button to receive the event
  };

  /**
   * Remove the speech bubble and container reference
   */
  function handleOutsideClick(event) {
    if (event.target === $currentContainer[0]) {
      return; // Button clicks are not outside clicks
    }

    remove();
    // There is no current container when a container isn't clicked
    $currentContainer = undefined;
  }

  /**
   * Calculate position for speech bubble
   *
   * @param {number} bubbleWidth The width of the speech bubble
   * @param {object} offset
   * @return {object} Return position for the speech bubble
   */
  function getBubblePosition(bubbleWidth, offset) {
    var bubblePosition = {};

    var tailOffset = 9;
    var widthOffset = bubbleWidth / 2;

    // Calculate top position
    bubblePosition.top = offset.top + offset.innerHeight;

    // Calculate bottom position
    bubblePosition.bottom = offset.bottom + offset.innerHeight + tailOffset;

    // Calculate left position
    if (offset.left < widthOffset) {
      bubblePosition.left = 3;
    }
    else if ((offset.left + widthOffset) > offset.outerWidth) {
      bubblePosition.left = offset.outerWidth - bubbleWidth - 3;
    }
    else {
      bubblePosition.left = offset.left - widthOffset + (offset.innerWidth / 2);
    }

    return bubblePosition;
  }

  /**
   * Calculate position for speech bubble tail
   *
   * @param {number} bubbleWidth The width of the speech bubble
   * @param {object} bubblePosition Speech bubble position
   * @param {object} offset
   * @param {number} iconWidth The width of the tip icon
   * @return {object} Return position for the tail
   */
  function getTailPosition(bubbleWidth, bubblePosition, offset, iconWidth) {
    var tailPosition = {};
    // Magic numbers. Tuned by hand so that the tail fits visually within
    // the bounds of the speech bubble.
    var leftBoundary = 9;
    var rightBoundary = bubbleWidth - 20;

    tailPosition.left = offset.left - bubblePosition.left + (iconWidth / 2) - 6;
    if (tailPosition.left < leftBoundary) {
      tailPosition.left = leftBoundary;
    }
    if (tailPosition.left > rightBoundary) {
      tailPosition.left = rightBoundary;
    }

    tailPosition.top = -6;
    tailPosition.bottom = -6;

    return tailPosition;
  }

  /**
   * Return bubble CSS for the desired growth direction
   *
   * @param {string} direction The direction the speech bubble will grow
   * @param {number} width The width of the speech bubble
   * @param {object} position Speech bubble position
   * @param {number} fontSize The size of the bubbles font
   * @return {object} Return CSS
   */
  function bubbleCSS(direction, width, position, fontSize) {
    if (direction === 'top') {
      return {
        width: width + 'px',
        bottom: position.bottom + 'px',
        left: position.left + 'px',
        fontSize: fontSize + 'px',
        top: ''
      };
    }
    else {
      return {
        width: width + 'px',
        top: position.top + 'px',
        left: position.left + 'px',
        fontSize: fontSize + 'px',
        bottom: ''
      };
    }
  }

  /**
   * Return tail CSS for the desired growth direction
   *
   * @param {string} direction The direction the speech bubble will grow
   * @param {object} position Tail position
   * @return {object} Return CSS
   */
  function tailCSS(direction, position) {
    if (direction === 'top') {
      return {
        bottom: position.bottom + 'px',
        left: position.left + 'px',
        top: ''
      };
    }
    else {
      return {
        top: position.top + 'px',
        left: position.left + 'px',
        bottom: ''
      };
    }
  }

  /**
   * Calculates the offset between an element inside a container and the
   * container. Only works if all the edges of the inner element are inside the
   * outer element.
   * Width/height of the elements is included as a convenience.
   *
   * @param {H5P.jQuery} $outer
   * @param {H5P.jQuery} $inner
   * @return {object} Position offset
   */
  function getOffsetBetween($outer, $inner) {
    var outer = $outer[0].getBoundingClientRect();
    var inner = $inner[0].getBoundingClientRect();

    return {
      top: inner.top - outer.top,
      right: outer.right - inner.right,
      bottom: outer.bottom - inner.bottom,
      left: inner.left - outer.left,
      innerWidth: inner.width,
      innerHeight: inner.height,
      outerWidth: outer.width,
      outerHeight: outer.height
    };
  }

  return JoubelSpeechBubble;
})(H5P.jQuery);
;var H5P = H5P || {};

H5P.JoubelThrobber = (function ($) {

  /**
   * Creates a new tip
   */
  function JoubelThrobber() {

    // h5p-throbber css is described in core
    var $throbber = $('<div/>', {
      'class': 'h5p-throbber'
    });

    return $throbber;
  }

  return JoubelThrobber;
}(H5P.jQuery));
;H5P.JoubelTip = (function ($) {
  var $conv = $('<div/>');

  /**
   * Creates a new tip element.
   *
   * NOTE that this may look like a class but it doesn't behave like one.
   * It returns a jQuery object.
   *
   * @param {string} tipHtml The text to display in the popup
   * @param {Object} [behaviour] Options
   * @param {string} [behaviour.tipLabel] Set to use a custom label for the tip button (you want this for good A11Y)
   * @param {boolean} [behaviour.helpIcon] Set to 'true' to Add help-icon classname to Tip button (changes the icon)
   * @param {boolean} [behaviour.showSpeechBubble] Set to 'false' to disable functionality (you may this in the editor)
   * @param {boolean} [behaviour.tabcontrol] Set to 'true' if you plan on controlling the tabindex in the parent (tabindex="-1")
   * @return {H5P.jQuery|undefined} Tip button jQuery element or 'undefined' if invalid tip
   */
  function JoubelTip(tipHtml, behaviour) {

    // Keep track of the popup that appears when you click the Tip button
    var speechBubble;

    // Parse tip html to determine text
    var tipText = $conv.html(tipHtml).text().trim();
    if (tipText === '') {
      return; // The tip has no textual content, i.e. it's invalid.
    }

    // Set default behaviour
    behaviour = $.extend({
      tipLabel: tipText,
      helpIcon: false,
      showSpeechBubble: true,
      tabcontrol: false
    }, behaviour);

    // Create Tip button
    var $tipButton = $('<div/>', {
      class: 'joubel-tip-container' + (behaviour.showSpeechBubble ? '' : ' be-quiet'),
      'aria-label': behaviour.tipLabel,
      'aria-expanded': false,
      role: 'button',
      tabindex: (behaviour.tabcontrol ? -1 : 0),
      click: function (event) {
        // Toggle show/hide popup
        toggleSpeechBubble();
        event.preventDefault();
      },
      keydown: function (event) {
        if (event.which === 32 || event.which === 13) { // Space & enter key
          // Toggle show/hide popup
          toggleSpeechBubble();
          event.stopPropagation();
          event.preventDefault();
        }
        else { // Any other key
          // Toggle hide popup
          toggleSpeechBubble(false);
        }
      },
      // Add markup to render icon
      html: '<span class="joubel-icon-tip-normal ' + (behaviour.helpIcon ? ' help-icon': '') + '">' +
              '<span class="h5p-icon-shadow"></span>' +
              '<span class="h5p-icon-speech-bubble"></span>' +
              '<span class="h5p-icon-info"></span>' +
            '</span>'
      // IMPORTANT: All of the markup elements must have 'pointer-events: none;'
    });

    const $tipAnnouncer = $('<div>', {
      'class': 'hidden-but-read',
      'aria-live': 'polite',
      appendTo: $tipButton,
    });

    /**
     * Tip button interaction handler.
     * Toggle show or hide the speech bubble popup when interacting with the
     * Tip button.
     *
     * @private
     * @param {boolean} [force] 'true' shows and 'false' hides.
     */
    var toggleSpeechBubble = function (force) {
      if (speechBubble !== undefined && speechBubble.isCurrent($tipButton)) {
        // Hide current popup
        speechBubble.remove();
        speechBubble = undefined;

        $tipButton.attr('aria-expanded', false);
        $tipAnnouncer.html('');
      }
      else if (force !== false && behaviour.showSpeechBubble) {
        // Create and show new popup
        speechBubble = H5P.JoubelSpeechBubble($tipButton, tipHtml);
        $tipButton.attr('aria-expanded', true);
        $tipAnnouncer.html(tipHtml);
      }
    };

    return $tipButton;
  }

  return JoubelTip;
})(H5P.jQuery);
;var H5P = H5P || {};

H5P.JoubelSlider = (function ($) {

  /**
   * Creates a new Slider
   *
   * @param {object} [params] Additional parameters
   */
  function JoubelSlider(params) {
    H5P.EventDispatcher.call(this);

    this.$slider = $('<div>', $.extend({
      'class': 'h5p-joubel-ui-slider'
    }, params));

    this.$slides = [];
    this.currentIndex = 0;
    this.numSlides = 0;
  }
  JoubelSlider.prototype = Object.create(H5P.EventDispatcher.prototype);
  JoubelSlider.prototype.constructor = JoubelSlider;

  JoubelSlider.prototype.addSlide = function ($content) {
    $content.addClass('h5p-joubel-ui-slide').css({
      'left': (this.numSlides*100) + '%'
    });
    this.$slider.append($content);
    this.$slides.push($content);

    this.numSlides++;

    if(this.numSlides === 1) {
      $content.addClass('current');
    }
  };

  JoubelSlider.prototype.attach = function ($container) {
    $container.append(this.$slider);
  };

  JoubelSlider.prototype.move = function (index) {
    var self = this;

    if(index === 0) {
      self.trigger('first-slide');
    }
    if(index+1 === self.numSlides) {
      self.trigger('last-slide');
    }
    self.trigger('move');

    var $previousSlide = self.$slides[this.currentIndex];
    H5P.Transition.onTransitionEnd(this.$slider, function () {
      $previousSlide.removeClass('current');
      self.trigger('moved');
    });
    this.$slides[index].addClass('current');

    var translateX = 'translateX(' + (-index*100) + '%)';
    this.$slider.css({
      '-webkit-transform': translateX,
      '-moz-transform': translateX,
      '-ms-transform': translateX,
      'transform': translateX
    });

    this.currentIndex = index;
  };

  JoubelSlider.prototype.remove = function () {
    this.$slider.remove();
  };

  JoubelSlider.prototype.next = function () {
    if(this.currentIndex+1 >= this.numSlides) {
      return;
    }

    this.move(this.currentIndex+1);
  };

  JoubelSlider.prototype.previous = function () {
    this.move(this.currentIndex-1);
  };

  JoubelSlider.prototype.first = function () {
    this.move(0);
  };

  JoubelSlider.prototype.last = function () {
    this.move(this.numSlides-1);
  };

  return JoubelSlider;
})(H5P.jQuery);
;var H5P = H5P || {};

/**
 * @module
 */
H5P.JoubelScoreBar = (function ($) {

  /* Need to use an id for the star SVG since that is the only way to reference
     SVG filters  */
  var idCounter = 0;

  /**
   * Creates a score bar
   * @class H5P.JoubelScoreBar
   * @param {number} maxScore  Maximum score
   * @param {string} [label] Makes it easier for readspeakers to identify the scorebar
   * @param {string} [helpText] Score explanation
   * @param {string} [scoreExplanationButtonLabel] Label for score explanation button
   */
  function JoubelScoreBar(maxScore, label, helpText, scoreExplanationButtonLabel) {
    var self = this;

    self.maxScore = maxScore;
    self.score = 0;
    idCounter++;

    /**
     * @const {string}
     */
    self.STAR_MARKUP = '<svg tabindex="-1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 63.77 53.87" aria-hidden="true" focusable="false">' +
        '<title>star</title>' +
        '<filter tabindex="-1" id="h5p-joubelui-score-bar-star-inner-shadow-' + idCounter + '" x0="-50%" y0="-50%" width="200%" height="200%">' +
          '<feGaussianBlur in="SourceAlpha" stdDeviation="3" result="blur"></feGaussianBlur>' +
          '<feOffset dy="2" dx="4"></feOffset>' +
          '<feComposite in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowDiff"></feComposite>' +
          '<feFlood flood-color="#ffe95c" flood-opacity="1"></feFlood>' +
          '<feComposite in2="shadowDiff" operator="in"></feComposite>' +
          '<feComposite in2="SourceGraphic" operator="over" result="firstfilter"></feComposite>' +
          '<feGaussianBlur in="firstfilter" stdDeviation="3" result="blur2"></feGaussianBlur>' +
          '<feOffset dy="-2" dx="-4"></feOffset>' +
          '<feComposite in2="firstfilter" operator="arithmetic" k2="-1" k3="1" result="shadowDiff"></feComposite>' +
          '<feFlood flood-color="#ffe95c" flood-opacity="1"></feFlood>' +
          '<feComposite in2="shadowDiff" operator="in"></feComposite>' +
          '<feComposite in2="firstfilter" operator="over"></feComposite>' +
        '</filter>' +
        '<path tabindex="-1" class="h5p-joubelui-score-bar-star-shadow" d="M35.08,43.41V9.16H20.91v0L9.51,10.85,9,10.93C2.8,12.18,0,17,0,21.25a11.22,11.22,0,0,0,3,7.48l8.73,8.53-1.07,6.16Z"/>' +
        '<g tabindex="-1">' +
          '<path tabindex="-1" class="h5p-joubelui-score-bar-star-border" d="M61.36,22.8,49.72,34.11l2.78,16a2.6,2.6,0,0,1,.05.64c0,.85-.37,1.6-1.33,1.6A2.74,2.74,0,0,1,49.94,52L35.58,44.41,21.22,52a2.93,2.93,0,0,1-1.28.37c-.91,0-1.33-.75-1.33-1.6,0-.21.05-.43.05-.64l2.78-16L9.8,22.8A2.57,2.57,0,0,1,9,21.25c0-1,1-1.33,1.81-1.49l16.07-2.35L34.09,2.83c.27-.59.85-1.33,1.55-1.33s1.28.69,1.55,1.33l7.21,14.57,16.07,2.35c.75.11,1.81.53,1.81,1.49A3.07,3.07,0,0,1,61.36,22.8Z"/>' +
          '<path tabindex="-1" class="h5p-joubelui-score-bar-star-fill" d="M61.36,22.8,49.72,34.11l2.78,16a2.6,2.6,0,0,1,.05.64c0,.85-.37,1.6-1.33,1.6A2.74,2.74,0,0,1,49.94,52L35.58,44.41,21.22,52a2.93,2.93,0,0,1-1.28.37c-.91,0-1.33-.75-1.33-1.6,0-.21.05-.43.05-.64l2.78-16L9.8,22.8A2.57,2.57,0,0,1,9,21.25c0-1,1-1.33,1.81-1.49l16.07-2.35L34.09,2.83c.27-.59.85-1.33,1.55-1.33s1.28.69,1.55,1.33l7.21,14.57,16.07,2.35c.75.11,1.81.53,1.81,1.49A3.07,3.07,0,0,1,61.36,22.8Z"/>' +
          '<path tabindex="-1" filter="url(#h5p-joubelui-score-bar-star-inner-shadow-' + idCounter + ')" class="h5p-joubelui-score-bar-star-fill-full-score" d="M61.36,22.8,49.72,34.11l2.78,16a2.6,2.6,0,0,1,.05.64c0,.85-.37,1.6-1.33,1.6A2.74,2.74,0,0,1,49.94,52L35.58,44.41,21.22,52a2.93,2.93,0,0,1-1.28.37c-.91,0-1.33-.75-1.33-1.6,0-.21.05-.43.05-.64l2.78-16L9.8,22.8A2.57,2.57,0,0,1,9,21.25c0-1,1-1.33,1.81-1.49l16.07-2.35L34.09,2.83c.27-.59.85-1.33,1.55-1.33s1.28.69,1.55,1.33l7.21,14.57,16.07,2.35c.75.11,1.81.53,1.81,1.49A3.07,3.07,0,0,1,61.36,22.8Z"/>' +
        '</g>' +
      '</svg>';

    /**
     * @function appendTo
     * @memberOf H5P.JoubelScoreBar#
     * @param {H5P.jQuery}  $wrapper  Dom container
     */
    self.appendTo = function ($wrapper) {
      self.$scoreBar.appendTo($wrapper);
    };

    /**
     * Create the text representation of the scorebar .
     *
     * @private
     * @return {string}
     */
    var createLabel = function (score) {
      if (!label) {
        return '';
      }

      return label.replace(':num', score).replace(':total', self.maxScore);
    };

    /**
     * Creates the html for this widget
     *
     * @method createHtml
     * @private
     */
    var createHtml = function () {
      // Container div
      self.$scoreBar = $('<div>', {
        'class': 'h5p-joubelui-score-bar',
      });

      var $visuals = $('<div>', {
        'class': 'h5p-joubelui-score-bar-visuals',
        appendTo: self.$scoreBar
      });

      // The progress bar wrapper
      self.$progressWrapper = $('<div>', {
        'class': 'h5p-joubelui-score-bar-progress-wrapper',
        appendTo: $visuals
      });

      self.$progress = $('<div>', {
        'class': 'h5p-joubelui-score-bar-progress',
        'html': createLabel(self.score),
        appendTo: self.$progressWrapper
      });

      // The star
      $('<div>', {
        'class': 'h5p-joubelui-score-bar-star',
        html: self.STAR_MARKUP
      }).appendTo($visuals);

      // The score container
      var $numerics = $('<div>', {
        'class': 'h5p-joubelui-score-numeric',
        appendTo: self.$scoreBar,
        'aria-hidden': true
      });

      // The current score
      self.$scoreCounter = $('<span>', {
        'class': 'h5p-joubelui-score-number h5p-joubelui-score-number-counter',
        text: 0,
        appendTo: $numerics
      });

      // The separator
      $('<span>', {
        'class': 'h5p-joubelui-score-number-separator',
        text: '/',
        appendTo: $numerics
      });

      // Max score
      self.$maxScore = $('<span>', {
        'class': 'h5p-joubelui-score-number h5p-joubelui-score-max',
        text: self.maxScore,
        appendTo: $numerics
      });

      if (helpText) {
        H5P.JoubelUI.createTip(helpText, {
          tipLabel: scoreExplanationButtonLabel ? scoreExplanationButtonLabel : helpText,
          helpIcon: true
        }).appendTo(self.$scoreBar);
        self.$scoreBar.addClass('h5p-score-bar-has-help');
      }
    };

    /**
     * Set the current score
     * @method setScore
     * @memberOf H5P.JoubelScoreBar#
     * @param  {number} score
     */
    self.setScore = function (score) {
      // Do nothing if score hasn't changed
      if (score === self.score) {
        return;
      }
      self.score = score > self.maxScore ? self.maxScore : score;
      self.updateVisuals();
    };

    /**
     * Increment score
     * @method incrementScore
     * @memberOf H5P.JoubelScoreBar#
     * @param  {number=}        incrementBy Optional parameter, defaults to 1
     */
    self.incrementScore = function (incrementBy) {
      self.setScore(self.score + (incrementBy || 1));
    };

    /**
     * Set the max score
     * @method setMaxScore
     * @memberOf H5P.JoubelScoreBar#
     * @param  {number}    maxScore The max score
     */
    self.setMaxScore = function (maxScore) {
      self.maxScore = maxScore;
    };

    /**
     * Updates the progressbar visuals
     * @memberOf H5P.JoubelScoreBar#
     * @method updateVisuals
     */
    self.updateVisuals = function () {
      self.$progress.html(createLabel(self.score));
      self.$scoreCounter.text(self.score);
      self.$maxScore.text(self.maxScore);

      setTimeout(function () {
        // Start the progressbar animation
        self.$progress.css({
          width: ((self.score / self.maxScore) * 100) + '%'
        });

        H5P.Transition.onTransitionEnd(self.$progress, function () {
          // If fullscore fill the star and start the animation
          self.$scoreBar.toggleClass('h5p-joubelui-score-bar-full-score', self.score === self.maxScore);
          self.$scoreBar.toggleClass('h5p-joubelui-score-bar-animation-active', self.score === self.maxScore);

          // Only allow the star animation to run once
          self.$scoreBar.one("animationend", function() {
            self.$scoreBar.removeClass("h5p-joubelui-score-bar-animation-active");
          });
        }, 600);
      }, 300);
    };

    /**
     * Removes all classes
     * @method reset
     */
    self.reset = function () {
      self.$scoreBar.removeClass('h5p-joubelui-score-bar-full-score');
    };

    createHtml();
  }

  return JoubelScoreBar;
})(H5P.jQuery);
;var H5P = H5P || {};

H5P.JoubelProgressbar = (function ($) {

  /**
   * Joubel progressbar class
   * @method JoubelProgressbar
   * @constructor
   * @param  {number}          steps Number of steps
   * @param {Object} [options] Additional options
   * @param {boolean} [options.disableAria] Disable readspeaker assistance
   * @param {string} [options.progressText] A progress text for describing
   *  current progress out of total progress for readspeakers.
   *  e.g. "Slide :num of :total"
   */
  function JoubelProgressbar(steps, options) {
    H5P.EventDispatcher.call(this);
    var self = this;
    this.options = $.extend({
      progressText: 'Slide :num of :total'
    }, options);
    this.currentStep = 0;
    this.steps = steps;

    this.$progressbar = $('<div>', {
      'class': 'h5p-joubelui-progressbar'
    });
    this.$background = $('<div>', {
      'class': 'h5p-joubelui-progressbar-background'
    }).appendTo(this.$progressbar);
  }

  JoubelProgressbar.prototype = Object.create(H5P.EventDispatcher.prototype);
  JoubelProgressbar.prototype.constructor = JoubelProgressbar;

  JoubelProgressbar.prototype.updateAria = function () {
    var self = this;
    if (this.options.disableAria) {
      return;
    }

    if (!this.$currentStatus) {
      this.$currentStatus = $('<div>', {
        'class': 'h5p-joubelui-progressbar-slide-status-text',
        'aria-live': 'assertive'
      }).appendTo(this.$progressbar);
    }
    var interpolatedProgressText = self.options.progressText
      .replace(':num', self.currentStep)
      .replace(':total', self.steps);
    this.$currentStatus.html(interpolatedProgressText);
  };

  /**
   * Appends to a container
   * @method appendTo
   * @param  {H5P.jquery} $container
   */
  JoubelProgressbar.prototype.appendTo = function ($container) {
    this.$progressbar.appendTo($container);
  };

  /**
   * Update progress
   * @method setProgress
   * @param  {number}    step
   */
  JoubelProgressbar.prototype.setProgress = function (step) {
    // Check for valid value:
    if (step > this.steps || step < 0) {
      return;
    }
    this.currentStep = step;
    this.$background.css({
      width: ((this.currentStep/this.steps)*100) + '%'
    });

    this.updateAria();
  };

  /**
   * Increment progress with 1
   * @method next
   */
  JoubelProgressbar.prototype.next = function () {
    this.setProgress(this.currentStep+1);
  };

  /**
   * Reset progressbar
   * @method reset
   */
  JoubelProgressbar.prototype.reset = function () {
    this.setProgress(0);
  };

  /**
   * Check if last step is reached
   * @method isLastStep
   * @return {Boolean}
   */
  JoubelProgressbar.prototype.isLastStep = function () {
    return this.steps === this.currentStep;
  };

  return JoubelProgressbar;
})(H5P.jQuery);
;var H5P = H5P || {};

/**
 * H5P Joubel UI library.
 *
 * This is a utility library, which does not implement attach. I.e, it has to bee actively used by
 * other libraries
 * @module
 */
H5P.JoubelUI = (function ($) {

  /**
   * The internal object to return
   * @class H5P.JoubelUI
   * @static
   */
  function JoubelUI() {}

  /* Public static functions */

  /**
   * Create a tip icon
   * @method H5P.JoubelUI.createTip
   * @param  {string}  text   The textual tip
   * @param  {Object}  params Parameters
   * @return {H5P.JoubelTip}
   */
  JoubelUI.createTip = function (text, params) {
    return new H5P.JoubelTip(text, params);
  };

  /**
   * Create message dialog
   * @method H5P.JoubelUI.createMessageDialog
   * @param  {H5P.jQuery}               $container The dom container
   * @param  {string}                   message    The message
   * @return {H5P.JoubelMessageDialog}
   */
  JoubelUI.createMessageDialog = function ($container, message) {
    return new H5P.JoubelMessageDialog($container, message);
  };

  /**
   * Create help text dialog
   * @method H5P.JoubelUI.createHelpTextDialog
   * @param  {string}             header  The textual header
   * @param  {string}             message The textual message
   * @param  {string}             closeButtonTitle The title for the close button
   * @return {H5P.JoubelHelpTextDialog}
   */
  JoubelUI.createHelpTextDialog = function (header, message, closeButtonTitle) {
    return new H5P.JoubelHelpTextDialog(header, message, closeButtonTitle);
  };

  /**
   * Create progress circle
   * @method H5P.JoubelUI.createProgressCircle
   * @param  {number}             number          The progress (0 to 100)
   * @param  {string}             progressColor   The progress color in hex value
   * @param  {string}             fillColor       The fill color in hex value
   * @param  {string}             backgroundColor The background color in hex value
   * @return {H5P.JoubelProgressCircle}
   */
  JoubelUI.createProgressCircle = function (number, progressColor, fillColor, backgroundColor) {
    return new H5P.JoubelProgressCircle(number, progressColor, fillColor, backgroundColor);
  };

  /**
   * Create throbber for loading
   * @method H5P.JoubelUI.createThrobber
   * @return {H5P.JoubelThrobber}
   */
  JoubelUI.createThrobber = function () {
    return new H5P.JoubelThrobber();
  };

  /**
   * Create simple rounded button
   * @method H5P.JoubelUI.createSimpleRoundedButton
   * @param  {string}                  text The button label
   * @return {H5P.SimpleRoundedButton}
   */
  JoubelUI.createSimpleRoundedButton = function (text) {
    return new H5P.SimpleRoundedButton(text);
  };

  /**
   * Create Slider
   * @method H5P.JoubelUI.createSlider
   * @param  {Object} [params] Parameters
   * @return {H5P.JoubelSlider}
   */
  JoubelUI.createSlider = function (params) {
    return new H5P.JoubelSlider(params);
  };

  /**
   * Create Score Bar
   * @method H5P.JoubelUI.createScoreBar
   * @param  {number=}       maxScore The maximum score
   * @param {string} [label] Makes it easier for readspeakers to identify the scorebar
   * @return {H5P.JoubelScoreBar}
   */
  JoubelUI.createScoreBar = function (maxScore, label, helpText, scoreExplanationButtonLabel) {
    return new H5P.JoubelScoreBar(maxScore, label, helpText, scoreExplanationButtonLabel);
  };

  /**
   * Create Progressbar
   * @method H5P.JoubelUI.createProgressbar
   * @param  {number=}       numSteps The total numer of steps
   * @param {Object} [options] Additional options
   * @param {boolean} [options.disableAria] Disable readspeaker assistance
   * @param {string} [options.progressText] A progress text for describing
   *  current progress out of total progress for readspeakers.
   *  e.g. "Slide :num of :total"
   * @return {H5P.JoubelProgressbar}
   */
  JoubelUI.createProgressbar = function (numSteps, options) {
    return new H5P.JoubelProgressbar(numSteps, options);
  };

  /**
   * Create standard Joubel button
   *
   * @method H5P.JoubelUI.createButton
   * @param {object} params
   *  May hold any properties allowed by jQuery. If href is set, an A tag
   *  is used, if not a button tag is used.
   * @return {H5P.jQuery} The jquery element created
   */
  JoubelUI.createButton = function(params) {
    var type = 'button';
    if (params.href) {
      type = 'a';
    }
    else {
      params.type = 'button';
    }
    if (params.class) {
      params.class += ' h5p-joubelui-button';
    }
    else {
      params.class = 'h5p-joubelui-button';
    }
    return $('<' + type + '/>', params);
  };

  /**
   * Fix for iframe scoll bug in IOS. When focusing an element that doesn't have
   * focus support by default the iframe will scroll the parent frame so that
   * the focused element is out of view. This varies dependening on the elements
   * of the parent frame.
   */
  if (H5P.isFramed && !H5P.hasiOSiframeScrollFix &&
      /iPad|iPhone|iPod/.test(navigator.userAgent)) {
    H5P.hasiOSiframeScrollFix = true;

    // Keep track of original focus function
    var focus = HTMLElement.prototype.focus;

    // Override the original focus
    HTMLElement.prototype.focus = function () {
      // Only focus the element if it supports it natively
      if ( (this instanceof HTMLAnchorElement ||
            this instanceof HTMLInputElement ||
            this instanceof HTMLSelectElement ||
            this instanceof HTMLTextAreaElement ||
            this instanceof HTMLButtonElement ||
            this instanceof HTMLIFrameElement ||
            this instanceof HTMLAreaElement) && // HTMLAreaElement isn't supported by Safari yet.
          !this.getAttribute('role')) { // Focus breaks if a different role has been set
          // In theory this.isContentEditable should be able to recieve focus,
          // but it didn't work when tested.

        // Trigger the original focus with the proper context
        focus.call(this);
      }
    };
  }

  return JoubelUI;
})(H5P.jQuery);
;(()=>{var e={454:e=>{e.exports=function(e,t){this.index=e,this.parent=t}},270:(e,t,i)=>{const n=i(454),r=H5P.EventDispatcher;function s(e,t){const i=this;r.call(i),i.children=[];var s=function(e){for(let t=e;t<i.children.length;t++)i.children[t].index=t};if(i.addChild=function(t,r){void 0===r&&(r=i.children.length);const o=new n(r,i);return r===i.children.length?i.children.push(o):(i.children.splice(r,0,o),s(r)),e.call(o,t),o},i.removeChild=function(e){i.children.splice(e,1),s(e)},i.moveChild=function(e,t){const n=i.children.splice(e,1)[0];i.children.splice(t,0,n),s(t<e?t:e)},t)for(let e=0;e<t.length;e++)i.addChild(t[e])}s.prototype=Object.create(r.prototype),s.prototype.constructor=s,e.exports=s}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={exports:{}};return e[n](s,s.exports,i),s.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";var e=i(270),t=i.n(e),n=H5P.jQuery,r=H5P.EventDispatcher,s=H5P.JoubelUI,o=function(e){return e.concat.apply([],e)},a=function(e){return"function"==typeof e},l=null!==navigator.userAgent.match(/iPad/i),c=null!==navigator.userAgent.match(/iPad|iPod|iPhone/i),d=function(e,t){return-1!==e.indexOf(t)},p=function(e,t){return void 0!==e?e:t},h=13,u=27,f=32,m=function(e,t,i){e.click((function(e){t.call(i||this,e)})),e.keydown((function(e){d([h,f],e.which)&&(e.preventDefault(),t.call(i||this,e))}))},v=n("<div>");const g=function(){function e(e,t){this.$summarySlide=t,this.cp=e}return e.prototype.updateSummarySlide=function(e,t){var i=this,r=void 0===this.cp.editor&&void 0!==this.$summarySlide&&e>=this.cp.slides.length-1,o=!this.cp.showSummarySlide&&this.cp.hasAnswerElements;if(r){i.cp.presentation.keywordListEnabled&&i.cp.presentation.keywordListAlwaysShow&&i.cp.hideKeywords(),this.$summarySlide.children().remove();var a=i.cp.getSlideScores(t),l=i.outputScoreStats(a);if(n(l).appendTo(i.$summarySlide),!o){var c=i.totalScores(a);if(!isNaN(c.totalPercentage)){var d=s.createScoreBar(c.totalMaxScore,"","","");d.setScore(c.totalScore);var p=n(".h5p-summary-total-score",i.$summarySlide);d.appendTo(p),setTimeout((function(){p.append(n("<div/>",{"aria-live":"polite",class:"hidden-but-read",html:i.cp.l10n.summary+". "+i.cp.l10n.accessibilityTotalScore.replace("@score",c.totalScore).replace("@maxScore",c.totalMaxScore)}))}),100)}if(!0===i.cp.enableTwitterShare){var h=n(".h5p-summary-twitter-message",i.$summarySlide);this.addTwitterScoreLinkTo(h,c)}if(!0===i.cp.enableFacebookShare){var u=n(".h5p-summary-facebook-message",i.$summarySlide);this.addFacebookScoreLinkTo(u,c)}if(!0===i.cp.enableGoogleShare){var f=n(".h5p-summary-google-message",i.$summarySlide);this.addGoogleScoreLinkTo(f)}i.$summarySlide.find(".h5p-td > .h5p-slide-link").each((function(){var e=n(this);e.click((function(t){i.cp.jumpToSlide(parseInt(e.data("slide"),10)-1),t.preventDefault()}))}))}var m=n(".h5p-summary-footer",i.$summarySlide);this.cp.showSummarySlideSolutionButton&&s.createButton({class:"h5p-show-solutions",html:i.cp.l10n.showSolutions,on:{click:function(){i.toggleSolutionMode(!0)}},appendTo:m}),this.cp.showSummarySlideRetryButton&&s.createButton({class:"h5p-cp-retry-button",html:i.cp.l10n.retry,on:{click:function(){i.cp.resetTask()}},appendTo:m}),i.cp.hasAnswerElements&&s.createButton({class:"h5p-eta-export",html:i.cp.l10n.exportAnswers,on:{click:function(){H5P.ExportableTextArea.Exporter.run(i.cp.slides,i.cp.elementInstances)}},appendTo:m})}},e.prototype.outputScoreStats=function(e){if(void 0===e)return this.$summarySlide.addClass("h5p-summary-only-export"),'<div class="h5p-summary-footer"></div>';var t,i=this,n=0,r=0,s="",o=0,a="";for(t=0;t<e.length;t+=1)a=this.getSlideDescription(e[t]),o=Math.round(e[t].score/e[t].maxScore*100),isNaN(o)&&(o=0),s+='<tr><td class="h5p-td h5p-summary-task-title"><a href="#" class="h5p-slide-link"  aria-label=" '+i.cp.l10n.slide+" "+e[t].slide+": "+a.replace(/(<([^>]+)>)/gi,"")+" "+o+'%" data-slide="'+e[t].slide+'">'+i.cp.l10n.slide+" "+e[t].slide+": "+a.replace(/(<([^>]+)>)/gi,"")+'</a></td><td class="h5p-td h5p-summary-score-bar"><p class="hidden-but-read">'+o+"%</p><p>"+e[t].score+"<span>/</span>"+e[t].maxScore+"</p></td></tr>",n+=e[t].score,r+=e[t].maxScore;this.cp.isSolutionMode||this.cp.ignoreResize||i.cp.triggerXAPICompleted(n,r);var l=i.cp.enableTwitterShare||i.cp.enableFacebookShare||i.cp.enableGoogleShare?'<span class="h5p-show-results-text">'+i.cp.l10n.shareResult+"</span>":"",c=!0===i.cp.enableTwitterShare?'<span class="h5p-summary-twitter-message" aria-label="'+i.cp.l10n.shareTwitter+'"></span>':"",d=!0===i.cp.enableFacebookShare?'<span class="h5p-summary-facebook-message" aria-label="'+i.cp.l10n.shareFacebook+'"></span>':"",p=!0===i.cp.enableGoogleShare?'<span class="h5p-summary-google-message" aria-label="'+i.cp.l10n.shareGoogle+'"></span>':"";return'<div class="h5p-summary-table-holder"><div class="h5p-summary-table-pages"><table class="h5p-score-table"><thead><tr><th class="h5p-summary-table-header slide">'+i.cp.l10n.slide+'</th><th class="h5p-summary-table-header score">'+i.cp.l10n.score+"<span>/</span>"+i.cp.l10n.total.toLowerCase()+"</th></tr></thead><tbody>"+s+'</tbody></table></div><div class="h5p-summary-total-table"><div class="h5p-summary-social">'+l+d+c+p+'</div><div class="h5p-summary-total-score"><p>'+i.cp.l10n.totalScore+'</p></div></div></div><div class="h5p-summary-footer"></div>'},e.prototype.getSlideDescription=function(e){var t,i,n=this,r=n.cp.slides[e.slide-1].elements;if(e.indexes.length>1)t=n.cp.l10n.summaryMultipleTaskText;else if(void 0!==r[e.indexes[0]]&&r[0])if(i=r[e.indexes[0]].action,"function"==typeof n.cp.elementInstances[e.slide-1][e.indexes[0]].getTitle)t=n.cp.elementInstances[e.slide-1][e.indexes[0]].getTitle();else if(void 0!==i.library&&i.library){var s=i.library.split(" ")[0].split(".")[1].split(/(?=[A-Z])/),o="";s.forEach((function(e,t){0!==t&&(e=e.toLowerCase()),o+=e,t<=s.length-1&&(o+=" ")})),t=o}return t},e.prototype.addTwitterScoreLinkTo=function(e,t){var i=this,n=i.cp.twitterShareStatement||"",r=i.cp.twitterShareHashtags||"",s=i.cp.twitterShareUrl||"";s=s.replace("@currentpageurl",window.location.href),n=n.replace("@score",t.totalScore).replace("@maxScore",t.totalMaxScore).replace("@percentage",t.totalPercentage+"%").replace("@currentpageurl",window.location.href),r=r.trim().replace(" ",""),n=encodeURIComponent(n),r=encodeURIComponent(r),s=encodeURIComponent(s);var o="https://twitter.com/intent/tweet?";o+=n.length>0?"text="+n+"&":"",o+=s.length>0?"url="+s+"&":"",o+=r.length>0?"hashtags="+r:"";var a=window.innerWidth/2,l=window.innerHeight/2;e.attr("tabindex","0").attr("role","button"),m(e,(function(){return window.open(o,i.cp.l10n.shareTwitter,"width=800,height=300,left="+a+",top="+l),!1}))},e.prototype.addFacebookScoreLinkTo=function(e,t){var i=this,n=i.cp.facebookShareUrl||"",r=i.cp.facebookShareQuote||"";n=n.replace("@currentpageurl",window.location.href),r=r.replace("@currentpageurl",window.location.href).replace("@percentage",t.totalPercentage+"%").replace("@score",t.totalScore).replace("@maxScore",t.totalMaxScore),n=encodeURIComponent(n),r=encodeURIComponent(r);var s="https://www.facebook.com/sharer/sharer.php?";s+=n.length>0?"u="+n+"&":"",s+=r.length>0?"quote="+r:"";var o=window.innerWidth/2,a=window.innerHeight/2;e.attr("tabindex","0").attr("role","button"),m(e,(function(){return window.open(s,i.cp.l10n.shareFacebook,"width=800,height=300,left="+o+",top="+a),!1}))},e.prototype.addGoogleScoreLinkTo=function(e){var t=this,i=t.cp.googleShareUrl||"";i=i.replace("@currentpageurl",window.location.href),i=encodeURIComponent(i);var n="https://plus.google.com/share?";n+=i.length>0?"url="+i:"";var r=window.innerWidth/2,s=window.innerHeight/2;e.attr("tabindex","0").attr("role","button"),m(e,(function(){return window.open(n,t.cp.l10n.shareGoogle,"width=401,height=437,left="+r+",top="+s),!1}))},e.prototype.totalScores=function(e){if(void 0===e)return{totalScore:0,totalMaxScore:0,totalPercentage:0};var t,i=0,n=0;for(t=0;t<e.length;t+=1)i+=e[t].score,n+=e[t].maxScore;var r=Math.round(i/n*100);return isNaN(r)&&(r=0),{totalScore:i,totalMaxScore:n,totalPercentage:r}},e.prototype.toggleSolutionMode=function(e){if(this.cp.isSolutionMode=e,e){var t=this.cp.showSolutions();this.cp.setProgressBarFeedback(t),this.cp.$footer.addClass("h5p-footer-solution-mode"),this.setFooterSolutionModeText(this.cp.l10n.solutionModeText)}else this.cp.$footer.removeClass("h5p-footer-solution-mode"),this.setFooterSolutionModeText(),this.cp.setProgressBarFeedback()},e.prototype.setFooterSolutionModeText=function(e){void 0!==e&&e?this.cp.$exitSolutionModeText.html(e):this.cp.$exitSolutionModeText&&this.cp.$exitSolutionModeText.html("")},e}();var b=function(e){var t=0;function i(){}return i.supported=function(){return"function"==typeof window.print},i.print=function(t,i,n){t.trigger("printing",{finished:!1,allSlides:n});var r=e(".h5p-slide.h5p-current"),s=r.height(),o=r.width()/670,a=e(".h5p-slide");a.css({height:s/o+"px",width:"670px",fontSize:Math.floor(100/o)+"%"}),e(".h5p-summary-slide").css("height","");var l=e(".h5p-joubelui-score-bar-star").css("display");e(".h5p-joubelui-score-bar-star").css("display","none");var c=i.height();i.css("height","auto"),a.toggleClass("doprint",!0===n),r.addClass("doprint");var d=function(){a.css({height:"",width:"",fontSize:""}),i.css("height",c+"px"),e(".h5p-joubelui-score-bar-star").css("display",l),t.trigger("printing",{finished:!0})};setTimeout((function(){window.focus(),window.print(),/iPad|iPhone|Macintosh|MacIntel|MacPPC|Mac68K/.test(navigator.userAgent)?setTimeout((function(){d()}),1500):d()}),500)},i.showDialog=function(i,n,r){var s=this,o=t++,a="h5p-cp-print-dialog-".concat(o,"-title"),l="h5p-cp-print-dialog-".concat(o,"-ingress"),c=e('<div class="h5p-popup-dialog h5p-print-dialog">\n                      <div role="dialog" aria-labelledby="'.concat(a,'" aria-describedby="').concat(l,'" tabindex="-1" class="h5p-inner">\n                        <h2 id="').concat(a,'">').concat(i.printTitle,'</h2>\n                        <div class="h5p-scroll-content"></div>\n                        <div class="h5p-close" role="button" tabindex="0" title="').concat(H5P.t("close"),'">\n                      </div>\n                    </div>')).insertAfter(n).click((function(){s.close()})).children(".h5p-inner").click((function(){return!1})).end();m(c.find(".h5p-close"),(function(){return s.close()}));var d=c.find(".h5p-scroll-content");return d.append(e("<div>",{class:"h5p-cp-print-ingress",id:l,html:i.printIngress})),H5P.JoubelUI.createButton({html:i.printAllSlides,class:"h5p-cp-print-all-slides",click:function(){s.close(),r(!0)}}).appendTo(d),H5P.JoubelUI.createButton({html:i.printCurrentSlide,class:"h5p-cp-print-current-slide",click:function(){s.close(),r(!1)}}).appendTo(d),this.open=function(){setTimeout((function(){c.addClass("h5p-open"),H5P.jQuery(s).trigger("dialog-opened",[c])}),1)},this.close=function(){c.removeClass("h5p-open"),setTimeout((function(){c.remove()}),200)},this.open(),c},i}(H5P.jQuery);const y=b,S=function(e){const t=e.length;return function i(){const n=Array.prototype.slice.call(arguments,0);return n.length>=t?e.apply(null,n):function(){const e=Array.prototype.slice.call(arguments,0);return i.apply(null,n.concat(e))}}},w=S((function(e,t){t.forEach(e)})),x=(S((function(e,t){return t.map(e)})),S((function(e,t){return t.filter(e)}))),T=(S((function(e,t){return t.some(e)})),S((function(e,t){return-1!=t.indexOf(e)}))),k=S((function(e,t){return x((t=>!T(t,e)),t)})),C=S(((e,t)=>t.getAttribute(e))),E=S(((e,t,i)=>i.setAttribute(e,t))),P=S(((e,t)=>t.removeAttribute(e))),$=S(((e,t)=>t.hasAttribute(e))),I=(S(((e,t,i)=>i.getAttribute(e)===t)),S(((e,t)=>{const i=C(e,t);E(e,("true"!==i).toString(),t)})),S(((e,t)=>e.appendChild(t))),S(((e,t)=>t.querySelector(e))),S(((e,t)=>{return i=t.querySelectorAll(e),Array.prototype.slice.call(i);var i})),S(((e,t)=>e.removeChild(t))),S(((e,t)=>t.classList.contains(e))),S(((e,t)=>t.classList.add(e)))),A=S(((e,t)=>t.classList.remove(e))),B=I("hidden"),H=A("hidden"),M=(S(((e,t)=>(e?H:B)(t))),S(((e,t,i)=>{i.classList[t?"add":"remove"](e)})),P("tabindex")),L=(w(M),E("tabindex","0")),j=E("tabindex","-1"),D=$("tabindex");class O{constructor(e){Object.assign(this,{listeners:{},on:function(e,t,i){const n={listener:t,scope:i};return this.listeners[e]=this.listeners[e]||[],this.listeners[e].push(n),this},fire:function(e,t){return(this.listeners[e]||[]).every((function(e){return!1!==e.listener.call(e.scope||this,t)}))},propagate:function(e,t){let i=this;e.forEach((e=>t.on(e,(t=>i.fire(e,t)))))}}),this.plugins=e||[],this.elements=[],this.negativeTabIndexAllowed=!1,this.on("nextElement",this.nextElement,this),this.on("previousElement",this.previousElement,this),this.on("firstElement",this.firstElement,this),this.on("lastElement",this.lastElement,this),this.initPlugins()}addElement(e){this.elements.push(e),this.firesEvent("addElement",e),1===this.elements.length&&this.setTabbable(e)}insertElementAt(e,t){this.elements.splice(t,0,e),this.firesEvent("addElement",e),1===this.elements.length&&this.setTabbable(e)}removeElement(e){this.elements=k([e],this.elements),D(e)&&(this.setUntabbable(e),this.elements[0]&&this.setTabbable(this.elements[0])),this.firesEvent("removeElement",e)}count(){return this.elements.length}firesEvent(e,t){const i=this.elements.indexOf(t);return this.fire(e,{element:t,index:i,elements:this.elements,oldElement:this.tabbableElement})}nextElement({index:e}){const t=e===this.elements.length-1,i=this.elements[t?0:e+1];this.setTabbable(i),i.focus()}firstElement(){const e=this.elements[0];this.setTabbable(e),e.focus()}lastElement(){const e=this.elements[this.elements.length-1];this.setTabbable(e),e.focus()}setTabbableByIndex(e){const t=this.elements[e];t&&this.setTabbable(t)}setTabbable(e){w(this.setUntabbable.bind(this),this.elements),L(e),this.tabbableElement=e}setUntabbable(e){e!==document.activeElement&&(this.negativeTabIndexAllowed?j(e):M(e))}previousElement({index:e}){const t=0===e,i=this.elements[t?this.elements.length-1:e-1];this.setTabbable(i),i.focus()}useNegativeTabIndex(){this.negativeTabIndexAllowed=!0,this.elements.forEach((e=>{e.hasAttribute("tabindex")||j(e)}))}initPlugins(){this.plugins.forEach((function(e){void 0!==e.init&&e.init(this)}),this)}}class K{constructor(){this.selectability=!0}init(e){this.boundHandleKeyDown=this.handleKeyDown.bind(this),this.controls=e,this.controls.on("addElement",this.listenForKeyDown,this),this.controls.on("removeElement",this.removeKeyDownListener,this)}listenForKeyDown({element:e}){e.addEventListener("keydown",this.boundHandleKeyDown)}removeKeyDownListener({element:e}){e.removeEventListener("keydown",this.boundHandleKeyDown)}handleKeyDown(e){switch(e.which){case 27:this.close(e.target),e.preventDefault(),e.stopPropagation();break;case 35:this.lastElement(e.target),e.preventDefault(),e.stopPropagation();break;case 36:this.firstElement(e.target),e.preventDefault(),e.stopPropagation();break;case 13:case 32:this.select(e.target),e.preventDefault(),e.stopPropagation();break;case 37:case 38:this.hasChromevoxModifiers(e)||(this.previousElement(e.target),e.preventDefault(),e.stopPropagation());break;case 39:case 40:this.hasChromevoxModifiers(e)||(this.nextElement(e.target),e.preventDefault(),e.stopPropagation())}}hasChromevoxModifiers(e){return e.shiftKey||e.ctrlKey}previousElement(e){!1!==this.controls.firesEvent("beforePreviousElement",e)&&(this.controls.firesEvent("previousElement",e),this.controls.firesEvent("afterPreviousElement",e))}nextElement(e){!1!==this.controls.firesEvent("beforeNextElement",e)&&(this.controls.firesEvent("nextElement",e),this.controls.firesEvent("afterNextElement",e))}select(e){this.selectability&&!1!==this.controls.firesEvent("before-select",e)&&(this.controls.firesEvent("select",e),this.controls.firesEvent("after-select",e))}firstElement(e){!1!==this.controls.firesEvent("beforeFirstElement",e)&&(this.controls.firesEvent("firstElement",e),this.controls.firesEvent("afterFirstElement",e))}lastElement(e){!1!==this.controls.firesEvent("beforeLastElement",e)&&(this.controls.firesEvent("lastElement",e),this.controls.firesEvent("afterLastElement",e))}disableSelectability(){this.selectability=!1}enableSelectability(){this.selectability=!0}close(e){!1!==this.controls.firesEvent("before-close",e)&&(this.controls.firesEvent("close",e),this.controls.firesEvent("after-close",e))}}function F(e){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},F(e)}function W(e,t,i){var n;return n=function(e,t){if("object"!=F(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=F(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(t,"string"),(t="symbol"==F(n)?n:n+"")in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var N="none",z="not-answered",R="answered",Q="has-only-correct",U="has-incorrect",G=function(e){function t(e){this.cp=e,this.answeredLabels=W(W(W(W(W({},z,this.cp.l10n.containsNotCompleted+"."),R,this.cp.l10n.containsCompleted+"."),Q,this.cp.l10n.containsOnlyCorrect+"."),U,this.cp.l10n.containsIncorrectAnswers+"."),N,""),this.initProgressbar(this.cp.slidesWithSolutions),this.initFooter(),this.initTaskAnsweredListener(),this.toggleNextAndPreviousButtonDisabled(this.cp.getCurrentSlideIndex())}return t.prototype.initTaskAnsweredListener=function(){var e=this;this.cp.elementInstances.forEach((function(t,i){t.filter((function(e){return a(e.on)})).forEach((function(t){t.on("xAPI",(function(t){var n=t.getVerb();if(d(["interacted","answered","attempted"],n)){var r=e.cp.slideHasAnsweredTask(i);e.setTaskAnswered(i,r)}else if("completed"===n){var s=e.cp.slideHasAnsweredTask(i);e.setTaskAnswered(i,s),t.setVerb("answered")}void 0===t.data.statement.context.extensions&&(t.data.statement.context.extensions={}),t.data.statement.context.extensions["http://id.tincanapi.com/extension/ending-point"]=i+1}))}))}))},t.prototype.initProgressbar=function(t){var i=this,n=i.cp.previousState&&i.cp.previousState.progress||0;this.progresbarKeyboardControls=new O([new K]),this.progresbarKeyboardControls.negativeTabIndexAllowed=!0,this.progresbarKeyboardControls.on("select",(function(t){i.displaySlide(e(t.element).data("slideNumber"))})),this.progresbarKeyboardControls.on("beforeNextElement",(function(e){return e.index!==e.elements.length-1})),this.progresbarKeyboardControls.on("beforePreviousElement",(function(e){return 0!==e.index})),void 0!==this.cp.progressbarParts&&this.cp.progressbarParts&&this.cp.progressbarParts.forEach((function(e){i.progresbarKeyboardControls.removeElement(e.children("a").get(0)),e.remove()})),i.cp.progressbarParts=[];for(var r=function(t){t.preventDefault();var n=e(this).data("slideNumber");i.progresbarKeyboardControls.setTabbableByIndex(n),i.displaySlide(n),i.cp.focus()},s=0;s<this.cp.slides.length;s+=1){var o=this.cp.slides[s],a=this.createSlideTitle(s),l=e("<div>",{class:"h5p-progressbar-part",id:"progressbar-part-"+s,role:"tab","aria-label":a,"aria-controls":"slide-"+s,"aria-selected":!1}).appendTo(i.cp.$progressbar),d=e("<a>",{href:"#",html:'<span class="h5p-progressbar-part-title hidden-but-read">'+a+"</span>",tabindex:"-1"}).data("slideNumber",s).click(r).appendTo(l);if(this.progresbarKeyboardControls.addElement(d.get(0)),this.isSummarySlide(s)&&l.addClass("progressbar-part-summary-slide"),c||H5P.Tooltip(l.get(0),{position:"top"}),0===s&&l.addClass("h5p-progressbar-part-show"),s===n&&l.addClass("h5p-progressbar-part-selected").attr("aria-selected",!0),i.cp.progressbarParts.push(l),this.updateSlideTitle(s),this.cp.slides.length<=60&&o.elements&&o.elements.length>0){var p=t[s]&&t[s].length>0,h=!!(i.cp.previousState&&i.cp.previousState.answered&&i.cp.previousState.answered[s]);p&&(e("<div>",{class:"h5p-progressbar-part-has-task"}).appendTo(d),this.setTaskAnswered(s,h))}}},t.prototype.displaySlide=function(e){var t=this;this.cp.jumpToSlide(e,!1,(function(){var i=t.cp.getCurrentSlideIndex();t.updateSlideTitle(e,{isCurrent:!0}),t.updateSlideTitle(i,{isCurrent:!1}),t.toggleNextAndPreviousButtonDisabled(e),t.cp.focus()}))},t.prototype.createSlideTitle=function(e){var t=this.cp.slides[e];return t.keywords&&t.keywords.length>0?t.keywords[0].main:this.isSummarySlide(e)?this.cp.l10n.summary:this.cp.l10n.slide+" "+(e+1)},t.prototype.isSummarySlide=function(e){return!(void 0!==this.cp.editor||e!==this.cp.slides.length-1||!this.cp.showSummarySlide)},t.prototype.initFooter=function(){var t=this,i=this,n=this.cp.$footer,r=e("<div/>",{class:"h5p-footer-left-adjusted"}).appendTo(n),s=e("<div/>",{class:"h5p-footer-center-adjusted"}).appendTo(n),o=e("<div/>",{role:"toolbar",class:"h5p-footer-right-adjusted"}).appendTo(n);this.cp.$keywordsButton=e("<div/>",{class:"h5p-footer-button h5p-footer-toggle-keywords","aria-expanded":"false","aria-label":this.cp.l10n.showKeywords,role:"button",tabindex:"0",html:'<span class="h5p-icon-menu"></span><span class="current-slide-title"></span>'}).appendTo(r),H5P.Tooltip(this.cp.$keywordsButton.get(0)),m(this.cp.$keywordsButton,(function(e){i.cp.presentation.keywordListAlwaysShow||(i.cp.toggleKeywords(),e.stopPropagation())})),!this.cp.presentation.keywordListAlwaysShow&&this.cp.initKeywords||this.cp.$keywordsButton.hide(),this.cp.presentation.keywordListEnabled||this.cp.$keywordsWrapper.add(this.$keywordsButton).hide(),this.updateFooterKeyword(0),this.cp.$prevSlideButton=e("<div/>",{class:"h5p-footer-button h5p-footer-previous-slide","aria-label":this.cp.l10n.prevSlide,role:"button",tabindex:"-1","aria-disabled":"true"}).appendTo(s),new H5P.Tooltip(this.cp.$prevSlideButton.get(0),{position:"left"}),m(this.cp.$prevSlideButton,(function(){return t.cp.previousSlide(void 0,!1)}));var a=e("<div/>",{class:"h5p-footer-slide-count"}).appendTo(s);this.cp.$footerCurrentSlide=e("<div/>",{html:"1",class:"h5p-footer-slide-count-current",title:this.cp.l10n.currentSlide,"aria-hidden":"true"}).appendTo(a),this.cp.$footerCounter=e("<div/>",{class:"hidden-but-read",html:this.cp.l10n.slideCount.replace("@index","1").replace("@total",this.cp.slides.length.toString())}).appendTo(s),e("<div/>",{html:"/",class:"h5p-footer-slide-count-delimiter","aria-hidden":"true"}).appendTo(a),this.cp.$footerMaxSlide=e("<div/>",{html:this.cp.slides.length,class:"h5p-footer-slide-count-max",title:this.cp.l10n.lastSlide,"aria-hidden":"true"}).appendTo(a),this.cp.$nextSlideButton=e("<div/>",{class:"h5p-footer-button h5p-footer-next-slide","aria-label":this.cp.l10n.nextSlide,role:"button",tabindex:"0"}).appendTo(s),H5P.Tooltip(this.cp.$nextSlideButton.get(0),{position:"right"}),m(this.cp.$nextSlideButton,(function(){return t.cp.nextSlide(void 0,!1)})),void 0===this.cp.editor&&(this.cp.$exitSolutionModeButton=e("<div/>",{role:"button",class:"h5p-footer-exit-solution-mode","aria-label":this.cp.l10n.solutionModeTitle,tabindex:"0"}).appendTo(o),H5P.Tooltip(this.cp.$exitSolutionModeButton.get(0)),m(this.cp.$exitSolutionModeButton,(function(){return i.cp.jumpToSlide(i.cp.slides.length-1)})),this.cp.enablePrintButton&&y.supported()&&(this.cp.$printButton=e("<div/>",{class:"h5p-footer-button h5p-footer-print","aria-label":this.cp.l10n.printTitle,role:"button",tabindex:"0"}).appendTo(o),H5P.Tooltip(this.cp.$printButton.get(0)),m(this.cp.$printButton,(function(){return i.openPrintDialog()}))),H5P.fullscreenSupported&&(this.cp.$fullScreenButton=e("<div/>",{class:"h5p-footer-button h5p-footer-toggle-full-screen","aria-label":this.cp.l10n.fullscreen,role:"button",tabindex:"0"}),H5P.Tooltip(this.cp.$fullScreenButton.get(0),{position:"left"}),m(this.cp.$fullScreenButton,(function(){return i.cp.toggleFullScreen()})),this.cp.$fullScreenButton.appendTo(o))),this.cp.$exitSolutionModeText=e("<div/>",{html:"",class:"h5p-footer-exit-solution-mode-text"}).appendTo(this.cp.$exitSolutionModeButton)},t.prototype.openPrintDialog=function(){var t=this,i=e(".h5p-wrapper");y.showDialog(this.cp.l10n,i,(function(e){y.print(t.cp,i,e)})).children('[role="dialog"]').focus()},t.prototype.updateProgressBar=function(e,t,i){var n,r=this;for(n=0;n<r.cp.progressbarParts.length;n+=1)e+1>n?r.cp.progressbarParts[n].addClass("h5p-progressbar-part-show"):r.cp.progressbarParts[n].removeClass("h5p-progressbar-part-show");r.progresbarKeyboardControls.setTabbableByIndex(e),r.cp.progressbarParts[e].addClass("h5p-progressbar-part-selected").attr("aria-selected",!0).siblings().removeClass("h5p-progressbar-part-selected").attr("aria-selected",!1),void 0!==t?!i&&r.cp.editor:r.cp.progressbarParts.forEach((function(e,t){r.setTaskAnswered(t,!1)}))},t.prototype.setTaskAnswered=function(e,t){this.cp.progressbarParts[e].find(".h5p-progressbar-part-has-task").toggleClass("h5p-answered",t),this.updateSlideTitle(e,{state:t?R:z})},t.prototype.updateSlideTitle=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).state;this.setSlideTitle(e,{state:p(t,this.getAnsweredState(e))})},t.prototype.setSlideTitle=function(e,t){var i=t.state,n=void 0===i?N:i,r=this.cp.progressbarParts[e].find(".h5p-progressbar-part-title"),s=this.answeredLabels[n].replace("@slideName",this.createSlideTitle(e));r.html("".concat(s))},t.prototype.getAnsweredState=function(e){var t=this.cp.progressbarParts[e],i=this.slideHasInteraction(e),n=this.cp.slideHasAnsweredTask(e);return i?t.find(".h5p-is-correct").length>0?Q:t.find(".h5p-is-wrong").length>0?U:n?R:z:N},t.prototype.slideHasInteraction=function(e){return this.cp.progressbarParts[e].find(".h5p-progressbar-part-has-task").length>0},t.prototype.updateFooter=function(e){this.cp.$footerCurrentSlide.html(e+1),this.cp.$footerMaxSlide.html(this.cp.slides.length),this.cp.$footerCounter.html(this.cp.l10n.slideCount.replace("@index",(e+1).toString()).replace("@total",this.cp.slides.length.toString())),this.cp.isSolutionMode&&e===this.cp.slides.length-1?this.cp.$footer.addClass("summary-slide"):this.cp.$footer.removeClass("summary-slide"),this.toggleNextAndPreviousButtonDisabled(e),this.updateFooterKeyword(e)},t.prototype.toggleNextAndPreviousButtonDisabled=function(e){var t=this.cp.slides.length-1;this.cp.$prevSlideButton.attr("aria-disabled",(0===e).toString()),this.cp.$nextSlideButton.attr("aria-disabled",(e===t).toString()),this.cp.$prevSlideButton.attr("tabindex",0===e?"-1":"0"),this.cp.$nextSlideButton.attr("tabindex",e===t?"-1":"0")},t.prototype.updateFooterKeyword=function(e){var t=this.cp.slides[e],i="";t&&t.keywords&&t.keywords[0]&&(i=t.keywords[0].main),!this.cp.isEditor()&&this.cp.showSummarySlide&&e>=this.cp.slides.length-1&&(i=this.cp.l10n.summary),this.cp.$keywordsButton.children(".current-slide-title").html(p(i,""))},t}(H5P.jQuery);const q=G;var X=function(e){var t=e.presentation;t=n.extend(!0,{globalBackgroundSelector:{fillGlobalBackground:"",imageGlobalBackground:{}},slides:[{slideBackgroundSelector:{fillSlideBackground:"",imageSlideBackground:{}}}]},t);var i,r=function(t,i,n){var r=e.$slidesWrapper.children().filter(":not(.h5p-summary-slide)");void 0!==n&&(r=r.eq(n)),t&&""!==t?r.addClass("has-background").css("background-image","").css("background-color",t):i&&i.path&&r.addClass("has-background").css("background-color","").css("background-image","url("+H5P.getPath(i.path,e.contentId)+")")};i=t.globalBackgroundSelector,r(i.fillGlobalBackground,i.imageGlobalBackground),t.slides.forEach((function(e,t){var i=e.slideBackgroundSelector;i&&r(i.fillSlideBackground,i.imageSlideBackground,t)}))},J=function(e){return parseInt(e.dataset.index)},V=function(){function e(e){var t=this,i=e.l10n,n=e.currentIndex;this.l10n=i,this.state={currentIndex:p(n,0)},this.eventDispatcher=new r,this.controls=new O([new K]),this.controls.on("select",(function(e){t.onMenuItemSelect(J(e.element))})),this.controls.on("close",(function(){return t.eventDispatcher.trigger("close")})),this.menuElement=this.createMenuElement(),this.currentSlideMarkerElement=this.createCurrentSlideMarkerElement()}var t=e.prototype;return t.init=function(e){var t=this;return this.menuItemElements=e.map((function(e){return t.createMenuItemElement(e)})),this.menuItemElements.forEach((function(e){return t.menuElement.appendChild(e)})),this.menuItemElements.forEach((function(e){return t.controls.addElement(e)})),this.setCurrentSlideIndex(this.state.currentIndex),this.menuItemElements},t.on=function(e,t){this.eventDispatcher.on(e,t)},t.getElement=function(){return this.menuElement},t.removeAllMenuItemElements=function(){var e=this;this.menuItemElements.forEach((function(t){e.controls.removeElement(t),e.menuElement.removeChild(t)})),this.menuItemElements=[]},t.createMenuElement=function(){var e=this.menuElement=document.createElement("ol");return e.setAttribute("role","menu"),e.classList.add("list-unstyled"),e},t.createMenuItemElement=function(e){var t=this,i=document.createElement("li");return i.setAttribute("role","menuitem"),i.addEventListener("click",(function(e){t.onMenuItemSelect(J(e.currentTarget))})),this.applyConfigToMenuItemElement(i,e),i},t.applyConfigToMenuItemElement=function(e,t){e.innerHTML='<div class="h5p-keyword-subtitle">'.concat(t.subtitle,'</div><span class="h5p-keyword-title">').concat(t.title,"</span>"),e.dataset.index=t.index},t.onMenuItemSelect=function(e){this.setCurrentSlideIndex(e),this.eventDispatcher.trigger("select",{index:e})},t.setCurrentSlideIndex=function(e){var t=this.getElementByIndex(this.menuItemElements,e);t&&(this.state.currentIndex=e,this.updateCurrentlySelected(this.menuItemElements,this.state),this.controls.setTabbable(t))},t.updateCurrentlySelected=function(e,t){var i=this;e.forEach((function(e){var n=t.currentIndex===J(e);e.classList.toggle("h5p-current",n),n&&e.appendChild(i.currentSlideMarkerElement)}))},t.scrollToKeywords=function(e){var t=this.getFirstElementAfter(e);if(t){var i=n(this.menuElement),r=i.scrollTop()+n(t).position().top-8;l?i.scrollTop(r):i.stop().animate({scrollTop:r},250)}},t.getFirstElementAfter=function(e){return this.menuItemElements.filter((function(t){return J(t)>=e}))[0]},t.getElementByIndex=function(e,t){return e.filter((function(e){return J(e)===t}))[0]},t.createCurrentSlideMarkerElement=function(){var e=document.createElement("div");return e.classList.add("hidden-but-read"),e.innerHTML=this.l10n.currentSlide,e},e}(),Y="specified",_="next",Z="previous",ee=function(){function e(e,t){var i=this,s=e.title,o=e.goToSlide,a=void 0===o?1:o,l=e.invisible,c=e.goToSlideType,d=void 0===c?Y:c,p=t.l10n,h=t.currentIndex;this.eventDispatcher=new r;var u="h5p-press-to-go",f=0;if(l)s=void 0,f=-1;else{if(!s)switch(d){case Y:s=p.goToSlide.replace(":num",a.toString());break;case _:s=p.goToSlide.replace(":num",p.nextSlide);break;case Z:s=p.goToSlide.replace(":num",p.prevSlide)}u+=" h5p-visible"}var v=a-1;d===_?v=h+1:d===Z&&(v=h-1),this.$element=n("<a/>",{href:"#",class:u,tabindex:f,title:s}),m(this.$element,(function(e){i.eventDispatcher.trigger("navigate",v),e.preventDefault()}))}var t=e.prototype;return t.attach=function(e){e.html("").addClass("h5p-go-to-slide").append(this.$element)},t.on=function(e,t){this.eventDispatcher.on(e,t)},e}();const te=function(e){var t=this;if(void 0===e.action)t.instance=new ee(e,{l10n:t.parent.parent.l10n,currentIndex:t.parent.index}),t.parent.parent.isEditor()||t.instance.on("navigate",(function(e){var i=e.data;t.parent.parent.jumpToSlide(i),t.parent.parent.focus()}));else{var i;i=t.parent.parent.isEditor()?H5P.jQuery.extend(!0,{},e.action,t.parent.parent.elementsOverride):H5P.jQuery.extend(!0,e.action,t.parent.parent.elementsOverride);var n=t.parent.parent.elementInstances[t.parent.index]?t.parent.parent.elementInstances[t.parent.index].length:0;t.parent.parent.previousState&&t.parent.parent.previousState.answers&&t.parent.parent.previousState.answers[t.parent.index]&&t.parent.parent.previousState.answers[t.parent.index][n]&&(i.userDatas={state:t.parent.parent.previousState.answers[t.parent.index][n]}),i.params=i.params||{},t.instance=H5P.newRunnable(i,t.parent.parent.contentId,void 0,!0,{parent:t.parent.parent}),void 0!==t.instance.preventResize&&(t.instance.preventResize=!0)}void 0===t.parent.parent.elementInstances[t.parent.index]?t.parent.parent.elementInstances[t.parent.index]=[t.instance]:t.parent.parent.elementInstances[t.parent.index].push(t.instance),void 0!==t.instance.showCPComments||t.instance.isTask||void 0===t.instance.isTask&&void 0!==t.instance.showSolutions?(t.instance.coursePresentationIndexOnSlide=t.parent.parent.elementInstances[t.parent.index].length-1,void 0===t.parent.parent.slidesWithSolutions[t.parent.index]&&(t.parent.parent.slidesWithSolutions[t.parent.index]=[]),t.parent.parent.slidesWithSolutions[t.parent.index].push(t.instance)):e.solution&&(void 0===t.parent.parent.showCommentsAfterSolution[t.parent.index]&&(t.parent.parent.showCommentsAfterSolution[t.parent.index]=[]),t.parent.parent.showCommentsAfterSolution[t.parent.index].push(t.instance)),void 0!==t.instance.exportAnswers&&t.instance.exportAnswers&&(t.parent.parent.hasAnswerElements=!0),t.parent.parent.isTask||t.parent.parent.hideSummarySlide||(t.instance.isTask||void 0===t.instance.isTask&&void 0!==t.instance.showSolutions)&&(t.parent.parent.isTask=!0)};function ie(e){return ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ie(e)}function ne(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function re(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?ne(Object(i),!0).forEach((function(t){se(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):ne(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function se(e,t,i){var n;return n=function(e,t){if("object"!=ie(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=ie(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(t,"string"),(t="symbol"==ie(n)?n:n+"")in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function oe(e){var i,n=this;t().call(n,te,e.elements),n.getElement=function(){return i||(i=H5P.jQuery(oe.createHTML(re(re({},e),{},{index:n.index})))),i},n.setCurrent=function(){this.parent.$current=i.addClass("h5p-current")},n.appendElements=function(){for(var t=0;t<n.children.length;t++)n.parent.attachElement(e.elements[t],n.children[t].instance,i,n.index);n.parent.elementsAttached[n.index]=!0,n.parent.trigger("domChanged",{$target:i,library:"CoursePresentation",key:"newSlide"},{bubbles:!0,external:!0})}}oe.createHTML=function(e){return'<div role="tabpanel" id="slide-'+e.index+'" aria-labelledby="progressbar-part-'+e.index+'" class="h5p-slide"> <div role="document" tabindex="0" '+(void 0!==e.background?' style="background:'+e.background+'"':"")+"></div></div>"};const ae=oe;const le=function(e){var t=new H5P.ConfirmationDialog(e).appendTo(document.body);return t.getElement().classList.add("h5p-cp-confirmation-dialog"),t.show(),t};function ce(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var n,r,s,o,a=[],l=!0,c=!1;try{if(s=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;l=!1}else for(;!(l=(n=s.call(i)).done)&&(a.push(n.value),a.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=i.return&&(o=i.return(),Object(o)!==o))return}finally{if(c)throw r}}return a}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return de(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(e);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return de(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function de(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function pe(e){return pe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pe(e)}var he=function(e,i,r){var s=this;this.presentation=e.presentation,this.slides=this.presentation.slides,this.contentId=i,this.elementInstances=[],this.elementsAttached=[],this.slidesWithSolutions=[],this.showCommentsAfterSolution=[],this.hasAnswerElements=!1,this.ignoreResize=!1,this.isTask=!1,this.standalone=!0,this.isReportingEnabled=!1,this.popups={},r.cpEditor&&(this.editor=r.cpEditor),r&&(this.previousState=r.previousState,this.standalone=r.standalone,this.isReportingEnabled=r.isReportingEnabled||r.isScoringEnabled),this.currentSlideIndex=this.previousState&&this.previousState.progress?this.previousState.progress:0,this.presentation.keywordListEnabled=void 0===e.presentation.keywordListEnabled||e.presentation.keywordListEnabled,this.l10n=n.extend({slide:"Slide",score:"Score",yourScore:"Your score",maxScore:"Max score",total:"Total",totalScore:"Total Score",showSolutions:"Show solutions",summary:"summary",retry:"Retry",exportAnswers:"Export text",close:"Close",hideKeywords:"Hide sidebar navigation menu",showKeywords:"Show sidebar navigation menu",fullscreen:"Fullscreen",exitFullscreen:"Exit fullscreen",prevSlide:"Previous slide",nextSlide:"Next slide",currentSlide:"Current slide",lastSlide:"Last slide",solutionModeTitle:"Exit solution mode",solutionModeText:"Solution Mode",summaryMultipleTaskText:"Multiple tasks",scoreMessage:"You achieved:",shareFacebook:"Share on Facebook",shareTwitter:"Share on Twitter",shareGoogle:"Share on Google+",goToSlide:"Go to slide :num",solutionsButtonTitle:"Show comments",printTitle:"Print",printIngress:"How would you like to print this presentation?",printAllSlides:"Print all slides",printCurrentSlide:"Print current slide",noTitle:"No title",accessibilitySlideNavigationExplanation:"Use left and right arrow to change slide in that direction whenever canvas is selected.",accessibilityProgressBarLabel:"Choose slide to display",containsNotCompleted:"@slideName contains not completed interaction",containsCompleted:"@slideName contains completed interaction",slideCount:"Slide @index of @total",accessibilityCanvasLabel:"Presentation canvas. Use left and right arrow to move between slides.",containsOnlyCorrect:"@slideName only has correct answers",containsIncorrectAnswers:"@slideName has incorrect answers",shareResult:"Share Result",accessibilityTotalScore:"You got @score of @maxScore points in total",accessibilityEnteredFullscreen:"Entered fullscreen",accessibilityExitedFullscreen:"Exited fullscreen",confirmDialogHeader:"Submit your answers",confirmDialogText:"This will submit your results, do you want to continue?",confirmDialogConfirmText:"Submit and see results",confirmDialogConfirmLabel:"Confirm",confirmDialogCancelLabel:"Cancel",slideshowNavigationLabel:"Slideshow navigation"},void 0!==e.l10n?e.l10n:{}),e.override&&(this.activeSurface=!!e.override.activeSurface,this.hideSummarySlide=!!e.override.hideSummarySlide,this.enablePrintButton=!!e.override.enablePrintButton,this.showSummarySlideSolutionButton=void 0===e.override.summarySlideSolutionButton||e.override.summarySlideSolutionButton,this.showSummarySlideRetryButton=void 0===e.override.summarySlideRetryButton||e.override.summarySlideRetryButton,e.override.social&&(this.enableTwitterShare=!!e.override.social.showTwitterShare,this.enableFacebookShare=!!e.override.social.showFacebookShare,this.enableGoogleShare=!!e.override.social.showGoogleShare,this.twitterShareStatement=e.override.social.twitterShare.statement,this.twitterShareHashtags=e.override.social.twitterShare.hashtags,this.twitterShareUrl=e.override.social.twitterShare.url,this.facebookShareUrl=e.override.social.facebookShare.url,this.facebookShareQuote=e.override.social.facebookShare.quote,this.googleShareUrl=e.override.social.googleShareUrl)),this.keywordMenu=new V({l10n:this.l10n,currentIndex:void 0!==this.previousState?this.previousState.progress:0}),this.setElementsOverride(e.override),t().call(this,ae,e.presentation.slides),this.on("resize",this.resize,this),this.on("printing",(function(e){s.ignoreResize=!e.data.finished,e.data.finished?s.resize():e.data.allSlides&&s.attachAllElements()}))};(he.prototype=Object.create(t().prototype)).constructor=he,he.prototype.getCurrentState=function(){var e=this,t=this.previousState?this.previousState:{};t.progress=this.getCurrentSlideIndex()||null,t.answers||(t.answers=[]),t.answered=this.elementInstances.map((function(t,i){return e.slideHasAnsweredTask(i)||null}));for(var i=0;i<this.elementInstances.length;i++)if(this.elementInstances[i])for(var n=0;n<this.elementInstances[i].length;n++){var r=this.elementInstances[i][n];(r.getCurrentState instanceof Function||"function"==typeof r.getCurrentState)&&(t.answers[i]||(t.answers[i]=[]),t.answers[i][n]=r.getCurrentState())}return t},he.prototype.slideHasAnsweredTask=function(e){return(this.slidesWithSolutions[e]||[]).filter((function(e){return a(e.getAnswerGiven)})).some((function(e){return e.getAnswerGiven()&&!H5P.isEmpty(e.getCurrentState())}))},he.prototype.attach=function(e){var t=this,i=this;void 0!==this.isRoot&&this.isRoot()&&this.setActivityStarted();var r='<div class="h5p-keymap-explanation hidden-but-read">'+(!this.activeSurface&&this.l10n.accessibilitySlideNavigationExplanation)+'</div><div class="h5p-fullscreen-announcer hidden-but-read" aria-live="polite"></div><div class="h5p-wrapper" tabindex="0" role="region" aria-roledescription="carousel" aria-label="'+(!this.activeSurface&&this.l10n.accessibilityCanvasLabel)+'">  <div class="h5p-current-slide-announcer hidden-but-read" aria-live="polite"></div>  <div tabindex="-1"></div>  <div class="h5p-box-wrapper">    <div class="h5p-presentation-wrapper">      <div class="h5p-keywords-wrapper"></div>     <div class="h5p-slides-wrapper"></div>    </div>  </div>  <nav class="h5p-cp-navigation" aria-label="'+this.l10n.slideshowNavigationLabel+'">    <div class="h5p-progressbar" role="tablist" aria-label="'+this.l10n.accessibilityProgressBarLabel+'"></div>  </nav>  <div class="h5p-footer"></div></div>';e.attr("role","application").addClass("h5p-course-presentation").html(r),this.$container=e,this.$slideAnnouncer=e.find(".h5p-current-slide-announcer"),this.$fullscreenAnnouncer=e.find(".h5p-fullscreen-announcer"),this.$slideTop=this.$slideAnnouncer.next(),this.$wrapper=e.children(".h5p-wrapper"),this.activeSurface&&this.$wrapper.addClass("h5p-course-presentation-active-surface"),this.$wrapper.focus((function(){i.initKeyEvents()})).blur((function(){void 0!==i.keydown&&(H5P.jQuery("body").unbind("keydown",i.keydown),delete i.keydown)})).click((function(e){var t=H5P.jQuery(e.target),n=i.belongsToTagName(e.target,["input","textarea","a","button"],e.currentTarget),r=i.hasTabIndex(e.target,e.currentTarget),s=t.closest(".h5p-popup-container"),o=0!==s.length;if(!n&&!r&&!i.editor)if(o){var a=t.closest("[tabindex]");1===a.closest(".h5p-popup-container").length?a.focus():s.find(".h5p-close-popup").focus()}else i.$wrapper.focus();i.presentation.keywordListEnabled&&!i.presentation.keywordListAlwaysShow&&i.presentation.keywordListAutoHide&&!t.is("textarea, .h5p-icon-pencil, span")&&i.hideKeywords()})),this.on("exitFullScreen",(function(){t.$footer.removeClass("footer-full-screen"),t.$fullScreenButton.attr("aria-label",t.l10n.fullscreen),t.$fullscreenAnnouncer.html(t.l10n.accessibilityExitedFullscreen)})),this.on("enterFullScreen",(function(){t.$fullscreenAnnouncer.html(t.l10n.accessibilityEnteredFullscreen)}));var s=parseInt(this.$wrapper.css("width"));this.width=0!==s?s:640;var o=parseInt(this.$wrapper.css("height"));this.height=0!==o?o:400,this.ratio=16/9,this.fontSize=16,this.$boxWrapper=this.$wrapper.children(".h5p-box-wrapper");var a,l=this.$boxWrapper.children(".h5p-presentation-wrapper");if(this.$slidesWrapper=l.children(".h5p-slides-wrapper"),this.$keywordsWrapper=l.children(".h5p-keywords-wrapper"),this.$progressbar=this.$wrapper.find(".h5p-progressbar"),this.$footer=this.$wrapper.children(".h5p-footer"),this.initKeywords=void 0===this.presentation.keywordListEnabled||!0===this.presentation.keywordListEnabled||void 0!==this.editor,this.activeSurface&&void 0===this.editor&&(this.initKeywords=!1,this.$boxWrapper.css("height","100%")),this.isSolutionMode=!1,this.createSlides(),this.elementsAttached[this.currentSlideIndex]=!0,this.showSummarySlide=!1,this.hideSummarySlide?this.showSummarySlide=!this.hideSummarySlide:this.slidesWithSolutions.forEach((function(e){i.showSummarySlide=e.length})),void 0===this.editor&&(this.showSummarySlide||this.hasAnswerElements)){var c={elements:[],keywords:[]};this.slides.push(c),(a=H5P.jQuery(ae.createHTML(c)).appendTo(this.$slidesWrapper)).addClass("h5p-summary-slide"),this.isCurrentSlide(this.slides.length-1)&&(this.$current=a)}var d=this.getKeywordMenuConfig();d.length>0||this.isEditor()?(this.keywordMenu.init(d),this.keywordMenu.on("select",(function(e){return t.keywordClick(e.data.index)})),this.keywordMenu.on("close",(function(){return t.hideKeywords()})),this.keywordMenu.on("select",(function(){t.$currentKeyword=t.$keywords.children(".h5p-current")})),this.$keywords=n(this.keywordMenu.getElement()).appendTo(this.$keywordsWrapper),this.$currentKeyword=this.$keywords.children(".h5p-current"),void 0!==this.presentation.keywordListOpacity&&this.setKeywordsOpacity(this.presentation.keywordListOpacity),this.presentation.keywordListAlwaysShow&&this.showKeywords()):(this.$keywordsWrapper.remove(),this.initKeywords=!1),void 0===this.editor&&this.activeSurface?(this.$progressbar.add(this.$footer).remove(),H5P.fullscreenSupported&&(this.$fullScreenButton=H5P.jQuery("<div/>",{class:"h5p-toggle-full-screen","aria-label":this.l10n.fullscreen,role:"button",tabindex:0,appendTo:this.$wrapper}),H5P.Tooltip(this.$fullScreenButton.get(0),{position:"left"}),m(this.$fullScreenButton,(function(){return i.toggleFullScreen()})))):(this.initTouchEvents(),this.navigationLine=new q(this),this.previousState&&this.previousState.progress||this.setSlideNumberAnnouncer(0,!1),this.summarySlideObject=new g(this,a)),new X(this),this.previousState&&this.previousState.progress&&this.jumpToSlide(this.previousState.progress,!1,null,!1,!0)},he.prototype.belongsToTagName=function(e,t,i){if(!e)return!1;i=i||document.body,"string"==typeof t&&(t=[t]),t=t.map((function(e){return e.toLowerCase()}));var n=e.tagName.toLowerCase();return-1!==t.indexOf(n)||i!==e&&this.belongsToTagName(e.parentNode,t,i)},he.prototype.hasTabIndex=function(e,t){if(-1!==e.tabIndex)return!0;var i=n(e).parents();for(var r in i){if(-1!==i[r].tabIndex)return!0;if(t&&i[r]===t)return!1}return!1},he.prototype.updateKeywordMenuFromSlides=function(){this.keywordMenu.removeAllMenuItemElements();var e=this.getKeywordMenuConfig();return n(this.keywordMenu.init(e))},he.prototype.getKeywordMenuConfig=function(){var e=this;return this.slides.map((function(t,i){return{title:e.createSlideTitle(t),subtitle:"".concat(e.l10n.slide," ").concat(i+1),index:i}})).filter((function(e){return null!==e.title}))},he.prototype.createSlideTitle=function(e){var t=this.isEditor()?this.l10n.noTitle:null;return this.hasKeywords(e)?e.keywords[0].main:t},he.prototype.isEditor=function(){return void 0!==this.editor},he.prototype.hasKeywords=function(e){return void 0!==e.keywords&&e.keywords.length>0},he.prototype.createSlides=function(){for(var e=this,t=0;t<e.children.length;t++){var i=t===e.currentSlideIndex;e.children[t].getElement().appendTo(e.$slidesWrapper),i&&e.children[t].setCurrent(),(e.isEditor()||0===t||1===t||i)&&e.children[t].appendElements()}},he.prototype.hasScoreData=function(e){return"undefined"!==pe(e)&&"function"==typeof e.getScore&&"function"==typeof e.getMaxScore},he.prototype.getScore=function(){var e=this;return o(e.slidesWithSolutions).reduce((function(t,i){return t+(e.hasScoreData(i)?i.getScore():0)}),0)},he.prototype.getMaxScore=function(){var e=this;return o(e.slidesWithSolutions).reduce((function(t,i){return t+(e.hasScoreData(i)?i.getMaxScore():0)}),0)},he.prototype.setProgressBarFeedback=function(e){var t=this;void 0!==e&&e?e.forEach((function(e){var i=t.progressbarParts[e.slide-1].find(".h5p-progressbar-part-has-task");if(i.hasClass("h5p-answered")){var n=e.score>=e.maxScore;i.addClass(n?"h5p-is-correct":"h5p-is-wrong"),t.navigationLine.updateSlideTitle(e.slide-1)}})):this.progressbarParts.forEach((function(e){e.find(".h5p-progressbar-part-has-task").removeClass("h5p-is-correct").removeClass("h5p-is-wrong")}))},he.prototype.toggleKeywords=function(){this[this.$keywordsWrapper.hasClass("h5p-open")?"hideKeywords":"showKeywords"]()},he.prototype.hideKeywords=function(){this.$keywordsWrapper.hasClass("h5p-open")&&(void 0!==this.$keywordsButton&&(this.$keywordsButton.attr("aria-label",this.l10n.showKeywords),this.$keywordsButton.attr("aria-expanded","false"),this.$keywordsButton.focus()),this.$keywordsWrapper.removeClass("h5p-open"))},he.prototype.showKeywords=function(){this.$keywordsWrapper.hasClass("h5p-open")||(void 0!==this.$keywordsButton&&(this.$keywordsButton.attr("aria-label",this.l10n.hideKeywords),this.$keywordsButton.attr("aria-expanded","true")),this.$keywordsWrapper.addClass("h5p-open"),this.presentation.keywordListAlwaysShow||this.$keywordsWrapper.find('li[tabindex="0"]').focus())},he.prototype.setKeywordsOpacity=function(e){if(""!==this.$keywordsWrapper.css("background-color")){var t=ce(this.$keywordsWrapper.css("background-color").match(/\d+/g),3),i=t[0],n=t[1],r=t[2];this.$keywordsWrapper.css("background-color","rgba(".concat(i,", ").concat(n,", ").concat(r,", ").concat(e/100,")"))}},he.prototype.fitCT=function(){void 0===this.editor&&this.$current.find(".h5p-ct").each((function(){for(var e=100,t=H5P.jQuery(this),i=t.parent().height();t.outerHeight()>i&&(e--,t.css({fontSize:e+"%",lineHeight:e+65+"%"}),!(e<0)););}))},he.prototype.resize=function(){var e=this.$container.hasClass("h5p-fullscreen")||this.$container.hasClass("h5p-semi-fullscreen");if(!this.ignoreResize){this.$wrapper.css("width","auto");var t=this.$container.width(),i={};if(e){var n=this.$container.height();t/n>this.ratio&&(t=n*this.ratio,i.width=t+"px")}var r=t/this.width;i.height=t/this.ratio+"px",i.fontSize=this.fontSize*r+"px",void 0!==this.editor&&this.editor.setContainerEm(this.fontSize*r*.75),this.$wrapper.css(i),this.swipeThreshold=100*r;var s=this.elementInstances[this.$current.index()];if(void 0!==s)for(var o=this.slides[this.$current.index()].elements,a=0;a<s.length;a++){var l=s[a];void 0!==l.preventResize&&!1!==l.preventResize||void 0===l.$||o[a].displayAsButton||H5P.trigger(l,"resize")}this.fitCT()}},he.prototype.toggleFullScreen=function(){H5P.isFullscreen||this.$container.hasClass("h5p-fullscreen")||this.$container.hasClass("h5p-semi-fullscreen")?void 0!==H5P.exitFullScreen&&void 0!==H5P.fullScreenBrowserPrefix?H5P.exitFullScreen():void 0===H5P.fullScreenBrowserPrefix?H5P.jQuery(".h5p-disable-fullscreen").click():""===H5P.fullScreenBrowserPrefix?window.top.document.exitFullScreen():"ms"===H5P.fullScreenBrowserPrefix?window.top.document.msExitFullscreen():window.top.document[H5P.fullScreenBrowserPrefix+"CancelFullScreen"]():(this.$footer.addClass("footer-full-screen"),this.$fullScreenButton.attr("aria-label",this.l10n.exitFullscreen),H5P.fullScreen(this.$container,this),void 0===H5P.fullScreenBrowserPrefix&&H5P.jQuery(".h5p-disable-fullscreen").hide())},he.prototype.focus=function(){this.$wrapper.focus()},he.prototype.keywordClick=function(e){this.shouldHideKeywordsAfterSelect()&&this.hideKeywords(),this.jumpToSlide(e,!0)},he.prototype.shouldHideKeywordsAfterSelect=function(){return this.presentation.keywordListEnabled&&!this.presentation.keywordListAlwaysShow&&this.presentation.keywordListAutoHide&&void 0===this.editor},he.prototype.setElementsOverride=function(e){this.elementsOverride={params:{}},e&&(this.elementsOverride.params.behaviour={},e.showSolutionButton&&(this.elementsOverride.params.behaviour.enableSolutionsButton="on"===e.showSolutionButton),e.retryButton&&(this.elementsOverride.params.behaviour.enableRetry="on"===e.retryButton))},he.prototype.attachElements=function(e,t){if(void 0===this.elementsAttached[t]){var i=this.slides[t],n=this.elementInstances[t];if(void 0!==i.elements)for(var r=0;r<i.elements.length;r++)this.attachElement(i.elements[r],n[r],e,t);this.trigger("domChanged",{$target:e,library:"CoursePresentation",key:"newSlide"},{bubbles:!0,external:!0}),this.elementsAttached[t]=!0}},he.prototype.attachElement=function(e,t,i,n){var r=void 0!==e.displayAsButton&&e.displayAsButton,s=void 0!==e.buttonSize?"h5p-element-button-"+e.buttonSize:"",o="h5p-element"+(r?" h5p-element-button-wrapper":"")+(s.length?" "+s:""),a=H5P.jQuery("<div>",{class:o}).css({left:e.x+"%",top:e.y+"%",width:e.width+"%",height:e.height+"%"}).appendTo(i.children('[role="document"]').first()),l=void 0===e.backgroundOpacity||0===e.backgroundOpacity;if(a.toggleClass("h5p-transparent",l),r){this.createInteractionButton(e,t).appendTo(a)}else{var c=e.action&&e.action.library?this.getLibraryTypePmz(e.action.library):"other",d=H5P.jQuery("<div>",{class:"h5p-element-outer ".concat(c,"-outer-element")}).css({background:"rgba(255,255,255,"+(void 0===e.backgroundOpacity?0:e.backgroundOpacity/100)+")"}).appendTo(a),p=H5P.jQuery("<div>",{class:"h5p-element-inner"}).appendTo(d);if(t.on("set-size",(function(e){for(var t in e.data)a.get(0).style[t]=e.data[t]})),t.attach(p),void 0!==e.action&&"H5P.InteractiveVideo"===e.action.library.substr(0,20)){var h=function(){t.$container.addClass("h5p-fullscreen"),t.controls.$fullscreen&&t.controls.$fullscreen.remove(),t.hasFullScreen=!0,t.controls.$play.hasClass("h5p-pause")?t.$controls.addClass("h5p-autohide"):t.enableAutoHide()};void 0!==t.controls?h():t.on("controls",h)}this.setOverflowTabIndex()}return void 0!==this.editor?this.editor.processElement(e,a,n,t):(e.solution&&this.addElementSolutionButton(e,t,a),this.hasAnswerElements=this.hasAnswerElements||void 0!==t.exportAnswers),a},he.prototype.disableTabIndexes=function(){var e=this.$container.find(".h5p-popup-container");this.$tabbables=this.$container.find("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]").filter((function(){var t=n(this),i=n.contains(e.get(0),t.get(0));if(t.data("tabindex"))return!0;if(!i){var r=t.attr("tabindex");return t.data("tabindex",r),t.attr("tabindex","-1"),!0}return!1}))},he.prototype.restoreTabIndexes=function(){this.$tabbables&&this.$tabbables.each((function(){var e=n(this),t=e.data("tabindex");e.hasClass("ui-slider-handle")?(e.attr("tabindex",0),e.removeData("tabindex")):void 0!==t?(e.attr("tabindex",t),e.removeData("tabindex")):e.removeAttr("tabindex")}))},he.prototype.createInteractionButton=function(e,t){var i,r,s=this,o=e.action.metadata?e.action.metadata.title:"";""!==o&&void 0!==o||(o=(null===(i=e.action)||void 0===i||null===(i=i.params)||void 0===i?void 0:i.contentName)||(null===(r=e.action)||void 0===r||null===(r=r.params)||void 0===r?void 0:r.title)||e.action.library.split(" ")[0].split(".")[1]);var a=this.getLibraryTypePmz(e.action.library),l=n("<div>",{role:"button",tabindex:0,"aria-label":o,"aria-haspopup":"dialog","aria-expanded":!1,class:"h5p-element-button h5p-element-button-".concat(e.buttonSize," ").concat(a,"-button")}),c=n('<div class="h5p-button-element"></div>');t.attach(c);var d="h5p-advancedtext"===a?{x:e.x,y:e.y}:null;return m(l,(function(){var e;l.attr("aria-expanded","true"),s.showInteractionPopup(t,l,c,a,(e=l,function(){return e.attr("aria-expanded","false")}),d)})),void 0!==e.action&&"H5P.InteractiveVideo"===e.action.library.substr(0,20)&&t.on("controls",(function(){t.controls.$fullscreen&&t.controls.$fullscreen.remove()})),l},he.prototype.showInteractionPopup=function(e,t,i,n,r){var s=this,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,l=function(){e.trigger("resize")};this.isEditor()||(this.on("exitFullScreen",l),this.showPopup({popupContent:i,$focusOnClose:t,parentPosition:o,remove:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]||i.detach(),s.off("exitFullScreen",l),r()},classes:n,instance:e,keepInDOM:"h5p-interactivevideo"===n}),H5P.trigger(e,"resize"),"h5p-image"===n&&this.resizePopupImage(i),setTimeout((function(){var e=i.find(":input").add(i.find("[tabindex]"));e.length?e[0].focus():(i.attr("tabindex",0),i.focus())}),200),a(e.setActivityStarted)&&a(e.getScore)&&e.setActivityStarted())},he.prototype.getLibraryTypePmz=function(e){return(t=e.split(" ")[0],t.replace(/[\W]/g,"-")).toLowerCase();var t},he.prototype.resizePopupImage=function(e){var t=Number(e.css("fontSize").replace("px","")),i=e.find("img"),n=function(i,n){if(!(n/t<18.5)){var r=i/n;n=18.5*t,e.css({width:n*r,height:n})}};i.height()?n(i.width(),i.height()):i.one("load",(function(){n(this.width,this.height)}))},he.prototype.addElementSolutionButton=function(e,t,i){var r=this;t.showCPComments=function(){if(0===i.children(".h5p-element-solution").length&&(o=e.solution,v.html(o).text().trim()).length>0){var t=n("<div/>",{role:"button",tabindex:0,title:r.l10n.solutionsButtonTitle,"aria-haspopup":"dialog","aria-expanded":!1,class:"h5p-element-solution"}).append('<span class="joubel-icon-comment-normal"><span class="h5p-icon-shadow"></span><span class="h5p-icon-speech-bubble"></span><span class="h5p-icon-question"></span></span>').appendTo(i),s={x:e.x,y:e.y};e.displayAsButton||(s.x+=e.width-4,s.y+=e.height-12),m(t,(function(i){r.showPopup({popupContent:e.solution,$focusOnClose:t,parentPosition:s,updateAriaExpanded:!0}),t.attr("aria-expanded",!0),i.stopPropagation()}))}var o},void 0!==e.alwaysDisplayComments&&e.alwaysDisplayComments&&t.showCPComments()},he.prototype.showPopup=function(e){var t,i,r=this,s=e.popupContent,o=e.$focusOnClose,a=e.parentPosition,l=void 0===a?null:a,c=e.remove,d=e.classes,p=void 0===d?"h5p-popup-comment-field":d,h=e.instance,f=e.keepInDOM,v=void 0!==f&&f,g=e.updateAriaExpanded,b=this;if(this.popupId=void 0===this.popupId?0:this.popupId+1,this.closePopup=function(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t?t=!1:(b.restoreTabIndexes(),n&&o.focus(),g&&o.attr("aria-expanded",!1),void 0!==c&&setTimeout((function(){c(v)}),100),e&&e.preventDefault(),i.addClass("h5p-animate"),i.find(".h5p-popup-container").addClass("h5p-animate"),setTimeout((function(){v?i.hide():i.remove()}),100))},v&&h&&b.popups[h.subContentId]&&(i=b.popups[h.subContentId]),void 0===i){var y=(i=n('<div class="h5p-popup-overlay '+p+'"><div class="h5p-popup-container" role="dialog"aria-modal="true" aria-live="true" aria-labelledby="popup-title-'+this.popupId+'"> <div role="button" tabindex="0" class="h5p-close-popup" title="'+this.l10n.close+'"></div><div class="h5p-popup-wrapper" role="document"></div></div></div>')).find(".h5p-popup-wrapper");s instanceof H5P.jQuery?y.append(s):y.html(s);var S="";y.children().each((function(e,t){t.setAttribute("id","popup-content-"+r.popupId+"-"+e),S+="popup-content-"+r.popupId+"-"+e+" "})),i.find(".h5p-popup-container").attr("aria-describedby",S),h&&h.subContentId&&(b.popups[h.subContentId]=i)}var w=i.find(".h5p-popup-container");return function(e,t,i){if(i){t.css({visibility:"hidden"}),e.prependTo(r.$wrapper);var n=t.height(),s=t.width(),o=e.height(),a=s*(100/e.width()),l=n*(100/o);if(a>50&&l>50)e.detach();else{a>l&&l<45&&(a=Math.sqrt(a*l),t.css({width:a+"%"}));a>90?a=90:a<22&&(a=22);var c=100-a-5,d=i.x;i.x>c?d=c:i.x<5&&(d=5);var p=100-(l=t.height()*(100/o))-10,h=i.y;i.y>p?h=p:i.y<10&&(h=10),e.detach(),t.css({left:d+"%",top:h+"%"})}}}(i,w,l),i.addClass("h5p-animate"),w.css({visibility:""}).addClass("h5p-animate"),0===i.parent().length?i.prependTo(this.$wrapper):i.show(),i.removeClass("h5p-animate").click(b.closePopup).find(".h5p-popup-container").removeClass("h5p-animate").click((function(){t=!0})).keydown((function(e){e.which===u&&b.closePopup(e)})).find(".h5p-close-popup").focus(),this.disableTabIndexes(),m(i.find(".h5p-close-popup"),(function(e){return b.closePopup(e)})),i},he.prototype.checkForSolutions=function(e){return void 0!==e.showSolutions||void 0!==e.showCPComments},he.prototype.initKeyEvents=function(){if(void 0===this.keydown&&!this.activeSurface){var e=this,t=!1;this.keydown=function(i){t||((37!==i.keyCode&&33!==i.keyCode||!e.previousSlide(void 0,!1))&&(39!==i.keyCode&&34!==i.keyCode||!e.nextSlide(void 0,!1))||(i.preventDefault(),t=!0),t&&setTimeout((function(){t=!1}),300))},H5P.jQuery("body").keydown(this.keydown)}},he.prototype.initTouchEvents=function(){var e,t,i,n,r,s,o=this,a=!1,l=!1,c=function(e){return{"-webkit-transform":e,"-moz-transform":e,"-ms-transform":e,transform:e}},d=c("");this.$slidesWrapper.bind("touchstart",(function(c){l=!1,i=e=c.originalEvent.touches[0].pageX,t=c.originalEvent.touches[0].pageY;var d=o.$slidesWrapper.width();n=0===o.currentSlideIndex?0:-d,r=o.currentSlideIndex+1>=o.slides.length?0:d,s=null,a=!0})).bind("touchmove",(function(d){var p=d.originalEvent.touches;a&&(o.$current.prev().addClass("h5p-touch-move"),o.$current.next().addClass("h5p-touch-move"),a=!1),i=p[0].pageX;var h=e-i;null===s&&(s=Math.abs(t-d.originalEvent.touches[0].pageY)>Math.abs(h)),1!==p.length||s||(d.preventDefault(),l||(h<0?o.$current.prev().css(c("translateX("+(n-h)+"px")):o.$current.next().css(c("translateX("+(r-h)+"px)")),o.$current.css(c("translateX("+-h+"px)"))))})).bind("touchend",(function(){if(!s){var t=e-i;if(t>o.swipeThreshold&&o.nextSlide(void 0,!1)||t<-o.swipeThreshold&&o.previousSlide(void 0,!1))return}o.$slidesWrapper.children().css(d).removeClass("h5p-touch-move")}))},he.prototype.updateTouchPopup=function(e,t,i,n){if(arguments.length<=0)void 0!==this.touchPopup&&this.touchPopup.remove();else{var r="";if(void 0!==this.$keywords&&void 0!==this.$keywords.children(":eq("+t+")").find("span").html())r+=this.$keywords.children(":eq("+t+")").find("span").html();else{var s=t+1;r+=this.l10n.slide+" "+s}void 0===this.editor&&t>=this.slides.length-1&&(r=this.l10n.showSolutions),void 0===this.touchPopup?this.touchPopup=H5P.jQuery("<div/>",{class:"h5p-touch-popup"}).insertAfter(e):this.touchPopup.insertAfter(e),n-.15*e.parent().height()<0?n=0:n-=.15*e.parent().height(),this.touchPopup.css({"max-width":e.width()-i,left:i,top:n}),this.touchPopup.html(r)}},he.prototype.previousSlide=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.$current.prev();return!!i.length&&(t?this.processJumpToSlide(i.index(),e,!1):this.jumpToSlide(i.index(),e,null,!1))},he.prototype.nextSlide=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.$current.next();return!!i.length&&(t?this.processJumpToSlide(i.index(),e,!1):this.jumpToSlide(i.index(),e,null,!1))},he.prototype.isCurrentSlide=function(e){return this.currentSlideIndex===e},he.prototype.getCurrentSlideIndex=function(){return this.currentSlideIndex},he.prototype.attachAllElements=function(){for(var e=this.$slidesWrapper.children(),t=0;t<this.slides.length;t++)this.attachElements(e.eq(t),t);void 0!==this.summarySlideObject&&this.summarySlideObject.updateSummarySlide(this.slides.length-1,!0)},he.prototype.processJumpToSlide=function(e,t,i){var n=this;if(void 0===this.editor&&this.contentId){var r=this.createXAPIEventTemplate("progressed");r.data.statement.object.definition.extensions["http://id.tincanapi.com/extension/ending-point"]=e+1,this.trigger(r)}if(!this.$current.hasClass("h5p-animate")){var s=this.$current.addClass("h5p-animate"),o=n.$slidesWrapper.children(),a=o.filter(":lt("+e+")");this.$current=o.eq(e).addClass("h5p-animate");var l=this.currentSlideIndex;this.currentSlideIndex=e,this.attachElements(this.$current,e);var c=this.$current.next();return c.length&&this.attachElements(c,e+1),this.setOverflowTabIndex(),setTimeout((function(){s.removeClass("h5p-current"),o.css({"-webkit-transform":"","-moz-transform":"","-ms-transform":"",transform:""}).removeClass("h5p-touch-move").removeClass("h5p-previous"),a.addClass("h5p-previous"),n.$current.addClass("h5p-current"),n.trigger("changedSlide",n.$current.index())}),1),setTimeout((function(){if(n.$slidesWrapper.children().removeClass("h5p-animate"),void 0===n.editor){var e=n.elementInstances[n.currentSlideIndex],t=n.slides[n.currentSlideIndex].elements;if(void 0!==e)for(var i=0;i<e.length;i++)t[i].displayAsButton||"function"!=typeof e[i].setActivityStarted||"function"!=typeof e[i].getScore||e[i].setActivityStarted()}}),250),void 0!==this.$keywords&&(this.keywordMenu.setCurrentSlideIndex(e),this.$currentKeyword=this.$keywords.find(".h5p-current"),t||this.keywordMenu.scrollToKeywords(e)),n.presentation.keywordListEnabled&&n.presentation.keywordListAlwaysShow&&n.showKeywords(),n.navigationLine&&(n.navigationLine.updateProgressBar(e,l,this.isSolutionMode),n.navigationLine.updateFooter(e),this.setSlideNumberAnnouncer(e,i)),n.summarySlideObject&&n.summarySlideObject.updateSummarySlide(e,!0),void 0!==this.editor&&void 0!==this.editor.dnb&&(this.editor.dnb.setContainer(this.$current),this.editor.dnb.blurAll()),this.trigger("resize"),this.fitCT(),!0}},he.prototype.jumpToSlide=function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(this.standalone&&this.showSummarySlide&&e===this.slides.length-1&&!this.isSolutionMode&&this.isReportingEnabled&&!s){if(this.currentSlideIndex===this.slides.length-1)return!1;var o=le({headerText:this.l10n.confirmDialogHeader,dialogText:this.l10n.confirmDialogText,confirmText:this.l10n.confirmDialogConfirmLabel,cancelText:this.l10n.confirmDialogCancelLabel});o.on("canceled",(function(){return!1})),o.on("confirmed",(function(){t.processJumpToSlide(e,i,r),n&&n()}))}else this.processJumpToSlide(e,i,r),n&&n()},he.prototype.setOverflowTabIndex=function(){void 0!==this.$current&&this.$current.find(".h5p-element-inner").each((function(){var e,t=n(this);this.classList.contains("h5p-table")&&(e=t.find(".h5p-table").outerHeight());var i=t.closest(".h5p-element-outer").innerHeight();void 0!==e&&null!==i&&e>i&&t.attr("tabindex",0)}))},he.prototype.setSlideNumberAnnouncer=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i="";if(!this.navigationLine)return i;var n=this.slides[e];n.keywords&&n.keywords.length>0&&!this.navigationLine.isSummarySlide(e)&&(i+=this.l10n.slide+" "+(e+1)+": "),i+=this.navigationLine.createSlideTitle(e),this.$slideAnnouncer.html(i),t&&this.$slideTop.focus()},he.prototype.resetTask=function(){var e,t,i=arguments.length>0&&void 0!==arguments[0]&&arguments[0];null===(e=this.summarySlideObject)||void 0===e||e.toggleSolutionMode(!1);for(var n=0;n<this.elementInstances.length;n++)if(this.elementInstances[n])for(var r=0;r<this.elementInstances[n].length;r++){var s=this.elementInstances[n][r];s.resetTask&&s.resetTask()}null===(t=this.navigationLine)||void 0===t||t.updateProgressBar(0),this.$container&&(this.jumpToSlide(0,!1),this.closePopup&&this.closePopup(void 0,i))},he.prototype.showSolutions=function(){for(var e=!1,t=[],i=!1,n=0;n<this.slidesWithSolutions.length;n++){if(void 0!==this.slidesWithSolutions[n]){this.elementsAttached[n]||this.attachElements(this.$slidesWrapper.children(":eq("+n+")"),n),e||(this.jumpToSlide(n,!1),e=!0);for(var r=0,s=0,o=[],a=0;a<this.slidesWithSolutions[n].length;a++){var l=this.slidesWithSolutions[n][a];void 0!==l.addSolutionButton&&l.addSolutionButton(),l.showSolutions&&l.showSolutions(),l.showCPComments&&l.showCPComments(),void 0!==l.getMaxScore&&(s+=l.getMaxScore(),r+=l.getScore(),i=!0,o.push(l.coursePresentationIndexOnSlide))}t.push({indexes:o,slide:n+1,score:r,maxScore:s})}if(this.showCommentsAfterSolution[n])for(var c=0;c<this.showCommentsAfterSolution[n].length;c++)"function"==typeof this.showCommentsAfterSolution[n][c].showCPComments&&this.showCommentsAfterSolution[n][c].showCPComments()}if(i)return t},he.prototype.getSlideScores=function(e){for(var t=!0===e,i=[],n=!1,r=0;r<this.slidesWithSolutions.length;r++)if(void 0!==this.slidesWithSolutions[r]){this.elementsAttached[r]||this.attachElements(this.$slidesWrapper.children(":eq("+r+")"),r),t||(this.jumpToSlide(r,!1),t=!0);for(var s=0,o=0,a=[],l=0;l<this.slidesWithSolutions[r].length;l++){var c=this.slidesWithSolutions[r][l];void 0!==c.getMaxScore&&(o+=c.getMaxScore(),s+=c.getScore(),n=!0,a.push(c.coursePresentationIndexOnSlide))}i.push({indexes:a,slide:r+1,score:s,maxScore:o})}if(n)return i},he.prototype.getCopyrights=function(){var e,t=new H5P.ContentCopyrights;if(this.presentation&&this.presentation.globalBackgroundSelector&&this.presentation.globalBackgroundSelector.imageGlobalBackground){var i=this.presentation.globalBackgroundSelector.imageGlobalBackground,n=new H5P.MediaCopyright(i.copyright);n.setThumbnail(new H5P.Thumbnail(H5P.getPath(i.path,this.contentId),i.width,i.height)),t.addMedia(n)}for(var r=0;r<this.slides.length;r++){var s=new H5P.ContentCopyrights;if(s.setLabel(this.l10n.slide+" "+(r+1)),this.slides[r]&&this.slides[r].slideBackgroundSelector&&this.slides[r].slideBackgroundSelector.imageSlideBackground){var o=this.slides[r].slideBackgroundSelector.imageSlideBackground,a=new H5P.MediaCopyright(o.copyright);a.setThumbnail(new H5P.Thumbnail(H5P.getPath(o.path,this.contentId),o.width,o.height)),s.addMedia(a)}if(void 0!==this.elementInstances[r])for(var l=0;l<this.elementInstances[r].length;l++){var c=this.elementInstances[r][l];if(this.slides[r].elements[l].action){var d=this.slides[r].elements[l].action.params,p=this.slides[r].elements[l].action.metadata;e=void 0,void 0!==c.getCopyrights&&(e=c.getCopyrights()),void 0===e&&(e=new H5P.ContentCopyrights,H5P.findCopyrights(e,d,this.contentId,{metadata:p,machineName:c.libraryInfo.machineName}));var h=l+1;void 0!==d.contentName?h+=": "+d.contentName:void 0!==c.getTitle?h+=": "+c.getTitle():d.l10n&&d.l10n.name&&(h+=": "+d.l10n.name),e.setLabel(h),s.addContent(e)}}t.addContent(s)}return t},he.prototype.getXAPIData=function(){var e=this.createXAPIEventTemplate("answered"),t=e.getVerifiedStatementValue(["object","definition"]);H5P.jQuery.extend(t,{interactionType:"compound",type:"http://adlnet.gov/expapi/activities/cmi.interaction"});var i=this.getScore(),n=this.getMaxScore();e.setScoredResult(i,n,this,!0,i===n);var r=o(this.slidesWithSolutions).map((function(e){if(e&&e.getXAPIData)return e.getXAPIData()})).filter((function(e){return!!e}));return{statement:e.data.statement,children:r}},he.prototype.getContext=function(){return{type:"slide",value:this.currentSlideIndex+1}};const ue=he;H5P=H5P||{},H5P.Tooltip=H5P.Tooltip||function(){},H5P.CoursePresentation=ue})()})();;H5P.Tooltip = H5P.Tooltip || function() {};

H5P.Question = (function ($, EventDispatcher, JoubelUI) {

  /**
   * Extending this class make it alot easier to create tasks for other
   * content types.
   *
   * @class H5P.Question
   * @extends H5P.EventDispatcher
   * @param {string} type
   */
  function Question(type) {
    var self = this;

    // Inheritance
    EventDispatcher.call(self);

    // Register default section order
    self.order = ['video', 'image', 'audio', 'introduction', 'content', 'explanation', 'feedback', 'scorebar', 'buttons', 'read'];

    // Keep track of registered sections
    var sections = {};

    // Buttons
    var buttons = {};
    var buttonOrder = [];

    // Wrapper when attached
    var $wrapper;

    // Click element
    var clickElement;

    // ScoreBar
    var scoreBar;

    // Keep track of the feedback's visual status.
    var showFeedback;

    // Keep track of which buttons are scheduled for hiding.
    var buttonsToHide = [];

    // Keep track of which buttons are scheduled for showing.
    var buttonsToShow = [];

    // Keep track of the hiding and showing of buttons.
    var toggleButtonsTimer;
    var toggleButtonsTransitionTimer;
    var buttonTruncationTimer;

    // Keeps track of initialization of question
    var initialized = false;

    /**
     * @type {Object} behaviour Behaviour of Question
     * @property {Boolean} behaviour.disableFeedback Set to true to disable feedback section
     */
    var behaviour = {
      disableFeedback: false,
      disableReadSpeaker: false
    };

    // Keeps track of thumb state
    var imageThumb = true;

    // Keeps track of image transitions
    var imageTransitionTimer;

    // Keep track of whether sections is transitioning.
    var sectionsIsTransitioning = false;

    // Keep track of auto play state
    var disableAutoPlay = false;

    // Feedback transition timer
    var feedbackTransitionTimer;

    // Used when reading messages to the user
    var $read, readText;

    /**
     * Register section with given content.
     *
     * @private
     * @param {string} section ID of the section
     * @param {(string|H5P.jQuery)} [content]
     */
    var register = function (section, content) {
      sections[section] = {};
      var $e = sections[section].$element = $('<div/>', {
        'class': 'h5p-question-' + section,
      });
      if (content) {
        $e[content instanceof $ ? 'append' : 'html'](content);
      }
    };

    /**
     * Update registered section with content.
     *
     * @private
     * @param {string} section ID of the section
     * @param {(string|H5P.jQuery)} content
     */
    var update = function (section, content) {
      if (content instanceof $) {
        sections[section].$element.html('').append(content);
      }
      else {
        sections[section].$element.html(content);
      }
    };

    /**
     * Insert element with given ID into the DOM.
     *
     * @private
     * @param {array|Array|string[]} order
     * List with ordered element IDs
     * @param {string} id
     * ID of the element to be inserted
     * @param {Object} elements
     * Maps ID to the elements
     * @param {H5P.jQuery} $container
     * Parent container of the elements
     */
    var insert = function (order, id, elements, $container) {
      // Try to find an element id should be after
      for (var i = 0; i < order.length; i++) {
        if (order[i] === id) {
          // Found our pos
          while (i > 0 &&
          (elements[order[i - 1]] === undefined ||
          !elements[order[i - 1]].isVisible)) {
            i--;
          }
          if (i === 0) {
            // We are on top.
            elements[id].$element.prependTo($container);
          }
          else {
            // Add after element
            elements[id].$element.insertAfter(elements[order[i - 1]].$element);
          }
          elements[id].isVisible = true;
          break;
        }
      }
    };

    /**
     * Make feedback into a popup and position relative to click.
     *
     * @private
     * @param {string} [closeText] Text for the close button
     */
    var makeFeedbackPopup = function (closeText) {
      var $element = sections.feedback.$element;
      var $parent = sections.content.$element;
      var $click = (clickElement != null ? clickElement.$element : null);

      $element.appendTo($parent).addClass('h5p-question-popup');

      if (sections.scorebar) {
        sections.scorebar.$element.appendTo($element);
      }

      $parent.addClass('h5p-has-question-popup');

      // Draw the tail
      var $tail = $('<div/>', {
        'class': 'h5p-question-feedback-tail'
      }).hide()
        .appendTo($parent);

      // Draw the close button
      var $close = $('<div/>', {
        'class': 'h5p-question-feedback-close',
        'tabindex': 0,
        'title': closeText,
        on: {
          click: function (event) {
            $element.remove();
            $tail.remove();
            event.preventDefault();
          },
          keydown: function (event) {
            switch (event.which) {
              case 13: // Enter
              case 32: // Space
                $element.remove();
                $tail.remove();
                event.preventDefault();
            }
          }
        }
      }).hide().appendTo($element);

      if ($click != null) {
        if ($click.hasClass('correct')) {
          $element.addClass('h5p-question-feedback-correct');
          $close.show();
          sections.buttons.$element.hide();
        }
        else {
          sections.buttons.$element.appendTo(sections.feedback.$element);
        }
      }

      positionFeedbackPopup($element, $click);
    };

    /**
     * Position the feedback popup.
     *
     * @private
     * @param {H5P.jQuery} $element Feedback div
     * @param {H5P.jQuery} $click Visual click div
     */
    var positionFeedbackPopup = function ($element, $click) {
      var $container = $element.parent();
      var $tail = $element.siblings('.h5p-question-feedback-tail');
      var popupWidth = $element.outerWidth();
      var popupHeight = setElementHeight($element);
      var space = 15;
      var disableTail = false;
      var positionY = $container.height() / 2 - popupHeight / 2;
      var positionX = $container.width() / 2 - popupWidth / 2;
      var tailX = 0;
      var tailY = 0;
      var tailRotation = 0;

      if ($click != null) {
        // Edge detection for click, takes space into account
        var clickNearTop = ($click[0].offsetTop < space);
        var clickNearBottom = ($click[0].offsetTop + $click.height() > $container.height() - space);
        var clickNearLeft = ($click[0].offsetLeft < space);
        var clickNearRight = ($click[0].offsetLeft + $click.width() > $container.width() - space);

        // Click is not in a corner or close to edge, calculate position normally
        positionX = $click[0].offsetLeft - popupWidth / 2  + $click.width() / 2;
        positionY = $click[0].offsetTop - popupHeight - space;
        tailX = positionX + popupWidth / 2 - $tail.width() / 2;
        tailY = positionY + popupHeight - ($tail.height() / 2);
        tailRotation = 225;

        // If popup is outside top edge, position under click instead
        if (popupHeight + space > $click[0].offsetTop) {
          positionY = $click[0].offsetTop + $click.height() + space;
          tailY = positionY - $tail.height() / 2 ;
          tailRotation = 45;
        }

        // If popup is outside left edge, position left
        if (positionX < 0) {
          positionX = 0;
        }

        // If popup is outside right edge, position right
        if (positionX + popupWidth > $container.width()) {
          positionX = $container.width() - popupWidth;
        }

        // Special cases such as corner clicks, or close to an edge, they override X and Y positions if met
        if (clickNearTop && (clickNearLeft || clickNearRight)) {
          positionX = $click[0].offsetLeft + (clickNearLeft ? $click.width() : -popupWidth);
          positionY = $click[0].offsetTop + $click.height();
          disableTail = true;
        }
        else if (clickNearBottom && (clickNearLeft || clickNearRight)) {
          positionX = $click[0].offsetLeft + (clickNearLeft ? $click.width() : -popupWidth);
          positionY = $click[0].offsetTop - popupHeight;
          disableTail = true;
        }
        else if (!clickNearTop && !clickNearBottom) {
          if (clickNearLeft || clickNearRight) {
            positionY = $click[0].offsetTop - popupHeight / 2 + $click.width() / 2;
            positionX = $click[0].offsetLeft + (clickNearLeft ? $click.width() + space : -popupWidth + -space);
            // Make sure this does not position the popup off screen
            if (positionX < 0) {
              positionX = 0;
              disableTail = true;
            }
            else {
              tailX = positionX + (clickNearLeft ? - $tail.width() / 2 : popupWidth - $tail.width() / 2);
              tailY = positionY + popupHeight / 2 - $tail.height() / 2;
              tailRotation = (clickNearLeft ? 315 : 135);
            }
          }
        }

        // Contain popup from overflowing bottom edge
        if (positionY + popupHeight > $container.height()) {
          positionY = $container.height() - popupHeight;

          if (popupHeight > $container.height() - ($click[0].offsetTop + $click.height() + space)) {
            disableTail = true;
          }
        }
      }
      else {
        disableTail = true;
      }

      // Contain popup from ovreflowing top edge
      if (positionY < 0) {
        positionY = 0;
      }

      $element.css({top: positionY, left: positionX});
      $tail.css({top: tailY, left: tailX});

      if (!disableTail) {
        $tail.css({
          'left': tailX,
          'top': tailY,
          'transform': 'rotate(' + tailRotation + 'deg)'
        }).show();
      }
      else {
        $tail.hide();
      }
    };

    /**
     * Set element max height, used for animations.
     *
     * @param {H5P.jQuery} $element
     */
    var setElementHeight = function ($element) {
      if (!$element.is(':visible')) {
        // No animation
        $element.css('max-height', 'none');
        return;
      }

      // If this element is shown in the popup, we can't set width to 100%,
      // since it already has a width set in CSS
      var isFeedbackPopup = $element.hasClass('h5p-question-popup');

      // Get natural element height
      var $tmp = $element.clone()
        .css({
          'position': 'absolute',
          'max-height': 'none',
          'width': isFeedbackPopup ? '' : '100%'
        })
        .appendTo($element.parent());

      // Need to take margins into account when calculating available space
      var sideMargins = parseFloat($element.css('margin-left'))
        + parseFloat($element.css('margin-right'));
      var tmpElWidth = $tmp.css('width') ? $tmp.css('width') : '100%';
      $tmp.css('width', 'calc(' + tmpElWidth + ' - ' + sideMargins + 'px)');

      // Apply height to element
      var h = Math.round($tmp.get(0).getBoundingClientRect().height);
      var fontSize = parseFloat($element.css('fontSize'));
      var relativeH = h / fontSize;
      $element.css('max-height', relativeH + 'em');
      $tmp.remove();

      if (h > 0 && sections.buttons && sections.buttons.$element === $element) {
        // Make sure buttons section is visible
        showSection(sections.buttons);

        // Resize buttons after resizing button section
        setTimeout(resizeButtons, 150);
      }
      return h;
    };

    /**
     * Does the actual job of hiding the buttons scheduled for hiding.
     *
     * @private
     * @param {boolean} [relocateFocus] Find a new button to focus
     */
    var hideButtons = function (relocateFocus) {
      for (var i = 0; i < buttonsToHide.length; i++) {
        hideButton(buttonsToHide[i].id);
      }
      buttonsToHide = [];

      if (relocateFocus) {
        self.focusButton();
      }
    };

    /**
     * Does the actual hiding.
     * @private
     * @param {string} buttonId
     */
    var hideButton = function (buttonId) {
      // Using detach() vs hide() makes it harder to cheat.
      buttons[buttonId].$element.detach();
      buttons[buttonId].isVisible = false;
    };

    /**
     * Shows the buttons on the next tick. This is to avoid buttons flickering
     * If they're both added and removed on the same tick.
     *
     * @private
     */
    var toggleButtons = function () {
      // If no buttons section, return
      if (sections.buttons === undefined) {
        return;
      }

      // Clear transition timer, reevaluate if buttons will be detached
      clearTimeout(toggleButtonsTransitionTimer);

      // Show buttons
      for (var i = 0; i < buttonsToShow.length; i++) {
        insert(buttonOrder, buttonsToShow[i].id, buttons, sections.buttons.$element);
        buttons[buttonsToShow[i].id].isVisible = true;
      }
      buttonsToShow = [];

      // Hide buttons
      var numToHide = 0;
      var relocateFocus = false;
      for (var j = 0; j < buttonsToHide.length; j++) {
        var button = buttons[buttonsToHide[j].id];
        if (button.isVisible) {
          numToHide += 1;
        }
        if (button.$element.is(':focus')) {
          // Move focus to the first visible button.
          relocateFocus = true;
        }
      }

      var animationTimer = 150;
      if (sections.feedback && sections.feedback.$element.hasClass('h5p-question-popup')) {
        animationTimer = 0;
      }

      if (numToHide === sections.buttons.$element.children().length) {
        // All buttons are going to be hidden. Hide container using transition.
        hideSection(sections.buttons);
        // Detach buttons
        hideButtons(relocateFocus);
      }
      else {
        hideButtons(relocateFocus);

        // Show button section
        if (!sections.buttons.$element.is(':empty')) {
          showSection(sections.buttons);
          setElementHeight(sections.buttons.$element);

          // Trigger resize after animation
          toggleButtonsTransitionTimer = setTimeout(function () {
            self.trigger('resize');
          }, animationTimer);
        }

        // Resize buttons to fit container
        resizeButtons();
      }

      toggleButtonsTimer = undefined;
    };

    /**
     * Allows for scaling of the question image.
     */
    var scaleImage = function () {
      var $imgSection = sections.image.$element;
      clearTimeout(imageTransitionTimer);

      // Add this here to avoid initial transition of the image making
      // content overflow. Alternatively we need to trigger a resize.
      $imgSection.addClass('animatable');

      if (imageThumb) {

        // Expand image
        $(this).attr('aria-expanded', true);
        $imgSection.addClass('h5p-question-image-fill-width');
        imageThumb = false;

        imageTransitionTimer = setTimeout(function () {
          self.trigger('resize');
        }, 600);
      }
      else {

        // Scale down image
        $(this).attr('aria-expanded', false);
        $imgSection.removeClass('h5p-question-image-fill-width');
        imageThumb = true;

        imageTransitionTimer = setTimeout(function () {
          self.trigger('resize');
        }, 600);
      }
    };

    /**
     * Get scrollable ancestor of element
     *
     * @private
     * @param {H5P.jQuery} $element
     * @param {Number} [currDepth=0] Current recursive calls to ancestor, stop at maxDepth
     * @param {Number} [maxDepth=5] Maximum depth for finding ancestor.
     * @returns {H5P.jQuery} Parent element that is scrollable
     */
    var findScrollableAncestor = function ($element, currDepth, maxDepth) {
      if (!currDepth) {
        currDepth = 0;
      }
      if (!maxDepth) {
        maxDepth = 5;
      }
      // Check validation of element or if we have reached document root
      if (!$element || !($element instanceof $) || document === $element.get(0) || currDepth >= maxDepth) {
        return;
      }

      if ($element.css('overflow-y') === 'auto') {
        return $element;
      }
      else {
        return findScrollableAncestor($element.parent(), currDepth + 1, maxDepth);
      }
    };

    /**
     * Scroll to bottom of Question.
     *
     * @private
     */
    var scrollToBottom = function () {
      if (!$wrapper || ($wrapper.hasClass('h5p-standalone') && !H5P.isFullscreen)) {
        return; // No scroll
      }

      var scrollableAncestor = findScrollableAncestor($wrapper);

      // Scroll to bottom of scrollable ancestor
      if (scrollableAncestor) {
        scrollableAncestor.animate({
          scrollTop: $wrapper.css('height')
        }, "slow");
      }
    };

    /**
     * Resize buttons to fit container width
     *
     * @private
     */
    var resizeButtons = function () {
      if (!buttons || !sections.buttons) {
        return;
      }

      var go = function () {
        // Don't do anything if button elements are not visible yet
        if (!sections.buttons.$element.is(':visible')) {
          return;
        }

        // Width of all buttons
        var buttonsWidth = {
          max: 0,
          min: 0,
          current: 0
        };

        for (var i in buttons) {
          var button = buttons[i];
          if (button.isVisible) {
            setButtonWidth(buttons[i]);
            buttonsWidth.max += button.width.max;
            buttonsWidth.min += button.width.min;
            buttonsWidth.current += button.isTruncated ? button.width.min : button.width.max;
          }
        }

        var makeButtonsFit = function (availableWidth) {
          if (buttonsWidth.max < availableWidth) {
            // It is room for everyone on the right side of the score bar (without truncating)
            if (buttonsWidth.max !== buttonsWidth.current) {
              // Need to make everyone big
              restoreButtonLabels(buttonsWidth.current, availableWidth);
            }
            return true;
          }
          else if (buttonsWidth.min < availableWidth) {
            // Is it room for everyone on the right side of the score bar with truncating?
            if (buttonsWidth.current > availableWidth) {
              removeButtonLabels(buttonsWidth.current, availableWidth);
            }
            else {
              restoreButtonLabels(buttonsWidth.current, availableWidth);
            }
            return true;
          }
          return false;
        };

        toggleFullWidthScorebar(false);

        var buttonSectionWidth = Math.floor(sections.buttons.$element.width()) - 1;

        if (!makeButtonsFit(buttonSectionWidth)) {
          // If we get here we need to wrap:
          toggleFullWidthScorebar(true);
          buttonSectionWidth = Math.floor(sections.buttons.$element.width()) - 1;
          makeButtonsFit(buttonSectionWidth);
        }
      };

      // If visible, resize right away
      if (sections.buttons.$element.is(':visible')) {
        go();
      }
      else { // If not visible, try on the next tick
        // Clear button truncation timer if within a button truncation function
        if (buttonTruncationTimer) {
          clearTimeout(buttonTruncationTimer);
        }
        buttonTruncationTimer = setTimeout(function () {
          buttonTruncationTimer = undefined;
          go();
        }, 0);
      }
    };

    var toggleFullWidthScorebar = function (enabled) {
      if (sections.scorebar &&
          sections.scorebar.$element &&
          sections.scorebar.$element.hasClass('h5p-question-visible')) {
        sections.buttons.$element.addClass('has-scorebar');
        sections.buttons.$element.toggleClass('wrap', enabled);
        sections.scorebar.$element.toggleClass('full-width', enabled);
      }
      else {
        sections.buttons.$element.removeClass('has-scorebar');
      }
    };

    /**
     * Remove button labels until they use less than max width.
     *
     * @private
     * @param {Number} buttonsWidth Total width of all buttons
     * @param {Number} maxButtonsWidth Max width allowed for buttons
     */
    var removeButtonLabels = function (buttonsWidth, maxButtonsWidth) {
      // Reverse traversal
      for (var i = buttonOrder.length - 1; i >= 0; i--) {
        var buttonId = buttonOrder[i];
        var button = buttons[buttonId];
        if (!button.isTruncated && button.isVisible) {
          var $button = button.$element;
          buttonsWidth -= button.width.max - button.width.min;
          // Set tooltip (needed by H5P.Tooltip)
          let buttonText = $button.text();
          $button.attr('data-tooltip', buttonText);

          // Use button text as aria label if a specific one isn't provided
          if (!button.ariaLabel) {
            $button.attr('aria-label', buttonText);
          }
          // Remove label
          $button.html('').addClass('truncated');
          button.isTruncated = true;
          if (buttonsWidth <= maxButtonsWidth) {
            // Buttons are small enough.
            return;
          }
        }
      }
    };

    /**
     * Restore button labels until it fills maximum possible width without exceeding the max width.
     *
     * @private
     * @param {Number} buttonsWidth Total width of all buttons
     * @param {Number} maxButtonsWidth Max width allowed for buttons
     */
    var restoreButtonLabels = function (buttonsWidth, maxButtonsWidth) {
      for (var i = 0; i < buttonOrder.length; i++) {
        var buttonId = buttonOrder[i];
        var button = buttons[buttonId];
        if (button.isTruncated && button.isVisible) {
          // Calculate new total width of buttons with a static pixel for consistency cross-browser
          buttonsWidth += button.width.max - button.width.min + 1;

          if (buttonsWidth > maxButtonsWidth) {
            return;
          }
          // Restore label
          button.$element.html(button.text);

          // Remove tooltip (used by H5P.Tooltip)
          button.$element.removeAttr('data-tooltip');

          // Remove aria-label if a specific one isn't provided
          if (!button.ariaLabel) {
            button.$element.removeAttr('aria-label');
          }

          button.$element.removeClass('truncated');
          button.isTruncated = false;
        }
      }
    };

    /**
     * Helper function for finding index of keyValue in array
     *
     * @param {String} keyValue Value to be found
     * @param {String} key In key
     * @param {Array} array In array
     * @returns {number}
     */
    var existsInArray = function (keyValue, key, array) {
      var i;
      for (i = 0; i < array.length; i++) {
        if (array[i][key] === keyValue) {
          return i;
        }
      }
      return -1;
    };

    /**
     * Show a section
     * @param {Object} section
     */
    var showSection = function (section) {
      section.$element.addClass('h5p-question-visible');
      section.isVisible = true;
    };

    /**
     * Hide a section
     * @param {Object} section
     */
    var hideSection = function (section) {
      section.$element.css('max-height', '');
      section.isVisible = false;

      setTimeout(function () {
        // Only hide if section hasn't been set to visible in the meantime
        if (!section.isVisible) {
          section.$element.removeClass('h5p-question-visible');
        }
      }, 150);
    };

    /**
     * Set behaviour for question.
     *
     * @param {Object} options An object containing behaviour that will be extended by Question
     */
    self.setBehaviour = function (options) {
      $.extend(behaviour, options);
    };

    /**
     * A video to display above the task.
     *
     * @param {object} params
     */
    self.setVideo = function (params) {
      sections.video = {
        $element: $('<div/>', {
          'class': 'h5p-question-video'
        })
      };

      if (disableAutoPlay && params.params.playback) {
        params.params.playback.autoplay = false;
      }

      // Never fit to wrapper
      if (!params.params.visuals) {
        params.params.visuals = {};
      }
      params.params.visuals.fit = false;
      sections.video.instance = H5P.newRunnable(params, self.contentId, sections.video.$element, true);
      var fromVideo = false; // Hack to avoid never ending loop
      sections.video.instance.on('resize', function () {
        fromVideo = true;
        self.trigger('resize');
        fromVideo = false;
      });
      self.on('resize', function () {
        if (!fromVideo) {
          sections.video.instance.trigger('resize');
        }
      });

      return self;
    };

    /**
     * An audio player to display above the task.
     *
     * @param {object} params
     */
    self.setAudio = function (params) {
      params.params = params.params || {};

      sections.audio = {
        $element: $('<div/>', {
          'class': 'h5p-question-audio',
        })
      };

      if (disableAutoPlay) {
        params.params.autoplay = false;
      }
      else if (params.params.playerMode === 'transparent') {
        params.params.autoplay = true; // false doesn't make sense for transparent audio
      }

      sections.audio.instance = H5P.newRunnable(params, self.contentId, sections.audio.$element, true);
      // The height value that is set by H5P.Audio is counter-productive here.
      if (sections.audio.instance.audio) {
        sections.audio.instance.audio.style.height = '';
      }

      return self;
    };

    /**
     * Will stop any playback going on in the task.
     */
    self.pause = function () {
      if (sections.video && sections.video.isVisible) {
        sections.video.instance.pause();
      }
      if (sections.audio && sections.audio.isVisible) {
        sections.audio.instance.pause();
      }
    };

    /**
     * Start playback of video
     */
    self.play = function () {
      if (sections.video && sections.video.isVisible) {
        sections.video.instance.play();
      }
      if (sections.audio && sections.audio.isVisible) {
        sections.audio.instance.play();
      }
    };

    /**
     * Disable auto play, useful in editors.
     */
    self.disableAutoPlay = function () {
      disableAutoPlay = true;
    };

    /**
     * Process HTML escaped string for use as attribute value,
     * e.g. for alt text or title attributes.
     *
     * @param {string} value
     * @return {string} WARNING! Do NOT use for innerHTML.
     */
    self.massageAttributeOutput = function (value) {
      const dparser = new DOMParser().parseFromString(value, 'text/html');
      const div = document.createElement('div');
      div.innerHTML = dparser.documentElement.textContent;;
      return div.textContent || div.innerText || '';
    };

    /**
     * Add task image.
     *
     * @param {string} path Relative
     * @param {Object} [options] Options object
     * @param {string} [options.alt] Text representation
     * @param {string} [options.title] Hover text
     * @param {Boolean} [options.disableImageZooming] Set as true to disable image zooming
     * @param {string} [options.expandImage] Localization strings
     * @param {string} [options.minimizeImage] Localization string

     */
    self.setImage = function (path, options) {
      options = options ? options : {};
      sections.image = {};
      // Image container
      sections.image.$element = $('<div/>', {
        'class': 'h5p-question-image h5p-question-image-fill-width'
      });

      // Inner wrap
      var $imgWrap = $('<div/>', {
        'class': 'h5p-question-image-wrap',
        appendTo: sections.image.$element
      });

      // Image element
      var $img = $('<img/>', {
        src: H5P.getPath(path, self.contentId),
        alt: (options.alt === undefined ? '' : self.massageAttributeOutput(options.alt)),
        title: (options.title === undefined ? '' : self.massageAttributeOutput(options.title)),
        on: {
          load: function () {
            self.trigger('imageLoaded', this);
            self.trigger('resize');
          }
        },
        appendTo: $imgWrap
      });

      // Disable image zooming
      if (options.disableImageZooming) {
        $img.css('maxHeight', 'none');

        // Make sure we are using the correct amount of width at all times
        var determineImgWidth = function () {

          // Remove margins if natural image width is bigger than section width
          var imageSectionWidth = sections.image.$element.get(0).getBoundingClientRect().width;

          // Do not transition, for instant measurements
          $imgWrap.css({
            '-webkit-transition': 'none',
            'transition': 'none'
          });

          // Margin as translateX on both sides of image.
          var diffX = 2 * ($imgWrap.get(0).getBoundingClientRect().left -
            sections.image.$element.get(0).getBoundingClientRect().left);

          if ($img.get(0).naturalWidth >= imageSectionWidth - diffX) {
            sections.image.$element.addClass('h5p-question-image-fill-width');
          }
          else { // Use margin for small res images
            sections.image.$element.removeClass('h5p-question-image-fill-width');
          }

          // Reset transition rules
          $imgWrap.css({
            '-webkit-transition': '',
            'transition': ''
          });
        };

        // Determine image width
        if ($img.is(':visible')) {
          determineImgWidth();
        }
        else {
          $img.on('load', determineImgWidth);
        }

        // Skip adding zoom functionality
        return;
      }

      const setAriaLabel = () => {
        const ariaLabel = $imgWrap.attr('aria-expanded') === 'true'
          ? options.minimizeImage 
          : options.expandImage;
          
          $imgWrap.attr('aria-label', `${ariaLabel} ${options.alt}`);
        };

      var sizeDetermined = false;
      var determineSize = function () {
        if (sizeDetermined || !$img.is(':visible')) {
          return; // Try again next time.
        }

        $imgWrap.addClass('h5p-question-image-scalable')
          .attr('aria-expanded', false)
          .attr('role', 'button')
          .attr('tabIndex', '0')
          .on('click', function (event) {
            if (event.which === 1) {
              scaleImage.apply(this); // Left mouse button click
              setAriaLabel();
            }
          }).on('keypress', function (event) {
            if (event.which === 32) {
              event.preventDefault(); // Prevent default behaviour; page scroll down
              scaleImage.apply(this); // Space bar pressed
              setAriaLabel();
            }
          });

        setAriaLabel();

        sections.image.$element.removeClass('h5p-question-image-fill-width');

        sizeDetermined  = true; // Prevent any futher events
      };

      self.on('resize', determineSize);

      return self;
    };

    /**
     * Add the introduction section.
     *
     * @param {(string|H5P.jQuery)} content
     */
    self.setIntroduction = function (content) {
      register('introduction', content);

      return self;
    };

    /**
     * Add the content section.
     *
     * @param {(string|H5P.jQuery)} content
     * @param {Object} [options]
     * @param {string} [options.class]
     */
    self.setContent = function (content, options) {
      register('content', content);

      if (options && options.class) {
        sections.content.$element.addClass(options.class);
      }

      return self;
    };

    /**
     * Force readspeaker to read text. Useful when you have to use
     * setTimeout for animations.
     */
    self.read = function (content) {
      if (!$read) {
        return; // Not ready yet
      }

      if (readText) {
        // Combine texts if called multiple times
        readText += (readText.substr(-1, 1) === '.' ? ' ' : '. ') + content;
      }
      else {
        readText = content;
      }

      // Set text
      $read.html(readText);

      setTimeout(function () {
        // Stop combining when done reading
        readText = null;
        $read.html('');
      }, 100);
    };

    /**
     * Read feedback
     */
    self.readFeedback = function () {
      var invalidFeedback =
        behaviour.disableReadSpeaker ||
        !showFeedback ||
        !sections.feedback ||
        !sections.feedback.$element;

      if (invalidFeedback) {
        return;
      }

      var $feedbackText = $('.h5p-question-feedback-content-text', sections.feedback.$element);
      if ($feedbackText && $feedbackText.html() && $feedbackText.html().length) {
        self.read($feedbackText.html());
      }
    };

    /**
     * Remove feedback
     *
     * @return {H5P.Question}
     */
    self.removeFeedback = function () {

      clearTimeout(feedbackTransitionTimer);

      if (sections.feedback && showFeedback) {

        showFeedback = false;

        // Hide feedback & scorebar
        hideSection(sections.scorebar);
        hideSection(sections.feedback);

        sectionsIsTransitioning = true;

        // Detach after transition
        feedbackTransitionTimer = setTimeout(function () {
          // Avoiding Transition.onTransitionEnd since it will register multiple events, and there's no way to cancel it if the transition changes back to "show" while the animation is happening.
          if (!showFeedback) {
            sections.feedback.$element.children().detach();
            sections.scorebar.$element.children().detach();

            // Trigger resize after animation
            self.trigger('resize');
          }
          sectionsIsTransitioning = false;
          scoreBar.setScore(0);
        }, 150);

        if ($wrapper) {
          $wrapper.find('.h5p-question-feedback-tail').remove();
        }
      }

      return self;
    };

    /**
     * Set feedback message.
     *
     * @param {string} [content]
     * @param {number} score The score
     * @param {number} maxScore The maximum score for this question
     * @param {string} [scoreBarLabel] Makes it easier for readspeakers to identify the scorebar
     * @param {string} [helpText] Help text that describes the score inside a tip icon
     * @param {object} [popupSettings] Extra settings for popup feedback
     * @param {boolean} [popupSettings.showAsPopup] Should the feedback display as popup?
     * @param {string} [popupSettings.closeText] Translation for close button text
     * @param {object} [popupSettings.click] Element representing where user clicked on screen
     */
    self.setFeedback = function (content, score, maxScore, scoreBarLabel, helpText, popupSettings, scoreExplanationButtonLabel) {
      // Feedback is disabled
      if (behaviour.disableFeedback) {
        return self;
      }

      // Need to toggle buttons right away to avoid flickering/blinking
      // Note: This means content types should invoke hide/showButton before setFeedback
      toggleButtons();

      clickElement = (popupSettings != null && popupSettings.click != null ? popupSettings.click : null);
      clearTimeout(feedbackTransitionTimer);

      var $feedback = $('<div>', {
        'class': 'h5p-question-feedback-container'
      });

      var $feedbackContent = $('<div>', {
        'class': 'h5p-question-feedback-content'
      }).appendTo($feedback);

      // Feedback text
      $('<div>', {
        'class': 'h5p-question-feedback-content-text',
        'html': content
      }).appendTo($feedbackContent);

      var $scorebar = $('<div>', {
        'class': 'h5p-question-scorebar-container'
      });
      if (scoreBar === undefined) {
        scoreBar = JoubelUI.createScoreBar(maxScore, scoreBarLabel, helpText, scoreExplanationButtonLabel);
      }
      scoreBar.appendTo($scorebar);

      $feedbackContent.toggleClass('has-content', content !== undefined && content.length > 0);

      // Feedback for readspeakers
      if (!behaviour.disableReadSpeaker && scoreBarLabel) {
        self.read(scoreBarLabel.replace(':num', score).replace(':total', maxScore) + '. ' + (content ? content : ''));
      }

      showFeedback = true;
      if (sections.feedback) {
        // Update section
        update('feedback', $feedback);
        update('scorebar', $scorebar);
      }
      else {
        // Create section
        register('feedback', $feedback);
        register('scorebar', $scorebar);
        if (initialized && $wrapper) {
          insert(self.order, 'feedback', sections, $wrapper);
          insert(self.order, 'scorebar', sections, $wrapper);
        }
      }

      showSection(sections.feedback);
      showSection(sections.scorebar);

      resizeButtons();

      if (popupSettings != null && popupSettings.showAsPopup == true) {
        makeFeedbackPopup(popupSettings.closeText);
        scoreBar.setScore(score);
      }
      else {
        // Show feedback section
        feedbackTransitionTimer = setTimeout(function () {
          setElementHeight(sections.feedback.$element);
          setElementHeight(sections.scorebar.$element);
          sectionsIsTransitioning = true;

          // Scroll to bottom after showing feedback
          scrollToBottom();

          // Trigger resize after animation
          feedbackTransitionTimer = setTimeout(function () {
            sectionsIsTransitioning = false;
            self.trigger('resize');
            scoreBar.setScore(score);
          }, 150);
        }, 0);
      }

      return self;
    };

    /**
     * Set feedback content (no animation).
     *
     * @param {string} content
     * @param {boolean} [extendContent] True will extend content, instead of replacing it
     */
    self.updateFeedbackContent = function (content, extendContent) {
      if (sections.feedback && sections.feedback.$element) {

        if (extendContent) {
          content = $('.h5p-question-feedback-content', sections.feedback.$element).html() + ' ' + content;
        }

        // Update feedback content html
        $('.h5p-question-feedback-content', sections.feedback.$element).html(content).addClass('has-content');

        // Make sure the height is correct
        setElementHeight(sections.feedback.$element);

        // Need to trigger resize when feedback has finished transitioning
        setTimeout(self.trigger.bind(self, 'resize'), 150);
      }

      return self;
    };

    /**
     * Set the content of the explanation / feedback panel
     *
     * @param {Object} data
     * @param {string} data.correct
     * @param {string} data.wrong
     * @param {string} data.text
     * @param {string} title Title for explanation panel
     *
     * @return {H5P.Question}
     */
    self.setExplanation = function (data, title) {
      if (data) {
        var explainer = new H5P.Question.Explainer(title, data);

        if (sections.explanation) {
          // Update section
          update('explanation', explainer.getElement());
        }
        else {
          register('explanation', explainer.getElement());

          if (initialized && $wrapper) {
            insert(self.order, 'explanation', sections, $wrapper);
          }
        }
      }
      else if (sections.explanation) {
        // Hide explanation section
        sections.explanation.$element.children().detach();
      }

      return self;
    };

    /**
     * Checks to see if button is registered.
     *
     * @param {string} id
     * @returns {boolean}
     */
    self.hasButton = function (id) {
      return (buttons[id] !== undefined);
    };

    /**
     * @typedef {Object} ConfirmationDialog
     * @property {boolean} [enable] Must be true to show confirmation dialog
     * @property {Object} [instance] Instance that uses confirmation dialog
     * @property {jQuery} [$parentElement] Append to this element.
     * @property {Object} [l10n] Translatable fields
     * @property {string} [l10n.header] Header text
     * @property {string} [l10n.body] Body text
     * @property {string} [l10n.cancelLabel]
     * @property {string} [l10n.confirmLabel]
     */

    /**
     * Register buttons for the task.
     *
     * @param {string} id
     * @param {string} text label
     * @param {function} clicked
     * @param {boolean} [visible=true]
     * @param {Object} [options] Options for button
     * @param {Object} [extras] Extra options
     * @param {ConfirmationDialog} [extras.confirmationDialog] Confirmation dialog
     * @param {Object} [extras.contentData] Content data
     * @params {string} [extras.textIfSubmitting] Text to display if submitting
     */
    self.addButton = function (id, text, clicked, visible, options, extras) {
      if (buttons[id]) {
        return self; // Already registered
      }

      if (sections.buttons === undefined)  {
        // We have buttons, register wrapper
        register('buttons');
        if (initialized) {
          insert(self.order, 'buttons', sections, $wrapper);
        }
      }

      extras = extras || {};
      extras.confirmationDialog = extras.confirmationDialog || {};
      options = options || {};

      var confirmationDialog =
        self.addConfirmationDialogToButton(extras.confirmationDialog, clicked);

      /**
       * Handle button clicks through both mouse and keyboard
       * @private
       */
      var handleButtonClick = function () {
        if (extras.confirmationDialog.enable && confirmationDialog) {
          // Show popups section if used
          if (!extras.confirmationDialog.$parentElement) {
            sections.popups.$element.removeClass('hidden');
          }
          confirmationDialog.show($e.position().top);
        }
        else {
          clicked();
        }
      };

      const isSubmitting = extras.contentData && extras.contentData.standalone
        && (extras.contentData.isScoringEnabled || extras.contentData.isReportingEnabled);

      if (isSubmitting && extras.textIfSubmitting) {
        text = extras.textIfSubmitting;
      }

      buttons[id] = {
        isTruncated: false,
        text: text,
        isVisible: false,
        ariaLabel: options['aria-label']
      };

      // The button might be <button> or <a>
      // (dependent on options.href set or not)
      var isAnchorTag = (options.href !== undefined);
      var $e = buttons[id].$element = JoubelUI.createButton($.extend({
        'class': 'h5p-question-' + id,
        html: text,
        on: {
          click: function (event) {
            handleButtonClick();
            if (isAnchorTag) {
              event.preventDefault();
            }
          }
        }
      }, options));
      buttonOrder.push(id);

      H5P.Tooltip($e.get(0), {tooltipSource: 'data-tooltip'});

      // The button might be <button> or <a>. If <a>, the space key is not
      // triggering the click event, must therefore handle this here:
      if (isAnchorTag) {
        $e.on('keypress', function (event) {
          if (event.which === 32) { // Space
            handleButtonClick();
            event.preventDefault();
          }
        });
      }

      if (visible === undefined || visible) {
        // Button should be visible
        $e.appendTo(sections.buttons.$element);
        buttons[id].isVisible = true;
        showSection(sections.buttons);
      }

      return self;
    };

    var setButtonWidth = function (button) {
      var $button = button.$element;
      var $tmp = $button.clone()
        .css({
          'position': 'absolute',
          'white-space': 'nowrap',
          'max-width': 'none'
        }).removeClass('truncated')
        .html(button.text)
        .appendTo($button.parent());

      // Calculate max width (button including text)
      button.width = {
        max: Math.ceil($tmp.outerWidth() + parseFloat($tmp.css('margin-left')) + parseFloat($tmp.css('margin-right')))
      };

      // Calculate min width (truncated, icon only)
      $tmp.html('').addClass('truncated');
      button.width.min = Math.ceil($tmp.outerWidth() + parseFloat($tmp.css('margin-left')) + parseFloat($tmp.css('margin-right')));
      $tmp.remove();
    };

    /**
     * Add confirmation dialog to button
     * @param {ConfirmationDialog} options
     *  A confirmation dialog that will be shown before click handler of button
     *  is triggered
     * @param {function} clicked
     *  Click handler of button
     * @return {H5P.ConfirmationDialog|undefined}
     *  Confirmation dialog if enabled
     */
    self.addConfirmationDialogToButton = function (options, clicked) {
      options = options || {};

      if (!options.enable) {
        return;
      }

      // Confirmation dialog
      var confirmationDialog = new H5P.ConfirmationDialog({
        instance: options.instance,
        headerText: options.l10n.header,
        dialogText: options.l10n.body,
        cancelText: options.l10n.cancelLabel,
        confirmText: options.l10n.confirmLabel
      });

      // Determine parent element
      if (options.$parentElement) {
        const parentElement = options.$parentElement.get(0);
        let dialogParent;
        // If using h5p-content, dialog will not appear on embedded fullscreen
        if (parentElement.classList.contains('h5p-content')) {
          dialogParent = parentElement.querySelector('.h5p-container');
        }

        confirmationDialog.appendTo(dialogParent ?? parentElement);
      }
      else {

        // Create popup section and append to that
        if (sections.popups === undefined) {
          register('popups');
          if (initialized) {
            insert(self.order, 'popups', sections, $wrapper);
          }
          sections.popups.$element.addClass('hidden');
          self.order.push('popups');
        }
        confirmationDialog.appendTo(sections.popups.$element.get(0));
      }

      // Add event listeners
      confirmationDialog.on('confirmed', function () {
        if (!options.$parentElement) {
          sections.popups.$element.addClass('hidden');
        }
        clicked();

        // Trigger to content type
        self.trigger('confirmed');
      });

      confirmationDialog.on('canceled', function () {
        if (!options.$parentElement) {
          sections.popups.$element.addClass('hidden');
        }
        // Trigger to content type
        self.trigger('canceled');
      });

      return confirmationDialog;
    };

    /**
     * Show registered button with given identifier.
     *
     * @param {string} id
     * @param {Number} [priority]
     */
    self.showButton = function (id, priority) {
      var aboutToBeHidden = existsInArray(id, 'id', buttonsToHide) !== -1;
      if (buttons[id] === undefined || (buttons[id].isVisible === true && !aboutToBeHidden)) {
        return self;
      }

      priority = priority || 0;

      // Skip if already being shown
      var indexToShow = existsInArray(id, 'id', buttonsToShow);
      if (indexToShow !== -1) {

        // Update priority
        if (buttonsToShow[indexToShow].priority < priority) {
          buttonsToShow[indexToShow].priority = priority;
        }

        return self;
      }

      // Check if button is going to be hidden on next tick
      var exists = existsInArray(id, 'id', buttonsToHide);
      if (exists !== -1) {

        // Skip hiding if higher priority
        if (buttonsToHide[exists].priority <= priority) {
          buttonsToHide.splice(exists, 1);
          buttonsToShow.push({id: id, priority: priority});
        }

      } // If button is not shown
      else if (!buttons[id].$element.is(':visible')) {

        // Show button on next tick
        buttonsToShow.push({id: id, priority: priority});
      }

      if (!toggleButtonsTimer) {
        toggleButtonsTimer = setTimeout(toggleButtons, 0);
      }

      return self;
    };

    /**
     * Hide registered button with given identifier.
     *
     * @param {string} id
     * @param {number} [priority]
     */
    self.hideButton = function (id, priority) {
      var aboutToBeShown = existsInArray(id, 'id', buttonsToShow) !== -1;
      if (buttons[id] === undefined || (buttons[id].isVisible === false && !aboutToBeShown)) {
        return self;
      }

      priority = priority || 0;

      // Skip if already being hidden
      var indexToHide = existsInArray(id, 'id', buttonsToHide);
      if (indexToHide !== -1) {

        // Update priority
        if (buttonsToHide[indexToHide].priority < priority) {
          buttonsToHide[indexToHide].priority = priority;
        }

        return self;
      }

      // Check if buttons is going to be shown on next tick
      var exists = existsInArray(id, 'id', buttonsToShow);
      if (exists !== -1) {

        // Skip showing if higher priority
        if (buttonsToShow[exists].priority <= priority) {
          buttonsToShow.splice(exists, 1);
          buttonsToHide.push({id: id, priority: priority});
        }
      }
      else if (!buttons[id].$element.is(':visible')) {

        // Make sure it is detached in case the container is hidden.
        hideButton(id);
      }
      else {

        // Hide button on next tick.
        buttonsToHide.push({id: id, priority: priority});
      }

      if (!toggleButtonsTimer) {
        toggleButtonsTimer = setTimeout(toggleButtons, 0);
      }

      return self;
    };

    /**
     * Set focus to the given button. If no button is given the first visible
     * button gets focused. This is useful if you lose focus.
     *
     * @param {string} [id]
     */
    self.focusButton = function (id) {
      if (id === undefined) {
        // Find first button that is visible.
        for (var i = 0; i < buttonOrder.length; i++) {
          var button = buttons[buttonOrder[i]];
          if (button && button.isVisible) {
            // Give that button focus
            button.$element.focus();
            break;
          }
        }
      }
      else if (buttons[id] && buttons[id].$element.is(':visible')) {
        // Set focus to requested button
        buttons[id].$element.focus();
      }

      return self;
    };

    /**
     * Toggle readspeaker functionality
     * @param {boolean} [disable] True to disable, false to enable.
     */
    self.toggleReadSpeaker = function (disable) {
      behaviour.disableReadSpeaker = disable || !behaviour.disableReadSpeaker;
    };

    /**
     * Set new element for section.
     *
     * @param {String} id
     * @param {H5P.jQuery} $element
     */
    self.insertSectionAtElement = function (id, $element) {
      if (sections[id] === undefined) {
        register(id);
      }
      sections[id].parent = $element;

      // Insert section if question is not initialized
      if (!initialized) {
        insert([id], id, sections, $element);
      }

      return self;
    };

    /**
     * Attach content to given container.
     *
     * @param {H5P.jQuery} $container
     */
    self.attach = function ($container) {
      if (self.isRoot()) {
        self.setActivityStarted();
      }

      // The first time we attach we also create our DOM elements.
      if ($wrapper === undefined) {
        if (self.registerDomElements !== undefined &&
           (self.registerDomElements instanceof Function ||
           typeof self.registerDomElements === 'function')) {

          // Give the question type a chance to register before attaching
          self.registerDomElements();
        }

        // Create section for reading messages
        $read = $('<div/>', {
          'aria-live': 'polite',
          'class': 'h5p-hidden-read'
        });
        register('read', $read);
        self.trigger('registerDomElements');
      }

      // Prepare container
      $wrapper = $container;
      $container.html('')
        .addClass('h5p-question h5p-' + type);

      // Add sections in given order
      var $sections = [];
      for (var i = 0; i < self.order.length; i++) {
        var section = self.order[i];
        if (sections[section]) {
          if (sections[section].parent) {
            // Section has a different parent
            sections[section].$element.appendTo(sections[section].parent);
          }
          else {
            $sections.push(sections[section].$element);
          }
          sections[section].isVisible = true;
        }
      }

      // Only append once to DOM for optimal performance
      $container.append($sections);

      // Let others react to dom changes
      self.trigger('domChanged', {
        '$target': $container,
        'library': self.libraryInfo.machineName,
        'contentId': self.contentId,
        'key': 'newLibrary'
      }, {'bubbles': true, 'external': true});

      // ??
      initialized = true;

      return self;
    };

    /**
     * Detach all sections from their parents
     */
    self.detachSections = function () {
      // Deinit Question
      initialized = false;

      // Detach sections
      for (var section in sections) {
        sections[section].$element.detach();
      }

      return self;
    };

    // Listen for resize
    self.on('resize', function () {
      // Allow elements to attach and set their height before resizing
      if (!sectionsIsTransitioning && sections.feedback && showFeedback) {
        // Resize feedback to fit
        setElementHeight(sections.feedback.$element);
      }

      // Re-position feedback popup if in use
      var $element = sections.feedback;
      var $click = clickElement;

      if ($element != null && $element.$element != null && $click != null && $click.$element != null) {
        setTimeout(function () {
          positionFeedbackPopup($element.$element, $click.$element);
        }, 10);
      }

      resizeButtons();
    });
  }

  // Inheritance
  Question.prototype = Object.create(EventDispatcher.prototype);
  Question.prototype.constructor = Question;

  /**
   * Determine the overall feedback to display for the question.
   * Returns empty string if no matching range is found.
   *
   * @param {Object[]} feedbacks
   * @param {number} scoreRatio
   * @return {string}
   */
  Question.determineOverallFeedback = function (feedbacks, scoreRatio) {
    scoreRatio = Math.floor(scoreRatio * 100);

    for (var i = 0; i < feedbacks.length; i++) {
      var feedback = feedbacks[i];
      var hasFeedback = (feedback.feedback !== undefined && feedback.feedback.trim().length !== 0);

      if (feedback.from <= scoreRatio && feedback.to >= scoreRatio && hasFeedback) {
        return feedback.feedback;
      }
    }

    return '';
  };

  return Question;
})(H5P.jQuery, H5P.EventDispatcher, H5P.JoubelUI);
;H5P.Question.Explainer = (function ($) {
  /**
   * Constructor
   *
   * @class
   * @param {string} title
   * @param {array} explanations
   */
  function Explainer(title, explanations) {
    var self = this;

    /**
     * Create the DOM structure
     */
    var createHTML = function () {
      self.$explanation = $('<div>', {
        'class': 'h5p-question-explanation-container'
      });

      // Add title:
      $('<div>', {
        'class': 'h5p-question-explanation-title',
        role: 'heading',
        html: title,
        appendTo: self.$explanation
      });

      var $explanationList = $('<ul>', {
        'class': 'h5p-question-explanation-list',
        appendTo: self.$explanation
      });

      for (var i = 0; i < explanations.length; i++) {
        var feedback = explanations[i];
        var $explanationItem = $('<li>', {
          'class': 'h5p-question-explanation-item',
          appendTo: $explanationList
        });

        var $content = $('<div>', {
          'class': 'h5p-question-explanation-status'
        });

        if (feedback.correct) {
          $('<span>', {
            'class': 'h5p-question-explanation-correct',
            html: feedback.correct,
            appendTo: $content
          });
        }
        if (feedback.wrong) {
          $('<span>', {
            'class': 'h5p-question-explanation-wrong',
            html: feedback.wrong,
            appendTo: $content
          });
        }
        $content.appendTo($explanationItem);

        if (feedback.text) {
          $('<div>', {
            'class': 'h5p-question-explanation-text',
            html: feedback.text,
            appendTo: $explanationItem
          });
        }
      }
    };

    createHTML();

    /**
     * Return the container HTMLElement
     *
     * @return {HTMLElement}
     */
    self.getElement = function () {
      return self.$explanation;
    };
  }

  return Explainer;

})(H5P.jQuery);
;(function (Question) {

  /**
   * Makes it easy to add animated score points for your question type.
   *
   * @class H5P.Question.ScorePoints
   */
  Question.ScorePoints = function () {
    var self = this;

    var elements = [];
    var showElementsTimer;

    /**
     * Create the element that displays the score point element for questions.
     *
     * @param {boolean} isCorrect
     * @return {HTMLElement}
     */
    self.getElement = function (isCorrect) {
      var element = document.createElement('div');
      element.classList.add(isCorrect ? 'h5p-question-plus-one' : 'h5p-question-minus-one');
      element.classList.add('h5p-question-hidden-one');
      elements.push(element);

      // Schedule display animation of all added elements
      if (showElementsTimer) {
        clearTimeout(showElementsTimer);
      }
      showElementsTimer = setTimeout(showElements, 0);

      return element;
    };

    /**
     * @private
     */
    var showElements = function () {
      // Determine delay between triggering animations
      var delay = 0;
      var increment = 150;
      var maxTime = 1000;

      if (elements.length && elements.length > Math.ceil(maxTime / increment)) {
        // Animations will run for more than ~1 second, reduce it.
        increment = maxTime / elements.length;
      }

      for (var i = 0; i < elements.length; i++) {
        // Use timer to trigger show
        setTimeout(showElement(elements[i]), delay);

        // Increse delay for next element
        delay += increment;
      }
    };

    /**
     * Trigger transition animation for the given element
     *
     * @private
     * @param {HTMLElement} element
     * @return {function}
     */
    var showElement = function (element) {
      return function () {
        element.classList.remove('h5p-question-hidden-one');
      };
    };
  };

})(H5P.Question);
;/*! For license information please see h5p-game-map.js.LICENSE.txt */
!function(){var e={67:function(e,t,s){var a;e=s.nmd(e),function(){var i=t,r=(e&&e.exports,"object"==typeof s.g&&s.g);r.global!==r&&r.window;var n=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,o=/[\x01-\x7F]/g,l=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,c=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,u={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ﬀ":"fflig","ﬃ":"ffilig","ﬄ":"ffllig","ﬁ":"filig",fj:"fjlig","ﬂ":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ĳ":"ijlig","Ĳ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ŉ":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},h=/["&'<>`]/g,d={'"':"&quot;","&":"&amp;","'":"&#x27;","<":"&lt;",">":"&gt;","`":"&#x60;"},p=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,m=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,g=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,b={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ﬃ",fflig:"ﬀ",ffllig:"ﬄ",ffr:"𝔣",Ffr:"𝔉",filig:"ﬁ",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"ﬂ",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ĳ",IJlig:"Ĳ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ŉ",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},f={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},y={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},v=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],w=String.fromCharCode,S={}.hasOwnProperty,x=function(e,t){return S.call(e,t)},k=function(e,t){if(!e)return t;var s,a={};for(s in t)a[s]=x(e,s)?e[s]:t[s];return a},E=function(e,t){var s="";return e>=55296&&e<=57343||e>1114111?(t&&D("character reference outside the permissible Unicode range"),"�"):x(y,e)?(t&&D("disallowed character reference"),y[e]):(t&&function(e,t){for(var s=-1,a=e.length;++s<a;)if(e[s]==t)return!0;return!1}(v,e)&&D("disallowed character reference"),e>65535&&(s+=w((e-=65536)>>>10&1023|55296),e=56320|1023&e),s+=w(e))},A=function(e){return"&#x"+e.toString(16).toUpperCase()+";"},T=function(e){return"&#"+e+";"},D=function(e){throw Error("Parse error: "+e)},L=function(e,t){(t=k(t,L.options)).strict&&m.test(e)&&D("forbidden code point");var s=t.encodeEverything,a=t.useNamedReferences,i=t.allowUnsafeSymbols,r=t.decimal?T:A,d=function(e){return r(e.charCodeAt(0))};return s?(e=e.replace(o,(function(e){return a&&x(u,e)?"&"+u[e]+";":d(e)})),a&&(e=e.replace(/&gt;\u20D2/g,"&nvgt;").replace(/&lt;\u20D2/g,"&nvlt;").replace(/&#x66;&#x6A;/g,"&fjlig;")),a&&(e=e.replace(c,(function(e){return"&"+u[e]+";"})))):a?(i||(e=e.replace(h,(function(e){return"&"+u[e]+";"}))),e=(e=e.replace(/&gt;\u20D2/g,"&nvgt;").replace(/&lt;\u20D2/g,"&nvlt;")).replace(c,(function(e){return"&"+u[e]+";"}))):i||(e=e.replace(h,d)),e.replace(n,(function(e){var t=e.charCodeAt(0),s=e.charCodeAt(1);return r(1024*(t-55296)+s-56320+65536)})).replace(l,d)};L.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var C=function(e,t){var s=(t=k(t,C.options)).strict;return s&&p.test(e)&&D("malformed character reference"),e.replace(g,(function(e,a,i,r,n,o,l,c,u){var h,d,p,m,g,y;return a?b[g=a]:i?(g=i,(y=r)&&t.isAttributeValue?(s&&"="==y&&D("`&` did not start a character reference"),e):(s&&D("named character reference was not terminated by a semicolon"),f[g]+(y||""))):n?(p=n,d=o,s&&!d&&D("character reference was not terminated by a semicolon"),h=parseInt(p,10),E(h,s)):l?(m=l,d=c,s&&!d&&D("character reference was not terminated by a semicolon"),h=parseInt(m,16),E(h,s)):(s&&D("named character reference was not terminated by a semicolon"),e)}))};C.options={isAttributeValue:!1,strict:!1};var q={version:"1.2.0",encode:L,decode:C,escape:function(e){return e.replace(h,(function(e){return d[e]}))},unescape:C};void 0===(a=function(){return q}.call(t,s,t,e))||(e.exports=a)}()}},t={};function s(a){var i=t[a];if(void 0!==i)return i.exports;var r=t[a]={id:a,loaded:!1,exports:{}};return e[a].call(r.exports,r,r.exports,s),r.loaded=!0,r.exports}s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){"use strict";var e=JSON.parse('[{"name":"showTitleScreen","label":"Show title screen","description":"If checked, a title screen will show up when starting.","type":"boolean","default":false,"optional":true},{"name":"titleScreen","label":"Title screen","type":"group","importance":"low","fields":[{"name":"titleScreenIntroduction","label":"Introduction","type":"text","widget":"html","placeholder":"Welcome to ...","optional":true,"enterMode":"div","tags":["sub","sup","strong","em","p","code","u","del","a","ul","ol","hr","pre","code"],"font":{"size":true,"color":true,"background":true},"default":"<p style=\\"text-align: center;\\"></p>"},{"name":"titleScreenMedium","label":"Title screen media","type":"library","optional":true,"options":["H5P.Image 1.1","H5P.Video 1.6"]}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"showTitleScreen","equals":true}]}},{"name":"headline","label":"Headline","type":"text","description":"Optional headline for the titlebar.","optional":true},{"name":"gamemapSteps","type":"group","label":"Game map editor","importance":"high","widget":"wizard","fields":[{"name":"backgroundImageSettings","label":"Background","type":"group","importance":"high","fields":[{"name":"backgroundImage","type":"image","label":"Background image","importance":"high","description":"Select an image to use as the background of the game map.","optional":true},{"name":"backgroundColor","type":"text","label":"Background color","description":"Choose a color to use as the background of the game map.","default":"rgb(255, 255, 255)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"preferredFormat":"rgb"}}]},{"name":"gamemap","label":"Game map","type":"group","importance":"high","widget":"gamemap","fields":[{"name":"dummy","type":"boolean","widget":"none","optional":true},{"name":"elements","type":"list","label":"Elements","importance":"high","entity":"Element","field":{"name":"elements","type":"group","label":"Elements","importance":"high","fields":[{"name":"id","type":"text","label":"Id","widget":"none"},{"name":"type","type":"text","label":"Type","widget":"none"},{"name":"label","type":"text","label":"Stage label","description":"This label will be displayed on top of your exercise and will help you to connect different stages with one another.","importance":"medium"},{"name":"canBeStartStage","type":"boolean","label":"User can start here","description":"If checked, this stage will be a stage that the user start at. If no stage or more than one stage can be the start stage, the starting stage will be chosen randomly.","importance":"medium","default":false},{"name":"time","type":"group","label":"Time limit","description":"Define timer related settings.","fields":[{"name":"timeLimit","type":"number","label":"Time limit","description":"Optional time limit in seconds. If a user exceeds this time, the exercise will close, be reset, and the user will loose a life if lives are limited.","min":1,"optional":true},{"name":"timeoutWarning","type":"number","label":"Timeout warning time","description":"Optionally set when a timeout warning audio should be played (number of remaining seconds). An audio needs to be set in the audio settings.","min":1,"optional":true}]},{"name":"accessRestrictions","type":"group","label":"Access restrictions","description":"Define restrictions for unlocking.","fields":[{"name":"allOrAnyRestrictionSet","type":"select","label":"All or any restriction set","description":"Choose if all or any of the following restrictions need to be met.","optional":true,"options":[{"value":"all","label":"All"},{"value":"any","label":"Any"}],"default":"all"},{"name":"restrictionSetList","type":"list","optional":true,"label":"Restriction sets","entity":"restriction set","widgets":[{"name":"VerticalTabs","label":"Default"}],"field":{"name":"restrictionSetGroup","type":"group","label":"Restriction set","fields":[{"name":"allOrAnyRestriction","type":"select","label":"All or any restriction","description":"Choose if all or any of the following restrictions need to be met.","options":[{"value":"all","label":"All"},{"value":"any","label":"Any"}],"default":"any"},{"name":"restrictionList","type":"list","label":"Restrictions","entity":"restriction","optional":true,"field":{"name":"restrictionGroup","type":"group","label":"Restriction","fields":[{"name":"restrictionType","label":"Restriction type","type":"select","optional":true,"options":[{"value":"totalScore","label":"Total score"},{"value":"stageScore","label":"Stage score"},{"value":"stageProgress","label":"Stage progress"},{"value":"time","label":"Time"}],"default":"totalScore"},{"name":"totalScoreGroup","type":"group","label":"Total score","expanded":true,"fields":[{"name":"totalScoreOperator","label":"Operator for total score","type":"select","optional":true,"options":[{"value":"lessThan","label":"less than"},{"value":"equalTo","label":"equal to"},{"value":"notEqualTo","label":"not equal to"},{"value":"greaterThan","label":"greater than"}],"default":"greaterThan"},{"name":"totalScoreValue","label":"Value of total score to compare to","type":"number","optional":true}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"restrictionType","equals":"totalScore"}]}},{"name":"stageScoreGroup","type":"group","label":"Stage score","expanded":true,"fields":[{"name":"stageScoreId","type":"select","label":"Stage to get score from","widget":"gamemapstageselect","optional":true,"options":[]},{"name":"stageScoreOperator","label":"Operator for stage score","type":"select","optional":true,"options":[{"value":"lessThan","label":"less than"},{"value":"equalTo","label":"equal to"},{"value":"notEqualTo","label":"not equal to"},{"value":"greaterThan","label":"greater than"}],"default":"before"},{"name":"stageScoreValue","label":"Score score to compare to","type":"number","optional":true}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"restrictionType","equals":"stageScore"}]}},{"name":"stageProgressGroup","type":"group","label":"Stage progress","expanded":true,"fields":[{"name":"stageProgressId","type":"select","label":"Stage to get progress from","widget":"gamemapstageselect","optional":true,"options":[]},{"name":"stageProgressOperator","label":"Operator for stage progress","type":"select","optional":true,"options":[{"value":"is","label":"is"},{"value":"isNot","label":"is not"}],"default":"is"},{"name":"stageProgressValue","label":"Progress to compare to","type":"select","options":[{"value":"unstarted","label":"not started"},{"value":"opened","label":"started"},{"value":"completed","label":"completed"},{"value":"cleared","label":"completed successfully"}],"default":"open","optional":true}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"restrictionType","equals":"stageProgress"}]}},{"name":"timeGroup","type":"group","label":"Time","expanded":true,"fields":[{"name":"timeOperator","label":"Operator for time","type":"select","optional":true,"options":[{"value":"before","label":"before"},{"value":"is","label":"is"},{"value":"is not","label":"is not"},{"value":"after","label":"after"}],"default":"before"},{"name":"timeValue","label":"Time to compare to","type":"text","widget":"datetime","optional":true}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"restrictionType","equals":"time"}]}}]}}]}},{"name":"dummy","type":"boolean","label":"Dummy","widget":"none","optional":true}]},{"name":"contentsList","type":"list","label":"Contents","entity":"content","min":1,"widgets":[{"name":"VerticalTabs","label":"Default"}],"field":{"name":"contentsGroup","type":"group","label":"Content","fields":[{"name":"contentType","type":"library","label":"Stage content","description":"Choose the type of content you would like to add.","importance":"high","options":["H5P.Accordion 1.0","H5P.Agamotto 1.6","H5P.Audio 1.5","H5P.AudioRecorder 1.0","H5P.ChoiceExplorer 1.0","H5P.CombinationLock 1.0","H5P.CoursePresentation 1.26","H5P.Crossword 0.5","H5P.Dialogcards 1.9","H5P.DragQuestion 1.14","H5P.DragText 1.10","H5P.Essay 1.5","H5P.Blanks 1.14","H5P.ImageHotspotQuestion 1.8","H5P.Image 1.1","H5P.MultiMediaChoice 0.3","H5P.ImageHotspots 1.10","H5P.ImageSlider 1.1","H5P.InteractiveVideo 1.27","H5P.MarkTheWords 1.11","H5P.MemoryGame 1.3","H5P.MultiChoice 1.16","H5P.QuestionSet 1.20","H5P.SingleChoiceSet 1.11","H5P.Tabs 1.1","H5P.AdvancedText 1.1","H5P.Transcript 1.1","H5P.TrueFalse 1.8","H5P.Video 1.6","H5P.XRay 0.1"]},{"name":"dummy","type":"boolean","label":"Dummy","widget":"none"}]}},{"name":"specialStageType","type":"select","label":"Special stage type","options":[{"value":"finish","label":"Finish"},{"value":"extra-life","label":"Extra life"},{"value":"extra-time","label":"Extra time"},{"value":"link","label":"Link to external content"}]},{"name":"specialStageExtraLives","type":"number","label":"Number of extra lives","description":"Set how many lives the user will get when entering this stage.","default":1,"min":1},{"name":"specialStageExtraTime","type":"number","label":"Number of seconds of extra time","description":"Set how many seconds the user will gain for the global time limit when entering this stage.","default":1,"min":1},{"name":"specialStageLinkURL","type":"text","label":"URL to link to","description":"Set where the user should be sent to when opening this stage.","optional":false},{"name":"specialStageLinkTarget","type":"select","label":"Place to open link in","options":[{"value":"_blank","label":"New tab"},{"value":"_parent","label":"Same tab"}],"default":"_blank"},{"name":"alwaysVisible","type":"boolean","label":"Always visible","description":"If checked, this stage will always be visible, even if the map\'s visibility range settings dictate otherwise.","default":false,"optional":true},{"name":"overrideSymbol","type":"boolean","label":"Override lock symbol","description":"If checked, locked stages will not use the lock symbol, but the symbol for the special stage type.","default":false,"optional":true},{"name":"neighbors","type":"select","label":"Connected stages","widget":"gamemapdynamiccheckboxes","importance":"medium","multiple":true,"options":[]},{"name":"telemetry","type":"group","label":"Telemetry","importance":"low","widget":"none","fields":[{"name":"x","type":"text"},{"name":"y","type":"text"},{"name":"height","type":"text"},{"name":"width","type":"text"}]}]}},{"name":"paths","type":"list","label":"Paths","entity":"path","field":{"name":"pathsGroup","type":"group","label":"Path","fields":[{"name":"from","type":"number","label":"From","widget":"none"},{"name":"to","type":"number","label":"To","widget":"none"},{"name":"visualsType","type":"select","label":"Visual settings","options":[{"value":"global","label":"Use global settings"},{"value":"custom","label":"Use custom settings"}],"default":"global"},{"name":"customVisuals","type":"group","expanded":true,"label":"Custom visual settings","fields":[{"name":"colorPath","type":"text","label":"Color path","optional":true,"default":"rgba(0, 0, 0, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"pathWidth","type":"select","label":"Path width","default":"0.2","optional":false,"options":[{"value":"0.1","label":"thin"},{"value":"0.2","label":"medium"},{"value":"0.3","label":"thick"}]},{"name":"pathStyle","type":"select","label":"Path style","default":"dotted","optional":false,"options":[{"value":"solid","label":"Solid"},{"value":"dotted","label":"Dotted"},{"value":"dashed","label":"Dashed"},{"value":"double","label":"Double"}]}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"visualsType","equals":"custom"}]}}]}}]}]},{"name":"endScreen","label":"End screen","type":"group","importance":"low","fields":[{"name":"noSuccess","label":"User not successful","type":"group","importance":"low","fields":[{"name":"endScreenTextNoSuccess","label":"Message (user not successful)","type":"text","widget":"html","placeholder":"You did not make it this time ...","optional":true,"enterMode":"div","tags":["sub","sup","strong","em","p","code","u","del","a","ul","ol","hr","pre","code"],"font":{"size":true,"color":true,"background":true},"default":"<p style=\\"text-align: center;\\"></p>"},{"name":"endScreenMediumNoSuccess","label":"End screen media (user not successful)","type":"library","optional":true,"options":["H5P.Image 1.1","H5P.Video 1.6"]}]},{"name":"success","label":"User successful","type":"group","importance":"low","fields":[{"name":"endScreenTextSuccess","label":"Message (user successful)","type":"text","widget":"html","placeholder":"You made it ...","optional":true,"enterMode":"div","tags":["sub","sup","strong","em","p","code","u","del","a","ul","ol","hr","pre","code"],"font":{"size":true,"color":true,"background":true},"default":"<p style=\\"text-align: center;\\"></p>"},{"name":"endScreenMediumSuccess","label":"End screen media (user successful)","type":"library","optional":true,"options":["H5P.Image 1.1","H5P.Video 1.6"]}]},{"name":"overallFeedback","type":"group","label":"Overall Feedback","importance":"low","expanded":true,"fields":[{"name":"overallFeedback","type":"list","widgets":[{"name":"RangeList","label":"Default"}],"importance":"high","label":"Define custom feedback for any score range","description":"Click the \\"Add range\\" button to add as many ranges as you need. Example: 0-20% Bad score, 21-91% Average Score, 91-100% Great Score!","entity":"range","min":1,"defaultNum":1,"optional":true,"field":{"name":"overallFeedback","type":"group","importance":"low","fields":[{"name":"from","type":"number","label":"Score Range","min":0,"max":100,"default":0,"unit":"%"},{"name":"to","type":"number","min":0,"max":100,"default":100,"unit":"%"},{"name":"feedback","type":"text","label":"Feedback for defined score range","placeholder":"Fill in the feedback","optional":true}]}}]}]},{"name":"visual","type":"group","importance":"low","label":"Visual settings","fields":[{"name":"stages","type":"group","label":"Stages","importance":"low","optional":true,"fields":[{"name":"colorStage","type":"text","label":"Color not visited stage","optional":true,"default":"rgba(250, 223, 10, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"colorStageLocked","type":"text","label":"Color locked stage","optional":true,"default":"rgba(153, 0, 0, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"colorStageCleared","type":"text","label":"Color cleared stage","optional":true,"default":"rgba(0, 130, 0, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"showScoreStars","type":"select","label":"Show stars for scores","description":"Choose if and when stars will be displayed on the map for the scores of the stages. Please note that stages without scored exercises will not get the stars.","options":[{"value":"never","label":"Never"},{"value":"onHover","label":"On hover"},{"value":"always","label":"Always"}],"default":"never"}]},{"name":"paths","type":"group","label":"Paths","importance":"low","optional":true,"fields":[{"name":"displayPaths","type":"boolean","label":"Display paths","description":"Choose whether paths will be displayed on the map. Please note: The paths are always visible in the editor.","optional":true,"default":true},{"name":"style","type":"group","label":"Style","importance":"low","expanded":true,"fields":[{"name":"colorPath","type":"text","label":"Color path","optional":true,"default":"rgba(0, 0, 0, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"colorPathCleared","type":"text","label":"Color path cleared","optional":true,"default":"rgba(0, 130, 0, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"pathWidth","type":"select","label":"Path width","default":"0.2","optional":false,"options":[{"value":"0.1","label":"thin"},{"value":"0.2","label":"medium"},{"value":"0.3","label":"thick"}]},{"name":"pathStyle","type":"select","label":"Path style","default":"dotted","optional":false,"options":[{"value":"solid","label":"Solid"},{"value":"dotted","label":"Dotted"},{"value":"dashed","label":"Dashed"},{"value":"double","label":"Double"}]}]}]},{"name":"misc","type":"group","label":"Miscellaneous","collapsed":true,"importance":"low","fields":[{"name":"useAnimation","type":"boolean","label":"Animate map","description":"Decide if the map should be animated. Even if you set this option, the content type will honor the users\' browser setting if they prefer reduced motion.","default":true},{"name":"dummy","type":"boolean","label":"Dummy","widget":"none"}]}]},{"name":"audio","type":"group","importance":"low","label":"Audio settings","fields":[{"name":"backgroundMusic","type":"group","importance":"low","label":"Background music","fields":[{"name":"music","type":"audio","label":"Background music","optional":true},{"name":"muteDuringExercise","type":"boolean","label":"Mute when taking exercises","default":true,"optional":true}]},{"name":"ambient","type":"group","importance":"low","label":"Events","fields":[{"name":"clickStageLocked","type":"audio","label":"Click on locked stage","description":"Will be played on the map when clicking on a locked stage.","optional":true},{"name":"checkExerciseNotFullScore","type":"audio","label":"Check exercise (not full score)","description":"Will be played when an answer is checked and the user did not get full score.","optional":true},{"name":"checkExerciseFullScore","type":"audio","label":"Check exercise (full score)","description":"Will be played when an answer is checked and the user did get full score.","optional":true},{"name":"unlockStage","type":"audio","label":"Unlocking a stage","description":"Will be played on the map when a stage gets unlocked.","optional":true},{"name":"openExercise","type":"audio","label":"Open exercise","description":"Will be played when an exercise is opened.","optional":true},{"name":"closeExercise","type":"audio","label":"Close exercise","description":"Will be played when an exercise is closed.","optional":true},{"name":"showDialog","type":"audio","label":"Show dialog","description":"Will be played when a confirmation dialog is shown.","optional":true},{"name":"fullScore","type":"audio","label":"Full score","description":"Will be played when the user reaches full score for the map.","optional":true},{"name":"lostLife","type":"audio","label":"Lost a life","description":"Will be played when the user loses a life.","optional":true},{"name":"gainedLife","type":"audio","label":"Gained life","description":"Will be played when the user gains a life.","optional":true},{"name":"gameOver","type":"audio","label":"Game over","description":"Will be played when the user is game over.","optional":true},{"name":"extraTime","type":"audio","label":"Gained extra time","description":"Will be played when the user gains extra time.","optional":true},{"name":"timeoutWarning","type":"audio","label":"Timeout warning","description":"Will be played when the user is running out of time for an exercise or if the global time runs out.","optional":true},{"name":"endscreenNoSuccess","type":"audio","label":"End screen (not full score)","description":"Will be played on the end screen if the user did not get full score.","optional":true},{"name":"endscreenSuccess","type":"audio","label":"End screen (full score)","description":"Will be played on the end screen if the user got full score.","optional":true}]}]},{"name":"behaviour","type":"group","importance":"low","label":"Behavioural settings","fields":[{"name":"lives","label":"Lives","description":"Set the number of lives for a user or leave empty for unlimited lives. Users will lose a life when they do not get full score and they cannot continue once all lives are lost.","type":"number","min":1,"optional":true},{"name":"timeLimitGlobal","type":"number","label":"Global time limit","description":"Optional time limit in seconds for the whole game. If a user exceeds this time, the game will be over immediately.","min":1,"optional":true},{"name":"timeoutWarningGlobal","type":"number","label":"Timeout warning time","description":"Optionally set when a timeout warning audio should be played (number of remaining seconds). An audio needs to be set in the audio settings.","min":1,"optional":true},{"name":"finishScore","type":"number","label":"Finish score","description":"Optional score that can be lower than the summed maximum score of all exercises, so users can receive full score without completing all exercises.","min":0,"optional":true},{"name":"enableRetry","label":"Enable \\"Retry\\" button","type":"boolean","default":true,"optional":true},{"name":"enableSolutionsButton","label":"Enable \\"Show solutions\\" button","type":"boolean","default":true,"optional":true},{"name":"map","type":"group","label":"Map","fields":[{"name":"showLabels","type":"boolean","label":"Show stage labels","description":"Choose whether a stage\'s label will be shown on hovering a stage with the mouse. The label will not show on touch devices.","default":true},{"name":"roaming","type":"select","label":"Roaming","description":"Choose whether users can roam all stages freely, need to finish a stage to get access to that stage\'s neighbors, or need to pass a stage to get access to that stage\'s neigbors.","options":[{"value":"free","label":"Roam freely"},{"value":"complete","label":"Complete to clear stage"},{"value":"success","label":"Succeed to clear stage"}],"default":"free"},{"name":"fog","type":"select","label":"Visibility range","description":"Select how far the user can see ahead","optional":true,"options":[{"value":"all","label":"See all stages"},{"value":"1","label":"See all unlocked stages and their adjacent neighbors"},{"value":"0","label":"See only unlocked stages"}],"default":"all","widget":"gamemapshowwhen","gamemapshowwhen":{"nullWhenHidden":true,"rules":[{"field":"roaming","equals":["complete","success"]}]}}]}]},{"name":"l10n","type":"group","label":"User interface","common":true,"fields":[{"name":"start","type":"text","label":"Start","default":"Start"},{"name":"continue","type":"text","label":"Continue","default":"Continue"},{"name":"restart","type":"text","label":"Restart","default":"Restart"},{"name":"showSolutions","type":"text","label":"Show solutions","default":"Show solutions"},{"name":"completedMap","type":"text","label":"Completed the map","default":"You have completed the map!"},{"name":"fullScoreButnoLivesLeft","type":"text","label":"Full score, but no lives left","default":"You have achieved full score, but lost all your lifes!"},{"name":"fullScoreButTimeout","type":"text","label":"Full score, but timed out","default":"You have achieved full score, but ran out of time!"},{"name":"confirmFinishHeader","type":"text","label":"Dialog header finish map","default":"Finish map?"},{"name":"confirmFinishDialog","type":"text","label":"Dialog text finish map: General","default":"If you finish now, you will not be able to explore the map any longer."},{"name":"confirmFinishDialogSubmission","type":"text","label":"Dialog text finish map: Submission","default":"Your score will be submitted."},{"name":"confirmFinishDialogQuestion","type":"text","label":"Dialog text finish map: Question","default":"Do you really want to finish the map?"},{"name":"confirmAccessDeniedHeader","type":"text","label":"Dialog header access denied","default":"Stage locked"},{"name":"confirmAccessDeniedDialog","type":"text","label":"Dialog text access denied: General","default":"This stage requires you to meet some goals before it can be opened."},{"name":"yes","type":"text","label":"Yes","default":"Yes"},{"name":"no","type":"text","label":"No","default":"No"},{"name":"confirmGameOverHeader","type":"text","label":"Dialog header game over","default":"Game over!"},{"name":"confirmGameOverDialog","type":"text","label":"Dialog text game over","default":"You have lost all your lives. Please try again!"},{"name":"confirmGameOverDialogTimeout","type":"text","label":"Dialog text game over by timeout","default":"You have run out of time. Please try again!"},{"name":"confirmTimeoutHeader","type":"text","label":"Dialog header time out","default":"Time out!"},{"name":"confirmTimeoutDialog","type":"text","label":"Dialog text time out","default":"You ran out of time."},{"name":"confirmTimeoutDialogLostLife","type":"text","label":"Dialog text time out (lost a life)","default":"You ran out of time and lost a life."},{"name":"confirmScoreIncompleteHeader","type":"text","label":"Dialog header score incomplete","default":"Not full score!"},{"name":"confirmIncompleteScoreDialogLostLife","type":"text","label":"Dialog text score incomplete (lost a life)","default":"You did not achieve full score and lost a life."},{"name":"confirmFullScoreHeader","type":"text","label":"Dialog header full score","default":"You achieved full score!"},{"name":"confirmFullScoreDialog","type":"text","label":"Dialog text full score","default":"You have collected enough points to finish this map with a full score, but you are free to explore the rest if you wish to. Your score will be submitted once you finish the map."},{"name":"confirmFullScoreDialogLoseLivesAmendmend","type":"text","label":"Dialog text full score (amendment, if lives are set)","default":"But beware! You may still lose lives!"},{"name":"ok","type":"text","label":"OK","default":"OK"},{"name":"noStages","type":"text","label":"No stages were set","default":"No valid stages were set for the map."},{"name":"settings","type":"text","label":"Settings","default":"Settings"},{"name":"volumeMusic","type":"text","label":"Volume of music","default":"Volume of music"},{"name":"volumeSFX","type":"text","label":"Volume of sound effects","default":"Volume of sound effects"},{"name":"restrictionsAllOfLong","type":"text","label":"The stage will not be available unless","default":"The stage will not be available unless:"},{"name":"restrictionsAnyOfLong","type":"text","label":"The stage will not be available unless any of","default":"The stage will not be available unless any of:"},{"name":"restrictionsAllOf","type":"text","label":"All of:","default":"All of:"},{"name":"restrictionsAnyOf","type":"text","label":"Any of:","default":"Any of:"},{"name":"restrictionTotalScoreLessThan","type":"text","label":"Total score less than","default":"You have a total score less than @value."},{"name":"restrictionTotalScoreEqualTo","type":"text","label":"Total score equal to","default":"You have a total score equal to @value."},{"name":"restrictionTotalScoreNotEqualTo","type":"text","label":"Total score not equal to","default":"You have a total score not equal to @value."},{"name":"restrictionTotalScoreGreaterThan","type":"text","label":"Total score greater than","default":"You have a total score greater than @value."},{"name":"restrictionStageScoreLessThan","type":"text","label":"Stage score less than","default":"You have a score less than @value in stage @label."},{"name":"restrictionStageScoreEqualTo","type":"text","label":"Stage score equal to","default":"You have a score equal to @value in stage @label."},{"name":"restrictionStageScoreNotEqualTo","type":"text","label":"Stage score not equal to","default":"You have a score not equal to @value in stage @label."},{"name":"restrictionStageScoreGreaterThan","type":"text","label":"Stage score greater than","default":"You have a score greater than @value in stage @label."},{"name":"restrictionStageProgressIs","type":"text","label":"Stage progress is","default":"The progress of stage @label is @value."},{"name":"restrictionStageProgressIsNot","type":"text","label":"Stage progress is not","default":"Ths progress of stage @label is not @value."},{"name":"restrictionTimeBefore","type":"text","label":"Time before","default":"The current time is before @value."},{"name":"restrictionTimeOn","type":"text","label":"Time is","default":"The current time is @value."},{"name":"restrictionTimeNotOn","type":"text","label":"Time is not","default":"The current time is not @value."},{"name":"restrictionTimeAfter","type":"text","label":"Time after","default":"The current time is after @value."},{"name":"unstarted","type":"text","label":"Not started","default":"not started"},{"name":"opened","type":"text","label":"Started","default":"started"},{"name":"completed","type":"text","label":"Completed","default":"completed"},{"name":"cleared","type":"text","label":"Completed successfully","default":"completed successfully"},{"name":"missingContent","type":"text","label":"Missing content","default":"No content was set for this stage!"}]},{"name":"a11y","type":"group","label":"Accessibility texts","common":true,"fields":[{"name":"buttonFinish","type":"text","label":"Finish","default":"Finish the map"},{"name":"buttonAudioActive","type":"text","label":"Audio button (unmuted)","default":"Mute audio. Currently unmuted."},{"name":"buttonAudioInactive","type":"text","label":"Audio button (muted)","default":"Unmute audio. Currently muted."},{"name":"close","type":"text","label":"Close","default":"Close"},{"name":"yourResult","type":"text","label":"Your result","description":"@score will be replaced by the number of points. @total will be replaced by the maximum possible points.","default":"You got @score out of @total points"},{"name":"mapWasOpened","type":"text","label":"Map was opened","default":"The map was opened."},{"name":"mapSolutionsWasOpened","type":"text","label":"Map was opened (solutions mode)","default":"The map was opened in solutions mode."},{"name":"startScreenWasOpened","type":"text","label":"Title screen was opened","default":"The title screen was opened."},{"name":"endScreenWasOpened","type":"text","label":"End screen was opened","default":"The end screen was opened."},{"name":"exerciseLabel","type":"text","label":"Exercise label","description":"@stagelabel is a placeholder and will be replaced with the respective stage label.","default":". Exercise for @stagelabel"},{"name":"stageButtonLabel","type":"text","label":"Stage button label","description":"@stagelabel is a placeholder and will be replaced with the respective stage label.","default":"Stage: @stagelabel"},{"name":"adjacentStageLabel","type":"text","label":"adjacent stage label","description":"@stagelabelOrigin and @stagelabelNeighbor are placeholders and will be replaced with the respective stage labels.","default":"Adjacent stage of @stagelabelOrigin: @stagelabelNeighbor"},{"name":"locked","type":"text","label":"Locked","default":"Locked"},{"name":"cleared","type":"text","label":"Cleared","default":"Cleared"},{"name":"applicationInstructions","type":"text","label":"Description of map navigation","default":"Use space or enter key to activate current stage. Use arrow keys to select adjacent stage. Use space or enter key on adjacent stage to navigate there."},{"name":"applicationDescription","type":"text","label":"Description of map","default":"Map"},{"name":"movedToStage","type":"text","label":"Moved to stage","description":"@stagelabel is a placeholder and will be replaced with the respective stage label.","default":"Moved to @stagelabel"},{"name":"stageUnlocked","type":"text","label":"Unlocked stage","description":"@stagelabel is a placeholder and will be replaced with the respective stage label.","default":"Stage @stagelabel was unlocked."},{"name":"toolbarFallbackLabel","type":"text","label":"Toolbar fallback label","default":"Game Map"},{"name":"enterFullscreen","type":"text","label":"Enter fullscreen","default":"Enter fullscreen mode"},{"name":"exitFullscreen","type":"text","label":"Exit fullscreen","default":"Exit fullscreen mode"}]}]');let t=function(){function t(){}return t.isInstanceTask=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!e)return!1;if("boolean"==typeof e.isTask)return e.isTask;return!!("function"==typeof e.getMaxScore&&e.getMaxScore()>0)},t.getSemanticsDefaults=function(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e,a={};return Array.isArray(s)?(s.forEach((e=>{if("string"==typeof e.name)if(void 0!==e.default&&(a[e.name]=e.default),"list"===e.type)a[e.name]=[];else if("group"===e.type&&e.fields){const s=t.getSemanticsDefaults(e.fields);Object.keys(s).length&&(a[e.name]=s)}})),a):a},t}();var a=s(67);let i=function(){function e(){}return e.extend=function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),a=1;a<t;a++)s[a-1]=arguments[a];return s.forEach((t=>{for(let s in t)if(Object.prototype.hasOwnProperty.call(t,s)){if("__proto__"===s||"constructor"===s)continue;"object"!=typeof e[s]||Array.isArray(e[s])||"object"!=typeof t[s]||Array.isArray(t[s])?Array.isArray(t[s])?e[s]=t[s].slice():e[s]=t[s]:this.extend(e[s],t[s])}})),e},e.formatLanguageCode=function(e){if("string"!=typeof e)return e;const t=e.split("-");return t[0]=t[0].toLowerCase(),t.length>1&&(t[1]=t[1].toUpperCase()),e=t.join("-")},e.supportsTouch=function(){return"ontouchstart"in window||navigator.maxTouchPoints>0},e.isHTMLWidgetFilled=function(e){const t=document.createElement("div");return t.innerHTML=e,t.firstChild?.innerText?.length>0},e.addMixins=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e.prototype)return;Array.isArray(t)||(t=[t]);const s=e.prototype;t.forEach((e=>{const t=e.prototype;Object.getOwnPropertyNames(t).forEach((e=>{"constructor"!==e&&(Object.getOwnPropertyNames(s).includes(e)||(s[e]=t[e]))}))}))},e.purifyHTML=function(e){if("string"!=typeof e)return"";let t=a.decode(e);const s=document.createElement("div");return s.innerHTML=t,t=s.textContent||s.innerText||"",t},e.callOnceVisible=async function(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("object"==typeof e&&"function"==typeof t)return s.threshold=s.threshold||0,await new Promise((a=>{(window.requestIdleCallback?window.requestIdleCallback:window.requestAnimationFrame)((()=>{const i=new IntersectionObserver((s=>{s[0].isIntersecting&&(i.unobserve(e),i.disconnect(),t())}),{...s.root&&{root:s.root},threshold:s.threshold});i.observe(e),a(i)}))}))},e.project=function(e,t,s,a,i){return a+(e-t)/(s-t)*(i-a)},e}(),r=function(){function e(){this.translation={}}var t=e.prototype;return t.fill=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.translation=this.sanitize(e)},t.get=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.translation;const s=e.split(/[./]+/);return 1===s.length?t[e]:"object"==typeof t[e=s.shift()]?this.get(s.join("."),t[e]):void 0},t.sanitize=function(e){if("object"==typeof e)for(let t in e)e[t]=this.sanitize(e[t]);else if("string"==typeof e){e=(0,a.decode)(e);const t=document.createElement("div");t.innerHTML=e,e=t.textContent||t.innerText||""}return e},e}(),n=function(){function e(){this.keys={}}var t=e.prototype;return t.set=function(e,t){"string"==typeof e&&(this.keys[e]=t)},t.get=function(e){if("string"==typeof e)return this.keys[e]},e}();const o={buffering:0,stopped:1,queued:2,playing:3,paused:4};let l=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.callbacks={},this.callbacks.onAudioContextReady=e.onAudioContextReady||(()=>{}),this.dispatcher=document.createElement("div"),this.dispatcher.addEventListener("bufferloaded",(e=>{this.setAudioBuffer(e.detail),this.queued.includes(e.detail.id)&&(this.removeFromQueue(e.detail.id),this.play())})),this.audios={},this.queued=[];const t=window.AudioContext||window.webkitAudioContext;this.audioContext||(this.audioContext=new t)}var t=e.prototype;return t.fill=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(const t in e)e[t].src&&this.add({id:t,src:e[t].src,options:e[t].options??{}})},t.add=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.audioContext&&(this.audios[e.id]={loop:e.options.loop||!1,isMuted:e.options.muted||!1,volume:100,groupId:e.options.groupId||"default"},this.bufferSound({id:e.id,url:e.src}))},t.getState=function(e){if(this.audios[e])return this.audios[e].state},t.setState=function(e,t){"string"==typeof t&&(t=o[t]),"number"==typeof t&&-1!==Object.values(o).indexOf(t)&&this.audios[e]&&this.audios[e].state!==t&&(this.audios[e].state=t,this.dispatcher.dispatchEvent(new CustomEvent("stateChanged",{detail:{id:e,state:t}})))},t.setAudioBuffer=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.audios[e.id]&&(this.audios[e.id].buffer=e.buffer,this.setState(e.id,o.stopped))},t.bufferSound=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.audios[e.id]){this.setState(e.id,o.buffering);var t=new XMLHttpRequest;t.open("GET",e.url,!0),t.responseType="arraybuffer",t.onload=()=>{this.audioContext.decodeAudioData(t.response,(t=>{const s=new CustomEvent("bufferloaded",{detail:{id:e.id,buffer:t}});this.dispatcher.dispatchEvent(s)}))},t.send()}},t.play=function(e){if(!this.audios[e])return!1;if(this.audios[e].isMuted)return!1;if(this.getState(e)===o.playing)return!1;if("suspended"===this.audioContext.state)return!1;if(this.getState(e)===o.buffering)return this.addToQueue(e),!1;const t=this.audios[e],s=this.audioContext.createBufferSource();s.buffer=t.buffer;const a=this.audioContext.createGain();return s.connect(a).connect(this.audioContext.destination),this.audios[e].gainNode=a,a.gain.value=t.volume/100,s.loop=this.audios[e].loop,t.source=s,t.source.onended=()=>{this.stop(e)},t.source.start(),this.setState(e,o.playing),!0},t.addToQueue=function(e){this.queued.includes(e)||this.queued.push(e)},t.removeFromQueue=function(e){this.queued=this.queued.filter((t=>t!==e))},t.stop=function(e){this.audios[e]&&(this.removeFromQueue(e),this.getState(e)===o.playing&&(this.audios[e].source?.stop(),this.setState(e,o.stopped)))},t.stopGroup=function(e){if(e)for(const t in this.audios)this.audios[t].groupId===e&&this.stop(t)},t.stopAll=function(){for(const e in this.audios)this.stop(e)},t.isPlaying=function(e){return!!this.audios[e]&&this.getState(e)===o.playing},t.fade=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.audios[e]&&!this.audios[e].isMuted&&("in"!==t.type&&"out"!==t.type||(window.clearTimeout(this.audios[e].fadeTimeout),"out"===t.type&&0===this.audios[e].gainNode.gain.value||"in"===t.type&&this.audios[e].gainNode.gain.value>=this.audios[e].volume/100||("number"!=typeof t.time&&(t.time=1e3),t.time=Math.max(100,t.time),"number"!=typeof t.interval&&(t.interval=100),t.interval=Math.max(50,t.interval),("number"!=typeof t.gainDelta||t.gainDelta<=0)&&("in"===t.type?t.gainDelta=(1-this.audios[e].gainNode.gain.value)/(t.time/t.interval):t.gainDelta=this.audios[e].gainNode.gain.value/(t.time/t.interval)),t.time<=0?this.audios[e].gainNode.gain.value="in"===t.type?1:0:("in"===t.type?this.audios[e].gainNode.gain.value=Math.min(1,this.audios[e].gainNode.gain.value+=t.gainDelta):this.audios[e].gainNode.gain.value=Math.max(0,this.audios[e].gainNode.gain.value-=t.gainDelta),this.audios[e].fadeTimeout=window.setTimeout((()=>{this.fade(e,{time:t.time-t.interval,gainDelta:t.gainDelta,type:t.type})}),t.interval)))))},t.getDOM=function(e){if(this.audios[e])return this.audios[e].dom},t.getAudioIds=function(){return Object.keys(this.audios)},t.muteAll=function(){for(const e in this.audios)this.mute(e)},t.mute=function(e){this.audios[e]&&(this.stop(e),this.audios[e].isMuted=!0)},t.unmuteAll=function(){for(const e in this.audios)this.unmute(e)},t.unmute=function(e){this.audios[e]&&(this.audios[e].isMuted=!1)},t.isMuted=function(e){return!!this.audios[e]&&this.audios[e].isMuted},t.getVolume=function(e){if(this.audios[e])return this.audios[e].volume},t.getVolumeGroup=function(e){for(const t in this.audios)if(this.audios[t].groupId===e)return this.getVolume(t)},t.setVolume=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;this.audios[e]&&(t=Math.max(0,Math.min(t,100)),this.audios[e].volume=t,this.audios[e].gainNode&&(this.audios[e].gainNode.gain.value=t/100))},t.setVolumeGroup=function(e,t){for(const s in this.audios)this.audios[s].groupId===e&&this.setVolume(s,t)},t.setVolumeAll=function(e){for(const t in this.audios)this.setVolume(t,e)},e}(),c=function(){function e(){this.queued=[],this.scheduled=[],this.isClosed=!1,this.isSkippable=!0,this.respectsDelay=!0}var t=e.prototype;return t.add=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.isClosed||"function"==typeof e&&(t.delay=t.delay||0,t.block=t.block||0,t.skipQueue=t.skipQueue??!1,this.isSkippable||t.skipQueue?e():this.queued.push({callback:e,params:t}))},t.clearQueued=function(){this.queued=[]},t.clearScheduled=function(){[...this.scheduled].forEach((e=>{window.clearTimeout(e),this.scheduled=this.scheduled.filter((t=>t!==e))}))},t.scheduleQueued=function(){this.respectsDelay?this.queued=this.queued.map(((e,t,s)=>{if(0===t)return e;const a=s[t-1].params;return e.params.delay+=a.delay+a.block,e}),[]):this.queued=this.queued.map((e=>(e.params.delay=0,e.params.block=0,e))),this.queued.forEach((e=>{const t=window.setTimeout((()=>{e.callback()}),e.params.delay);this.scheduled.push(t)})),this.queued=[]},t.open=function(){this.isClosed=!1},t.close=function(){this.isClosed=!0},t.setSkippable=function(e){"boolean"==typeof e&&(this.isSkippable=e)},t.setRespectsDelay=function(e){"boolean"==typeof e&&(this.respectsDelay=e)},e}();const u=0,h=1,d=2,p=1,m=-1;let g=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({mode:"timer",interval:1e3},e),this.callbacks=i.extend({onStateChanged:()=>{},onExpired:()=>{},onTick:()=>{}},t),this.mode="stopwatch"===this.params.mode?p:m,this.params.interval=Math.max(50,this.params.interval),this.state=u,this.timeMs=0}var t=e.prototype;return t.setState=function(e){this.state=e,this.callbacks.onStateChanged(e,this.getTime())},t.getState=function(){return this.state},t.start=function(e){this.state===u&&(this.startTime=new Date,e&&this.setTime(e),this.setState(h),this.timeout=window.setTimeout((()=>{this.update()}),this.params.interval))},t.pause=function(){this.state===h&&(this.setState(d),this.startTime=this.getTime())},t.resume=function(){this.state===d&&(this.setState(h),this.timeout=window.setTimeout((()=>{this.update()}),this.params.interval))},t.stop=function(){clearTimeout(this.timeout),this.setState(u)},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.stop(),this.setTime(e)},t.setTime=function(e){this.timeMs=e},t.getTime=function(){return Math.max(0,this.timeMs)},t.update=function(){if(this.state===h){const e=(new Date).getTime()-this.startTime,t=this.getTime()+e*this.mode;this.setTime(t),this.callbacks.onTick(t)}if(this.mode===m&&this.getTime()<=0)return this.stop(),void this.callbacks.onExpired(0);this.startTime=new Date,this.timeout=window.setTimeout((()=>{this.update()}),this.params.interval)},e.toTimecode=function(e){if("number"!=typeof e)return;const t=new Date(0);return t.setSeconds(Math.round(Math.max(0,e/1e3))),t.toISOString().split("T")[1].split(".")[0].replace(/^[0:]+/,"")||"0"},e}(),b=function(){function e(){}var t=e.prototype;return t.toggleAudio=function(e){this.isAudioOn="boolean"==typeof e?e:!this.isAudioOn,this.isAudioOn?this.tryStartBackgroundMusic():this.params.jukebox.muteAll()},t.tryStartBackgroundMusic=async function(){return"suspended"===this.params.jukebox.audioContext.state?(await this.params.jukebox.audioContext.resume(),this.params.jukebox.unmuteAll(),this.params.jukebox.play("backgroundMusic")):(this.params.jukebox.unmuteAll(),this.params.jukebox.play("backgroundMusic"))},e}();let f=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.params=i.extend({visuals:{pathWidth:"0.2"}},e),this.params.state=this.params.state??this.params.globals.get("states").open,this.params.visuals.pathWidth=parseFloat(this.params.visuals.pathWidth),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-path"),this.dom.style.setProperty("--path-style",`${this.params.visuals.pathStyle}`),this.dom.style.setProperty("--path-color",`${this.params.visuals.colorPath}`),this.dom.style.setProperty("--path-color-cleared",`${this.params.visuals.colorPathCleared}`),this.params.visible?this.show():this.hide()}var t=e.prototype;return t.getDOM=function(){return this.dom},t.getState=function(){return this.state},t.getStageIds=function(){return{from:this.params.fromId,to:this.params.toId}},t.connectsTo=function(e){return this.params.fromId===e||this.params.toId===e},t.setReachable=function(e){"boolean"==typeof e&&(this.isReachableState=e,this.isReachable()||this.hide())},t.isReachable=function(){return this.isReachableState},t.isVisible=function(){return this.isVisibleState},t.show=function(){this.params.globals.get("params").visual.paths.displayPaths&&(this.dom.classList.remove("display-none"),window.requestAnimationFrame((()=>{this.dom.classList.remove("transparent")})),this.isVisibleState=!0)},t.hide=function(){this.dom.classList.add("display-none"),this.dom.classList.add("transparent"),this.isVisibleState=!1},t.update=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};"number"==typeof e.x&&(this.dom.style.left=`${e.x}%`),"number"==typeof e.y&&(this.dom.style.top=`${e.y}%`),"number"==typeof e.length&&(this.dom.style.width=`${e.length}px`),"number"==typeof e.angle&&(this.dom.style.transform=`rotate(${e.angle}rad)`),"number"==typeof e.width&&(this.dom.style.borderTopWidth=`${e.width}px`)},t.resize=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=this.computePathTelemetry({mapSize:e.mapSize});t&&this.update({x:t.x,y:t.y,length:t.length,angle:t.angle,width:t.width})},t.computePathTelemetry=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(0===e.mapSize.height||0===e.mapSize.width)return null;const t=this.params.telemetryFrom.x,s=this.params.telemetryFrom.y,a=this.params.telemetryFrom.width,i=this.params.telemetryFrom.height,r=this.params.telemetryTo.x,n=this.params.telemetryTo.y,o=parseFloat(t)/100*e.mapSize.width,l=parseFloat(s)/100*e.mapSize.height,c=parseFloat(r)/100*e.mapSize.width,u=parseFloat(n)/100*e.mapSize.height,h=parseFloat(a)/100*e.mapSize.width,d=parseFloat(i)/100*e.mapSize.height,p=o-c,m=l-u,g=Math.sign(p)>=0?Math.PI:0,b=Math.atan(m/p)+g,f=h/2*Math.cos(b)*100/e.mapSize.width,y=d/2*Math.sin(b)*100/e.mapSize.height,v=Math.min(Math.max(1,h*this.params.visuals.pathWidth),.3*h),w=v/2*100/e.mapSize.height;return{x:parseFloat(t)+parseFloat(a)/2+f,y:parseFloat(s)+parseFloat(i)/2+y-w,length:Math.sqrt(Math.abs(p)*Math.abs(p)+Math.abs(m)*Math.abs(m))-h,angle:b,width:v}},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setReachable(!0);const t=e.isInitial?this.params.state:this.params.globals.get("states").open;this.setState(t),e.isInitial&&this.params.visible?this.show():this.hide()},t.setState=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=this.params.globals.get("states");if("string"==typeof e&&(e=Object.entries(s).find((t=>t[0]===e))[1]),"number"!=typeof e)return;let a;if(t.force?a=s[e]:e===s.open?a=s.open:e===s.cleared&&(a=s.cleared),!this.state||this.state!==a){this.state=a;for(const[e,t]of Object.entries(s))t!==this.state?this.dom.classList.remove(`h5p-game-map-path-${e}`):this.dom.classList.add(`h5p-game-map-path-${e}`)}},e}(),y=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.params=i.extend({elements:{}},e),this.paths=this.buildPaths(this.params.elements)}var t=e.prototype;return t.getDOMs=function(){return this.paths.map((e=>e.getDOM()))},t.buildPaths=function(e){const t=[];if(!Object.keys(e??{}).length)return[];const s=this.params.globals.get("extras").previousState?.content?.paths??[],a=[];for(let i in e)(e[i].neighbors||[]).forEach((r=>{if(!a.includes(`${i}-${r}`)&&!a.includes(`${r}-${i}`)){const n=s.find((t=>t.stageIds?.from===e[i].id&&t.stageIds?.to===e[r].id));let o=(this.params.paths??[]).find((e=>e.from.toString()===i.toString()&&e.to.toString()===r.toString()&&"custom"===e.visualsType&&e.customVisuals))?.customVisuals;t.push(new f({globals:this.params.globals,fromId:e[i].id,toId:e[r].id,telemetryFrom:e[i].telemetry,telemetryTo:e[r].telemetry,index:a.length,visuals:{...this.params.visuals,...o},visible:n?.visible,...n?.state&&{state:n?.state}})),a.push(`${i}-${r}`)}}));return t},t.getCurrentState=function(){return this.paths.map((e=>({stageIds:e.getStageIds(),state:e.getState(),visible:e.isVisible()})))},t.update=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.paths.forEach((t=>{t.resize({mapSize:e.mapSize})}))},t.updateReachability=function(e){this.paths.forEach((t=>{t.setReachable(e.some((e=>t.connectsTo(e))))}))},t.updateState=function(e,t){const s=this.params.globals.get("params");if("free"===s.behaviour.map.roaming)return;const a=this.paths.filter((t=>{const s=t.getStageIds();return s.from===e||s.to===e}));t===this.params.globals.get("states").open&&s.visual.paths.displayPaths&&"0"!==s.behaviour.map.fog&&a.forEach((e=>{e.show()})),t===this.params.globals.get("states").cleared&&a.forEach((e=>{e.setState("cleared"),e.show()}))},t.forEach=function(e){for(let t=0;t<this.paths.length;t++)e(this.paths[t],t,this.paths)},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.paths.forEach((t=>{t.reset({isInitial:e.isInitial})}))},e}();var v={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};const w=Object.create(null);for(const e in v)Object.hasOwn(v,e)&&(w[v[e]]=e);const S={to:{},get:{}};function x(e,t,s){return Math.min(Math.max(t,e),s)}function k(e){const t=Math.round(e).toString(16).toUpperCase();return t.length<2?"0"+t:t}S.get=function(e){let t,s;switch(e.slice(0,3).toLowerCase()){case"hsl":t=S.get.hsl(e),s="hsl";break;case"hwb":t=S.get.hwb(e),s="hwb";break;default:t=S.get.rgb(e),s="rgb"}return t?{model:s,value:t}:null},S.get.rgb=function(e){if(!e)return null;let t,s,a,i=[0,0,0,1];if(t=e.match(/^#([a-f\d]{6})([a-f\d]{2})?$/i)){for(a=t[2],t=t[1],s=0;s<3;s++){const e=2*s;i[s]=Number.parseInt(t.slice(e,e+2),16)}a&&(i[3]=Number.parseInt(a,16)/255)}else if(t=e.match(/^#([a-f\d]{3,4})$/i)){for(t=t[1],a=t[3],s=0;s<3;s++)i[s]=Number.parseInt(t[s]+t[s],16);a&&(i[3]=Number.parseInt(a+a,16)/255)}else if(t=e.match(/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/)){for(s=0;s<3;s++)i[s]=Number.parseInt(t[s+1],10);t[4]&&(i[3]=t[5]?.01*Number.parseFloat(t[4]):Number.parseFloat(t[4]))}else{if(!(t=e.match(/^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/)))return(t=e.match(/^(\w+)$/))?"transparent"===t[1]?[0,0,0,0]:Object.hasOwn(v,t[1])?(i=v[t[1]],i[3]=1,i):null:null;for(s=0;s<3;s++)i[s]=Math.round(2.55*Number.parseFloat(t[s+1]));t[4]&&(i[3]=t[5]?.01*Number.parseFloat(t[4]):Number.parseFloat(t[4]))}for(s=0;s<3;s++)i[s]=x(i[s],0,255);return i[3]=x(i[3],0,1),i},S.get.hsl=function(e){if(!e)return null;const t=e.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){const e=Number.parseFloat(t[4]);return[(Number.parseFloat(t[1])%360+360)%360,x(Number.parseFloat(t[2]),0,100),x(Number.parseFloat(t[3]),0,100),x(Number.isNaN(e)?1:e,0,1)]}return null},S.get.hwb=function(e){if(!e)return null;const t=e.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){const e=Number.parseFloat(t[4]);return[(Number.parseFloat(t[1])%360+360)%360,x(Number.parseFloat(t[2]),0,100),x(Number.parseFloat(t[3]),0,100),x(Number.isNaN(e)?1:e,0,1)]}return null},S.to.hex=function(...e){return"#"+k(e[0])+k(e[1])+k(e[2])+(e[3]<1?k(Math.round(255*e[3])):"")},S.to.rgb=function(...e){return e.length<4||1===e[3]?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"},S.to.rgb.percent=function(...e){const t=Math.round(e[0]/255*100),s=Math.round(e[1]/255*100),a=Math.round(e[2]/255*100);return e.length<4||1===e[3]?"rgb("+t+"%, "+s+"%, "+a+"%)":"rgba("+t+"%, "+s+"%, "+a+"%, "+e[3]+")"},S.to.hsl=function(...e){return e.length<4||1===e[3]?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"},S.to.hwb=function(...e){let t="";return e.length>=4&&1!==e[3]&&(t=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+t+")"},S.to.keyword=function(...e){return w[e.slice(0,3)]};var E=S,A={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};const T={};for(const e of Object.keys(A))T[A[e]]=e;const D={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};var L=D;const C=(6/29)**3;for(const e of Object.keys(D)){if(!("channels"in D[e]))throw new Error("missing channels property: "+e);if(!("labels"in D[e]))throw new Error("missing channel labels property: "+e);if(D[e].labels.length!==D[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:s}=D[e];delete D[e].channels,delete D[e].labels,Object.defineProperty(D[e],"channels",{value:t}),Object.defineProperty(D[e],"labels",{value:s})}function q(e){const t=function(){const e={},t=Object.keys(L);for(let{length:s}=t,a=0;a<s;a++)e[t[a]]={distance:-1,parent:null};return e}(),s=[e];for(t[e].distance=0;s.length>0;){const e=s.pop(),a=Object.keys(L[e]);for(let{length:i}=a,r=0;r<i;r++){const i=a[r],n=t[i];-1===n.distance&&(n.distance=t[e].distance+1,n.parent=e,s.unshift(i))}}return t}function I(e,t){return function(s){return t(e(s))}}function O(e,t){const s=[t[e].parent,e];let a=L[t[e].parent][e],i=t[e].parent;for(;t[i].parent;)s.unshift(t[i].parent),a=I(L[t[i].parent][i],a),i=t[i].parent;return a.conversion=s,a}D.rgb.hsl=function(e){const t=e[0]/255,s=e[1]/255,a=e[2]/255,i=Math.min(t,s,a),r=Math.max(t,s,a),n=r-i;let o,l;switch(r){case i:o=0;break;case t:o=(s-a)/n;break;case s:o=2+(a-t)/n;break;case a:o=4+(t-s)/n}o=Math.min(60*o,360),o<0&&(o+=360);const c=(i+r)/2;return l=r===i?0:c<=.5?n/(r+i):n/(2-r-i),[o,100*l,100*c]},D.rgb.hsv=function(e){let t,s,a,i,r;const n=e[0]/255,o=e[1]/255,l=e[2]/255,c=Math.max(n,o,l),u=c-Math.min(n,o,l),h=function(e){return(c-e)/6/u+.5};if(0===u)i=0,r=0;else{switch(r=u/c,t=h(n),s=h(o),a=h(l),c){case n:i=a-s;break;case o:i=1/3+t-a;break;case l:i=2/3+s-t}i<0?i+=1:i>1&&(i-=1)}return[360*i,100*r,100*c]},D.rgb.hwb=function(e){const t=e[0],s=e[1];let a=e[2];const i=D.rgb.hsl(e)[0],r=1/255*Math.min(t,Math.min(s,a));return a=1-1/255*Math.max(t,Math.max(s,a)),[i,100*r,100*a]},D.rgb.cmyk=function(e){const t=e[0]/255,s=e[1]/255,a=e[2]/255,i=Math.min(1-t,1-s,1-a);return[100*((1-t-i)/(1-i)||0),100*((1-s-i)/(1-i)||0),100*((1-a-i)/(1-i)||0),100*i]},D.rgb.keyword=function(e){const t=T[e];if(t)return t;let s,a=Number.POSITIVE_INFINITY;for(const t of Object.keys(A)){const n=(r=A[t],((i=e)[0]-r[0])**2+(i[1]-r[1])**2+(i[2]-r[2])**2);n<a&&(a=n,s=t)}var i,r;return s},D.keyword.rgb=function(e){return A[e]},D.rgb.xyz=function(e){let t=e[0]/255,s=e[1]/255,a=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92,a=a>.04045?((a+.055)/1.055)**2.4:a/12.92;return[100*(.4124564*t+.3575761*s+.1804375*a),100*(.2126729*t+.7151522*s+.072175*a),100*(.0193339*t+.119192*s+.9503041*a)]},D.rgb.lab=function(e){const t=D.rgb.xyz(e);let s=t[0],a=t[1],i=t[2];s/=95.047,a/=100,i/=108.883,s=s>C?s**(1/3):7.787*s+16/116,a=a>C?a**(1/3):7.787*a+16/116,i=i>C?i**(1/3):7.787*i+16/116;return[116*a-16,500*(s-a),200*(a-i)]},D.hsl.rgb=function(e){const t=e[0]/360,s=e[1]/100,a=e[2]/100;let i,r;if(0===s)return r=255*a,[r,r,r];const n=a<.5?a*(1+s):a+s-a*s,o=2*a-n,l=[0,0,0];for(let e=0;e<3;e++)i=t+1/3*-(e-1),i<0&&i++,i>1&&i--,r=6*i<1?o+6*(n-o)*i:2*i<1?n:3*i<2?o+(n-o)*(2/3-i)*6:o,l[e]=255*r;return l},D.hsl.hsv=function(e){const t=e[0];let s=e[1]/100,a=e[2]/100,i=s;const r=Math.max(a,.01);a*=2,s*=a<=1?a:2-a,i*=r<=1?r:2-r;return[t,100*(0===a?2*i/(r+i):2*s/(a+s)),100*((a+s)/2)]},D.hsv.rgb=function(e){const t=e[0]/60,s=e[1]/100;let a=e[2]/100;const i=Math.floor(t)%6,r=t-Math.floor(t),n=255*a*(1-s),o=255*a*(1-s*r),l=255*a*(1-s*(1-r));switch(a*=255,i){case 0:return[a,l,n];case 1:return[o,a,n];case 2:return[n,a,l];case 3:return[n,o,a];case 4:return[l,n,a];case 5:return[a,n,o]}},D.hsv.hsl=function(e){const t=e[0],s=e[1]/100,a=e[2]/100,i=Math.max(a,.01);let r,n;n=(2-s)*a;const o=(2-s)*i;return r=s*i,r/=o<=1?o:2-o,r=r||0,n/=2,[t,100*r,100*n]},D.hwb.rgb=function(e){const t=e[0]/360;let s=e[1]/100,a=e[2]/100;const i=s+a;let r;i>1&&(s/=i,a/=i);const n=Math.floor(6*t),o=1-a;r=6*t-n,1&n&&(r=1-r);const l=s+r*(o-s);let c,u,h;switch(n){default:case 6:case 0:c=o,u=l,h=s;break;case 1:c=l,u=o,h=s;break;case 2:c=s,u=o,h=l;break;case 3:c=s,u=l,h=o;break;case 4:c=l,u=s,h=o;break;case 5:c=o,u=s,h=l}return[255*c,255*u,255*h]},D.cmyk.rgb=function(e){const t=e[0]/100,s=e[1]/100,a=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,s*(1-i)+i)),255*(1-Math.min(1,a*(1-i)+i))]},D.xyz.rgb=function(e){const t=e[0]/100,s=e[1]/100,a=e[2]/100;let i,r,n;return i=3.2404542*t+-1.5371385*s+-.4985314*a,r=-.969266*t+1.8760108*s+.041556*a,n=.0556434*t+-.2040259*s+1.0572252*a,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,n=n>.0031308?1.055*n**(1/2.4)-.055:12.92*n,i=Math.min(Math.max(0,i),1),r=Math.min(Math.max(0,r),1),n=Math.min(Math.max(0,n),1),[255*i,255*r,255*n]},D.xyz.lab=function(e){let t=e[0],s=e[1],a=e[2];t/=95.047,s/=100,a/=108.883,t=t>C?t**(1/3):7.787*t+16/116,s=s>C?s**(1/3):7.787*s+16/116,a=a>C?a**(1/3):7.787*a+16/116;return[116*s-16,500*(t-s),200*(s-a)]},D.lab.xyz=function(e){let t,s,a;s=(e[0]+16)/116,t=e[1]/500+s,a=s-e[2]/200;const i=s**3,r=t**3,n=a**3;return s=i>C?i:(s-16/116)/7.787,t=r>C?r:(t-16/116)/7.787,a=n>C?n:(a-16/116)/7.787,t*=95.047,s*=100,a*=108.883,[t,s,a]},D.lab.lch=function(e){const t=e[0],s=e[1],a=e[2];let i;i=360*Math.atan2(a,s)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(s*s+a*a),i]},D.lch.lab=function(e){const t=e[0],s=e[1],a=e[2]/360*2*Math.PI;return[t,s*Math.cos(a),s*Math.sin(a)]},D.rgb.ansi16=function(e,t=null){const[s,a,i]=e;let r=null===t?D.rgb.hsv(e)[2]:t;if(r=Math.round(r/50),0===r)return 30;let n=30+(Math.round(i/255)<<2|Math.round(a/255)<<1|Math.round(s/255));return 2===r&&(n+=60),n},D.hsv.ansi16=function(e){return D.rgb.ansi16(D.hsv.rgb(e),e[2])},D.rgb.ansi256=function(e){const t=e[0],s=e[1],a=e[2];if(t>>4==s>>4&&s>>4==a>>4)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(s/255*5)+Math.round(a/255*5)},D.ansi16.rgb=function(e){let t=(e=e[0])%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const s=.5*(Math.trunc(e>50)+1);return[(1&t)*s*255,(t>>1&1)*s*255,(t>>2&1)*s*255]},D.ansi256.rgb=function(e){if((e=e[0])>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},D.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".slice(t.length)+t},D.hex.rgb=function(e){const t=e.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!t)return[0,0,0];let s=t[0];3===t[0].length&&(s=[...s].map((e=>e+e)).join(""));const a=Number.parseInt(s,16);return[a>>16&255,a>>8&255,255&a]},D.rgb.hcg=function(e){const t=e[0]/255,s=e[1]/255,a=e[2]/255,i=Math.max(Math.max(t,s),a),r=Math.min(Math.min(t,s),a),n=i-r;let o;return o=n<=0?0:i===t?(s-a)/n%6:i===s?2+(a-t)/n:4+(t-s)/n,o/=6,o%=1,[360*o,100*n,100*(n<1?r/(1-n):0)]},D.hsl.hcg=function(e){const t=e[1]/100,s=e[2]/100,a=s<.5?2*t*s:2*t*(1-s);let i=0;return a<1&&(i=(s-.5*a)/(1-a)),[e[0],100*a,100*i]},D.hsv.hcg=function(e){const t=e[1]/100,s=e[2]/100,a=t*s;let i=0;return a<1&&(i=(s-a)/(1-a)),[e[0],100*a,100*i]},D.hcg.rgb=function(e){const t=e[0]/360,s=e[1]/100,a=e[2]/100;if(0===s)return[255*a,255*a,255*a];const i=[0,0,0],r=t%1*6,n=r%1,o=1-n;let l=0;switch(Math.floor(r)){case 0:i[0]=1,i[1]=n,i[2]=0;break;case 1:i[0]=o,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=n;break;case 3:i[0]=0,i[1]=o,i[2]=1;break;case 4:i[0]=n,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=o}return l=(1-s)*a,[255*(s*i[0]+l),255*(s*i[1]+l),255*(s*i[2]+l)]},D.hcg.hsv=function(e){const t=e[1]/100,s=t+e[2]/100*(1-t);let a=0;return s>0&&(a=t/s),[e[0],100*a,100*s]},D.hcg.hsl=function(e){const t=e[1]/100,s=e[2]/100*(1-t)+.5*t;let a=0;return s>0&&s<.5?a=t/(2*s):s>=.5&&s<1&&(a=t/(2*(1-s))),[e[0],100*a,100*s]},D.hcg.hwb=function(e){const t=e[1]/100,s=t+e[2]/100*(1-t);return[e[0],100*(s-t),100*(1-s)]},D.hwb.hcg=function(e){const t=e[1]/100,s=1-e[2]/100,a=s-t;let i=0;return a<1&&(i=(s-a)/(1-a)),[e[0],100*a,100*i]},D.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},D.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},D.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},D.gray.hsl=function(e){return[0,0,e[0]]},D.gray.hsv=D.gray.hsl,D.gray.hwb=function(e){return[0,100,e[0]]},D.gray.cmyk=function(e){return[0,0,0,e[0]]},D.gray.lab=function(e){return[e[0],0,0]},D.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),s=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".slice(s.length)+s},D.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]};var B=function(e){const t=q(e),s={},a=Object.keys(t);for(let{length:e}=a,i=0;i<e;i++){const e=a[i];null!==t[e].parent&&(s[e]=O(e,t))}return s};const M={},F=Object.keys(L);function P(e){const t=function(...t){const s=t[0];return null==s?s:(s.length>1&&(t=s),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}function R(e){const t=function(...t){const s=t[0];if(null==s)return s;s.length>1&&(t=s);const a=e(t);if("object"==typeof a)for(let{length:e}=a,t=0;t<e;t++)a[t]=Math.round(a[t]);return a};return"conversion"in e&&(t.conversion=e.conversion),t}for(const e of F){M[e]={},Object.defineProperty(M[e],"channels",{value:L[e].channels}),Object.defineProperty(M[e],"labels",{value:L[e].labels});const t=B(e),s=Object.keys(t);for(const a of s){const s=t[a];M[e][a]=R(s),M[e][a].raw=P(s)}}var V=M;const N=["keyword","gray","hex"],j={};for(const e of Object.keys(V))j[[...V[e].labels].sort().join("")]=e;const H={};function U(e,t){if(!(this instanceof U))return new U(e,t);if(t&&t in N&&(t=null),t&&!(t in V))throw new Error("Unknown model: "+t);let s,a;if(null==e)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(e instanceof U)this.model=e.model,this.color=[...e.color],this.valpha=e.valpha;else if("string"==typeof e){const t=E.get(e);if(null===t)throw new Error("Unable to parse color from string: "+e);this.model=t.model,a=V[this.model].channels,this.color=t.value.slice(0,a),this.valpha="number"==typeof t.value[a]?t.value[a]:1}else if(e.length>0){this.model=t||"rgb",a=V[this.model].channels;const s=Array.prototype.slice.call(e,0,a);this.color=$(s,a),this.valpha="number"==typeof e[a]?e[a]:1}else if("number"==typeof e)this.model="rgb",this.color=[e>>16&255,e>>8&255,255&e],this.valpha=1;else{this.valpha=1;const t=Object.keys(e);"alpha"in e&&(t.splice(t.indexOf("alpha"),1),this.valpha="number"==typeof e.alpha?e.alpha:0);const a=t.sort().join("");if(!(a in j))throw new Error("Unable to parse color from object: "+JSON.stringify(e));this.model=j[a];const{labels:i}=V[this.model],r=[];for(s=0;s<i.length;s++)r.push(e[i[s]]);this.color=$(r)}if(H[this.model])for(a=V[this.model].channels,s=0;s<a;s++){const e=H[this.model][s];e&&(this.color[s]=e(this.color[s]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}U.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(e){let t=this.model in E.to?this:this.rgb();t=t.round("number"==typeof e?e:1);const s=1===t.valpha?t.color:[...t.color,this.valpha];return E.to[t.model](...s)},percentString(e){const t=this.rgb().round("number"==typeof e?e:1),s=1===t.valpha?t.color:[...t.color,this.valpha];return E.to.rgb.percent(...s)},array(){return 1===this.valpha?[...this.color]:[...this.color,this.valpha]},object(){const e={},{channels:t}=V[this.model],{labels:s}=V[this.model];for(let a=0;a<t;a++)e[s[a]]=this.color[a];return 1!==this.valpha&&(e.alpha=this.valpha),e},unitArray(){const e=this.rgb().color;return e[0]/=255,e[1]/=255,e[2]/=255,1!==this.valpha&&e.push(this.valpha),e},unitObject(){const e=this.rgb().object();return e.r/=255,e.g/=255,e.b/=255,1!==this.valpha&&(e.alpha=this.valpha),e},round(e){return e=Math.max(e||0,0),new U([...this.color.map(G(e)),this.valpha],this.model)},alpha(e){return void 0!==e?new U([...this.color,Math.max(0,Math.min(1,e))],this.model):this.valpha},red:z("rgb",0,W(255)),green:z("rgb",1,W(255)),blue:z("rgb",2,W(255)),hue:z(["hsl","hsv","hsl","hwb","hcg"],0,(e=>(e%360+360)%360)),saturationl:z("hsl",1,W(100)),lightness:z("hsl",2,W(100)),saturationv:z("hsv",1,W(100)),value:z("hsv",2,W(100)),chroma:z("hcg",1,W(100)),gray:z("hcg",2,W(100)),white:z("hwb",1,W(100)),wblack:z("hwb",2,W(100)),cyan:z("cmyk",0,W(100)),magenta:z("cmyk",1,W(100)),yellow:z("cmyk",2,W(100)),black:z("cmyk",3,W(100)),x:z("xyz",0,W(95.047)),y:z("xyz",1,W(100)),z:z("xyz",2,W(108.833)),l:z("lab",0,W(100)),a:z("lab",1),b:z("lab",2),keyword(e){return void 0!==e?new U(e):V[this.model].keyword(this.color)},hex(e){return void 0!==e?new U(e):E.to.hex(...this.rgb().round().color)},hexa(e){if(void 0!==e)return new U(e);const t=this.rgb().round().color;let s=Math.round(255*this.valpha).toString(16).toUpperCase();return 1===s.length&&(s="0"+s),E.to.hex(...t)+s},rgbNumber(){const e=this.rgb().color;return(255&e[0])<<16|(255&e[1])<<8|255&e[2]},luminosity(){const e=this.rgb().color,t=[];for(const[s,a]of e.entries()){const e=a/255;t[s]=e<=.04045?e/12.92:((e+.055)/1.055)**2.4}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrast(e){const t=this.luminosity(),s=e.luminosity();return t>s?(t+.05)/(s+.05):(s+.05)/(t+.05)},level(e){const t=this.contrast(e);return t>=7?"AAA":t>=4.5?"AA":""},isDark(){const e=this.rgb().color;return(2126*e[0]+7152*e[1]+722*e[2])/1e4<128},isLight(){return!this.isDark()},negate(){const e=this.rgb();for(let t=0;t<3;t++)e.color[t]=255-e.color[t];return e},lighten(e){const t=this.hsl();return t.color[2]+=t.color[2]*e,t},darken(e){const t=this.hsl();return t.color[2]-=t.color[2]*e,t},saturate(e){const t=this.hsl();return t.color[1]+=t.color[1]*e,t},desaturate(e){const t=this.hsl();return t.color[1]-=t.color[1]*e,t},whiten(e){const t=this.hwb();return t.color[1]+=t.color[1]*e,t},blacken(e){const t=this.hwb();return t.color[2]+=t.color[2]*e,t},grayscale(){const e=this.rgb().color,t=.3*e[0]+.59*e[1]+.11*e[2];return U.rgb(t,t,t)},fade(e){return this.alpha(this.valpha-this.valpha*e)},opaquer(e){return this.alpha(this.valpha+this.valpha*e)},rotate(e){const t=this.hsl();let s=t.color[0];return s=(s+e)%360,s=s<0?360+s:s,t.color[0]=s,t},mix(e,t){if(!e||!e.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof e);const s=e.rgb(),a=this.rgb(),i=void 0===t?.5:t,r=2*i-1,n=s.alpha()-a.alpha(),o=((r*n==-1?r:(r+n)/(1+r*n))+1)/2,l=1-o;return U.rgb(o*s.red()+l*a.red(),o*s.green()+l*a.green(),o*s.blue()+l*a.blue(),s.alpha()*i+a.alpha()*(1-i))}};for(const e of Object.keys(V)){if(N.includes(e))continue;const{channels:t}=V[e];U.prototype[e]=function(...t){return this.model===e?new U(this):t.length>0?new U(t,e):new U([...(s=V[this.model][e].raw(this.color),Array.isArray(s)?s:[s]),this.valpha],e);var s},U[e]=function(...s){let a=s[0];return"number"==typeof a&&(a=$(s,t)),new U(a,e)}}function G(e){return function(t){return function(e,t){return Number(e.toFixed(t))}(t,e)}}function z(e,t,s){e=Array.isArray(e)?e:[e];for(const a of e)(H[a]||=[])[t]=s;return e=e[0],function(a){let i;return void 0!==a?(s&&(a=s(a)),i=this[e](),i.color[t]=a,i):(i=this[e]().color[t],s&&(i=s(i)),i)}}function W(e){return function(t){return Math.max(0,Math.min(e,t))}}function $(e,t){for(let s=0;s<t;s++)"number"!=typeof e[s]&&(e[s]=0);return e}var Q=U;const Y=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>{};if(!e)return;if(null===t)return void e.dispatchEvent(new Event("animationend"));if("string"!=typeof t)return;const a=window.matchMedia("(prefers-reduced-motion: reduce)")?.matches;if(a)return;const i=`animate-${t}`,r=a=>{a.animationName!==t&&void 0!==a.animationName||(e.classList.remove("animate"),e.classList.remove(i),e.removeEventListener("animationend",r),s())};e.addEventListener("animationend",r),e.classList.add("animate"),e.classList.add(i)};let X=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.params=i.extend({position:"bottom"},e),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-stage-label-container"),this.dom.classList.add(this.params.position);const t=document.createElement("div");t.classList.add("h5p-game-map-stage-label"),this.dom.appendChild(t),this.labelInner=document.createElement("div"),this.labelInner.classList.add("h5p-game-map-stage-label-inner"),this.labelInner.innerText=this.params.text,t.appendChild(this.labelInner),this.hide()}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.scale=e.scale??1,this.isShowing()||this.params.text&&(window.requestAnimationFrame((()=>{const t=parseFloat(window.getComputedStyle(this.labelInner).getPropertyValue("font-size")),s=Math.floor(this.labelInner.getBoundingClientRect().height);this.dom.classList.toggle("multiline",t*e.scale*1.5<s)})),this.dom.classList.toggle("touch-device",e.isTouch||!1),e.skipDelay?this.dom.classList.remove("visibility-hidden"):window.setTimeout((()=>{this.dom.classList.remove("visibility-hidden")}),10),this.dom.classList.remove("display-none"),this.showing=!0)},t.hide=function(){this.dom.classList.add("visibility-hidden"),window.setTimeout((()=>{this.dom.classList.add("display-none")}),0),this.showing=!1},t.isShowing=function(){return this.showing},e}();let _=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.params=i.extend({},e),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-stage-score-stars-container"),"onHover"===this.params.mode&&this.dom.style.setProperty("--on-hover-transition","var(--label-transition)"),this.addStars(),this.hide()}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.isShowing()||(this.dom.classList.toggle("touch-device",e.isTouch||!1),e.skipDelay?this.dom.classList.remove("visibility-hidden"):window.setTimeout((()=>{this.dom.classList.remove("visibility-hidden")}),10),this.dom.classList.remove("display-none"),this.showing=!0)},t.buildStarSVG=function(){const e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("viewBox","-22 0 1792 1717"),e.setAttribute("width","100%"),e.setAttribute("height","100%"),e.setAttribute("xmlns","http://www.w3.org/2000/svg");const t=document.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("id","outline"),t.setAttribute("fill","currentColor"),t.setAttribute("d","M874 0q43 0 78 32 22 22 35 52l-2-4 207 419 462 68q38 5 66 24 20 13 35 38t15 53v8l-2 8q-11 50-49 84l2-1-335 324 80 460v-2q3 17 3 36-1 43-23 74-14 19-39 31.5t-50 12.5q-40-1-74-20l2 1-413-218-412 218 1-1q-32 18-70 20h-3q-25 0-49.5-12t-38.5-31q-24-32-24-76l2-21v-5l81-466L24 781l2 1q-40-37-47-91l-1-4v-5q0-27 15.5-52.5T29 591q24-16 62-24h2l463-68L764 80l-1 2q12-28 34-48 34-34 77-34Zm0 172L649 627l-506 74 366 356-87 502 450-238 451 238-87-502 366-357-503-73z"),e.appendChild(t);const s=document.createElementNS("http://www.w3.org/2000/svg","path");s.setAttribute("id","background-right"),s.setAttribute("d","M874 172 649 627l-506 74 366 356-87 502 450-238 2 1.055L1323 1559l-87-502 366-357-503-73zm775.24 678.404-.644.623h.644zm-839.555 662.569-5.072 2.683h5.072z"),e.appendChild(s);const a=document.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("id","background-left"),a.setAttribute("d","M874 172 649 627l-506 74 366 356-87 502 450-238 2 1.055zm-64.314 1340.973-5.073 2.683h5.073z"),e.appendChild(a),e},t.addStars=function(){this.starDOMLeft=document.createElement("div"),this.starDOMLeft.classList.add("h5p-game-map-stage-score-star"),this.starDOMLeft.classList.add("small"),this.starDOMLeft.classList.add("left");let e=this.buildStarSVG();this.starDOMLeft.appendChild(e),this.dom.appendChild(this.starDOMLeft),this.starDOMCenter=document.createElement("div"),this.starDOMCenter.classList.add("h5p-game-map-stage-score-star"),e=this.buildStarSVG(),this.starDOMCenter.appendChild(e),this.dom.appendChild(this.starDOMCenter),this.starDOMRight=document.createElement("div"),this.starDOMRight.classList.add("h5p-game-map-stage-score-star"),this.starDOMRight.classList.add("small"),this.starDOMRight.classList.add("right"),e=this.buildStarSVG(),this.starDOMRight.appendChild(e),this.dom.appendChild(this.starDOMRight)},t.setStarsBySegments=function(e){if("number"!=typeof e)return;const t=function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),a=1;a<t;a++)s[a-1]=arguments[a];e.forEach((e=>{s.forEach((t=>e.classList.add(t)))}))};e=Math.max(0,Math.min(e,6));switch(function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),a=1;a<t;a++)s[a-1]=arguments[a];e.forEach((e=>{s.forEach((t=>e.classList.remove(t)))}))}([this.starDOMLeft,this.starDOMCenter,this.starDOMRight],"half","full"),e){case 0:break;case 1:t([this.starDOMLeft],"half");break;case 2:t([this.starDOMLeft],"full");break;case 3:t([this.starDOMLeft],"full"),t([this.starDOMCenter],"half");break;case 4:t([this.starDOMLeft,this.starDOMCenter],"full");break;case 5:t([this.starDOMLeft,this.starDOMCenter],"full"),t([this.starDOMRight],"half");break;case 6:t([this.starDOMLeft,this.starDOMCenter,this.starDOMRight],"full")}},t.setStarsByPercentage=function(e){"number"==typeof e&&(0===(e=Math.max(0,Math.min(e,100)))?this.setStarsBySegments(0):100===e?this.setStarsBySegments(6):this.setStarsBySegments(Math.round(i.project(e,0,100,1,5))))},t.hide=function(){this.dom.classList.add("visibility-hidden"),window.setTimeout((()=>{this.dom.classList.add("display-none")}),0),this.showing=!1},t.isShowing=function(){return this.showing},e}(),K=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.type&&e.operator&&("number"==typeof e.value||"string"==typeof e.value)&&e.dictionary&&e.getCurrentValue?(this.label=e.label??"---",this.type=e.type,this.operator=e.operator,this.value=e.value,this.dictionary=e.dictionary,this.getCurrentValue=e.getCurrentValue,this.valueRepresentation=e.valueRepresentation??this.value,this):null}var t=e.prototype;return t.check=function(){throw new Error("Method not implemented")},t.getValidOperators=function(){throw new Error("Method not implemented")},t.isValid=function(){return this.getValidOperators().includes(this.getOperator())},t.getType=function(){return this.type},t.getOperator=function(){return this.operator},t.getValue=function(){return this.value},t.getValueRepresentation=function(){return this.valueRepresentation.toString()},t.getMessage=function(){const e=this.getType().charAt(0).toUpperCase()+this.getType().slice(1),t=this.getOperator().charAt(0).toUpperCase()+this.getOperator().slice(1);return(this.dictionary.get(`l10n.restriction${e}${t}`)??"").replace("@value",this.getValueRepresentation()).replace("@label",this.label)},e}();function J(e,t){return J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},J(e,t)}const Z=["before","is","isNot","after"];let ee=function(e){function t(){var t;let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(t=e.call(this,s)||this).value=new Date(t.getValue()),t}var s,a;a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,J(s,a);var i=t.prototype;return i.check=function(){let e=this.getCurrentValue();if(null==e)return!0;switch(this.getOperator()){case"before":return e<this.getValue();case"is":return e===this.getValue();case"isNot":return e!==this.getValue();case"after":return e>this.getValue();default:return!0}},i.getValidOperators=function(){return Z},i.getValueRepresentation=function(){return`${this.value.toLocaleDateString()}, ${this.value.toLocaleTimeString()}`},t}(K);function te(e,t){return te=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},te(e,t)}const se=["lessThan","equalTo","notEqualTo","greaterThan"];let ae=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.call(this,t)||this}var s,a;a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,te(s,a);var i=t.prototype;return i.check=function(){const e=this.getCurrentValue();if(null==e)return!0;switch(this.getOperator()){case"lessThan":return e<this.getValue();case"equalTo":return e===this.getValue();case"notEqualTo":return e!==this.getValue();case"greaterThan":return e>this.getValue();default:return!0}},i.getValidOperators=function(){return se},t}(K);function ie(e,t){return ie=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ie(e,t)}const re=["lessThan","equalTo","notEqualTo","greaterThan"];let ne=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.call(this,t)||this}var s,a;a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,ie(s,a);var i=t.prototype;return i.check=function(){const e=this.getCurrentValue();if(null==e)return!0;switch(this.getOperator()){case"lessThan":return e<this.getValue();case"equalTo":return e===this.getValue();case"notEqualTo":return e!==this.getValue();case"greaterThan":return e>this.getValue();default:return!0}},i.getValidOperators=function(){return re},t}(K);function oe(e,t){return oe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},oe(e,t)}const le=["is","isNot"];let ce=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.call(this,t)||this}var s,a;a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,oe(s,a);var i=t.prototype;return i.check=function(){const e=this.getCurrentValue();if(null==e)return!0;switch(this.getOperator()){case"is":return e===this.getValue();case"isNot":return e!==this.getValue();default:return!0}},i.getValidOperators=function(){return le},t}(K),ue=function(){function e(){}return e.produce=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t={label:e[`${e.restrictionType}Group`]?.[`${e.restrictionType}Label`],type:e.restrictionType,operator:e[`${e.restrictionType}Group`]?.[`${e.restrictionType}Operator`],value:e[`${e.restrictionType}Group`]?.[`${e.restrictionType}Value`],dictionary:e.dictionary,getCurrentValue:e.callbacks[e.restrictionType]};"stageScore"===e.restrictionType?t.getCurrentValue=()=>e.callbacks.stageScore(e.stageScoreGroup?.stageScoreId):"stageProgress"===e.restrictionType&&(t.valueRepresentation=e.stageProgressGroup?.stageProgressValueRepresentation,t.getCurrentValue=()=>e.callbacks.stageProgress(e.stageProgressGroup?.stageProgressId));const s=this.createRestriction(e.restrictionType,t);return s?.isValid()?s:null},e.createRestriction=function(e,t){switch(e){case"time":return new ee(t);case"totalScore":return new ae(t);case"stageScore":return new ne(t);case"stageProgress":return new ce(t);default:return null}},e}(),he=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.callbacks=i.extend({getTotalScore:()=>0,getStageScore:()=>0,getStageProgress:()=>-1,getTime:()=>new Date},t),this.dictionary=e.dictionary,this.globals=e.globals;const s=this.buildRestrictions(e.accessRestrictions.restrictionSetList);s.length?this.restrictions={allOrAnyRestrictionSet:e.accessRestrictions.allOrAnyRestrictionSet??"all",restrictionSetList:s}:this.restrictions=null}var t=e.prototype;return t.buildRestrictions=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((e=>({...e,restrictionList:this.sanitizeRestrictionList(e.restrictionList)}))).filter((e=>e.restrictionList.length))},t.sanitizeRestrictionList=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((e=>ue.produce({...e,dictionary:this.dictionary,callbacks:{totalScore:this.callbacks.getTotalScore,stageScore:this.callbacks.getStageScore,stageProgress:this.callbacks.getStageProgress,time:this.callbacks.getTime}}))).filter((e=>null!==e))},t.allPassed=function(){if(!this.restrictions)return!0;const e=this.restrictions.restrictionSetList.map((e=>this.checkRestrictionSet(e)));return this.checkAllOrAny(e,this.restrictions.allOrAnyRestrictionSet)},t.includeTimeRestriction=function(){return!!this.restrictions&&this.restrictions.restrictionSetList.some((e=>e.restrictionList.some((e=>"time"===e.type))))},t.checkRestrictionSet=function(e){const t=e.restrictionList.map((e=>e.check()));return this.checkAllOrAny(t,e.allOrAnyRestriction)},t.checkAllOrAny=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return!e.length||!["all","any"].includes(t)||("all"===t?e.every(Boolean):e.some(Boolean))},t.generateRestrictionSetHTML=function(e){let t=e.restrictionList.map((e=>`<li>${e.getMessage()}</li>`)).join("");if(e.restrictionList.length>1){t=`<li>${"all"===e.allOrAnyRestriction?this.dictionary.get("l10n.restrictionsAllOf"):this.dictionary.get("l10n.restrictionsAnyOf")}<ul>${t}</ul></li>`}return t},t.getMessagesHTML=function(){return`${"all"===this.restrictions.allOrAnyRestrictionSet?this.dictionary.get("l10n.restrictionsAllOfLong"):this.dictionary.get("l10n.restrictionsAnyOfLong")}<ul>${this.restrictions.restrictionSetList.map((e=>this.generateRestrictionSetHTML(e))).join("")}</ul>`},e}();const de=0,pe=1;let me=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({accessRestrictions:{restrictionSetList:[]}},e),this.params.type=de,this.params.specialStageType&&(this.params.type=pe),this.params.state=this.params.state??this.params.globals.get("states").locked,this.callbacks=i.extend({onClicked:()=>{},onStateChanged:()=>{},onFocused:()=>{},onBecameActiveDescendant:()=>{},onAddedToQueue:()=>{},onAccessRestrictionsHit:()=>{}},t);const s=this.params.globals.get("params").gamemapSteps.gamemap.elements;this.params.accessRestrictions.restrictionSetList=(this.params.accessRestrictions.restrictionSetList??[]).filter((e=>e.restrictionList)).map((e=>(e.restrictionList=e.restrictionList.map((e=>{const t=e.stageProgressGroup?.stageProgressValue;if(t&&(e.stageProgressGroup.stageProgressValue=this.params.globals.get("states")[t],e.stageProgressGroup.stageProgressValueRepresentation=this.params.dictionary.get(`l10n.${t}`)),"stageScore"===e.restrictionType&&e.stageScoreGroup){const t=s.find((t=>t.id===e.stageScoreGroup.stageScoreId))?.label;e.stageScoreGroup.stageScoreLabel=t}else if("stageProgress"===e.restrictionType&&e.stageProgressGroup){const t=s.find((t=>t.id===e.stageProgressGroup.stageProgressId))?.label;e.stageProgressGroup.stageProgressLabel=t}return e})),e))),this.restrictions=new he({dictionary:this.params.dictionary,globals:this.params.globals,accessRestrictions:this.params.accessRestrictions},{getTotalScore:()=>this.callbacks.getTotalScore(),getStageScore:e=>this.callbacks.getScore(e),getStageProgress:e=>this.callbacks.getStageProgress(e),getTime:()=>new Date}),this.isDisabledState=!1,this.isAnimating=!1,this.shouldBePlayful=!0,this.isReachableState=!0,this.dom=document.createElement("button"),this.dom.classList.add("h5p-game-map-stage"),this.dom.setAttribute("id",`stage-button-${this.params.id}`),this.dom.addEventListener("click",(e=>{this.handleClick(e)})),this.dom.addEventListener("focus",(()=>{this.callbacks.onFocused(this.params.id)})),this.params.globals.get("params").behaviour.map.showLabels&&(this.dom.addEventListener("mouseenter",(e=>{this.handleMouseOver(e)})),this.dom.addEventListener("focus",(e=>{this.handleMouseOver(e)})),this.dom.addEventListener("mouseleave",(()=>{this.handleMouseOut()})),this.dom.addEventListener("blur",(e=>{this.handleMouseOut(e)}))),this.content=document.createElement("div"),this.content.classList.add("h5p-game-map-stage-content"),this.content.classList.add("dark-text"),this.dom.appendChild(this.content),this.contentComputedStyle=window.getComputedStyle(this.content);const a=this.params.telemetry.y<50?"bottom":"top";"never"!==this.params.showStars&&(this.scoreStars=new _({mode:this.params.showStars}),this.dom.appendChild(this.scoreStars.getDOM())),this.label=new X({position:a,text:this.params.label}),this.dom.appendChild(this.label.getDOM()),this.setState(this.params.state),this.setTabIndex("-1"),this.params.visible||this.params.alwaysVisible?this.show():this.hide(),this.update(e.telemetry)}var t=e.prototype;return t.getDOM=function(){return this.dom},t.getId=function(){return this.params.id},t.getLabel=function(){return this.params.label},t.getType=function(){return this.params.type},t.getNeighbors=function(){return this.params.neighbors},t.isVisible=function(){return this.isVisibleState},t.setReachable=function(e){"boolean"==typeof e&&(this.isReachableState=e,this.isReachable()||this.hide())},t.isReachable=function(){return this.isReachableState},t.togglePlayfulness=function(e){this.shouldBePlayful="boolean"==typeof e?e:!this.shouldBePlayful},t.focus=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.skipNextFocusHandler=e.skipNextFocusHandler,this.dom.focus()},t.updateAriaLabel=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=e.customText||this.params.dictionary.get("a11y.stageButtonLabel").replace(/@stagelabel/,this.params.label);let s;this.state===this.params.globals.get("states").locked?s=this.params.dictionary.get("a11y.locked"):this.state!==this.params.globals.get("states").completed&&this.state!==this.params.globals.get("states").cleared||(s=this.params.dictionary.get("a11y.cleared"));const a=e.customState||s,i=[t];a&&i.push(a),this.dom.setAttribute("aria-label",i.join(". "))},t.addEventListener=function(e,t){this.dom.addEventListener(e,t)},t.removeEventListener=function(e,t){this.dom.removeEventListener(e,t)},t.canBeStartStage=function(){return this.params.canBeStartStage||!1},t.getAccessRestrictions=function(){return this.params.accessRestrictions},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.isReachable())return;const t=()=>{this.dom.classList.remove("display-none"),window.requestAnimationFrame((()=>{this.dom.classList.remove("transparent")}))};e.queue?this.callbacks.onAddedToQueue((()=>{t()})):t(),this.isVisibleState=!0},t.hide=function(){this.params.alwaysVisible&&this.isReachable()||(this.dom.classList.add("display-none"),this.dom.classList.add("transparent"),this.isVisibleState=!1)},t.setStartStage=function(){this.isStartStageState=!0},t.isStartStage=function(){return this.isStartStageState??!1},t.lock=function(){this.setState("locked")},t.unlock=function(){this.state===this.params.globals.get("states").locked&&(this.isStartStage()||this.passesRestrictions())&&(this.params.globals.get("read")(this.params.dictionary.get("a11y.stageUnlocked").replace(/@stagelabel/,this.params.label)),this.setState("open"))},t.update=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(let t in e){"string"==typeof e[t]&&(e[t]=parseFloat(e[t]));let s=t;if("x"===t)s="left";else{if("y"!==t)return;s="top"}this.dom.style.setProperty(`--stage-${s}`,`${e[t]}%`)}},t.updateColor=function(){if(!this.dom.isConnected)return;const e=Q(this.contentComputedStyle.getPropertyValue("background-color")),t=this.contentComputedStyle.getPropertyValue("--stage-color-contrast-dark"),s=this.contentComputedStyle.getPropertyValue("--stage-color-contrast-light"),a=e.contrast(Q(t)),i=e.contrast(Q(s));this.content.classList.toggle("dark-text",a>i),this.content.classList.toggle("light-text",a<=i),e.isDark()?this.content.style.setProperty("--stage-color-border",e.darken(.3).rgb().string()):this.content.style.setProperty("--stage-color-border",e.lighten(.3).rgb().string())},t.enable=function(){this.isDisabledState=!1,this.dom.removeAttribute("disabled")},t.disable=function(){this.dom.setAttribute("disabled","disabled"),this.isDisabledState=!0},t.animate=function(e){"string"!=typeof e||this.isAnimating||this.params.globals.get("params").visual.misc.useAnimation&&(this.isAnimating=!0,Y(this.dom,e,(()=>{this.isAnimating=!1})))},t.handleClick=function(){if(this.isDisabledState)return;this.label.hide(),"onHover"===this.params.showStars&&this.scoreStars.hide();const e=this.params.globals.get("states");if(this.state===e.locked||this.state===e.sealed)return this.animate("shake"),this.params.jukebox.play("clickStageLocked"),void(this.state!==e.locked||this.passesRestrictions()||this.callbacks.onAccessRestrictionsHit({id:this.params.id,html:this.restrictions.getMessagesHTML()}));this.callbacks.onClicked(this.params.id,this.state)},t.passesRestrictions=function(){return this.restrictions.allPassed()},t.handleMouseOver=function(e){if(this.skipNextFocusHandler)return void(this.skipNextFocusHandler=!1);if(this.isDisabledState)return;if(i.supportsTouch())return;let t=parseFloat(window.getComputedStyle(this.dom).getPropertyValue("scale"));t=Number.isNaN(t)?1:t,"onHover"===this.params.showStars&&this.belongsToTask&&this.scoreStars.show({skipDelay:e instanceof FocusEvent,scale:t}),this.label.show({skipDelay:e instanceof FocusEvent,scale:t})},t.handleMouseOut=function(){i.supportsTouch()||(this.label.hide(),"onHover"===this.params.showStars&&this.scoreStars.hide())},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setReachable(!0),this.isStartStageState=!1;const t=e.isInitial?this.params.state:this.params.globals.get("states").locked;this.setState(t),t===this.params.globals.get("states").locked&&this.setTabIndex("-1"),this.shouldBePlayful=!0,e.isInitial&&this.params.visible?this.show():this.hide()},t.getState=function(){return this.state},t.setState=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=this.params.globals.get("states"),a=this.params.globals.get("params");if("string"==typeof e&&(e=Object.entries(s).find((t=>t[0]===e))[1]),"number"!=typeof e)return;let i;if(t.force?i=s[e]:e===s.locked?i=s.locked:e===s.open||e===s.opened?(this.state!==s.completed&&this.state!==s.cleared&&(i=s.open),this.show()):e!==s.completed||"free"!==a.behaviour.map.roaming&&"complete"!==a.behaviour.map.roaming?e===s.cleared?i=s.cleared:e===s.sealed&&(i=s.sealed):i=s.cleared,"number"==typeof i&&(!this.state||this.state!==i)){this.state=i;const e=()=>{for(const[e,t]of Object.entries(s))t!==this.state?this.content.classList.remove(`h5p-game-map-stage-${e}`):this.content.classList.add(`h5p-game-map-stage-${e}`);this.updateAriaLabel(),window.requestAnimationFrame((()=>{this.updateColor()})),this.shouldBePlayful&&(i===s.open||i===s.opened?(this.animate("bounce"),this.params.jukebox.play("unlockStage")):i===s.cleared&&(this.animate("bounce"),this.params.jukebox.play("clearStage")))},t={};this.shouldBePlayful?i===s.cleared?t.block=1e3:i===s.sealed&&(t.skipQueue=!0):t.block=0,this.callbacks.onAddedToQueue(e,t),this.callbacks.onStateChanged(this.params.id,this.state)}},t.setTabIndex=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"number"!=typeof e&&"string"!=typeof e||(this.dom.setAttribute("tabindex",`${e}`),"0"!==e||t.skipActiveDescendant||this.callbacks.onBecameActiveDescendant(this.params.id))},t.setTaskState=function(e){this.belongsToTask=e},t.showScoreStars=function(){this.scoreStars.show()},t.updateScoreStar=function(e){this.scoreStars?.setStarsByPercentage(e)},t.hasTimeRestriction=function(){return this.restrictions.includeTimeRestriction()},e}();function ge(e,t){return ge=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ge(e,t)}let be=function(e){function t(){var t;let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(t=e.call(this,s,a)||this).content.classList.add(t.params.specialStageType),t.content.classList.toggle("override-symbol",!0===t.params.overrideSymbol),t.getState()===t.params.globals.get("states").cleared&&t.disable(),t}var s,a;return a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,ge(s,a),t.prototype.runSpecialFeature=function(e){const t=this.params.globals.get("states");switch(this.params.specialStageType){case"finish":e.showFinishConfirmation();break;case"extra-life":e.addExtraLives(this.params.specialStageExtraLives??0),this.setState(t.cleared),e.handleSpecialFeatureRun("extra-life"),this.disable();break;case"extra-time":e.addExtraTime(this.params.specialStageExtraTime??0),this.setState(t.cleared),e.handleSpecialFeatureRun("extra-time"),this.disable();break;case"link":this.setState(t.cleared),window.open(this.params.specialStageLinkURL,this.params.specialStageLinkTarget)}},t}(me);let fe=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({elements:{}},e),this.callbacks=i.extend({onStageClicked:()=>{},onStageStateChanged:()=>{},onStageFocused:()=>{},onBecameActiveDescendant:()=>{},onAddedToQueue:()=>{},onAccessRestrictionsHit:()=>{},getStageScore:()=>0,getExerciseState:()=>0},t),this.handleSelectionKeydown=this.handleSelectionKeydown.bind(this),this.stages=this.buildStages(this.params.elements),this.stages.some((e=>e.hasTimeRestriction()))&&window.setInterval((()=>{this.updateStatePerRestrictions()}),2500)}var t=e.prototype;return t.getDOMs=function(){return this.stages.map((e=>e.getDOM()))},t.buildStages=function(e){var t=this;const s=[];if(!Object.keys(e??{}).length)return[];const a=this.params.globals.get("extras").previousState?.content?.stages??[];for(let i in e){const r=e[i],n=r.neighbors.map((t=>e[parseInt(t)].id)),o=a.find((e=>e.id===r.id));let l=this.params.globals.get("params").visual.stages.showScoreStars;r.specialStageType&&(l="never");const c={id:r.id,dictionary:this.params.dictionary,globals:this.params.globals,jukebox:this.params.jukebox,canBeStartStage:r.canBeStartStage,showStars:l,accessRestrictions:r.accessRestrictions,...r.contentType&&{contentType:r.contentType},specialStageType:r.specialStageType,...r.specialStageExtraLives&&{specialStageExtraLives:r.specialStageExtraLives},...r.specialStageExtraTime&&{specialStageExtraTime:r.specialStageExtraTime},...r.specialStageLinkURL&&{specialStageLinkURL:r.specialStageLinkURL},...r.specialStageLinkTarget&&{specialStageLinkTarget:r.specialStageLinkTarget},label:r.label,neighbors:n,telemetry:r.telemetry,visuals:this.params.visuals,visible:o?.visible,alwaysVisible:r.alwaysVisible,overrideSymbol:r.overrideSymbol,...o?.state&&{state:o?.state}},u={onClicked:(e,t)=>{this.callbacks.onStageClicked(e,t)},onStateChanged:(e,t)=>{this.callbacks.onStageStateChanged(e,t)},onFocused:e=>{this.selectionStage||this.callbacks.onFocused(),this.handleStageFocused(e)},onBecameActiveDescendant:e=>{this.callbacks.onBecameActiveDescendant(e)},onAddedToQueue:(e,t)=>{this.callbacks.onAddedToQueue(e,t)},onAccessRestrictionsHit:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.callbacks.onAccessRestrictionsHit(e)},getTotalScore:()=>this.callbacks.getTotalScore(),getScore:e=>this.callbacks.getStageScore(e),getStageProgress:e=>this.callbacks.getExerciseState(e)},h=r.specialStageType?new be(c,u):new me(c,u);s.push(h)}return s},t.gatherSubGraphIds=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(0===e.length)return t;const s=(e,t,s)=>s.indexOf(e)===t,a=e.reduce(((e,t)=>[...e,...this.getStage(t).getNeighbors()]),[]).filter((s=>!t.includes(s)&&!e.includes(s))).filter(s);return[...t,...this.gatherSubGraphIds(a,e)].filter(s)},t.updateReachability=function(e){this.stages.forEach((t=>{t.setReachable(e.includes(t.getId()))}))},t.enable=function(){this.stages.forEach((e=>{e.enable()}))},t.disable=function(){this.stages.forEach((e=>{e.disable()}))},t.getCount=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[...this.stages].filter((e=>e.isReachable()));e=i.extend({filters:{}},e);for(const s in e.filters)t=t.filter((t=>{let a=!0;return"state"===s&&(a=a&&e.filters[s].includes(t.getState())),"type"===s&&(a=a&&e.filters[s].includes(t.getType())),a}));return t.length},t.getStage=function(e){return this.stages.find((t=>t.getId()===e))},t.getCurrentState=function(){return this.stages.map((e=>({id:e.getId(),state:e.getState(),visible:e.isVisible()})))},t.updateState=function(e,t){const s=this.getStage(e);s&&s.setState(t)},t.updateStatePerRestrictions=function(){const e=this.params.globals.get("params").behaviour.map.roaming,t=this.params.globals.get("states");this.stages.forEach((s=>{("free"===e||s.getNeighbors().some((s=>{const a=this.getStage(s).getState();return"complete"===e&&(a===t.completed||a===t.cleared)||"success"===e&&a===t.cleared})))&&s.getState()===t.locked&&s.passesRestrictions()?s.unlock():s.isStartStage()||s.getState()!==t.open||s.passesRestrictions()||s.lock()}))},t.updateNeighborsState=function(e,t){const s=this.params.globals.get("params");if("free"===s.behaviour.map.roaming)return;const a=this.getStage(e);if(!a)return;const i=a.getNeighbors();t===this.params.globals.get("states").open&&"0"!==s.behaviour.map.fog&&i.forEach((e=>{const t=this.getStage(e);t&&t.show({queue:!0})})),t===this.params.globals.get("states").cleared&&i.forEach((e=>{const t=this.getStage(e);t&&t.unlock()}))},t.unlockStage=function(e){if("string"!=typeof e)return;const t=this.stages.find((t=>t.getId()===e));t&&t.unlock()},t.setStartStages=function(){let e=this.stages.filter((e=>e.canBeStartStage()&&e.passesRestrictions()));return e.length||(e=this.stages.filter((e=>e.getType()===de&&e.passesRestrictions()))),e.length||(e=this.stages.filter((e=>e.getType()===de))),e=[e[Math.floor(Math.random()*e.length)]],e.forEach(((e,t)=>{e.setStartStage(),e.unlock(),0===t&&e.setTabIndex("0")})),this.gatherSubGraphIds(e.map((e=>e.getId())))},t.getNextOpenStage=function(){const e=this.params.globals.get("states");return this.stages.find((t=>{const s=t.getState();return s===e.open||s===e.opened}))||null},t.handleStageFocused=function(e){this.selectionNeighbors?.map((e=>e.getId())).includes(e)||(this.stages.forEach((t=>{t.getId()!==e?t.setTabIndex("-1"):t.setTabIndex("0"),t.removeEventListener("keydown",this.handleSelectionKeydown)})),this.selectionStage=this.stages.find((t=>t.getId()===e)),this.selectionNeighbors=this.selectionStage.getNeighbors().map((e=>this.stages.find((t=>t.getId()===e)))),this.highlightedStageId=0,this.selectionStages=[this.selectionStage,...this.selectionNeighbors],this.selectionStages.forEach((e=>{e.addEventListener("keydown",this.handleSelectionKeydown)})))},t.handleSelectionKeydown=function(e){if(!["ArrowLeft","ArrowRight"," ","Enter","Escape","Tab"].includes(e.key))return;const t=this.selectionStages[this.highlightedStageId];"ArrowLeft"===e.key?(0!==this.highlightedStageId&&(t.setTabIndex("-1"),t.updateAriaLabel()),this.highlightStage(this.highlightedStageId=(this.highlightedStageId+1)%this.selectionStages.length),e.preventDefault()):"ArrowRight"===e.key?(0!==this.highlightedStageId&&(t.setTabIndex("-1"),t.updateAriaLabel()),this.highlightStage((this.highlightedStageId+this.selectionStages.length-1)%this.selectionStages.length),e.preventDefault()):" "===e.key||"Enter"===e.key?0!==this.highlightedStageId&&(this.selectionStages[0].setTabIndex("-1"),this.selectionNeighbors=null,t.updateAriaLabel(),t.animate("pulse"),this.params.globals.get("read")(this.params.dictionary.get("a11y.movedToStage").replace(/@stagelabel/,t.getLabel())),window.setTimeout((()=>{t.getDOM().blur(),t.getDOM().focus()}),100),e.preventDefault()):"Escape"===e.key?(t.setTabIndex("-1"),t.updateAriaLabel(),this.highlightStage(0)):"Tab"===e.key&&(0!==this.highlightedStageId&&(t.setTabIndex("-1"),t.updateAriaLabel()),this.selectionStage=null,this.selectionNeighbors=null,this.selectionStages=null)},t.highlightStage=function(e){if(!Array.isArray(this.selectionStages)||e>this.selectionStages.length)return;this.highlightedStageId=e;const t=this.selectionStages[this.highlightedStageId];0!==e&&t.updateAriaLabel({customText:this.params.dictionary.get("a11y.adjacentStageLabel").replace(/@stagelabelOrigin/,this.selectionStages[0].getLabel()).replace(/@stagelabelNeighbor/,t.getLabel())}),t.setTabIndex("0",{skipActiveDescendant:!0}),t.focus()},t.setTabIndex=function(e,t){const s=this.stages.find((t=>t.getId()===e));s?.setTabIndex(t)},t.togglePlayfulness=function(e){"boolean"==typeof e&&this.stages.forEach((e=>{e.togglePlayfulness(!1)}))},t.forEach=function(e){for(let t=0;t<this.stages.length;t++)e(this.stages[t],t,this.stages)},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.stages.forEach((t=>{t.reset({isInitial:e.isInitial})}))},t.setTaskState=function(e,t){const s=this.getStage(e);s&&(s.setTaskState(t),t&&"always"===this.params.globals.get("params").visual.stages.showScoreStars&&s.showScoreStars())},t.updateScoreStar=function(e,t){if("*"===e)return void this.stages.forEach((e=>{e.updateScoreStar(t)}));const s=this.getStage(e);s&&s.updateScoreStar(t)},e}();let ye=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({buttons:[],l10n:{buttonText:"Close"},a11y:{screenOpened:"Screen was opened"}},e),this.callbacks=i.extend({onButtonClicked:()=>{},onRead:()=>{}},t),this.buttons=[],this.dom=this.buildDOM(),this.visuals=this.buildVisualsElement(this.params.medium),this.dom.append(this.visuals),this.setMedium(this.params.medium),this.introduction=this.buildIntroduction(),this.setIntroduction(this.params.introduction),this.dom.append(this.introduction),this.content=this.buildContent(),this.setContent(this.params.content),this.dom.append(this.content);const s=document.createElement("div");s.classList.add("media-screen-buttons-wrapper"),this.dom.append(s),this.params.buttons.forEach((e=>{const t=this.buildButton(e.id,e.text,e.className);s.append(t),this.buttons.push(t)}))}var t=e.prototype;return t.getDOM=function(){return this.dom},t.buildDOM=function(){const e=document.createElement("div");return e.classList.add("media-screen"),this.params.id&&e.classList.add(this.params.id),e},t.buildVisualsElement=function(){const e=document.createElement("div");return e.classList.add("media-screen-medium"),e},t.buildBar=function(){const e=document.createElement("div");return e.classList.add("media-screen-bar"),e},t.buildIntroduction=function(){const e=document.createElement("div");return e.classList.add("media-screen-introduction"),e},t.buildContent=function(){const e=document.createElement("div");return e.classList.add("media-screen-content"),e},t.buildButton=function(e,t,s){const a=document.createElement("button");s&&a.classList.add(s),a.innerText=t,a.addEventListener("click",(()=>{this.hide(),this.callbacks.onButtonClicked(e)}));const i=document.createElement("div");return s||i.classList.add("media-screen-button"),i.classList.add(`media-screen-button-${e}`),i.appendChild(a),i},t.setIntroduction=function(e){e?(this.introduction.innerHTML=e,this.introduction.classList.remove("display-none")):this.introduction.classList.add("display-none")},t.setContent=function(e){e?(this.content.innerHTML="",this.content.append(e),this.content.classList.remove("display-none")):this.content.classList.add("display-none")},t.setMedium=function(e){if(this.medium=e,this.mediumFile=this.getMediumFile(e),this.mediumFile){const e=this.buildVisualsElement(this.params.medium);this.dom.replaceChild(e,this.visuals),this.visuals=e,i.callOnceVisible(this.dom,(()=>{this.initMedia()}),{root:document.documentElement})}else this.visuals.classList.add("display-none")},t.getMediumFile=function(e){return e?.params?.file?e.params.file:Array.isArray(e?.params?.sources)&&e.params.sources.length?e.params.sources[0]:null},t.initMedia=function(){if(this.visuals&&this.mediumFile&&void 0!==this.params.contentId){if("H5P.Video"===(this.medium.library||"").split(" ")[0]&&(this.medium.params.visuals.fit=!1),H5P.newRunnable(this.medium,this.params.contentId,H5P.jQuery(this.visuals),!1,{metadata:this.medium.medatata}),"H5P.Image"===(this.medium.library||"").split(" ")[0]){const e=this.visuals.querySelector("img")||this.visuals.querySelector(".h5p-placeholder");e.style.height="auto",e.style.width="auto"}this.visuals.appendChild(this.buildBar())}},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.dom.classList.remove("display-none"),e.readOpened&&this.callbacks.read(this.params.a11y.screenOpened),window.setTimeout((()=>{e.focusButton&&this.buttons.length&&this.buttons[0].querySelector("button").focus()}),100)},t.hide=function(){this.dom.classList.add("display-none")},e}();function ve(e,t){return ve=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ve(e,t)}let we=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.call(this,t,s)||this}var s,a;return a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,ve(s,a),t}(ye);function Se(e,t){return Se=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Se(e,t)}let xe=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.call(this,t,s)||this}var s,a;return a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,Se(s,a),t}(ye);let ke=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},e),this.callbacks=i.extend({onImageLoaded:()=>{}},t),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-map");const s=this.params.globals.get("params"),a=s.gamemapSteps?.gamemap?.elements[0]?.telemetry?.width,r=s.gamemapSteps?.gamemap?.elements[0]?.telemetry?.height;this.dom.style.setProperty("--stage-height",`${r}%`),this.dom.style.setProperty("--stage-width",`${a}%`),this.dom.style.setProperty("--stage-color",s.visual.stages.colorStage),this.dom.style.setProperty("--stage-color-cleared",s.visual.stages.colorStageCleared),this.dom.style.setProperty("--stage-color-locked",s.visual.stages.colorStageLocked),this.dom.style.setProperty("--stage-color-contrast-dark","#000"),this.dom.style.setProperty("--stage-color-contrast-light","#fff"),this.dom.style.setProperty("--path-color",s.visual.paths.style.colorPath),this.dom.style.setProperty("--path-color-cleared",s.visual.paths.style.colorPathCleared),this.dom.style.setProperty("--path-style",s.visual.paths.style.pathStyle),this.image=document.createElement("img"),this.image.classList.add("h5p-game-map-background-image"),this.image.alt="",this.image.addEventListener("load",(()=>{this.callbacks.onImageLoaded(this.image)})),this.params.backgroundImage?this.image.src=this.params.backgroundImage:this.image.classList.add("hidden"),this.params.backgroundColor&&this.dom.style.setProperty("--map-background-color",this.params.backgroundColor),this.dom.appendChild(this.image),this.pathWrapper=document.createElement("div"),this.pathWrapper.classList.add("h5p-game-map-path-wrapper"),this.params.paths.getDOMs().forEach((e=>{this.pathWrapper.appendChild(e)})),this.dom.appendChild(this.pathWrapper),this.stageWrapper=document.createElement("div"),this.stageWrapper.classList.add("h5p-game-map-stage-wrapper"),this.stageWrapper.setAttribute("role","application"),this.stageWrapper.setAttribute("aria-label",this.params.dictionary.get("a11y.applicationDescription")),this.params.stages.getDOMs().forEach((e=>{this.stageWrapper.appendChild(e)})),this.dom.appendChild(this.stageWrapper)}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){this.dom.classList.remove("display-none")},t.hide=function(){this.dom.classList.add("display-none")},t.setFullscreen=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t.height||!t.width)return;if(!e)return void this.forceSize(null);const s=this.getSize();let a,i;s.width/s.height>t.width/t.height?(a=t.width,i=t.width*s.height/s.width):(a=t.height*s.width/s.height,i=t.height),this.forceSize({container:{width:t.width,height:t.height},map:{width:a,height:i}})},t.getSize=function(){const e=this.image.getBoundingClientRect();return{height:e.height,width:e.width}},t.resize=function(){clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout((()=>{const e=this.getSize();this.pathWrapper.style.height=`${e.height}px`,this.stageWrapper.style.height=`${e.height}px`;const t=parseFloat(this.dom.style.getPropertyValue("--stage-height")),s=e.height/100*t;this.dom.style.setProperty("--stage-font-size",`calc(0.5 * ${s}px)`),this.dom.style.setProperty("--stage-line-height",`${s}px`)}),0)},t.forceSize=function(e){this.dom.style.height="",this.dom.style.width="",this.dom.style.margin="",this.dom.style.overflow="",this.image.style.height="",this.image.style.width="",this.pathWrapper.style.height="",this.pathWrapper.style.width="",this.stageWrapper.style.height="",this.stageWrapper.style.width="",null!==e&&(e?.container?.width&&e?.container?.height&&e?.map?.width&&e?.map?.height&&window.requestAnimationFrame((()=>{this.dom.style.height=`${e.container.height}px`,this.dom.style.width=`${e.container.width}px`,this.dom.style.margin="auto",this.dom.style.overflow="hidden auto",this.image.style.height=`${e.map.height}px`,this.image.style.width=`${e.map.width}px`,this.pathWrapper.style.height=`${e.map.height}px`,this.pathWrapper.style.width=`${e.map.width}px`,this.stageWrapper.style.height=`${e.map.height}px`,this.stageWrapper.style.width=`${e.map.width}px`,window.requestAnimationFrame((()=>{this.params.globals.get("resize")()}))})),window.requestAnimationFrame((()=>{this.params.globals.get("resize")()})))},t.setActiveDescendant=function(e){this.stageWrapper.setAttribute("aria-activedescendant",`stage-button-${e}`)},e}(),Ee=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},e),this.callbacks=i.extend({},t),this.dom=document.createElement("div"),this.dom.classList.add("status-container"),this.dom.classList.add(`status-container-${e.id}`);const s=document.createElement("div");if(s.classList.add("status-container-values"),this.dom.append(s),this.value=document.createElement("span"),this.value.classList.add("value"),s.append(this.value),e.hasMaxValue){const e=document.createElement("span");e.classList.add("delimiter"),e.innerText="/",s.append(e),this.maxValue=document.createElement("span"),this.maxValue.classList.add("max-value"),s.append(this.maxValue)}this.hide()}var t=e.prototype;return t.getDOM=function(){return this.dom},t.setStatus=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};null!==(e.value??null)&&(this.value.innerText=e.value),null!==(e.maxValue??null)&&this.maxValue&&(this.maxValue.innerText=e.maxValue)},t.show=function(){this.dom.classList.remove("display-none")},t.hide=function(){this.dom.classList.add("display-none")},t.animate=function(e){Y(this.dom,e)},e}(),Ae=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},e),this.callbacks=i.extend({},t),this.containers={},this.dom=document.createElement("div"),this.dom.classList.add("status-containers")}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){this.dom.classList.remove("display-none")},t.hide=function(){this.dom.classList.add("display-none")},t.addContainer=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};"string"==typeof e.id&&(this.containers[e.id]=new Ee(e),this.dom.append(this.containers[e.id].getDOM()))},t.showContainer=function(e){this.containers[e]&&this.containers[e].show()},t.hideContainer=function(e){this.containers[e]&&this.containers[e].hide()},t.setStatus=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.containers[e]&&this.containers[e].setStatus(t)},t.animate=function(e,t){this.containers[e]&&this.containers[e].animate(t)},e}(),Te=function(){function e(e,t){this.params=i.extend({a11y:{active:"",disabled:"",inactive:""},active:!1,classes:[],disabled:!1,type:"pulse",pulseStates:[],pulseIndex:0},e||{}),Array.isArray(this.params.classes)||(this.params.classes=[this.params.classes]),"pulse"===this.params.type&&(this.params.a11y.inactive||(this.params.a11y.inactive=this.params.a11y.active||""),this.params.a11y.active||(this.params.a11y.active=this.params.a11y.inactive||""),this.pulseIndex=this.params.pulseIndex||0),this.active=this.params.active,this.disabled=this.params.disabled,this.callbacks=t||{},this.callbacks.onClick=this.callbacks.onClick||(()=>{}),this.button=document.createElement("button"),this.params.classes&&this.params.classes.forEach((e=>{this.button.classList.add(e)})),this.button.setAttribute("aria-pressed",this.params.active),this.button.setAttribute("tabindex","0"),!0===this.params.active?this.activate():this.deactivate(),!0===this.params.disabled?this.disable():this.enable(),this.pulseIndex<this.params.pulseStates.length&&(this.button.classList.add(`toolbar-button-${this.params.pulseStates[this.pulseIndex].id}`),this.button.setAttribute("aria-label",this.params.pulseStates[this.pulseIndex].label)),this.button.addEventListener("click",(e=>{this.disabled||("toggle"===this.params.type?this.toggle():"pulse"===this.params.type&&this.pulse(),this.callbacks.onClick(e,{active:this.active,id:this.params.id}))}))}var t=e.prototype;return t.getDOM=function(){return this.button},t.show=function(){this.button.classList.remove("toolbar-button-display-none")},t.hide=function(){this.button.classList.add("toolbar-button-display-none")},t.decloak=function(){this.button.classList.remove("toolbar-button-cloak")},t.cloak=function(){this.button.classList.add("toolbar-button-cloak")},t.focus=function(){this.button.focus()},t.enable=function(){this.disabled=!1,this.button.classList.remove("toolbar-button-disabled"),"toggle"===this.params.type?this.active?this.activate():this.deactivate():this.activate()},t.disable=function(){this.button.classList.add("toolbar-button-disabled"),this.button.setAttribute("aria-label",this.params.a11y.disabled),this.disabled=!0},t.activate=function(){if(!this.disabled){if("toggle"===this.params.type)this.button.classList.add("toolbar-button-active"),this.button.setAttribute("aria-pressed",!0),this.button.setAttribute("aria-label",this.params.a11y.active);else{const e=this.params.pulseStates.length?this.params.pulseStates[this.pulseIndex].label:this.params.a11y.active;this.button.setAttribute("aria-label",e)}this.active=!0}},t.force=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"toggle"===this.params.type?!0===e?this.activate():!1===e?this.deactivate():this.toggle():"pulse"===this.params.type&&"number"==typeof e&&(this.pulseIndex=(e+this.params.pulseStates.length)%this.params.pulseStates.length,this.params.pulseStates.forEach(((e,t)=>{t===this.pulseIndex?(this.button.classList.add(`toolbar-button-${e.id}`),this.button.setAttribute("aria-label",e.label)):this.button.classList.remove(`toolbar-button-${e.id}`)}))),t.noCallback||this.callbacks.onClick({},{active:this.active})},t.deactivate=function(){this.disabled||(this.active=!1,"toggle"===this.params.type&&(this.button.classList.remove("toolbar-button-active"),this.button.setAttribute("aria-pressed",!1)),this.button.setAttribute("aria-label",this.params.a11y.inactive))},t.toggle=function(){this.disabled||(this.active?this.deactivate():this.activate())},t.pulse=function(){if(this.disabled)return;const e=this.params.pulseStates.length;e&&(this.button.classList.remove(`toolbar-button-${this.params.pulseStates[this.pulseIndex].id}`),this.pulseIndex=(this.pulseIndex+1)%e,this.button.classList.add(`toolbar-button-${this.params.pulseStates[this.pulseIndex].id}`),this.button.setAttribute("aria-label",this.params.pulseStates[this.pulseIndex].label))},t.setAttribute=function(e,t){this.button.setAttribute(e,t)},t.isActive=function(){return this.active},t.isDisabled=function(){return this.disabled},t.isCloaked=function(){return this.button.classList.contains("toolbar-button-cloak")},e}();let De=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({buttons:[],hidden:!1},e),this.callbacks=i.extend({},t),this.buttons={},this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-toolbar-tool-bar"),this.dom.setAttribute("role","toolbar"),this.dom.addEventListener("keydown",(e=>{this.handleKeydown(e)})),this.params.hidden&&this.hide();const s=document.createElement("div");if(s.classList.add("toolbar-headline"),s.innerText=i.purifyHTML(this.params.headline),this.dom.append(s),this.params.headline){const e=`headline-${H5P.createUUID()}`;s.setAttribute("id",e),this.dom.setAttribute("aria-labelledby",e)}else this.dom.setAttribute("aria-label",this.params.dictionary.get("a11y.toolbarFallbackLabel"));const a=document.createElement("div");a.classList.add("toolbar-non-headline"),this.dom.append(a),this.statusContainers=new Ae,a.append(this.statusContainers.getDOM()),this.params.statusContainers.forEach((e=>{this.statusContainers.addContainer(e)})),this.buttonsContainer=document.createElement("div"),this.buttonsContainer.classList.add("toolbar-buttons"),a.append(this.buttonsContainer),this.params.buttons.forEach((e=>{this.addButton(e)})),Object.values(this.buttons).forEach(((e,t)=>{e.setAttribute("tabindex",0===t?"0":"-1")})),this.currentButtonIndex=0}var t=e.prototype;return t.getDOM=function(){return this.dom},t.getFullHeight=function(){const e=window.getComputedStyle(this.dom),t=parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"));return Math.ceil(this.dom.offsetHeight+t)},t.focus=function(){Object.values(this.buttons)[this.currentButtonIndex]?.focus()},t.addButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};"string"==typeof e.id&&(this.buttons[e.id]=new Te({id:e.id,...e.a11y&&{a11y:e.a11y},classes:["toolbar-button",`toolbar-button-${e.id}`],..."boolean"==typeof e.disabled&&{disabled:e.disabled},...e.active&&{active:e.active},...e.type&&{type:e.type},...e.pulseStates&&{pulseStates:e.pulseStates},...e.pulseIndex&&{pulseIndex:e.pulseIndex}},{..."function"==typeof e.onClick&&{onClick:(t,s)=>{e.onClick(t,s)}}}),this.buttonsContainer.appendChild(this.buttons[e.id].getDOM()))},t.setButtonAttributes=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.buttons[e])for(let s in t)this.buttons[e].setAttribute(s,t[s])},t.forceButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.buttons[e]&&this.buttons[e].force(t,s)},t.enable=function(){for(const e in this.buttons)this.enableButton(e)},t.disable=function(){for(const e in this.buttons)this.disableButton(e)},t.enableButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].enable()},t.disableButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].disable()},t.showButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].show()},t.hideButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].hide()},t.decloakButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].decloak()},t.cloakButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].cloak()},t.focusButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&!this.buttons[e].isCloaked()&&this.buttons[e].focus()},t.toggleHintFinishButton=function(e){(e="boolean"==typeof e?e:"number"!=typeof this.hintFinishButtonTimeout)?(this.animateButton("finish","pulse"),this.hintFinishButtonTimeout=window.setTimeout((()=>{this.toggleHintFinishButton(!0)}),3e3)):(window.clearTimeout(this.hintFinishButtonTimeout),this.animateButton("finish",null))},t.toggleHintTimer=function(e){(e="boolean"==typeof e?e:"number"!=typeof this.hintTimerTimeout)?(this.animateStatusContainer("timer","pulse"),this.hintTimerTimeout=window.setTimeout((()=>{this.toggleHintTimer(!0)}),1e3)):(window.clearTimeout(this.hintTimerTimeout),this.animateStatusContainer("timer",null))},t.animateButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;this.buttons[e]&&this.params.useAnimation&&Y(this.buttons[e].getDOM(),t)},t.show=function(){this.dom.classList.remove("display-none")},t.hide=function(){this.dom.classList.add("display-none")},t.moveButtonFocus=function(e){if("number"!=typeof e)return;if(this.currentButtonIndex+e<0||this.currentButtonIndex+e>Object.keys(this.buttons).length-1)return;Object.values(this.buttons)[this.currentButtonIndex].setAttribute("tabindex","-1"),this.currentButtonIndex=this.currentButtonIndex+e;const t=Object.values(this.buttons)[this.currentButtonIndex];t.setAttribute("tabindex","0"),t.focus()},t.handleKeydown=function(e){if("ArrowLeft"===e.code||"ArrowUp"===e.code)this.moveButtonFocus(-1);else if("ArrowRight"===e.code||"ArrowDown"===e.code)this.moveButtonFocus(1);else if("Home"===e.code)this.moveButtonFocus(0-this.currentButtonIndex);else{if("End"!==e.code)return;this.moveButtonFocus(Object.keys(this.buttons).length-1-this.currentButtonIndex)}e.preventDefault()},t.addStatusContainer=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.statusContainers.addContainer(e)},t.setStatusContainerStatus=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.statusContainers.setStatus(e,t)},t.showStatusContainer=function(e){this.statusContainers.showContainer(e)},t.hideStatusContainer=function(e){this.statusContainers.hideContainer(e)},t.animateStatusContainer=function(e,t){this.params.useAnimation&&this.statusContainers.animate(e,t)},t.toggleSolutionMode=function(e){this.dom.classList.toggle("solution-mode",e)},e}(),Le=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({animDuration:0},e),this.callbacks=i.extend({onInitialized:()=>{},onScored:()=>{}},t),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-exercise-instance-wrapper"),this.instanceWrapper=document.createElement("div"),this.instanceWrapper.classList.add("h5p-game-map-exercise-instance"),this.dom.append(this.instanceWrapper),this.initializeInstance(this.params.previousState)}var s=e.prototype;return s.getDOM=function(){return this.dom},s.initializeInstance=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.toggleCompleted(e?.completed??!1),this.toggleSuccess(e?.successful??!1),null===this.instance||this.instance)return;const s=this.params.contentType?.library?.split?.(" ")[0];if("H5P.Video"===s){const e=this.params.contentType.params.sources,t=e?.length>0&&["video/mp4","video/webm","video/ogg"].includes(e[0].mime);this.params.contentType.params.visuals.fit=t||!1}"H5P.Audio"===s&&(this.params.contentType.params.fitToWrapper="full"===this.params.contentType.params.playerMode),"H5P.ImageHotspotQuestion"===s&&(this.params.contentType.params.imageHotspotQuestion.hotspotSettings.showFeedbackAsPopup=!1),this.instance||(this.instance=H5P.newRunnable(this.params.contentType,this.params.globals.get("contentId"),void 0,!0,{previousState:e.instanceState??{}})),this.instance&&("H5P.InteractiveVideo"===this.instance.libraryInfo.machineName&&this.runInteractiveVideoWorkaround(this.instance),this.bubbleUp(this.instance,"resize",this.params.globals.get("mainInstance")),this.bubbleDown(this.params.globals.get("mainInstance"),"resize",[this.instance]),this.isTaskState=t.isInstanceTask(this.instance),this.isTaskState&&this.instance.on("xAPI",(e=>{this.trackXAPI(e)})),this.callbacks.onInitialized({isTask:this.isTask()}))},s.getId=function(){return this.params.contentType.subContentId??null},s.getInstance=function(){return this.instance},s.isTask=function(){return this.isTaskState??!1},s.getCurrentState=function(){const e=this.instance?.getCurrentState?.();return{completed:this.wasCompleted(),successful:this.wasSuccessful(),...e&&{instanceState:e}}},s.getXAPIData=function(){if(!this.instance?.getXAPIData)return;let e;try{e=this.instance.getXAPIData()}catch(e){return}return e},s.showSolutions=function(){this.isAttached||this.attachInstance(),this.instance?.showSolutions?.(),this.isShowingSolutions=!0},s.getAnswerGiven=function(){return this.instance?.getAnswerGiven?.()??!1},s.getScore=function(){const e=this.instance?.getScore?.();return"number"==typeof e?e:0},s.getMaxScore=function(){const e=this.instance?.getMaxScore?.();return"number"==typeof e?e:0},s.bubbleUp=function(e,t,s){e.on(t,(e=>{s.bubblingUpwards=!0,s.trigger(t,e),s.bubblingUpwards=!1}))},s.bubbleDown=function(e,t,s){e.on(t,(a=>{e.bubblingUpwards||s.forEach((e=>{this.isAttached&&e.trigger(t,a)}))}))},s.trackXAPI=function(e){if(!this.isAttached)return;if(!e||null===e.getScore())return;new RegExp(this.instance.subContentId).test(e.getVerifiedStatementValue(["object","id"]))&&(this.toggleCompleted(!0),(e.getScore()>=this.instance.getMaxScore()||e.getVerifiedStatementValue(["result","success"]))&&this.toggleSuccess(!0),this.callbacks.onScored())},s.attachInstance=function(){this.isAttached||(this.instance.attach(H5P.jQuery(this.instanceWrapper)),"H5P.Audio"===this.instance?.libraryInfo.machineName&&window.chrome&&(this.instance.audio.style.height="54px"),this.isAttached=!0)},s.wasCompleted=function(){return this.completedState??!1},s.toggleCompleted=function(e){return"boolean"!=typeof e&&(e=!this.completedState),this.completedState=e,this.completedState},s.wasSuccessful=function(){return this.successfulState??!1},s.toggleSuccess=function(e){return"boolean"!=typeof e&&(e=!this.successfulState),this.successfulState=e,this.successfulState},s.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.score=0,this.toggleCompleted(e.isInitial&&(this.params.previousState?.completed??!1)),this.toggleSuccess(e.isInitial&&(this.params.previousState?.successful??!1)),this.isAttached||this.attachInstance(),!e.isInitial&&this.instance&&("function"==typeof this.instance.resetTask?(this.instance.resetTask(),delete this.instance.activityStartTime):(delete this.instance,this.initializeInstance(),this.isAttached=!1))},s.getSubContentIds=function(e){if(!this.instance?.getXAPIData)return[];let t=[];return(e=e??[this.getXAPIData()].filter((e=>void 0!==e))).forEach((e=>{if(e.statement?.object?.id){const s=e.statement.object.id.split("?")[1],a=new URLSearchParams(s).get("subContentId");a&&t.push(a)}Array.isArray(e.children)&&(t=[...t,...this.getSubContentIds(e.children)])})),t},s.handleOpened=function(){"H5P.InteractiveVideo"===this.instance?.libraryInfo.machineName&&this.runInteractiveVideoWorkaround(this.instance)},s.runInteractiveVideoWorkaround=function(e){const t=e?.video;if("YouTube"!==t?.getHandlerName?.())return;const s=t.getCurrentTime();t.once("loaded",(()=>{"number"==typeof s&&s>0&&(e.seek(s),t.pause())})),t.resetPlayback()},e}();function Ce(e,t){for(var s=0;s<t.length;s++){var a=t[s];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,qe(a.key),a)}}function qe(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,t||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function Ie(e,t){return Ie=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ie(e,t)}const Oe=1e3;let Be=function(e){function t(){var t;let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(t=e.call(this)||this).params=s,t.params.state=t.params.state??t.params.globals.get("states").unstarted,t.callbacks=i.extend({onStateChanged:()=>{},onScoreChanged:()=>{},onTimerTicked:()=>{},onTimeoutWarning:()=>{},onTimeout:()=>{},onContinued:()=>{},onInitialized:()=>{}},a),t.exercises=[],t.parent=t.params.globals.get("mainInstance"),t.contentId=t.parent.contentId,t.subContentId=t.params.previousState?.subContentId??H5P.createUUID(),t.setState(t.params.globals.get("states").unstarted);for(const e in s.contentsList){const a=t.params.previousState?.instances?.[e],i=s.contentsList[e].contentType;t.exercises.push(new Le({contentType:i,isInitial:t.params.isInitial,dictionary:t.params.dictionary,globals:t.params.globals,jukebox:t.params.jukebox,previousState:a},{onInitialized:e=>{window.setTimeout((()=>{e.score=t.getScore(),e.maxScore=t.getMaxScore(),t.callbacks.onInitialized(e)}),0)},onScored:()=>{t.handleScored()}}))}t.dom=document.createElement("div"),t.dom.classList.add("h5p-game-map-exercise-bundle"),t.exercises.forEach((e=>{t.dom.appendChild(e.getDOM())}));const r=t.exercises[t.exercises.length-1];return t.continueButtonInstance=r.getInstance(),t.continueButtonInstance.registerDomElements&&t.continueButtonInstance.addButton&&t.continueButtonInstance.hasButton?t.continueButtonInstance.addButton("game-map-continue",t.params.dictionary.get("l10n.continue"),(()=>{t.callbacks.onContinued()}),!1):(delete t.continueButtonInstance,t.continueButton=document.createElement("button"),t.continueButton.classList.add("h5p-joubelui-button","h5p-game-map-exercise-instance-continue-button","display-none"),t.continueButton.setAttribute("disabled","disabled"),t.continueButton.innerText=t.params.dictionary.get("l10n.continue"),t.continueButton.addEventListener("click",(()=>{t.callbacks.onContinued()})),t.dom.append(t.continueButton)),t}var s,a;a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,Ie(s,a);var r=t.prototype;return r.getDOM=function(){return this.dom},r.getTitle=function(){return this.params.label},r.getSubContentIds=function(e){let t=[];return this.exercises.forEach((s=>{const a=s.getSubContentIds(e);t=t.concat(a)})),t},r.handleOpened=function(){this.exercises.forEach((e=>{e.handleOpened()}))},r.reset=function(){let e,t,s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};delete this.activityStartTime,s.isInitial?(e=this.params.previousState?.remainingTime,"number"!=typeof e&&(e=(this.params.time?.timeLimit??-1)*Oe),this.isCompleted=this.params.previousState?.isCompleted??!1,t=this.params.previousState?.state??this.params.state):(e=(this.params.time?.timeLimit??-1)*Oe,this.isCompleted=!1,t=this.params.globals.get("states").unstarted),e>-1&&(this.timer=this.timer??new g({interval:500},{onExpired:()=>{this.handleTimeout()},onTick:()=>{this.timeLeft=this.timer.getTime();const e=this.isTimeoutWarning();this.callbacks.onTimerTicked(this.timeLeft,{timeoutWarning:e}),!this.hasPlayedTimeoutWarning&&e&&this.handleTimeoutWarning()}}),this.timeLeft=e),s.isInitial||(this.timer?.reset(),this.timer?.setTime(this.timeLeft)),this.continueButtonInstance?this.continueButtonInstance.hideButton("game-map-continue"):(this.continueButton?.classList.add("display-none"),this.continueButton?.setAttribute("disabled","disabled")),this.setState(t),this.hasPlayedTimeoutWarning=!1,this.wasViewed=!1,this.isShowingSolutions=!1,this.exercises.forEach((e=>{e.reset(s)}))},r.setReachable=function(e){"boolean"==typeof e&&(this.isReachableState=e)},r.isReachable=function(){return this.isReachableState},r.getScore=function(){let e=0;return this.exercises.forEach((t=>{e+=t.getScore()})),e},r.getMaxScore=function(){let e=0;return this.exercises.forEach((t=>{e+=t.getMaxScore()})),e},r.getAnswerGiven=function(){return this.exercises.some((e=>e.getAnswerGiven()))},r.showSolutions=function(){this.exercises.forEach((e=>{e.showSolutions?.()}))},r.getRemainingTime=function(){return this.timeLeft},r.isTimeoutWarning=function(){return"number"==typeof this.params.time.timeoutWarning&&this.timeLeft<=this.params.time?.timeoutWarning*Oe},r.getCurrentState=function(){const e=Math.min(this.timeLeft,(this.params.time?.timeLimit||0)*Oe+this.params.animDuration),t=this.exercises.map((e=>e.getCurrentState()));return{id:this.params.id,subContentId:this.subContentId,state:this.state,remainingTime:e,isCompleted:this.isCompleted,instances:t}},r.triggerXAPIEvent=function(e){const t=this.createXAPIEvent(e);this.trigger(t)},r.createXAPIEvent=function(e){const t=this.createXAPIEventTemplate(e);return i.extend(t.getVerifiedStatementValue(["object","definition"]),this.getXAPIDefinition()),"completed"!==e&&"answered"!==e||t.setScoredResult(this.getScore(),this.getMaxScore(),this,!0,this.getScore()===this.getMaxScore()),t},r.getXAPIDefinition=function(){const e=this.params.globals.get("mainInstance"),t={name:{}};return t.name[e.languageTag]=this.getTitle(),t.name["en-US"]=t.name[e.languageTag],t.description={},t.description[e.languageTag]="Game Map Exercise Bundle",t.description["en-US"]=t.description[e.languageTag],t.type="http://adlnet.gov/expapi/activities/cmi.interaction",t.interactionType="other",t},r.getXAPIData=function(){const e=this.createXAPIEvent("completed");e.data.statement.object.definition.interactionType="compound";const t=this.exercises.map((e=>e?.getXAPIData?.())).filter((e=>!!e));return{statement:e.data.statement,children:t}},r.start=function(){if(!this.isCompleted||!this.isAttached){if(this.isAttached||this.exercises.forEach((e=>{e.attachInstance(),this.isAttached=!0,e.isTask()||(e.toggleCompleted(!0),e.toggleSuccess(!0))})),this.isCompleted=this.exercises.every((e=>e.wasCompleted())),this.isShowingSolutions)this.showSolutions();else if(!this.isCompleted){const e=Math.min(this.timeLeft,(this.params.time?.timeLimit||0)*Oe+this.params.animDuration);this.timer?.start(e)}this.setState(this.params.globals.get("states").opened),this.setActivityStarted(),this.exercises.forEach((e=>{e.getInstance()?.setActivityStarted?.()})),window.requestAnimationFrame((()=>{this.params.globals.get("resize")()}))}},r.stop=function(){this.timer?.stop()},r.setState=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=this.params.globals.get("states");if("string"==typeof e&&(e=Object.entries(s).find((t=>t[0]===e))[1]),"number"!=typeof e)return;let a;t.force?a=s[e]:e===s.unstarted?a=s.unstarted:e===s.opened?(this.hasTask=this.hasTask??this.exercises.some((e=>e.isTask())),a=this.hasTask?s.opened:s.cleared):e===s.completed?a=s.completed:e===s.cleared&&(a=s.cleared),this.state&&this.state===a||(this.state=a,this.callbacks.onStateChanged(this.state))},r.getState=function(){return this.state},r.handleTimeout=function(){this.callbacks.onTimeout()},r.handleTimeoutWarning=function(){!this.hasPlayedTimeoutWarning&&this.isTimeoutWarning()&&(this.hasPlayedTimeoutWarning=!0,this.callbacks.onTimeoutWarning())},r.handleScored=function(){const e=this.params.globals.get("params").behaviour.map.roaming;this.isCompleted=this.exercises.every((e=>e.wasCompleted()));const t=this.exercises.every((e=>e.wasSuccessful()));t?(this.setState(this.params.globals.get("states").cleared),window.requestAnimationFrame((()=>{this.triggerXAPIEvent("completed")}))):this.isCompleted&&(this.setState(this.params.globals.get("states").completed),window.requestAnimationFrame((()=>{this.triggerXAPIEvent("completed")}))),("free"===e||"complete"===e&&this.isCompleted||"success"===e&&t)&&(this.stop(),this.continueButtonInstance?this.continueButtonInstance.showButton("game-map-continue"):(this.continueButton.classList.remove("display-none"),this.continueButton.removeAttribute("disabled"))),this.callbacks.onScoreChanged({score:this.getScore(),maxScore:this.getMaxScore()})},function(e,t,s){return t&&Ce(e.prototype,t),s&&Ce(e,s),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"libraryInfo",get:function(){const e="H5P.GameMapExerciseBundle",{minorVersion:t,majorVersion:s}=this.parent.libraryInfo;return{machineName:e,majorVersion:s,minorVersion:t,versionedName:`${e} ${s}.${t}`,versionedNameNoSpaces:`${e}-${s}.${t}`}}}])}(H5P.EventDispatcher),Me=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=e,this.callbacks=i.extend({onStateChanged:()=>{},onScoreChanged:()=>{},onTimerTicked:()=>{},onTimeoutWarning:()=>{},onTimeout:()=>{},onContinued:()=>{},onBundleInitialized:()=>{}},t),this.exerciseBundles=[],this.params.elements.forEach((e=>{if(e.specialStageType||!e.contentsList?.length)return;const t=this.params.globals.get("extras").previousState?.content?.exerciseBundles.find((t=>t.exerciseBundle.id===e.id))?.exerciseBundle??{};this.exerciseBundles[e.id]=new Be({...e,dictionary:this.params.dictionary,globals:this.params.globals,jukebox:this.params.jukebox,previousState:t},{onStateChanged:t=>{this.callbacks.onStateChanged(e.id,t)},onScoreChanged:t=>{this.callbacks.onScoreChanged(e.id,t)},onTimerTicked:(t,s)=>{this.callbacks.onTimerTicked(e.id,t,s)},onTimeoutWarning:()=>{this.callbacks.onTimeoutWarning(e.id)},onTimeout:()=>{this.callbacks.onTimeout(e.id)},onContinued:()=>{this.callbacks.onContinued(e.id)},onInitialized:t=>{this.callbacks.onBundleInitialized(e.id,t)}})}));const s=Object.keys(this.exerciseBundles).map((e=>this.exerciseBundles[e].getSubContentIds())).flat();this.trackAllXAPI(s)}var t=e.prototype;return t.trackAllXAPI=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];H5P.externalDispatcher.on("xAPI",(t=>{if(e.length){const s=(t.getVerifiedStatementValue(["object","id"])||"").split("?")[1],a=new URLSearchParams(s).get("subContentId");if(!e.includes(a))return}const s=t.getScore();if(null===s)return;const a=t.getMaxScore(),i=t.getVerifiedStatementValue(["result","success"]);s>=a||i?(this.params.jukebox.stopGroup("default"),this.params.jukebox.play("checkExerciseFullScore")):(this.params.jukebox.stopGroup("default"),this.params.jukebox.play("checkExerciseNotFullScore"))}))},t.getExerciseBundle=function(e){return this.exerciseBundles[e]},t.updateReachability=function(e){Object.keys(this.exerciseBundles).forEach((t=>{this.exerciseBundles[t].setReachable(e.includes(t))}))},t.getCurrentState=function(){return Object.values(this.exerciseBundles).filter((e=>e.isReachable())).map((e=>({exerciseBundle:e.getCurrentState()})))},t.getXAPIData=function(){return Object.values(this.exerciseBundles).filter((e=>e.isReachable())).map((e=>e?.getXAPIData?.())).filter((e=>!!e))},t.showSolutions=function(){Object.values(this.exerciseBundles).forEach((e=>{e.isReachable()&&e.showSolutions()}))},t.getAnswerGiven=function(){return Object.values(this.exerciseBundles).some((e=>!!e.isReachable()&&(e.getAnswerGiven()??!0)))},t.getScore=function(){return Object.values(this.exerciseBundles).reduce(((e,t)=>t.isReachable()?e+t.getScore():e),0)},t.getMaxScore=function(){return Object.values(this.exerciseBundles).reduce(((e,t)=>t.isReachable()?e+t.getMaxScore():e),0)},t.resetAll=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.values(this.exerciseBundles).forEach((t=>{t.reset({isInitial:e.isInitial})}))},t.reset=function(e){this.exerciseBundles[e]&&this.exerciseBundles[e].reset()},t.start=function(e){this.exerciseBundles[e]&&this.exerciseBundles[e].start()},t.stop=function(e){this.exerciseBundles[e]&&this.exerciseBundles[e].stop()},e}(),Fe=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},e),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-confirmation-dialog"),this.dom.addEventListener("click",(e=>{e.stopPropagation()})),window.matchMedia("(prefers-reduced-motion: reduce)")?.matches&&this.dom.classList.add("prefers-reduced-motion"),this.update(e,t)}var t=e.prototype;return t.getDOM=function(){return this.dom},t.update=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e=i.extend({},e),e.instance=e.instance??this.params.globals.get("mainInstance"),t=i.extend({onConfirmed:()=>{},onCanceled:()=>{}},t),this.dialog&&(this.dialog.off("confirmed"),this.dialog.off("canceled"),this.dialog.getElement().classList.contains("hidden")||this.dialog.hide()),this.dialog=new H5P.ConfirmationDialog(e),this.dialog.once("confirmed",(()=>{this.dialog.off("canceled"),this.isShowing=!1,t.onConfirmed()})),this.dialog.once("canceled",(()=>{this.dialog.off("confirmed"),this.isShowing=!1,t.onCanceled()})),this.dom.innerHTML="",this.dialog.appendTo(this.dom)},t.show=function(){this.dialog.show(),this.isShowing=!0},t.hide=function(){this.isShowing&&(this.dialog.hide(),this.isShowing=!1)},e}(),Pe=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.handleKeydownEvent=this.handleKeydownEvent.bind(this),this.attachTo(e)}var t=e.prototype;return t.attachTo=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.params=e,this.focusableElements=[]},t.activate=async function(){this.params.trapElement&&(this.isActivated||(this.isActivated=!0,this.observer=await i.callOnceVisible(this.params.trapElement,(()=>{this.handleVisible()}),{root:document.documentElement})))},t.deactivate=function(){this.isActivated&&(this.observer?.unobserve(this.params.trapElement),this.observer?.disconnect(),this.params.trapElement.removeEventListener("keydown",this.handleKeydownEvent,!0),this.isActivated=!1)},t.updateFocusableElements=function(){this.params.trapElement&&(this.focusableElements=this.getFocusableElements(this.params.trapElement))},t.getFocusableElements=function(e){if(!e)return;const t=["a[href]:not([disabled])","button:not([disabled])","textarea:not([disabled])","input:not([disabled])","select:not([disabled])","video","audio",'*[tabindex="0"]'].join(", ");return Array.from(e.querySelectorAll(t)).filter((e=>!0!==e.disabled&&"-1"!==e.getAttribute("tabindex")&&this.isElementVisible(e)))},t.isChild=function(e){if(!this.params.trapElement)return!1;const t=e.parentNode;return!!t&&(t===this.params.trapElement||this.isChild(t))},t.handleVisible=function(){this.updateFocusableElements(),this.params.trapElement.addEventListener("keydown",this.handleKeydownEvent,!0);const e=[...this.params.trapElement.querySelectorAll("iframe")];e&&e.forEach((e=>{e.setAttribute("tabindex","0"),e.addEventListener("blur",this.handleKeydownEvent,!0)})),this.currentFocusElement=null,this.params.initialFocus&&this.isChild(this.params.initialFocus)&&(this.currentFocusElement=this.params.initialFocus),!this.currentFocusElement&&this.focusableElements.length&&(this.currentFocusElement=this.focusableElements[0],this.focusableElements[0]===this.params.closeElement&&1===this.focusableElements.length&&this.params.fallbackContainer?.firstChild&&(this.params.fallbackContainer.firstChild.setAttribute("tabindex","-1"),this.currentFocusElement=this.params.fallbackContainer.firstChild)),this.currentFocusElement?.focus()},t.handleKeydownEvent=function(e){if(this.updateFocusableElements(),!this.focusableElements.length)return;if("Tab"!==e.key&&"blur"!==e.type)return;this.currentFocusElement="blur"!==e.type?document.activeElement:e.target,e.preventDefault();const t=this.focusableElements.findIndex((e=>e===this.currentFocusElement)),s=this.focusableElements.length,a=e.shiftKey?(t+s-1)%s:(t+1)%s;this.currentFocusElement=this.focusableElements[a],this.currentFocusElement.focus()},t.isElementVisible=function(e){if(!e)return!1;const t=window.getComputedStyle(e);return"none"!==t.display&&"hidden"!==t.visibility&&(!e.parentElement||this.isElementVisible(e.parentElement))},e}(),Re=function(){function e(){this.handleNotifyingEnded=this.handleNotifyingEnded.bind(this),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-overlay-dialog-headline-timer"),this.hide()}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){""!==(this.dom.innerText||"")&&this.dom.classList.remove("display-none")},t.hide=function(){this.dom.classList.add("display-none"),this.handleNotifyingEnded()},t.setTime=function(e){if(null===e||""===e)return this.dom.innerText="",void this.hide();const t=g.toTimecode(e);t&&(this.dom.innerText=t,this.show())},t.setTimeoutWarning=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];!this.isTimeoutwarning&&e&&this.notify(),this.isTimeoutwarning=e,this.dom.classList.toggle("timeout-warning",e)},t.notify=function(){this.dom.addEventListener("animationend",this.handleNotifyingEnded),this.dom.classList.add("notify-animation")},t.handleNotifyingEnded=function(){this.dom.removeEventListener("animationend",this.handleNotifyingEnded),this.dom.classList.remove("notify-animation")},e}();let Ve=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},e),this.callbacks=i.extend({onClosed:()=>{},onOpenAnimationEnded:()=>{},onCloseAnimationEnded:()=>{}},t),this.handleOpenAnimationEnded=this.handleOpenAnimationEnded.bind(this),this.handleCloseAnimationEnded=this.handleCloseAnimationEnded.bind(this),this.handleGlobalClick=this.handleGlobalClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-overlay-dialog"),this.params.cssMainSelector&&this.dom.classList.add(this.params.cssMainSelector),this.dom.classList.add("transparent"),this.dom.setAttribute("role","dialog"),this.dom.setAttribute("aria-modal","true"),this.contentContainer=document.createElement("div"),this.contentContainer.classList.add("h5p-game-map-overlay-dialog-content-container"),this.contentContainer.classList.add("transparent"),this.contentContainer.classList.add("offscreen"),this.dom.append(this.contentContainer),this.content=document.createElement("div"),this.content.classList.add("h5p-game-map-overlay-dialog-content"),this.contentContainer.append(this.content),this.buttonClose=document.createElement("button"),this.buttonClose.classList.add("h5p-game-map-overlay-dialog-button-close"),this.buttonClose.setAttribute("aria-label",this.params.dictionary.get("a11y.close")),this.buttonClose.addEventListener("click",(()=>{this.callbacks.onClosed()})),this.contentContainer.append(this.buttonClose);const s=document.createElement("div");s.classList.add("h5p-game-map-overlay-dialog-headline"),this.content.append(s),this.headlineText=document.createElement("div"),this.headlineText.classList.add("h5p-game-map-overlay-dialog-headline-text"),s.append(this.headlineText),this.timerDisplay=new Re,s.append(this.timerDisplay.getDOM()),this.instanceContainer=document.createElement("div"),this.instanceContainer.classList.add("h5p-game-map-overlay-dialog-instance-container"),this.content.append(this.instanceContainer),this.focusTrap=new Pe({trapElement:this.dom,closeElement:this.buttonClose,fallbackContainer:this.instanceContainer})}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.dom.classList.remove("display-none"),e.isShowingSolutions?this.timerDisplay.hide():this.timerDisplay.show(),window.requestAnimationFrame((()=>{this.dom.classList.remove("transparent"),this.params.globals.get("params").visual.misc.useAnimation?this.contentContainer.addEventListener("animationend",this.handleOpenAnimationEnded):this.handleOpenAnimationEnded(),this.animate("bounce-in",(()=>{this.focusTrap.activate()})),this.contentContainer.classList.remove("offscreen"),document.addEventListener("click",this.handleGlobalClick),document.addEventListener("keydown",this.handleKeyDown)})),window.setTimeout((()=>{this.contentContainer.classList.remove("transparent")}),100)},t.hide=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;document.removeEventListener("click",this.handleGlobalClick),document.removeEventListener("keydown",this.handleKeyDown),e.animate?(this.dom.classList.add("transparent"),this.params.globals.get("params").visual.misc.useAnimation?this.animate("bounce-out",(()=>{this.handleCloseAnimationEnded(),"function"==typeof t&&t()})):(this.handleCloseAnimationEnded(),"function"==typeof t&&t())):(this.contentContainer.classList.add("transparent"),this.contentContainer.classList.add("offscreen"),this.dom.classList.add("display-none"),this.dom.classList.add("transparent"),"function"==typeof t&&t()),this.focusTrap.deactivate()},t.setContent=function(e){this.instanceContainer.innerHTML="",this.instanceContainer.appendChild(e)},t.setTitle=function(e){e=i.purifyHTML(e),this.headlineText.innerText=e,this.dom.setAttribute("aria-label",this.params.dictionary.get("a11y.exerciseLabel").replace(/@stagelabel/,e))},t.setTime=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.timerDisplay.setTime(e),this.timerDisplay.setTimeoutWarning(t.timeoutWarning)},t.getSize=function(){const e=this.dom.getBoundingClientRect();return{width:e.width,height:e.height}},t.animate=function(e,t){"string"!=typeof e||this.isAnimating||this.params.globals.get("params").visual.misc.useAnimation&&(this.isAnimating=!0,Y(this.contentContainer,e,(()=>{this.isAnimating=!1,t()})))},t.handleOpenAnimationEnded=function(){this.contentContainer.removeEventListener("animationend",this.handleOpenAnimationEnded),this.callbacks.onOpenAnimationEnded()},t.handleCloseAnimationEnded=function(){this.contentContainer.removeEventListener("animationend",this.handleCloseAnimationEnded),this.contentContainer.classList.add("transparent"),this.contentContainer.classList.add("offscreen"),this.dom.classList.add("display-none"),this.callbacks.onCloseAnimationEnded()},t.handleGlobalClick=function(e){this.isAnimating||!e.target.isConnected||this.content.contains(e.target)||this.callbacks.onClosed()},t.handleKeyDown=function(e){"Escape"===e.key&&(e.preventDefault(),this.callbacks.onClosed())},e}();function Ne(e,t){return Ne=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ne(e,t)}let je=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.call(this,t,s)||this}var s,a;return a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,Ne(s,a),t}(Ve),He=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({ariaLabel:"Slider",minValue:0,value:0,maxValue:100},e),this.callbacks=i.extend({onStarted:()=>{},onSeeked:()=>{},onEnded:()=>{},onFocus:()=>{},onBlur:()=>{}},t),this.dom=document.createElement("div"),this.dom.classList.add("slider-container"),this.slider=document.createElement("input"),this.slider.classList.add("slider"),this.params.vertical&&this.slider.classList.add("vertical"),this.slider.setAttribute("type","range"),this.slider.setAttribute("min","0"),this.slider.setAttribute("aria-valuemin","0"),this.slider.setAttribute("max",`${this.params.maxValue}`),this.slider.setAttribute("aria-valuemax",`${this.params.maxValue}`),this.slider.setAttribute("step","1"),this.slider.setAttribute("aria-label",this.params.ariaLabel),["keydown","mousedown","touchstart"].forEach((e=>{this.slider.addEventListener(e,(e=>{this.handleSliderStarted(e)}))})),this.slider.addEventListener("input",(()=>{this.handleSliderSeeked(parseFloat(this.slider.value))})),["keyup","mouseup","touchend"].forEach((e=>{this.slider.addEventListener(e,(e=>{this.handleSliderEnded(e)}))})),this.slider.addEventListener("focus",(()=>{this.callbacks.onFocus()})),this.slider.addEventListener("blur",(()=>{this.callbacks.onBlur()})),this.dom.append(this.slider),this.setValue(this.params.value)}var t=e.prototype;return t.getDOM=function(){return this.dom},t.enable=function(){this.slider.removeAttribute("disabled")},t.disable=function(){this.slider.setAttribute("disabled","")},t.getValue=function(){return parseFloat(this.slider.value)},t.setValue=function(e){if("number"!=typeof e||isNaN(e))return;this.slider.value=Math.max(0,Math.min(e,this.params.maxValue)),this.slider.setAttribute("aria-valuenow",e);const t=e/this.params.maxValue*100;this.slider.style.background=this.params.vertical?`linear-gradient(to top, var(--color-primary-dark-80) ${t}%, var(--color-primary-15) ${t}%)`:`linear-gradient(to right, var(--color-primary-dark-80) ${t}%, var(--color-primary-15) ${t}%)`},t.handleKeyboardEvent=function(e){if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.code))return!1;const t=Math.max(1,Math.log(this.keydownTime+1));return"ArrowLeft"===e.code?this.setValue(this.getValue()-t):"ArrowRight"===e.code?this.setValue(this.getValue()+t):"Home"===e.code?this.setValue(0):"End"===e.code&&this.setValue(this.params.maxValue),this.keydownTime++,this.handleSliderSeeked(parseFloat(this.slider.value)),e.preventDefault(),!0},t.handleSliderStarted=function(e){if(e instanceof KeyboardEvent){this.handleKeyboardEvent(e)&&this.callbacks.onStarted()}else this.callbacks.onStarted()},t.handleSliderSeeked=function(e){this.callbacks.onSeeked(e),this.setValue(e)},t.handleSliderEnded=function(){this.keydownTime=0,this.callbacks.onEnded()},e}();function Ue(e,t){return Ue=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ue(e,t)}let Ge=function(e){function t(){var t;let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(t=e.call(this,s,a)||this).callbacks.onValueChanged=a.onValueChanged||(()=>{}),t.setTitle(t.params.dictionary.get("l10n.settings")),t.buildDOM(),t}var s,a;return a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,Ue(s,a),t.prototype.buildDOM=function(){const e=document.createElement("div");e.classList.add("h5p-game-map-settings-wrapper");const t=document.createElement("div");t.classList.add("settings-group"),e.append(t);const s=document.createElement("span");s.classList.add("h5p-game-map-settings-label"),s.innerText=this.params.dictionary.get("l10n.volumeMusic"),t.append(s);const a=new He({ariaLabel:this.params.dictionary.get("l10n.volumeMusic"),value:this.params.values.volumeMusic},{onSeeked:e=>{this.callbacks.onValueChanged("volumeMusic",e)}});t.append(a.getDOM());const i=document.createElement("div");i.classList.add("settings-group"),e.append(i);const r=document.createElement("span");r.classList.add("h5p-game-map-settings-label"),r.innerText=this.params.dictionary.get("l10n.volumeSFX"),i.append(r);const n=new He({ariaLabel:this.params.dictionary.get("l10n.volumeSFX"),value:this.params.values.volumeSFX},{onSeeked:e=>{this.callbacks.onValueChanged("volumeSFX",e)}});i.append(n.getDOM()),this.setContent(e)},t}(Ve);let ze=function(){function e(){}var t=e.prototype;return t.grabH5PQuestionFeedback=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=this.dom.closest(".h5p-question-content");if(!t)return null;const s=t.parentNode;if(!s)return null;const a=this.params.globals.get("mainInstance");a.setFeedback("",0,e.maxScore);const i=document.createElement("div");i.classList.add("h5p-game-map-feedback-wrapper");const r=s.querySelector(".h5p-question-feedback");r&&i.append(r.parentNode.removeChild(r));const n=s.querySelector(".h5p-question-scorebar");return n&&(i.append(n.parentNode.removeChild(n)),0===e.maxScore&&n.classList.add("display-none")),a.removeFeedback(),i},t.buildDOM=function(){this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-container");const e=this.params.globals.get("params");e.showTitleScreen&&(this.startScreen=new we({id:"start",contentId:this.params.globals.get("contentId"),introduction:e.titleScreen.titleScreenIntroduction,medium:e.titleScreen.titleScreenMedium,buttons:[{id:"start",text:this.params.dictionary.get("l10n.start")}],a11y:{screenOpened:this.params.dictionary.get("a11y.startScreenWasOpened")}},{onButtonClicked:()=>{this.show({focusButton:!0,readOpened:!0})},read:e=>{this.params.globals.get("read")(e)}}),this.startScreen.hide(),this.dom.append(this.startScreen.getDOM()));const t=[];e.behaviour.enableSolutionsButton&&t.push({id:"show-solutions",text:this.params.dictionary.get("l10n.showSolutions"),className:"h5p-joubelui-button"}),e.behaviour.enableRetry&&t.push({id:"restart",text:this.params.dictionary.get("l10n.restart"),className:"h5p-joubelui-button"}),this.endScreen=new xe({id:"end",contentId:this.params.globals.get("contentId"),buttons:t,a11y:{screenOpened:this.params.dictionary.get("a11y.endScreenWasOpened")}},{onButtonClicked:e=>{"restart"===e?this.callbacks.onRestarted():"show-solutions"===e&&(this.showSolutions(),this.params.globals.get("read")(this.params.dictionary.get("a11y.mapSolutionsWasOpened")),window.setTimeout((()=>{this.toolbar.focus()}),100))},read:e=>{this.params.globals.get("read")(e)}}),this.endScreen.hide(),this.dom.append(this.endScreen.getDOM()),this.contentDOM=document.createElement("div"),this.contentDOM.classList.add("h5p-game-map-main"),this.dom.append(this.contentDOM);const s=[];let a;this.params.jukebox.getAudioIds().length&&(s.push({id:"audio",type:"toggle",a11y:{active:this.params.dictionary.get("a11y.buttonAudioActive"),inactive:this.params.dictionary.get("a11y.buttonAudioInactive")},onClick:(e,t)=>{this.toggleAudio(t.active)}}),s.push({id:"settings",type:"toggle",a11y:{active:this.params.dictionary.get("a11y.buttonSettingsActive"),inactive:this.params.dictionary.get("a11y.buttonSettingsInactive")},onClick:(e,t)=>{t.active?(this.settingsDialog.show(),this.toolbar.disable()):(this.settingsDialog.hide(),this.toolbar.enable())}})),s.push({id:"finish",type:"pulse",a11y:{active:this.params.dictionary.get("a11y.buttonFinish")},onClick:()=>{this.showFinishConfirmation()}}),this.params.globals.get("isFullscreenSupported")&&s.push({id:"fullscreen",type:"pulse",pulseStates:[{id:"enter-fullscreen",label:this.params.dictionary.get("a11y.enterFullscreen")},{id:"exit-fullscreen",label:this.params.dictionary.get("a11y.exitFullscreen")}],onClick:()=>{this.callbacks.onFullscreenClicked()}}),this.toolbar=new De({dictionary:this.params.dictionary,...e.headline&&{headline:e.headline},buttons:s,statusContainers:[{id:"timer"},{id:"lives"},{id:"stages",hasMaxValue:!0},{id:"score",hasMaxValue:!0}],useAnimation:e.visual.misc.useAnimation}),this.contentDOM.append(this.toolbar.getDOM()),e?.gamemapSteps?.backgroundImageSettings?.backgroundImage&&(a=H5P.getPath(e.gamemapSteps.backgroundImageSettings.backgroundImage.path??"",this.params.globals.get("contentId"))),this.stages=new fe({dictionary:this.params.dictionary,globals:this.params.globals,jukebox:this.params.jukebox,elements:e.gamemapSteps.gamemap.elements,visuals:e.visual.stages},{onStageClicked:(e,t)=>{this.handleStageClicked(e,t)},onStageStateChanged:(e,t)=>{this.handleStageStateChanged(e,t)},onFocused:()=>{this.handleStageFocused()},onBecameActiveDescendant:e=>{this.handleStageBecameActiveDescendant(e)},onAddedToQueue:(e,t)=>{this.handleStageAddedToQueue(e,t)},onAccessRestrictionsHit:e=>{this.handleStageAccessRestrictionsHit(e)},getTotalScore:()=>this.getScore(),getStageScore:e=>{const t=this.stages.getStage(e);return!t||t instanceof be?0:this.exerciseBundles.getExerciseBundle(e)?.getScore()??0},getExerciseState:e=>{const t=this.stages.getStage(e);return t?t instanceof be?t.getState():this.exerciseBundles.getExerciseBundle(e)?.getState()??0:0}}),this.paths=new y({globals:this.params.globals,elements:e.gamemapSteps.gamemap.elements,paths:e.gamemapSteps.gamemap.paths,visuals:e.visual.paths.style}),this.map=new ke({dictionary:this.params.dictionary,globals:this.params.globals,backgroundImage:a,backgroundColor:e?.gamemapSteps?.backgroundImageSettings?.backgroundColor,paths:this.paths,stages:this.stages},{onImageLoaded:()=>{this.params.globals.get("resize")(),window.requestAnimationFrame((()=>{this.params.globals.get("resize")()}))}}),this.contentDOM.append(this.map.getDOM()),this.exerciseBundles=new Me({dictionary:this.params.dictionary,globals:this.params.globals,jukebox:this.params.jukebox,elements:e.gamemapSteps.gamemap.elements},{onStateChanged:(e,t)=>{this.handleExerciseStateChanged(e,t)},onScoreChanged:(e,t)=>{this.handleExerciseScoreChanged(e,t)},onTimerTicked:(e,t,s)=>{this.handleExerciseTimerTicked(e,t,s)},onTimeoutWarning:e=>{this.handleExerciseTimeoutWarning(e)},onTimeout:e=>{this.handleExerciseTimeout(e)},onContinued:()=>{this.handleExerciseScreenClosed()},onBundleInitialized:(e,t)=>{this.handleExerciseBundleInitialized(e,t)}}),this.exerciseScreen=new je({dictionary:this.params.dictionary,globals:this.params.globals,cssMainSelector:"exercise"},{onClosed:()=>{this.handleExerciseScreenClosed()},onOpenAnimationEnded:()=>{this.handleExerciseScreenOpenAnimationEnded()},onCloseAnimationEnded:()=>{this.handleExerciseScreenCloseAnimationEnded()}}),this.exerciseScreen.hide(),this.toolbar.enable(),this.map.getDOM().append(this.exerciseScreen.getDOM()),this.confirmationDialog=new Fe({globals:this.params.globals}),this.dom.append(this.confirmationDialog.getDOM()),this.settingsDialog=new Ge({dictionary:this.params.dictionary,globals:this.params.globals,cssMainSelector:"settings",values:{volumeMusic:this.params.jukebox.getVolumeGroup("background"),volumeSFX:this.params.jukebox.getVolumeGroup("default")}},{onClosed:()=>{this.handleSettingsDialogClosed()},onOpenAnimationEnded:()=>{this.handleSettingsDialogOpenAnimationEnded()},onValueChanged:(e,t)=>{this.handleSettingsDialogValueChanged(e,t)}}),this.settingsDialog.hide(),this.dom.append(this.settingsDialog.getDOM())},t.startVisibilityObserver=function(){document.addEventListener("visibilitychange",(()=>{document.hidden?(this.unmuteWhenVisible=!this.params.jukebox.isMuted("backgroundMusic"),this.params.jukebox.muteAll()):!0===this.unmuteWhenVisible&&(this.params.jukebox.unmuteAll(),this.params.jukebox.play("backgroundMusic"))}))},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.exerciseScreen.callbacks.onClosed(),this.toolbar.toggleHintFinishButton(!1),this.toolbar.toggleHintTimer(!1),this.stages.updateScoreStar("*",0),this.params.jukebox.muteAll(),this.stageAttentionSeekerTimeout=null,this.hasUserMadeProgress=!1;const t=this.params.globals.get("params"),s=this.params.globals.get("extras")?.previousState?.content??{};e.isInitial&&"number"==typeof s.livesLeft?this.livesLeft=s.livesLeft:this.livesLeft=t.behaviour.lives??1/0,e.isInitial&&"number"==typeof s.timeLeft?this.resetTimer(s.timeLeft):"number"==typeof this.params.globals.get("params").behaviour.timeLimitGlobal&&this.resetTimer(1e3*this.params.globals.get("params").behaviour.timeLimitGlobal),0===this.livesLeft&&this.stages.forEach((e=>{e.setState("sealed")})),this.gameDone=!!e.isInitial&&(s.gameDone??!1),this.stages.togglePlayfulness(!0),this.stagesGameOverState=[],this.currentStageIndex=0,this.confirmationDialog.hide(),this.fullScoreWasAnnounced=!1,this.openExerciseId=!1,this.callbackQueue.setSkippable(!0),this.queueAnimation=[],this.scheduledAnimations=[],e.isInitial||(this.isShowingSolutions=!1),this.toolbar.toggleSolutionMode(!1),this.paths.reset({isInitial:e.isInitial}),this.stages.reset({isInitial:e.isInitial}),this.exerciseBundles.resetAll({isInitial:e.isInitial}),"all"===t.behaviour.map.fog&&(this.stages.forEach((e=>{e.show()})),this.paths.forEach((e=>{e.show()}))),"free"===t.behaviour.map.roaming&&(this.stages.forEach((e=>{e.passesRestrictions()&&e.setState("open")})),this.paths.forEach((e=>{e.show()})));const a=this.stages.setStartStages();this.stages.updateReachability(a),this.paths.updateReachability(a),this.exerciseBundles.updateReachability(a),this.toolbar.setStatusContainerStatus("lives",{value:this.livesLeft});const i=[this.params.globals.get("states").completed,this.params.globals.get("states").cleared],r=[de],n={type:r},o={state:i,type:r};this.toolbar.setStatusContainerStatus("stages",{value:this.stages.getCount({filters:o}),maxValue:this.stages.getCount({filters:n})}),this.toolbar.setStatusContainerStatus("score",{value:this.getScore(),maxValue:this.getMaxScore()}),this.getScore()>=this.getMaxScore()&&(this.fullScoreWasAnnounced=!0,this.toolbar.toggleHintFinishButton(!0)),this.isAudioOn=this.isAudioOn??!1,this.isAudioOn&&(this.params.jukebox.unmuteAll(),this.params.jukebox.play("backgroundMusic")),this.stages.updateStatePerRestrictions()},e}();let We=function(){function e(){}var t=e.prototype;return t.addExtraLives=function(e){"number"!=typeof e||e<1||this.livesLeft===1/0||(this.livesLeft+=e,this.toolbar.setStatusContainerStatus("lives",{value:this.livesLeft}),this.params.jukebox.play("gainedLife"))},t.handleStageClicked=function(e){const t=this.stages.getStage(e),s=t.getType();if(s===de){this.stages.disable(),window.clearTimeout(this.stageAttentionSeekerTimeout);const s=this.exerciseBundles.getExerciseBundle(e),a=s.getRemainingTime();if("number"==typeof a&&this.exerciseScreen.setTime(a),this.openExerciseId=e,this.callbackQueue.setSkippable(!1),s.handleOpened(),this.exerciseScreen.setContent(s.getDOM()),this.exerciseScreen.setTitle(t.getLabel(),this.params.dictionary.get("a11y.exerciseLabel").replace(/@stagelabel/,t.getLabel())),this.params.jukebox.stopGroup("default"),this.exerciseScreen.show({isShowingSolutions:this.isShowingSolutions}),this.toolbar.disable(),this.exerciseBundles.start(e),this.params.globals.get("params").audio.backgroundMusic.muteDuringExercise&&this.params.jukebox.fade("backgroundMusic",{type:"out",time:this.musicFadeTime}),this.params.jukebox.play("openExercise"),!this.isShowingSolutions){const t=this.params.globals.get("params").gamemapSteps.gamemap.elements.findIndex((t=>t.id===e));this.currentStageIndex=t+1,this.hasUserMadeProgress=!0,this.callbacks.onProgressChanged(this.currentStageIndex)}}else if(s===pe&&!this.isShowingSolutions){const e=this.params.globals.get("states");t.getState()===e.open&&t.runSpecialFeature(this)}window.requestAnimationFrame((()=>{this.params.globals.get("resize")()}))},t.handleSpecialFeatureRun=function(e){"extra-life"===e?this.toolbar.animateStatusContainer("lives","pulse"):"extra-time"===e&&this.toolbar.animateStatusContainer("timer","pulse")},t.handleStageStateChanged=function(e,t){if(!this.isShowingSolutions&&(this.paths&&this.callbackQueue.add((()=>{this.paths.updateState(e,t)})),this.stages)){this.stages.updateNeighborsState(e,t);const s=[this.params.globals.get("states").completed,this.params.globals.get("states").cleared],a=[de],i={type:a},r={state:s,type:a};this.toolbar.setStatusContainerStatus("stages",{value:this.stages.getCount({filters:r}),maxValue:this.stages.getCount({filters:i})})}},t.handleStageFocused=function(){window.setTimeout((()=>{this.params.globals.get("read")(this.params.dictionary.get("a11y.applicationInstructions"))}),250)},t.handleStageBecameActiveDescendant=function(e){this.map?.setActiveDescendant(e)},t.handleStageAddedToQueue=function(e,t){this.callbackQueue.add(e,t)},t.handleStageAccessRestrictionsHit=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.html=e.html?` ${e.html}`:"",this.toolbar.disableButton("finish"),this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmAccessDeniedHeader"),dialogText:`${this.params.dictionary.get("l10n.confirmAccessDeniedDialog")}${e.html}`,confirmText:this.params.dictionary.get("l10n.ok"),hideCancel:!0},{onConfirmed:()=>{this.toolbar.enableButton("finish")},onCanceled:()=>{this.toolbar.enableButton("finish")}}),this.confirmationDialog.show()},e}(),$e=function(){function e(){}var t=e.prototype;return t.handleExerciseStateChanged=function(e,t){this.isShowingSolutions||this.stages.updateState(e,t)},t.handleExerciseScoreChanged=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.gameDone||(this.stages.updateScoreStar(e,t.score/t.maxScore*100),this.fullScoreWasAnnounced||this.getScore()!==this.getMaxScore()||(this.fullScoreWasAnnounced=!0,this.callbackQueue.add((()=>{this.params.jukebox.play("fullScore"),this.showFullScoreConfirmation()}))),this.stages.updateStatePerRestrictions(),"number"==typeof t.score&&t.score!==t.maxScore&&this.handleIncompleteScore(e),this.toolbar.setStatusContainerStatus("score",{value:this.getScore(),maxValue:this.getMaxScore()}))},t.handleIncompleteScore=function(){this.livesLeft!==1/0&&(this.handleLostLife(),this.livesLeft>0&&this.showIncompleteScoreConfirmation())},t.handleExerciseTimerTicked=function(e,t,s){e&&e===this.openExerciseId&&this.exerciseScreen.setTime(t,s)},t.handleExerciseTimeoutWarning=function(e){e&&e===this.openExerciseId&&this.params.jukebox.play("timeoutWarning")},t.handleExerciseTimeout=function(e){e&&e===this.openExerciseId&&(this.handleLostLife(),this.livesLeft>0&&this.handleExerciseScreenClosed({animationEndedCallback:()=>{this.exerciseBundles.reset(e),this.showTimeoutConfirmation()}}))},t.handleLostLife=function(){0!==this.livesLeft&&(this.livesLeft--,this.params.jukebox.play("lostLife"),this.toolbar.setStatusContainerStatus("lives",{value:this.livesLeft}),0===this.livesLeft&&(this.queueAnimation=[],this.stagesGameOverState=this.stages.getCurrentState(),this.stages.forEach((e=>{e.setState("sealed")})),this.handleExerciseScreenClosed({animationEndedCallback:()=>{this.showGameOverConfirmation()}})))},e}(),Qe=function(){function e(){}var t=e.prototype;return t.handleExerciseScreenClosed=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.openExerciseId&&(this.exerciseClosedCallback=e.animationEndedCallback,this.map.dom.setAttribute("aria-label",this.params.dictionary.get("a11y.applicationInstructions")),this.exerciseScreen.hide({animate:!0},(()=>{this.exerciseScreen.setTime(""),this.stages.getStage(this.openExerciseId)?.focus({skipNextFocusHandler:!0}),this.openExerciseId=!1,this.callbackQueue.setSkippable(!0),this.params.globals.get("resize")()})),this.toolbar.enable(),this.params.jukebox.stopGroup("default"),this.params.jukebox.play("closeExercise"),this.params.globals.get("params").audio.backgroundMusic.muteDuringExercise&&this.params.jukebox.fade("backgroundMusic",{type:"in",time:this.musicFadeTime}),this.stages.enable(),this.exerciseBundles.stop(this.openExerciseId),this.stages.updateStatePerRestrictions())},t.handleExerciseScreenOpenAnimationEnded=function(){this.params.globals.get("resize")()},t.handleExerciseScreenCloseAnimationEnded=function(){this.gameDone?this.queueAnimation=[]:(this.callbackQueue.scheduleQueued(),this.exerciseClosedCallback&&(this.exerciseClosedCallback(),this.exerciseClosedCallback=null))},t.handleExerciseBundleInitialized=function(e,t){t.isTask&&this.stages.updateScoreStar(e,t.score/t.maxScore*100),this.stages.setTaskState(e,t.isTask)},e}(),Ye=function(){function e(){}var t=e.prototype;return t.handleSettingsDialogClosed=function(){this.settingsDialog.hide({animate:!0},(()=>{this.params.globals.get("resize")()})),this.toolbar.enable(),this.toolbar.forceButton("settings",!1,{noCallback:!0})},t.handleSettingsDialogOpenAnimationEnded=function(){this.params.globals.get("resize")()},t.handleSettingsDialogValueChanged=function(e,t){"volumeMusic"===e?this.params.jukebox.setVolumeGroup("background",t):"volumeSFX"===e&&this.params.jukebox.setVolumeGroup("default",t)},e}(),Xe=function(){function e(){}var t=e.prototype;return t.getXAPIData=function(){return this.exerciseBundles.getXAPIData()},t.getAnswerGiven=function(){return this.exerciseBundles.getAnswerGiven()||this.hasUserMadeProgress},t.getScore=function(){return Math.min(this.exerciseBundles.getScore(),this.getMaxScore())},t.getMaxScore=function(){const e=this.exerciseBundles.getMaxScore(),t=this.params.globals.get("params").behaviour.finishScore;return Math.min(t,e)},t.getContext=function(){return{type:"stage",value:this.currentStageIndex}},t.showSolutions=function(){this.gameDone=!0,this.confirmationDialog.hide(),this.endScreen.hide(),this.stagesGameOverState.forEach((e=>{this.stages.updateState(e.id,e.state)})),this.params.jukebox.stopAll(),this.show(),this.exerciseBundles.showSolutions(),this.isShowingSolutions=!0,this.toolbar.toggleSolutionMode(!0)},t.getCurrentState=function(){return{exerciseBundles:this.exerciseBundles.getCurrentState(),stages:this.stages.getCurrentState(),paths:this.paths.getCurrentState(),...this.livesLeft&&this.livesLeft!==1/0&&{livesLeft:this.livesLeft},...this.timeLeft&&{timeLeft:this.timeLeft},...this.gameDone&&{gameDone:this.gameDone}}},e}();let _e=function(){function e(){}var t=e.prototype;return t.initializeTimer=function(){this.params.globals.get("params").behaviour.timeLimitGlobal&&(this.timer=new g({interval:500},{onTick:()=>{this.timeLeft=this.timer.getTime();this.isTimeoutWarning()&&(this.hasPlayedTimeoutWarningGlobal=!0,this.params.jukebox.play("timeoutWarning"),this.toolbar.toggleHintTimer(!0)),this.toolbar.setStatusContainerStatus("timer",{value:g.toTimecode(this.timeLeft)})},onExpired:()=>{this.showGameOverConfirmation("confirmGameOverDialogTimeout")}}))},t.isTimeoutWarning=function(){if(this.hasPlayedTimeoutWarningGlobal)return!1;const e=this.params.globals.get("params").behaviour.timeoutWarningGlobal;return"number"==typeof e&&this.timeLeft<=1e3*e},t.addExtraTime=function(e){"number"!=typeof e||e<1||!this.timer||(this.timer.setTime(this.timer.getTime()+1e3*e),this.toolbar.setStatusContainerStatus("timer",{value:g.toTimecode(this.timer.getTime())}),this.params.jukebox.play("extraTime"))},t.resetTimer=function(e){"number"!=typeof e||e<1||(this.hasPlayedTimeoutWarningGlobal=!1,this.timer?.reset(e),this.toolbar.setStatusContainerStatus("timer",{value:g.toTimecode(e)}))},e}(),Ke=function(){function e(){}var t=e.prototype;return t.showFinishConfirmation=function(){if(this.isShowingSolutions)return void this.showEndscreen({focusButton:!0,readOpened:!0});const e=this.params.globals.get("extras");e.isScoringEnabled=!0;const t=e.standalone&&(e.isScoringEnabled||e.isReportingEnabled),s=[this.params.dictionary.get("l10n.confirmFinishDialog")];t&&s.push(this.params.dictionary.get("l10n.confirmFinishDialogSubmission")),s.push(this.params.dictionary.get("l10n.confirmFinishDialogQuestion")),this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmFinishHeader"),dialogText:s.join(" "),cancelText:this.params.dictionary.get("l10n.no"),confirmText:this.params.dictionary.get("l10n.yes")},{onConfirmed:()=>{this.handleConfirmedFinish()},onCanceled:()=>{this.params.jukebox.stopGroup("default")}}),this.params.jukebox.stopGroup("default"),this.confirmationDialog.show(),this.params.jukebox.play("showDialog")},t.handleConfirmedFinish=function(){this.gameDone=!0,this.queueAnimation=[],this.stages.togglePlayfulness(!1),this.params.jukebox.stopAll(),this.timer?.stop(),this.callbacks.onFinished(),this.showEndscreen({focusButton:!0})},t.showGameOverConfirmation=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"confirmGameOverDialog";this.gameDone=!0,this.stages.togglePlayfulness(!1),this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmGameOverHeader"),dialogText:this.params.dictionary.get(`l10n.${e}`),confirmText:this.params.dictionary.get("l10n.ok"),hideCancel:!0},{onConfirmed:()=>{this.params.jukebox.stopAll(),this.timer?.stop(),this.callbacks.onFinished(),this.showEndscreen({focusButton:!0})}}),this.params.jukebox.stopAll(),this.timer?.stop(),this.params.jukebox.play("gameOver"),this.confirmationDialog.show()},t.showTimeoutConfirmation=function(){const e=this.livesLeft===1/0?this.params.dictionary.get("l10n.confirmTimeoutDialog"):this.params.dictionary.get("l10n.confirmTimeoutDialogLostLife");this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmTimeoutHeader"),dialogText:e,confirmText:this.params.dictionary.get("l10n.ok"),hideCancel:!0},{onConfirmed:()=>{this.params.jukebox.stopGroup("default")}}),this.confirmationDialog.show()},t.showIncompleteScoreConfirmation=function(){this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmScoreIncompleteHeader"),dialogText:this.params.dictionary.get("l10n.confirmIncompleteScoreDialogLostLife"),confirmText:this.params.dictionary.get("l10n.ok"),hideCancel:!0},{onConfirmed:()=>{this.params.jukebox.stopGroup("default")}}),this.confirmationDialog.show()},t.showFullScoreConfirmation=function(){let e=this.params.dictionary.get("l10n.confirmFullScoreDialog");this.livesLeft!==1/0&&(e=`${e} ${this.params.dictionary.get("l10n.confirmFullScoreDialogLoseLivesAmendmend")}`),this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmFullScoreHeader"),dialogText:e,confirmText:this.params.dictionary.get("l10n.ok"),hideCancel:!0},{onConfirmed:()=>{this.params.jukebox.stopGroup("default"),this.toolbar.toggleHintFinishButton(!0)}}),this.confirmationDialog.show()},e}();let Je=function(){function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},t),this.gameDone=!1,this.callbackQueue=new c,this.callbackQueue.setRespectsDelay(this.params.globals.get("params").visual.misc.useAnimation),i.addMixins(e,[b,ze,We,$e,Qe,Ye,Xe,_e,Ke]),this.callbacks=i.extend({onProgressChanged:()=>{},onFinished:()=>{},onFullscreenClicked:()=>{},onRestarted:()=>{}},s),this.params.globals.set("getScore",(()=>this.getScore())),this.musicFadeTime=2e3,this.buildDOM(),this.startVisibilityObserver(),this.initializeTimer(),this.reset({isInitial:!0}),this.params.globals.get("params").behaviour.timeLimitGlobal&&this.toolbar.showStatusContainer("timer"),"number"==typeof this.params.globals.get("params").behaviour.lives&&this.toolbar.showStatusContainer("lives"),this.toolbar.showStatusContainer("stages"),this.getMaxScore()>0&&this.toolbar.showStatusContainer("score"),this.start({isInitial:!0}),this.stages.updateStatePerRestrictions(),H5P.externalDispatcher.on("initialized",(()=>{const e=this.grabH5PQuestionFeedback({maxScore:this.getMaxScore()});this.endScreen.setContent(e),this.gameDone&&this.showEndscreen()}))}var t=e.prototype;return t.getDOM=function(){return this.dom},t.setTimerState=function(){if(this.timer){const e=this.timer.getState();e===d?this.timer.resume():e!==u||this.gameDone||this.timer.start()}},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.map.show(),this.contentDOM.classList.remove("display-none"),this.setTimerState(),e.readOpened&&this.params.globals.get("read")(this.params.dictionary.get("a11y.mapWasOpened")),window.setTimeout((()=>{e.focusButton&&this.toolbar.focus()}),100),this.stageAttentionSeekerTimeout||this.seekAttention(),window.requestAnimationFrame((()=>{this.params.globals.get("resize")(),window.requestAnimationFrame((()=>{this.params.globals.get("resize")()}))}))},t.hide=function(){this.map.hide(),this.timer?.pause(),this.contentDOM.classList.add("display-none")},t.start=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.endScreen.hide();if(this.params.globals.get("params").showTitleScreen){this.hide();const t=e.isInitial?{}:{focusButton:!0,readOpened:!0};this.startScreen.show(t)}else e.isInitial?this.show():this.show({focusButton:!0,readOpened:!0});this.params.globals.get("resize")()},t.seekAttention=function(){window.clearTimeout(this.stageAttentionSeekerTimeout),this.stageAttentionSeekerTimeout=window.setTimeout((()=>{this.stages.getNextOpenStage();const e=this.stages.getNextOpenStage();e&&e.animate("bounce"),this.seekAttention()}),1e4)},t.resize=function(){const e=this.map.getSize();e&&0!==e.width&&0!==e.height&&(this.map.resize(),clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout((()=>{this.paths.update({mapSize:this.map.getSize()})}),0),this.exerciseScreen.getSize().width>this.dom.getBoundingClientRect().width&&(clearTimeout(this.exersizeScreenResizeTimeout),this.exersizeScreenResizeTimeout=window.setTimeout((()=>{this.params.globals.get("resize")()}),0)),this.settingsDialog.getSize().width>this.dom.getBoundingClientRect().width&&(clearTimeout(this.settingsDialogResizeTimeout),this.settingsDialogResizeTimeout=window.setTimeout((()=>{this.params.globals.get("resize")()}),0)))},t.showEndscreenSuccess=function(e,t){const s=e.success;this.endScreen.setMedium(s.endScreenMediumSuccess);const a=i.isHTMLWidgetFilled(s.endScreenTextSuccess)?s.endScreenTextSuccess:t;this.endScreen.setIntroduction(a),this.isShowingSolutions||this.params.jukebox.play("endscreenSuccess")},t.showEndscreenNoSuccess=function(e,t,s,a){const r=e.noSuccess;this.endScreen.setMedium(r.endScreenMediumNoSuccess);let n="";n=0===this.livesLeft&&s>=a?`${n}<p style="text-align: center;">${this.params.dictionary.get("l10n.fullScoreButnoLivesLeft")}</p>`:0===this.timer?.getTime()&&s>=a?`${n}<p style="text-align: center;">${this.params.dictionary.get("l10n.fullScoreButTimeout")}</p>`:i.isHTMLWidgetFilled(r.endScreenTextNoSuccess)?r.endScreenTextNoSuccess:t,this.endScreen.setIntroduction(n),this.isShowingSolutions||this.params.jukebox.play("endscreenNoSuccess")},t.showEndscreen=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.hasUserMadeProgress=!0;const t=this.params.globals.get("params").endScreen;this.toolbar.toggleHintFinishButton(!1),this.toolbar.toggleHintTimer(!1);const s=this.getScore(),a=this.getMaxScore(),i=H5P.Question.determineOverallFeedback(t.overallFeedback,s/a),r=this.params.dictionary.get("a11y.yourResult").replace("@score",":num").replace("@total",":total");this.params.globals.get("mainInstance").setFeedback(i,s,a,r);const n=`<p style="text-align: center;">${this.params.dictionary.get("l10n.completedMap")}</p>`;s>=a&&this.livesLeft>0&&("number"!=typeof this.timeLeft||this.timeLeft>0)?this.showEndscreenSuccess(t,n):this.showEndscreenNoSuccess(t,n,s,a),this.hide(),this.endScreen.show(e)},t.setFullscreen=function(e){this.isFullscreenActive=e;const t=window.getComputedStyle(this.contentDOM),s=parseFloat(t.getPropertyValue("margin-left"))+parseFloat(t.getPropertyValue("margin-right")),a=parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"));this.map.setFullscreen(e,{width:window.innerWidth-s,height:window.innerHeight-a-this.toolbar.getFullHeight()}),this.toolbar.forceButton("fullscreen",e?1:0,{noCallback:!0})},e}();let Ze=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-message-box");const t=document.createElement("p");t.classList.add("h5p-game-map-message-box-message"),t.innerText=e.text||"Something important was supposed to be here.",this.dom.append(t)}return e.prototype.getDOM=function(){return this.dom},e}(),et=function(){function e(){}var t=e.prototype;return t.getAnswerGiven=function(){return this.main.getAnswerGiven()},t.getScore=function(){return this.main.getScore()},t.getMaxScore=function(){return this.main.getMaxScore()},t.showSolutions=function(){this.main.showSolutions()},t.resetTask=function(){this.contentWasReset=!0,this.main.reset(),this.main.start()},t.getXAPIData=function(){const e=this.createXAPIEvent("completed");return e.data.statement.object.definition.interactionType="compound",{statement:e.data.statement,children:this.main.getXAPIData()}},t.getCurrentState=function(){return this.main?this.getAnswerGiven()||this.params.behaviour.timeLimitGlobal?{content:this.main.getCurrentState()}:this.contentWasReset?{}:void 0:{}},t.getContext=function(){return this.main.getContext()},e}();const tt="Game Map";let st=function(){function e(){}var t=e.prototype;return t.triggerXAPIEvent=function(e){const t=this.createXAPIEvent(e);this.trigger(t)},t.createXAPIEvent=function(e){const t=this.createXAPIEventTemplate(e);return i.extend(t.getVerifiedStatementValue(["object","definition"]),this.getXAPIDefinition()),"completed"!==e&&"answered"!==e||t.setScoredResult(this.getScore(),this.getMaxScore(),this,!0,this.getScore()===this.getMaxScore()),t},t.getXAPIDefinition=function(){const e={name:{}};return e.name[this.languageTag]=this.getTitle(),e.name["en-US"]=e.name[this.languageTag],e.description={},e.description[this.languageTag]=this.getDescription(),e.description["en-US"]=e.description[this.languageTag],e.type="http://adlnet.gov/expapi/activities/cmi.interaction",e.interactionType="other",e},t.getTitle=function(){return H5P.createTitle(this.extras?.metadata?.title||tt)},t.getDescription=function(){return this.params.header||tt},e}();function at(e,t){return at=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},at(e,t)}const it={unstarted:0,locked:1,open:3,opened:4,completed:5,cleared:6,sealed:7};let rt=function(e){function s(a,n){var o;let c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};o=e.call(this,"game-map")||this,i.addMixins(s,[et,st]);const u=i.extend({behaviour:{finishScore:1/0,enableCheckButton:!0}},t.getSemanticsDefaults());o.contentId=n,o.params=i.extend(u,a),o.dictionary=new r,o.dictionary.fill({l10n:o.params.l10n,a11y:o.params.a11y}),o.handleReduceMotion(),o.sanitizeStages(n),o.extras=c;const h=o.isRoot()&&H5P.fullscreenSupported;o.setGlobals(h),c.previousState=o.migratePreviousState1_4(c.previousState),o.jukebox=new l,o.fillJukebox();const d=c?.metadata?.defaultLanguage||"en";return o.languageTag=i.formatLanguageCode(d),o.dom=o.buildDOM(),o.initializeMain(h),h&&o.setupFullscreenHandlers(),o}var a,o;o=e,(a=s).prototype=Object.create(o.prototype),a.prototype.constructor=a,at(a,o);var c=s.prototype;return c.handleReduceMotion=function(){const e=window.matchMedia("(prefers-reduced-motion: reduce)")?.matches;this.params.visual.misc.useAnimation=this.params.visual.misc.useAnimation&&!e},c.sanitizeStages=function(e){const t=this.getAdvancedTextVersion(e);this.params.gamemapSteps.gamemap.elements=this.params.gamemapSteps.gamemap.elements.map((e=>(!e.specialStageType&&!e.contentsList?.[0]?.contentType?.library&&(e.dom={count:0},e.contentsList=[this.createMissingContentElement(t)]),e.animDuration=this.params.visual.misc.useAnimation?1e3:0,e)))},c.getAdvancedTextVersion=function(e){return H5PIntegration?.contents?.[`cid-${e}`]?.scripts?.find((e=>e.includes("H5P.AdvancedText-")))?.match(/H5P\.AdvancedText-(\d+\.\d+)/)?.[0]??"1.1"},c.createMissingContentElement=function(e){return{contentType:{params:{text:this.dictionary.get("l10n.missingContent")},library:`H5P.AdvancedText ${e}`,metadata:{authors:[],changes:[],license:"U",title:this.dictionary.get("l10n.missingContent"),contentType:"Text"},subContentId:H5P.createUUID()}}},c.setGlobals=function(e){this.globals=new n,this.globals.set("mainInstance",this),this.globals.set("contentId",this.contentId),this.globals.set("params",this.params),this.globals.set("extras",this.extras),this.globals.set("states",it),this.globals.set("isFullscreenSupported",e),this.globals.set("resize",(()=>{this.trigger("resize")})),this.globals.set("read",(e=>{this.read(e)}))},c.initializeMain=function(e){if(this.params.gamemapSteps.gamemap.elements.some((e=>e.contentsList?.length)))this.main=new Je({dictionary:this.dictionary,globals:this.globals,jukebox:this.jukebox},{onProgressChanged:e=>{this.handleProgressChanged(e)},onFinished:()=>{this.handleFinished()},onFullscreenClicked:()=>{this.handleFullscreenClicked()},onRestarted:()=>{this.resetTask()}}),this.dom.append(this.main.getDOM()),this.on("resize",(()=>{this.main.resize()}));else{const e=new Ze({text:this.dictionary.get("l10n.noStages")});this.dom.append(e.getDOM())}},c.setupFullscreenHandlers=function(){this.on("enterFullScreen",(()=>{window.setTimeout((()=>{this.main.setFullscreen(!0)}),50)})),this.on("exitFullScreen",(()=>{this.main.setFullscreen(!1)}));const e=()=>{H5P.isFullscreen&&window.setTimeout((()=>{this.main.setFullscreen(!0)}),200)};screen?.orientation?.addEventListener?screen?.orientation?.addEventListener("change",(()=>{e()})):window.addEventListener("orientationchange",(()=>{e()}),!1)},c.migratePreviousState1_4=function(e){return!e?.content||e.content.exerciseBundles||(e.content.exerciseBundles=(e.content.exercises??[]).map((e=>{let{exercise:t}=e;return{exerciseBundle:{state:t.state,id:t.id,remainingTime:t.remainingTime,isCompleted:t.isCompleted,instances:[{completed:t.instanceState?.isCompleted||t.isCompleted,successful:t.instanceState?.isCompleted||t.isCompleted,instanceState:t.instanceState}]}}})),delete e.content.exercises),e},c.registerDomElements=function(){this.setContent(this.dom)},c.buildDOM=function(){const e=document.createElement("div");return e.classList.add("h5p-game-map"),e},c.fillJukebox=function(){const e={};if(this.params.audio.backgroundMusic.music?.[0]?.path){const t=H5P.getPath(this.params.audio.backgroundMusic.music[0].path,this.contentId),s=H5P.getCrossOrigin?.(this.params.audio.backgroundMusic.music[0])??"Anonymous";e.backgroundMusic={src:t,crossOrigin:s,options:{loop:!0,groupId:"background"}}}for(const t in this.params.audio.ambient){if(!this.params.audio.ambient[t]?.[0]?.path)continue;const s=H5P.getPath(this.params.audio.ambient[t][0].path,this.contentId),a=H5P.getCrossOrigin?.(this.params.audio.ambient[t][0])??"Anonymous";e[t]={src:s,crossOrigin:a}}this.jukebox.fill(e)},c.handleProgressChanged=function(e){const t=this.createXAPIEventTemplate("progressed");t.data.statement.object.definition.extensions["http://id.tincanapi.com/extension/ending-point"]=e,this.trigger(t)},c.handleFinished=function(){const e=this.createXAPIEventTemplate("completed");i.extend(e.getVerifiedStatementValue(["object","definition"]),this.getXAPIDefinition()),e.setScoredResult(this.getScore(),this.getMaxScore(),this,!0,this.getScore()===this.getMaxScore()),this.trigger(e)},c.handleFullscreenClicked=function(){window.setTimeout((()=>{this.toggleFullscreen()}),300)},c.toggleFullscreen=function(e){if(this.dom){switch(e){case"enter":e=!1;break;case"exit":e=!0;break;default:e="boolean"==typeof e?e:!H5P.isFullscreen}e?(this.container=this.container||this.dom.closest(".h5p-container"),this.container&&H5P.fullScreen(H5P.jQuery(this.container),this)):H5P.exitFullScreen()}},s}(H5P.Question);H5P.GameMap=rt}()}();;/*global H5P*/
H5P.Blanks = (function ($, Question) {
  /**
   * @constant
   * @default
   */
  var STATE_ONGOING = 'ongoing';
  var STATE_CHECKING = 'checking';
  var STATE_SHOWING_SOLUTION = 'showing-solution';
  var STATE_FINISHED = 'finished';

  const XAPI_ALTERNATIVE_EXTENSION = 'https://h5p.org/x-api/alternatives';
  const XAPI_CASE_SENSITIVITY = 'https://h5p.org/x-api/case-sensitivity';
  const XAPI_REPORTING_VERSION_EXTENSION = 'https://h5p.org/x-api/h5p-reporting-version';

  /**
   * @typedef {Object} Params
   *  Parameters/configuration object for Blanks
   *
   * @property {Object} Params.behaviour
   * @property {string} Params.behaviour.confirmRetryDialog
   * @property {string} Params.behaviour.confirmCheckDialog
   *
   * @property {Object} Params.confirmRetry
   * @property {string} Params.confirmRetry.header
   * @property {string} Params.confirmRetry.body
   * @property {string} Params.confirmRetry.cancelLabel
   * @property {string} Params.confirmRetry.confirmLabel
   *
   * @property {Object} Params.confirmCheck
   * @property {string} Params.confirmCheck.header
   * @property {string} Params.confirmCheck.body
   * @property {string} Params.confirmCheck.cancelLabel
   * @property {string} Params.confirmCheck.confirmLabel
   */

  /**
   * Initialize module.
   *
   * @class H5P.Blanks
   * @extends H5P.Question
   * @param {Params} params
   * @param {number} id Content identification
   * @param {Object} contentData Task specific content data
   */
  function Blanks(params, id, contentData) {
    var self = this;

    // Inheritance
    Question.call(self, 'blanks');

    // IDs
    this.contentId = id;
    this.contentData = contentData;

    this.params = $.extend(true, {}, {
      text: "Fill in",
      questions: [
        "<p>Oslo is the capital of *Norway*.</p>"
      ],
      overallFeedback: [],
      userAnswers: [], // TODO This isn't in semantics?
      showSolutions: "Show solution",
      tryAgain: "Try again",
      checkAnswer: "Check",
      changeAnswer: "Change answer",
      notFilledOut: "Please fill in all blanks to view solution",
      answerIsCorrect: "':ans' is correct",
      answerIsWrong: "':ans' is wrong",
      answeredCorrectly: "Answered correctly",
      answeredIncorrectly: "Answered incorrectly",
      solutionLabel: "Correct answer:",
      inputLabel: "Blank input @num of @total",
      inputHasTipLabel: "Tip available",
      tipLabel: "Tip",
      scoreBarLabel: 'You got :num out of :total points',
      behaviour: {
        enableRetry: true,
        enableSolutionsButton: true,
        enableCheckButton: true,
        caseSensitive: true,
        showSolutionsRequiresInput: true,
        autoCheck: false,
        separateLines: false
      },
      a11yCheck: 'Check the answers. The responses will be marked as correct, incorrect, or unanswered.',
      a11yShowSolution: 'Show the solution. The task will be marked with its correct solution.',
      a11yRetry: 'Retry the task. Reset all responses and start the task over again.',
      a11yHeader: 'Checking mode',
      submitAnswer: 'Submit',
    }, params);

    // Delete empty questions
    for (var i = this.params.questions.length - 1; i >= 0; i--) {
      if (!this.params.questions[i]) {
        this.params.questions.splice(i, 1);
      }
    }

    // Previous state
    this.contentData = contentData;
    if (this.contentData !== undefined && this.contentData.previousState !== undefined) {
      this.previousState = this.contentData.previousState;
    }

    // Clozes
    this.clozes = [];

    // Keep track tabbing forward or backwards
    this.shiftPressed = false;

    H5P.$body.keydown(function (event) {
      if (event.keyCode === 16) {
        self.shiftPressed = true;
      }
    }).keyup(function (event) {
      if (event.keyCode === 16) {
        self.shiftPressed = false;
      }
    });

    // Using instructions as label for our text groups
    this.labelId = 'h5p-blanks-instructions-' + Blanks.idCounter + '-' + H5P.createUUID();
    this.content = self.createQuestions();

    // Check for task media
    var media = self.params.media;
    if (media && media.type && media.type.library) {
      media = media.type;
      var type = media.library.split(' ')[0];
      if (type === 'H5P.Image') {
        if (media.params.file) {
          // Register task image
          self.setImage(media.params.file.path, {
            disableImageZooming: self.params.media.disableImageZooming || false,
            alt: media.params.alt,
            title: media.params.title,
            expandImage: media.params.expandImage,
            minimizeImage: media.params.minimizeImage
          });
        }
      }
      else if (type === 'H5P.Video') {
        if (media.params.sources) {
          // Register task video
          self.setVideo(media);
        }
      }
      else if (type === 'H5P.Audio') {
        if (media.params.files) {
          // Register task audio
          self.setAudio(media);
        }
      }
    }

    // Register task introduction text
    self.setIntroduction('<div id="' + this.labelId + '">' + self.params.text + '</div>');

    // Register task content area
    self.setContent(self.content, {
      'class': self.params.behaviour.separateLines ? 'h5p-separate-lines' : ''
    });

    // ... and buttons
    self.registerButtons();

    // Restore previous state
    self.setH5PUserState();
  }

  // Inheritance
  Blanks.prototype = Object.create(Question.prototype);
  Blanks.prototype.constructor = Blanks;

  /**
   * Create all the buttons for the task
   */
  Blanks.prototype.registerButtons = function () {
    var self = this;

    var $content = $('[data-content-id="' + self.contentId + '"].h5p-content');
    var $containerParents = $content.parents('.h5p-container');

    // select find container to attach dialogs to
    var $container;
    if ($containerParents.length !== 0) {
      // use parent highest up if any
      $container = $containerParents.last();
    }
    else if ($content.length !== 0) {
      $container = $content;
    }
    else  {
      $container = $(document.body);
    }

    if (!self.params.behaviour.autoCheck && this.params.behaviour.enableCheckButton) {
      // Check answer button
      self.addButton('check-answer', self.params.checkAnswer, function () {
        // Move focus to top of content
        self.a11yHeader.innerHTML = self.params.a11yHeader;
        self.a11yHeader.focus();

        self.toggleButtonVisibility(STATE_CHECKING);
        self.markResults();
        self.showEvaluation();
        self.triggerAnswered();
      }, true, {
        'aria-label': self.params.a11yCheck,
      }, {
        confirmationDialog: {
          enable: self.params.behaviour.confirmCheckDialog,
          l10n: self.params.confirmCheck,
          instance: self,
          $parentElement: $container
        },
        textIfSubmitting: self.params.submitAnswer,
        contentData: self.contentData,
      });
    }

    // Show solution button
    self.addButton('show-solution', self.params.showSolutions, function () {
      self.showCorrectAnswers(false);
    }, self.params.behaviour.enableSolutionsButton, {
      'aria-label': self.params.a11yShowSolution,
    });

    // Try again button
    if (self.params.behaviour.enableRetry === true) {
      self.addButton('try-again', self.params.tryAgain, function () {
        self.a11yHeader.innerHTML = '';
        self.resetTask();
        self.$questions.filter(':first').find('input:first').focus();
      }, true, {
        'aria-label': self.params.a11yRetry,
      }, {
        confirmationDialog: {
          enable: self.params.behaviour.confirmRetryDialog,
          l10n: self.params.confirmRetry,
          instance: self,
          $parentElement: $container
        }
      });
    }
    self.toggleButtonVisibility(STATE_ONGOING);
  };

  /**
   * Find blanks in a string and run a handler on those blanks
   *
   * @param {string} question
   *   Question text containing blanks enclosed in asterisks.
   * @param {function} handler
   *   Replaces the blanks text with an input field.
   * @returns {string}
   *   The question with blanks replaced by the given handler.
   */
  Blanks.prototype.handleBlanks = function (question, handler) {
    // Go through the text and run handler on all asterisk
    var clozeEnd, clozeStart = question.indexOf('*');
    var self = this;
    while (clozeStart !== -1 && clozeEnd !== -1) {
      clozeStart++;
      clozeEnd = question.indexOf('*', clozeStart);
      if (clozeEnd === -1) {
        continue; // No end
      }
      var clozeContent = question.substring(clozeStart, clozeEnd).replaceAll(/<\/?[a-z]*\d?>/ig, '');
      var replacer = '';
      if (clozeContent.length) {
        replacer = handler(self.parseSolution(clozeContent));
        clozeEnd++;
      }
      else {
        clozeStart += 1;
      }
      question = question.slice(0, clozeStart - 1) + replacer + question.slice(clozeEnd);
      clozeEnd -= clozeEnd - clozeStart - replacer.length;

      // Find the next cloze
      clozeStart = question.indexOf('*', clozeEnd);
    }
    return question;
  };

  /**
   * Create questitons html for DOM
   */
  Blanks.prototype.createQuestions = function () {
    var self = this;

    var html = '';
    var clozeNumber = 0;
    for (var i = 0; i < self.params.questions.length; i++) {
      var question = self.params.questions[i];

      // Go through the question text and replace all the asterisks with input fields
      question = self.handleBlanks(question, function (solution) {
        // Create new cloze
        clozeNumber += 1;
        var defaultUserAnswer = (self.params.userAnswers.length > self.clozes.length ? self.params.userAnswers[self.clozes.length] : null);
        var cloze = new Blanks.Cloze(solution, self.params.behaviour, defaultUserAnswer, {
          answeredCorrectly: self.params.answeredCorrectly,
          answeredIncorrectly: self.params.answeredIncorrectly,
          solutionLabel: self.params.solutionLabel,
          inputLabel: self.params.inputLabel,
          inputHasTipLabel: self.params.inputHasTipLabel,
          tipLabel: self.params.tipLabel
        });

        self.clozes.push(cloze);
        return cloze;
      });

      html += '<div role="group" aria-labelledby="' + self.labelId + '">' + question + '</div>';
    }

    self.hasClozes = clozeNumber > 0;
    this.$questions = $(html);

    self.a11yHeader = document.createElement('div');
    self.a11yHeader.classList.add('hidden-but-read');
    self.a11yHeader.tabIndex = -1;
    self.$questions[0].insertBefore(self.a11yHeader, this.$questions[0].childNodes[0] || null);

    // Set input fields.
    this.$questions.find('input').each(function (i) {

      /**
       * Observe resizing of input field, so that we can resize
       * the H5P to fit all content when the input field grows in size
       */
      let resizeTimer;
      new ResizeObserver(function () {
        // To avoid triggering resize too often, we wait a second after the last 
        // resize event has been received
        clearTimeout(resizeTimer);
        resizeTimer = setTimeout(function () {
          self.trigger('resize');
        }, 1000);
      }).observe(this);

      var afterCheck;
      if (self.params.behaviour.autoCheck) {
        afterCheck = function () {
          var answer = $("<div>").text(this.getUserAnswer()).html();
          self.read((this.correct() ? self.params.answerIsCorrect : self.params.answerIsWrong).replace(':ans', answer));
          if (self.done || self.allBlanksFilledOut()) {
            // All answers has been given. Show solutions button.
            self.toggleButtonVisibility(STATE_CHECKING);
            self.showEvaluation();
            self.triggerAnswered();
            self.done = true;
          }
        };
      }
      self.clozes[i].setInput($(this), afterCheck, function () {
        self.toggleButtonVisibility(STATE_ONGOING);
        if (!self.params.behaviour.autoCheck) {
          self.hideEvaluation();
        }
      }, i, self.clozes.length);
    }).keydown(function (event) {
      var $this = $(this);

      // Adjust width of text input field to match value
      self.autoGrowTextField($this);

      var $inputs, isLastInput;
      var enterPressed = (event.keyCode === 13);
      var tabPressedAutoCheck = (event.keyCode === 9 && self.params.behaviour.autoCheck);

      if (enterPressed || tabPressedAutoCheck) {
        // Figure out which inputs are left to answer
        $inputs = self.$questions.find('.h5p-input-wrapper:not(.h5p-correct) .h5p-text-input');

        // Figure out if this is the last input
        isLastInput = $this.is($inputs[$inputs.length - 1]);
      }

      if ((tabPressedAutoCheck && isLastInput && !self.shiftPressed) ||
          (enterPressed && isLastInput)) {
        // Focus first button on next tick
        setTimeout(function () {
          self.focusButton();
        }, 10);
      }

      if (enterPressed) {
        if (isLastInput) {
          // Check answers
          $this.trigger('blur');
        }
        else {
          // Find next input to focus
          $inputs.eq($inputs.index($this) + 1).focus();
        }

        return false; // Prevent form submission on enter key
      }
    }).on('change', function () {
      self.answered = true;
      self.triggerXAPI('interacted');
    });

    self.on('resize', function () {
      self.resetGrowTextField();
    });

    return this.$questions;
  };

  /**
   *
   */
  Blanks.prototype.autoGrowTextField = function ($input) {
    // Do not set text field size when separate lines is enabled
    if (this.params.behaviour.separateLines) {
      return;
    }

    var self = this;
    var fontSize = parseInt($input.css('font-size'), 10);
    var minEm = 3;
    var minPx = fontSize * minEm;
    var rightPadEm = 3.25;
    var rightPadPx = fontSize * rightPadEm;
    var static_min_pad = 0.5 * fontSize;

    setTimeout(function () {
      var tmp = $('<div>', {
        'text': $input.val()
      });
      tmp.css({
        'position': 'absolute',
        'white-space': 'nowrap',
        'font-size': $input.css('font-size'),
        'font-family': $input.css('font-family'),
        'padding': $input.css('padding'),
        'width': 'initial'
      });
      $input.parent().append(tmp);
      var width = tmp.width();
      var parentWidth = self.$questions.width();
      tmp.remove();
      if (width <= minPx) {
        // Apply min width
        $input.width(minPx + static_min_pad);
      }
      else if (width + rightPadPx >= parentWidth) {
        // Apply max width of parent
        $input.width(parentWidth - rightPadPx);
      }
      else {
        // Apply width that wraps input
        $input.width(width + static_min_pad);
      }
    }, 1);
  };

  /**
   * Resize all text field growth to current size.
   */
  Blanks.prototype.resetGrowTextField = function () {
    var self = this;

    this.$questions.find('input').each(function () {
      self.autoGrowTextField($(this));
    });
  };

  /**
   * Toggle buttons dependent of state.
   *
   * Using CSS-rules to conditionally show/hide using the data-attribute [data-state]
   */
  Blanks.prototype.toggleButtonVisibility = function (state) {
    // The show solutions button is hidden if all answers are correct
    var allCorrect = (this.getScore() === this.getMaxScore());
    if (this.params.behaviour.autoCheck && allCorrect) {
      // We are viewing the solutions
      state = STATE_FINISHED;
    }

    if (this.params.behaviour.enableSolutionsButton) {
      if (state === STATE_CHECKING && !allCorrect) {
        this.showButton('show-solution');
      }
      else {
        this.hideButton('show-solution');
      }
    }

    if (this.params.behaviour.enableRetry) {
      if ((state === STATE_CHECKING && !allCorrect) || state === STATE_SHOWING_SOLUTION) {
        this.showButton('try-again');
      }
      else {
        this.hideButton('try-again');
      }
    }

    if (state === STATE_ONGOING) {
      this.showButton('check-answer');
    }
    else {
      this.hideButton('check-answer');
    }

    this.trigger('resize');
  };

  /**
   * Check if solution is allowed. Warn user if not
   */
  Blanks.prototype.allowSolution = function () {
    if (this.params.behaviour.showSolutionsRequiresInput === true) {
      if (!this.allBlanksFilledOut()) {
        this.updateFeedbackContent(this.params.notFilledOut);
        this.read(this.params.notFilledOut);
        return false;
      }
    }
    return true;
  };

  /**
   * Check if all blanks are filled out
   *
   * @method allBlanksFilledOut
   * @return {boolean} Returns true if all blanks are filled out.
   */
  Blanks.prototype.allBlanksFilledOut = function () {
    return !this.clozes.some(function (cloze) {
      return !cloze.filledOut();
    });
  };

  /**
   * Mark which answers are correct and which are wrong and disable fields if retry is off.
   */
  Blanks.prototype.markResults = function () {
    var self = this;
    for (var i = 0; i < self.clozes.length; i++) {
      self.clozes[i].checkAnswer();
      if (!self.params.behaviour.enableRetry) {
        self.clozes[i].disableInput();
      }
    }
    this.trigger('resize');
  };

  /**
   * Removed marked results
   */
  Blanks.prototype.removeMarkedResults = function () {
    this.$questions.find('.h5p-input-wrapper').removeClass('h5p-correct h5p-wrong');
    this.$questions.find('.h5p-input-wrapper > input').attr('disabled', false);
    this.trigger('resize');
  };


  /**
   * Displays the correct answers
   * @param {boolean} [alwaysShowSolution]
   *  Will always show solution if true
   */
  Blanks.prototype.showCorrectAnswers = function (alwaysShowSolution) {
    if (!alwaysShowSolution && !this.allowSolution()) {
      return;
    }

    this.toggleButtonVisibility(STATE_SHOWING_SOLUTION);
    this.hideSolutions();

    for (var i = 0; i < this.clozes.length; i++) {
      this.clozes[i].showSolution();
    }
    this.trigger('resize');
  };

  /**
   * Toggle input allowed for all input fields
   *
   * @method function
   * @param  {boolean} enabled True if fields should allow input, otherwise false
   */
  Blanks.prototype.toggleAllInputs = function (enabled) {
    for (var i = 0; i < this.clozes.length; i++) {
      this.clozes[i].toggleInput(enabled);
    }
  };

  /**
   * Display the correct solution for the input boxes.
   *
   * This is invoked from CP and QS - be carefull!
   */
  Blanks.prototype.showSolutions = function () {
    this.params.behaviour.enableSolutionsButton = true;
    this.toggleButtonVisibility(STATE_FINISHED);
    this.markResults();
    this.showEvaluation();
    this.showCorrectAnswers(true);
    this.toggleAllInputs(false);
    //Hides all buttons in "show solution" mode.
    this.hideButtons();
  };

  /**
   * Resets the complete task.
   * Used in contracts.
   * @public
   */
  Blanks.prototype.resetTask = function () {
    this.answered = false;
    this.hideEvaluation();
    this.hideSolutions();
    this.clearAnswers();
    this.removeMarkedResults();
    this.toggleButtonVisibility(STATE_ONGOING);
    this.resetGrowTextField();
    this.toggleAllInputs(true);
    this.done = false;
  };

  /**
   * Hides all buttons.
   * @public
   */
  Blanks.prototype.hideButtons = function () {
    this.toggleButtonVisibility(STATE_FINISHED);
  };

  /**
   * Trigger xAPI answered event
   */
  Blanks.prototype.triggerAnswered = function () {
    this.answered = true;
    var xAPIEvent = this.createXAPIEventTemplate('answered');
    this.addQuestionToXAPI(xAPIEvent);
    this.addResponseToXAPI(xAPIEvent);
    this.trigger(xAPIEvent);
  };

  /**
   * Get xAPI data.
   * Contract used by report rendering engine.
   *
   * @see contract at {@link https://h5p.org/documentation/developers/contracts#guides-header-6}
   */
  Blanks.prototype.getXAPIData = function () {
    var xAPIEvent = this.createXAPIEventTemplate('answered');
    this.addQuestionToXAPI(xAPIEvent);
    this.addResponseToXAPI(xAPIEvent);
    return {
      statement: xAPIEvent.data.statement
    };
  };

  /**
   * Generate xAPI object definition used in xAPI statements.
   * @return {Object}
   */
  Blanks.prototype.getxAPIDefinition = function () {
    var definition = {};
    // The below replaceAll makes sure we don't get any unwanted XAPI_PLACEHOLDERs in the description
    definition.description = {
      'en-US': this.params.text.replaceAll(/_{10,}/gi, '_________')
    };
    definition.type = 'http://adlnet.gov/expapi/activities/cmi.interaction';
    definition.interactionType = 'fill-in';

    const clozeSolutions = [];
    let crp = '';
    // xAPI forces us to create solution patterns for all possible solution combinations
    for (var i = 0; i < this.params.questions.length; i++) {
      // The below replaceAll makes sure we don't get any unwanted XAPI_PLACEHOLDERs in the questions
      let question = this.params.questions[i].replaceAll(/_{10,}/gi, '_________');

      question = this.handleBlanks(question, function (solution) {
        // Collect all solution combinations for the H5P Alternative extension
        clozeSolutions.push(solution.solutions);

        // Create a basic response pattern out of the first alternative for each blanks field
        crp += (!crp ? '' : '[,]') + solution.solutions[0];

        // We replace the solutions in the question with a "blank"
        return '__________';
      });
      definition.description['en-US'] += question;
    }

    // Set the basic response pattern (not supporting multiple alternatives for blanks)
    definition.correctResponsesPattern = [
      '{case_matters=' + this.params.behaviour.caseSensitive + '}' + crp,
    ];

    // Add the H5P Alternative extension which provides all the combinations of different answers
    // Reporting software will need to support this extension for alternatives to work.
    definition.extensions = definition.extensions || {};
    definition.extensions[XAPI_CASE_SENSITIVITY] = this.params.behaviour.caseSensitive;
    definition.extensions[XAPI_ALTERNATIVE_EXTENSION] = clozeSolutions;

    return definition;
  };

  /**
   * Add the question itselt to the definition part of an xAPIEvent
   */
  Blanks.prototype.addQuestionToXAPI = function (xAPIEvent) {
    var definition = xAPIEvent.getVerifiedStatementValue(['object', 'definition']);
    $.extend(true, definition, this.getxAPIDefinition());

    // Set reporting module version if alternative extension is used
    if (this.hasAlternatives) {
      const context = xAPIEvent.getVerifiedStatementValue(['context']);
      context.extensions = context.extensions || {};
      context.extensions[XAPI_REPORTING_VERSION_EXTENSION] = '1.1.0';
    }
  };

  /**
   * Parse the solution text (text between the asterisks)
   *
   * @param {string} solutionText
   * @returns {object} with the following properties
   *  - tip: the tip text for this solution, undefined if no tip
   *  - solutions: array of solution words
   */
  Blanks.prototype.parseSolution = function (solutionText) {
    var tip, solution;

    var tipStart = solutionText.indexOf(':');
    if (tipStart !== -1) {
      // Found tip, now extract
      tip = solutionText.slice(tipStart + 1);
      solution = solutionText.slice(0, tipStart);
    }
    else {
      solution = solutionText;
    }

    // Split up alternatives
    var solutions = solution.split('/');
    this.hasAlternatives = this.hasAlternatives || solutions.length > 1;

    // Trim solutions
    for (var i = 0; i < solutions.length; i++) {
      solutions[i] = H5P.trim(solutions[i]);

      //decodes html entities
      var elem = document.createElement('textarea');
      elem.innerHTML = solutions[i];
      solutions[i] = elem.value;
    }

    return {
      tip: tip,
      solutions: solutions
    };
  };

  /**
   * Add the response part to an xAPI event
   *
   * @param {H5P.XAPIEvent} xAPIEvent
   *  The xAPI event we will add a response to
   */
  Blanks.prototype.addResponseToXAPI = function (xAPIEvent) {
    xAPIEvent.setScoredResult(this.getScore(), this.getMaxScore(), this);
    xAPIEvent.data.statement.result.response = this.getxAPIResponse();
  };

  /**
   * Generate xAPI user response, used in xAPI statements.
   * @return {string} User answers separated by the "[,]" pattern
   */
  Blanks.prototype.getxAPIResponse = function () {
    var usersAnswers = this.getCurrentState();
    return usersAnswers.join('[,]');
  };

  /**
   * Show evaluation widget, i.e: 'You got x of y blanks correct'
   */
  Blanks.prototype.showEvaluation = function () {
    var maxScore = this.getMaxScore();
    var score = this.getScore();
    var scoreText = H5P.Question.determineOverallFeedback(this.params.overallFeedback, score / maxScore).replace('@score', score).replace('@total', maxScore);

    this.setFeedback(scoreText, score, maxScore, this.params.scoreBarLabel);

    if (score === maxScore) {
      this.toggleButtonVisibility(STATE_FINISHED);
    }
  };

  /**
   * Hide the evaluation widget
   */
  Blanks.prototype.hideEvaluation = function () {
    // Clear evaluation section.
    this.removeFeedback();
  };

  /**
   * Hide solutions. (/try again)
   */
  Blanks.prototype.hideSolutions = function () {
    // Clean solution from quiz
    this.$questions.find('.h5p-correct-answer').remove();
  };

  /**
   * Get maximum number of correct answers.
   *
   * @returns {Number} Max points
   */
  Blanks.prototype.getMaxScore = function () {
    var self = this;
    return self.clozes.length;
  };

  /**
   * Count the number of correct answers.
   *
   * @returns {Number} Points
   */
  Blanks.prototype.getScore = function () {
    var self = this;
    var correct = 0;
    for (var i = 0; i < self.clozes.length; i++) {
      if (self.clozes[i].correct()) {
        correct++;
      }
      self.params.userAnswers[i] = self.clozes[i].getUserAnswer();
    }

    return correct;
  };

  Blanks.prototype.getTitle = function () {
    return H5P.createTitle((this.contentData.metadata && this.contentData.metadata.title) ? this.contentData.metadata.title : 'Fill In');
  };

  /**
   * Clear the user's answers
   */
  Blanks.prototype.clearAnswers = function () {
    this.clozes.forEach(function (cloze) {
      cloze.setUserInput('');
      cloze.resetAriaLabel();
    });
  };

  /**
   * Checks if all has been answered.
   *
   * @returns {Boolean}
   */
  Blanks.prototype.getAnswerGiven = function () {
    return this.answered || !this.hasClozes;
  };

  /**
   * Helps set focus the given input field.
   * @param {jQuery} $input
   */
  Blanks.setFocus = function ($input) {
    setTimeout(function () {
      $input.focus();
    }, 1);
  };

  /**
   * Returns an object containing content of each cloze
   *
   * @returns {object} object containing content for each cloze
   */
  Blanks.prototype.getCurrentState = function () {
    var clozesContent = [];

    // Get user input for every cloze
    this.clozes.forEach(function (cloze) {
      clozesContent.push(cloze.getUserAnswer());
    });
    return clozesContent;
  };

  /**
   * Sets answers to current user state
   */
  Blanks.prototype.setH5PUserState = function () {
    var self = this;
    var isValidState = (this.previousState !== undefined &&
                        this.previousState.length &&
                        this.previousState.length === this.clozes.length);

    // Check that stored user state is valid
    if (!isValidState) {
      return;
    }

    // Set input from user state
    var hasAllClozesFilled = true;
    this.previousState.forEach(function (clozeContent, ccIndex) {

      // Register that an answer has been given
      if (clozeContent.length) {
        self.answered = true;
      }

      var cloze = self.clozes[ccIndex];
      cloze.setUserInput(clozeContent);

      // Handle instant feedback
      if (self.params.behaviour.autoCheck) {
        if (cloze.filledOut()) {
          cloze.checkAnswer();
        }
        else {
          hasAllClozesFilled = false;
        }
      }
    });

    if (self.params.behaviour.autoCheck && hasAllClozesFilled) {
      self.showEvaluation();
      self.toggleButtonVisibility(STATE_CHECKING);
    }
  };

  /**
   * Disables any active input. Useful for freezing the task and dis-allowing
   * modification of wrong answers.
   */
  Blanks.prototype.disableInput = function () {
    this.$questions.find('input').attr('disabled', true);
  };

  Blanks.idCounter = 0;

  return Blanks;
})(H5P.jQuery, H5P.Question);

/**
 * Static utility method for parsing H5P.Blanks qestion into a format useful
 * for creating reports.
 *
 * Example question: 'H5P content may be edited using a *browser/web-browser:something you use every day*.'
 *
 * Produces the following result:
 * [
 *   {
 *     type: 'text',
 *     content: 'H5P content may be edited using a '
 *   },
 *   {
 *     type: 'answer',
 *     correct: ['browser', 'web-browser']
 *   },
 *   {
 *     type: 'text',
 *     content: '.'
 *   }
 * ]
 *
 * @param {string} question
 */
H5P.Blanks.parseText = function (question) {
  var blank = new H5P.Blanks({ question: question });

  /**
   * Parses a text into an array where words starting and ending
   * with an asterisk are separated from other text.
   * e.g ["this", "*is*", " an ", "*example*"]
   *
   * @param {string} text
   *
   * @return {string[]}
   */
  function tokenizeQuestionText(text) {
    return text.split(/(\*.*?\*)/).filter(function (str) {
      return str.length > 0; }
    );
  }

  function startsAndEndsWithAnAsterisk(str) {
    return str.substr(0,1) === '*' && str.substr(-1) === '*';
  }

  function replaceHtmlTags(str, value) {
    return str.replace(/<[^>]*>/g, value);
  }

  return tokenizeQuestionText(replaceHtmlTags(question, '')).map(function (part) {
    return startsAndEndsWithAnAsterisk(part) ?
      ({
        type: 'answer',
        correct: blank.parseSolution(part.slice(1, -1)).solutions
      }) :
      ({
        type: 'text',
        content: part
      });
  });
};
;(function ($, Blanks) {

  /**
   * Simple private class for keeping track of clozes.
   *
   * @class H5P.Blanks.Cloze
   * @param {string} answer
   * @param {Object} behaviour Behavioral settings for the task from semantics
   * @param {boolean} behaviour.acceptSpellingErrors - If true, answers will also count correct if they contain small spelling errors.
   * @param {string} defaultUserAnswer
   * @param {Object} l10n Localized texts
   * @param {string} l10n.solutionLabel Assistive technology label for cloze solution
   * @param {string} l10n.inputLabel Assistive technology label for cloze input
   * @param {string} l10n.inputHasTipLabel Assistive technology label for input with tip
   * @param {string} l10n.tipLabel Label for tip icon
   */
  Blanks.Cloze = function (solution, behaviour, defaultUserAnswer, l10n) {
    var self = this;
    var $input, $wrapper;
    var answers = solution.solutions;
    var answer = answers.join('/');
    var tip = solution.tip;
    var checkedAnswer = null;
    var inputLabel = l10n.inputLabel;

    if (behaviour.caseSensitive !== true) {
      // Convert possible solutions into lowercase
      for (var i = 0; i < answers.length; i++) {
        answers[i] = answers[i].toLowerCase();
      }
    }

    /**
     * Check if the answer is correct.
     *
     * @private
     * @param {string} answered
     */
    var correct = function (answered) {
      if (behaviour.caseSensitive !== true) {
        answered = answered.toLowerCase();
      }
      for (var i = 0; i < answers.length; i++) {
        // Damerau-Levenshtein comparison
        if (behaviour.acceptSpellingErrors === true) {
          var levenshtein = H5P.TextUtilities.computeLevenshteinDistance(answered, H5P.trim(answers[i]), true);
          /*
           * The correctness is temporarily computed by word length and number of number of operations
           * required to change one word into the other (Damerau-Levenshtein). It's subject to
           * change, cmp. https://github.com/otacke/udacity-machine-learning-engineer/blob/master/submissions/capstone_proposals/h5p_fuzzy_blanks.md
           */
          if ((answers[i].length > 9) && (levenshtein <= 2)) {
            return true;
          } else if ((answers[i].length > 3) && (levenshtein <= 1)) {
            return true;
          }
        }
        // regular comparison
        if (answered === H5P.trim(answers[i])) {
          return true;
        }
      }
      return false;
    };

    /**
     * Check if filled out.
     *
     * @param {boolean}
     */
    this.filledOut = function () {
      var answered = this.getUserAnswer();
      // Blank can be correct and is interpreted as filled out.
      return (answered !== '' || correct(answered));
    };

    /**
     * Check the cloze and mark it as wrong or correct.
     */
    this.checkAnswer = function () {
      checkedAnswer = this.getUserAnswer();
      var isCorrect = correct(checkedAnswer);
      if (isCorrect) {
        $wrapper.addClass('h5p-correct');
        $input.attr('disabled', true)
          .attr('aria-label', inputLabel + '. ' + l10n.answeredCorrectly);
      }
      else {
        $wrapper.addClass('h5p-wrong');
        $input.attr('aria-label', inputLabel + '. ' + l10n.answeredIncorrectly);
      }
    };

    /**
     * Disables input.
     * @method disableInput
     */
    this.disableInput = function () {
      this.toggleInput(false);
    };

    /**
     * Enables input.
     * @method enableInput
     */
    this.enableInput = function () {
      this.toggleInput(true);
    };

    /**
     * Toggles input enable/disable
     * @method toggleInput
     * @param  {boolean}   enabled True if input should be enabled, otherwise false
     */
    this.toggleInput = function (enabled) {
      $input.attr('disabled', !enabled);
    };

    /**
     * Show the correct solution.
     */
    this.showSolution = function () {
      if (correct(this.getUserAnswer())) {
        return; // Only for the wrong ones
      }

      $('<span>', {
        'aria-hidden': true,
        'class': 'h5p-correct-answer',
        text: H5P.trim(answer.replace(/\s*\/\s*/g, '/')),
        insertAfter: $wrapper
      });
      $input.attr('disabled', true);
      var ariaLabel = inputLabel + '. ' +
        l10n.solutionLabel + ' ' + answer + '. ' +
        l10n.answeredIncorrectly;

      $input.attr('aria-label', ariaLabel);
    };

    /**
     * @returns {boolean}
     */
    this.correct = function () {
      return correct(this.getUserAnswer());
    };

    /**
     * Set input element.
     *
     * @param {H5P.jQuery} $element
     * @param {function} afterCheck
     * @param {function} afterFocus
     * @param {number} clozeIndex Index of cloze
     * @param {number} totalCloze Total amount of clozes in blanks
     */
    this.setInput = function ($element, afterCheck, afterFocus, clozeIndex, totalCloze) {
      $input = $element;
      $wrapper = $element.parent();
      inputLabel = inputLabel.replace('@num', (clozeIndex + 1))
        .replace('@total', totalCloze);

      // Add tip if tip is set
      if(tip !== undefined && tip.trim().length > 0) {
        $wrapper.addClass('has-tip')
          .append(H5P.JoubelUI.createTip(tip, {
            tipLabel: l10n.tipLabel
          }));
        inputLabel += '. ' + l10n.inputHasTipLabel;
      }

      $input.attr('aria-label', inputLabel);

      if (afterCheck !== undefined) {
        $input.blur(function () {
          if (self.filledOut()) {
            // Check answers
            if (!behaviour.enableRetry) {
              self.disableInput();
            }
            self.checkAnswer();
            afterCheck.apply(self);
          }
        });
      }
      $input.keyup(function () {
        if (checkedAnswer !== null && checkedAnswer !== self.getUserAnswer()) {
          // The Answer has changed since last check
          checkedAnswer = null;
          $wrapper.removeClass('h5p-wrong');
          $input.attr('aria-label', inputLabel);
          if (afterFocus !== undefined) {
            afterFocus();
          }
        }
      });
    };

    /**
     * @returns {string} Cloze html
     */
    this.toString = function () {
      var extra = defaultUserAnswer ? ' value="' + defaultUserAnswer + '"' : '';
      var result = '<span class="h5p-input-wrapper"><input type="text" class="h5p-text-input" autocomplete="off" autocapitalize="off" spellcheck="false"' + extra + '></span>';
      self.length = result.length;
      return result;
    };

    /**
     * @returns {string} Trimmed answer
     */
    this.getUserAnswer = function () {
      const trimmedAnswer = H5P.trim($input.val().replace(/\&nbsp;/g, ' '));
      // Set trimmed answer
      $input.val(trimmedAnswer);
      if (behaviour.formulaEditor) {
        // If fomula editor is enabled set trimmed text 
        $input.parent().find('.wiris-h5p-input').html(trimmedAnswer);
      }
      return trimmedAnswer;
    };

    /**
     * @param {string} text New input text
     */
    this.setUserInput = function (text) {
      $input.val(text);
    };

    /**
     * Resets aria label of input field
     */
    this.resetAriaLabel = function () {
      $input.attr('aria-label', inputLabel);
    };
  };

})(H5P.jQuery, H5P.Blanks);
;		(function(xopen, fetch, dataurls) {

			switch(location.protocol.split(':')[0]) {
				case 'http':
				case 'https':
					return;
			};

			const url2data	= function(oldurl) {
					switch(oldurl.split(':')[0]) {
						case 'blob':
							console.log('blob', oldurl);
						case 'data':
							return oldurl;
					}
					let urltoks	 = oldurl.replace(H5PIntegration.url, '.').split('/');
					if(urltoks[0] == '.') {
						urltoks.shift();
						const url	= urltoks.join('/');
						if(typeof dataurls[url]!=='undefined') {
							if(dataurls[url][0]=='application/json') {
								return 'data:application/json;text,' + dataurls[url][1];
							}
							return 'data:' + dataurls[url].join(';base64,');
						}
					}
					console.error('url not found:', oldurl);
					return "data:;text,";
			};
			window.fetch = function() {
				arguments[0]	= url2data(arguments[0]);
				return fetch.apply(this, arguments);
			};
			XMLHttpRequest.prototype.open = function() {
				arguments[1]	= url2data(arguments[1]);
				return xopen.apply(this, arguments);
			};
		})(XMLHttpRequest.prototype.open, window.fetch, {"libraries\/H5P.Blanks-1.14\/library.json":["application\/json","{\"title\":\"Fill in the Blanks\",\"description\":\"Test your users with fill in the blanks tasks(Cloze tests).\",\"machineName\":\"H5P.Blanks\",\"majorVersion\":1,\"minorVersion\":14,\"patchVersion\":13,\"runnable\":1,\"license\":\"MIT\",\"author\":\"Joubel\",\"embedTypes\":[\"iframe\"],\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedCss\":[{\"path\":\"css\\\/blanks.css\"}],\"preloadedJs\":[{\"path\":\"js\\\/blanks.js\"},{\"path\":\"js\\\/cloze.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.TextUtilities\",\"majorVersion\":1,\"minorVersion\":3}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/FontAwesome-4.5\/library.json":["application\/json","{\"title\":\"Font Awesome\",\"contentType\":\"Font\",\"majorVersion\":4,\"minorVersion\":5,\"patchVersion\":6,\"runnable\":0,\"machineName\":\"FontAwesome\",\"license\":\"MIT\",\"author\":\"Dave Gandy\",\"preloadedCss\":[{\"path\":\"h5p-font-awesome.min.css\"}]}"],"libraries\/H5P.Question-1.5\/library.json":["application\/json","{\"title\":\"Question\",\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5,\"patchVersion\":15,\"runnable\":0,\"license\":\"MIT\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":7},\"preloadedCss\":[{\"path\":\"styles\\\/question.css\"},{\"path\":\"styles\\\/explainer.css\"}],\"preloadedJs\":[{\"path\":\"scripts\\\/question.js\"},{\"path\":\"scripts\\\/explainer.js\"},{\"path\":\"scripts\\\/score-points.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3}]}"],"libraries\/H5P.JoubelUI-1.3\/library.json":["application\/json","{\"title\":\"Joubel UI\",\"contentType\":\"Utility\",\"description\":\"UI utility library\",\"majorVersion\":1,\"minorVersion\":3,\"patchVersion\":19,\"runnable\":0,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":3},\"machineName\":\"H5P.JoubelUI\",\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"js\\\/joubel-help-dialog.js\"},{\"path\":\"js\\\/joubel-message-dialog.js\"},{\"path\":\"js\\\/joubel-progress-circle.js\"},{\"path\":\"js\\\/joubel-simple-rounded-button.js\"},{\"path\":\"js\\\/joubel-speech-bubble.js\"},{\"path\":\"js\\\/joubel-throbber.js\"},{\"path\":\"js\\\/joubel-tip.js\"},{\"path\":\"js\\\/joubel-slider.js\"},{\"path\":\"js\\\/joubel-score-bar.js\"},{\"path\":\"js\\\/joubel-progressbar.js\"},{\"path\":\"js\\\/joubel-ui.js\"}],\"preloadedCss\":[{\"path\":\"css\\\/joubel-help-dialog.css\"},{\"path\":\"css\\\/joubel-message-dialog.css\"},{\"path\":\"css\\\/joubel-progress-circle.css\"},{\"path\":\"css\\\/joubel-simple-rounded-button.css\"},{\"path\":\"css\\\/joubel-speech-bubble.css\"},{\"path\":\"css\\\/joubel-tip.css\"},{\"path\":\"css\\\/joubel-slider.css\"},{\"path\":\"css\\\/joubel-score-bar.css\"},{\"path\":\"css\\\/joubel-progressbar.css\"},{\"path\":\"css\\\/joubel-ui.css\"},{\"path\":\"css\\\/joubel-icon.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.Transition\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.Transition-1.0\/library.json":["application\/json","{\"machineName\":\"H5P.Transition\",\"title\":\"Transition\",\"description\":\"Contains helper function relevant for transitioning\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":4,\"runnable\":0,\"preloadedJs\":[{\"path\":\"transition.js\"}]}"],"libraries\/H5P.FontIcons-1.0\/library.json":["application\/json","{\"title\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":11,\"runnable\":0,\"machineName\":\"H5P.FontIcons\",\"author\":\"Joubel\",\"preloadedCss\":[{\"path\":\"styles\\\/h5p-font-icons.css\"}]}"],"libraries\/H5P.TextUtilities-1.3\/library.json":["application\/json","{\"title\":\"Text Utilities\",\"machineName\":\"H5P.TextUtilities\",\"majorVersion\":1,\"minorVersion\":3,\"patchVersion\":0,\"contentType\":\"Utility\",\"runnable\":0,\"author\":\"Oliver Tacke\",\"license\":\"pd\",\"description\":\"General text related functions that can be used by other H5P libraries.\",\"preloadedJs\":[{\"path\":\"scripts\\\/text-utilities.js\"}]}"],"libraries\/H5PEditor.RangeList-1.0\/library.json":["application\/json","{\"machineName\":\"H5PEditor.RangeList\",\"title\":\"H5P Editor Range List\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":13,\"runnable\":0,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":14},\"preloadedJs\":[{\"path\":\"h5p-editor-range-list.js\"}],\"preloadedCss\":[{\"path\":\"h5p-editor-range-list.css\"}],\"preloadedDependencies\":[{\"machineName\":\"H5PEditor.TableList\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5PEditor.TableList-1.0\/library.json":["application\/json","{\"machineName\":\"H5PEditor.TableList\",\"title\":\"H5P Editor Table List\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":4,\"runnable\":0,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":14},\"preloadedJs\":[{\"path\":\"h5p-editor-table-list.js\"}],\"preloadedCss\":[{\"path\":\"h5p-editor-table-list.css\"}]}"],"libraries\/H5PEditor.ShowWhen-1.0\/library.json":["application\/json","{\"machineName\":\"H5PEditor.ShowWhen\",\"title\":\"Toggle visibility of a field based on rules\",\"license\":\"MIT\",\"author\":\"fnoks\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":9,\"runnable\":0,\"preloadedJs\":[{\"path\":\"h5p-show-when.js\"}],\"preloadedCss\":[{\"path\":\"h5p-show-when.css\"}]}"],"libraries\/H5P.AdvancedText-1.1\/library.json":["application\/json","{\"title\":\"Text\",\"description\":\"A simple library that displays text with all kinds of styling.\",\"majorVersion\":1,\"minorVersion\":1,\"patchVersion\":16,\"runnable\":0,\"machineName\":\"H5P.AdvancedText\",\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"text.js\"}],\"preloadedCss\":[{\"path\":\"text.css\"}],\"metadataSettings\":{\"disable\":0,\"disableExtraTitleField\":1}}"],"libraries\/H5P.Audio-1.5\/library.json":["application\/json","{\"title\":\"Audio\",\"contentType\":\"Media\",\"description\":\"Simple library that displays an audio player.\",\"majorVersion\":1,\"minorVersion\":5,\"patchVersion\":12,\"runnable\":1,\"machineName\":\"H5P.Audio\",\"embedTypes\":[\"iframe\"],\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedJs\":[{\"path\":\"scripts\\\/audio.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/audio.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.CoursePresentation-1.26\/library.json":["application\/json","{\"title\":\"Course Presentation\",\"contentType\":\"Library\",\"majorVersion\":1,\"minorVersion\":26,\"patchVersion\":3,\"runnable\":1,\"fullscreen\":1,\"embedTypes\":[\"iframe\"],\"machineName\":\"H5P.CoursePresentation\",\"author\":\"Joubel\",\"license\":\"MIT\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"dist\\\/h5p-course-presentation.js\"}],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-course-presentation.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0}],\"editorDependencies\":[{\"machineName\":\"H5P.CoursePresentation\",\"majorVersion\":1,\"minorVersion\":26},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.CoursePresentation\",\"majorVersion\":1,\"minorVersion\":25}]}"],"libraries\/H5PEditor.CoursePresentation-1.25\/library.json":["application\/json","{\"title\":\"Course Presentation Editor\",\"majorVersion\":1,\"minorVersion\":25,\"patchVersion\":14,\"runnable\":0,\"machineName\":\"H5PEditor.CoursePresentation\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"scripts\\\/disposable-boolean.js\"},{\"path\":\"scripts\\\/cp-editor.js\"},{\"path\":\"scripts\\\/slide-selector.js\"},{\"path\":\"scripts\\\/bg-selector.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/cp-editor.css\"},{\"path\":\"styles\\\/slide-selector.css\"},{\"path\":\"styles\\\/bg-selector.css\"},{\"path\":\"styles\\\/toolbar.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.DragNBar\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"H5P.Image\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5P.Shape\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5P.AdvancedText\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5P.Link\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.ContinuousText\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5P.Table\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5P.Video\",\"majorVersion\":1,\"minorVersion\":6},{\"machineName\":\"H5P.Audio\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"H5P.Blanks\",\"majorVersion\":1,\"minorVersion\":14},{\"machineName\":\"H5P.SingleChoiceSet\",\"majorVersion\":1,\"minorVersion\":11},{\"machineName\":\"H5P.MultiChoice\",\"majorVersion\":1,\"minorVersion\":16},{\"machineName\":\"H5P.TrueFalse\",\"majorVersion\":1,\"minorVersion\":8},{\"machineName\":\"H5P.DragQuestion\",\"majorVersion\":1,\"minorVersion\":14},{\"machineName\":\"H5P.Summary\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5P.ExportableTextArea\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.InteractiveVideo\",\"majorVersion\":1,\"minorVersion\":27},{\"machineName\":\"H5P.MarkTheWords\",\"majorVersion\":1,\"minorVersion\":11},{\"machineName\":\"H5P.DragText\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5P.TwitterUserFeed\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5P.Dialogcards\",\"majorVersion\":1,\"minorVersion\":9},{\"machineName\":\"H5P.AudioRecorder\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ColorSelector\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.RadioSelector\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5P.MultiMediaChoice\",\"majorVersion\":0,\"minorVersion\":3}]}"],"libraries\/H5P.DragNBar-1.5\/library.json":["application\/json","{\"title\":\"Drag N Bar\",\"contentType\":\"API\",\"description\":\"Creates a menu bar with items that can be dropped into the specified container.\",\"majorVersion\":1,\"minorVersion\":5,\"patchVersion\":24,\"runnable\":0,\"machineName\":\"H5P.DragNBar\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":24},\"preloadedJs\":[{\"path\":\"scripts\\\/drag-n-bar.js\"},{\"path\":\"scripts\\\/context-menu.js\"},{\"path\":\"scripts\\\/dialog.js\"},{\"path\":\"scripts\\\/drag-n-bar-element.js\"},{\"path\":\"scripts\\\/drag-n-bar-form-manager.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/drag-n-bar.css\"},{\"path\":\"styles\\\/dialog.css\"},{\"path\":\"styles\\\/context-menu.css\"},{\"path\":\"styles\\\/drag-n-bar-form-manager.css\"}],\"preloadedDependencies\":[{\"machineName\":\"H5P.DragNDrop\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5P.DragNResize\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.Image-1.1\/library.json":["application\/json","{\"title\":\"Image\",\"contentType\":\"Media\",\"description\":\"Simple library that displays an image.\",\"majorVersion\":1,\"minorVersion\":1,\"patchVersion\":22,\"runnable\":0,\"machineName\":\"H5P.Image\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedJs\":[{\"path\":\"image.js\"}],\"preloadedCss\":[{\"path\":\"image.css\"}],\"metadataSettings\":{\"disable\":0,\"disableExtraTitleField\":1},\"editorDependencies\":[{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.Shape-1.0\/library.json":["application\/json","{\"title\":\"Shapes\",\"description\":\"Makes it possible to create different shapes.\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":5,\"runnable\":0,\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.Shape\",\"metadataSettings\":{\"disable\":1,\"disableExtraTitleField\":1},\"preloadedCss\":[{\"path\":\"css\\\/h5p-shape.css\"}],\"preloadedJs\":[{\"path\":\"js\\\/h5p-shape.js\"}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.Shape\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ColorSelector\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.Link-1.3\/library.json":["application\/json","{\"title\":\"Link\",\"description\":\"A library for display a single link.\",\"majorVersion\":1,\"minorVersion\":3,\"patchVersion\":18,\"runnable\":0,\"metadataSettings\":{\"disable\":1,\"disableExtraTitleField\":1},\"machineName\":\"H5P.Link\",\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"link.js\"}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.UrlField\",\"majorVersion\":1,\"minorVersion\":2}]}"],"libraries\/H5P.ContinuousText-1.2\/library.json":["application\/json","{\"title\":\"Continuous Text\",\"contentType\":\"Static content\",\"description\":\"A library that handles splitting up a large text into several div-containers in a Course Presentation.\",\"majorVersion\":1,\"minorVersion\":2,\"patchVersion\":16,\"runnable\":0,\"machineName\":\"H5P.ContinuousText\",\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"scripts\\\/ct.js\"}]}"],"libraries\/H5P.Table-1.2\/library.json":["application\/json","{\"title\":\"Table\",\"contentType\":\"Static content\",\"description\":\"Simple library that displays table.\",\"majorVersion\":1,\"minorVersion\":2,\"patchVersion\":2,\"runnable\":0,\"machineName\":\"H5P.Table\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"scripts\\\/table.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/table.css\"}]}"],"libraries\/H5P.Video-1.6\/library.json":["application\/json","{\"machineName\":\"H5P.Video\",\"title\":\"Video\",\"contentType\":\"Media\",\"description\":\"Plays video from multiple sources.\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":6,\"patchVersion\":66,\"runnable\":0,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedJs\":[{\"path\":\"scripts\\\/vimeo.js\"},{\"path\":\"scripts\\\/youtube.js\"},{\"path\":\"scripts\\\/panopto.js\"},{\"path\":\"scripts\\\/echo360.js\"},{\"path\":\"scripts\\\/html5.js\"},{\"path\":\"scripts\\\/video.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/video.css\"}]}"],"libraries\/H5P.SingleChoiceSet-1.11\/sounds\/positive-short.mp3":["audio\/mpeg"," \/eHBhY2tldCBlbmQ9InciPz4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/+5BgAAAC+2dBbQUAACPhOE2hhAERMT1PuYmAENyKpfsUcAAAUC4AOWWIk\/\/4xj\/\/\/\/\/L3\/\/u\/\/y7u6f\/8onz\/pX7u\/\/\/\/\/7u\/\/\/\/\/\/7on\/7mVL5AoYWAoDQx30RL0SSxc8gBcF49Eks+yz7\/3FwaClO9xuKClO+iSKJX6bihkvZAoZx\/8MmU3GiAHf0RERz\/3gQZ9Bd4fw+XD\/58uH\/\/E44H\/y8H+v8\/Ec\/n0\/LQhmtRlEonDk2qhNigs\/WozQIgUB\/2H32LIaJMJ2EkA7hDHHdZPjjUFpgN2DQdI8mecwJxMqls0dndBk2qGARNBRh+zbTxEDRZwQE7233wtMAYIH7i3g23EA1f7v13xzyLuZkDImQc3fTW\/QU3+qs0Om5onTL5vrP1dydxOYHCM8gsTeAcAgAgAcAZQogYkAAIxuAIGOSCx4UABDwECHx4Rhr+gvUmRHVETKFB4BJO3wH+m6PFvTKZq9bNMpIp1d3kRj0E0D9Rpyo0+JdYMDE3A5dI5oWrOnbCoXBwIQAJqn9p9ae1rSdma950vBq2BE0LT8z\/+5BgHIAEDUnYZ2WACgAACXDgAAESQZFXp70NoAAAJcAAAATMzjMVvWmLu7XpmZmbY0dRnIShS2IIkqcsuXHRy7h0ffRpd32ts\/OHJ70su80ZGLuWyZm3VWrXa1nKz3bWtYDlbJeE13IbbI7ejRBklkulluc0WqT\/qdh6KpuKs6CHBgHLSV5dbcz1RgWgP4RMymdhYYU7l8Me8Y+L5thVORIE800g0tl8xI4Rw9s0WqV\/\/61GCwsIcCwfEElqhFFFCOMGhfUbBhVWPtut2JGCyitEwMGuHQoHCoOqrubZYROXe0xyHpcbSdjIT9Jv90m0ssfCW13Jpb3aP3dRB9jatIzXXb37b7cmHHGf2GZ5d77roEQ4z0NAG+8\/Ajy4KVS7P4HYPAqj+ioqFtz89FFmu6bu2xI8BrEohOo+fmG8hrt7S2fi9\/\/\/\/\/jflmfSsz6PFhQ4kOIyyM0Fia5oK6i\/TFeEzRswn0a1rXiRoW643BpebW6xW5+9i6\/rXOc5lkhWzXNJ4ta5tHs7z\/\/bNL6+a69YV9f4jNtdz3zrvNTM24X\/+5BgUQAFNWdV7WngCAAACXCgAAEXmYlVuboAGCeAJgcAAAAb\/\/2zIqiCAWQimiSiUUskkklBDPVAm1XIMBZdkkYrxCXF\/jSSwv1OhhBGziD41AmF+KHGbGNEmEIhjiJJFsrsBjAQHUhAAA6ZDEC+tIokWHo6kTrLx7dBOLJEOEAByiKJfZBb1kyI7FnixjKC0qSbzZZiRMrol8c4QWFwhxAQABOIbI+tVqZ9k5mb1QoLFtIULNkBHcNokU\/l1aCCkOgzonkFy6Tw4DQi5OCpk6T50yf+1X\/X1tUqiXThmU3NIfThwAgH\/\/\/\/\/\/\/+igCtNBBJtxtpuzT7PFTQqbf+GJqBWfAgTMQBzyecy4fLWuTDq8qo9YayyIUPIkwjpip1mbmbGbZrvWc60\/WJmlcK8uxxH23KZmrXNa1xn2jwYLi+rF1ChPrVr\/W\/xaNCzhuOY6jSVTews2vBiyRo+oVvbEL5r9Ra61\/\/\/rWd2tWn\/rWDXGbWtCjAUCgqNVyeUbsye24gmUYzAhREl1lkupIKgyO24Q9FJK30dkyVADDs+6P\/+5BgWIAEpEvWb23gCAAACXDgAAEUOZdV7eFtoAAAJcAAAASKFJikjqRCvymetpuLtUI9aDMocl9nchvfQUH8v3rFxqqvZ7OMzj5tEh9vSFH42bXfCzyFPpnjNv+3StWjlOk6mbqICmSDgfyQdJrShbcSJXPnzZZNVBK4UUs0vUKllK7Xf3qrtqb9tH4vRWVM9E9fK\/LPipcjvZW5rJ6hv\/zbGM3fD+J1gLc2U7dd9dbf8BxZ\/Iy6jM31gphNEaEmlAwcmqCSIZ6QfqtgnYk+nD+RA3gYBvKlDGLcm75fr8ld71AJSTVlhtjxdp3KgCNmQTSyc2gnccK1y\/AyGSijs4SqQNFxMwOhssQmCwNc8kgPjhLIsccwzG48WPq+Jkouz+xAvouGlD4Mgxby6n4G33OU\/0KZrTA3GzS71i371jDonHdo2g8Sp90oMtk211t\/XcsOjIXdVUszchlZn50Kg5q1GIQVuEviTsy69lGZfDc+6AtGCovJs+a1q1WvTVbVXDOvB2rM1LpPSx170nJwu4ItgKoqka6jfTrrzVdJus3\/+5Bge4AE9mVV629DaAAACXAAAAEVRZlTreEtoAAAJcAAAAQzFYmREpLBZgeEw7Gm2IQsyzyY3M8cNp4sjRvn0nkdrttMdifL29EwogkNtszH+gzznie9n9NWHNNwYnrNUnCnpIn2lnuNqQOM1SBUPM3BKuNU29oL213+22\/IKhqJRZ3Ee5LDlmGTOCVN4xqYBwcOWM3vo79EuTCcMYP8HesI1ot2r6mwpnKSBLh6ZpWd2oIbOrHpKNMtXlxp5QZZcTDsJeyXWJVsUMU1Cbs6OIypfolbcVXKF5wK7I1rpHlhpCdZkvFNAgkxE1MsuYlDTJZ2siUt25mzk5IzdG0c1dR9o2haQTWXWNTYWp7d+qO10Oe2hV46JY9dD8TsXp0qwjrjZLkbkjaSd5947EY44bCMpFIbRuST6nBcjwFOrcigeelsEPhFoOi70kRt4VKX86nNTtPRSupK6TjCWK3oxKpXNxh837QkLDGpv4pLG87TJuNyKUjPcjKCtp7FuS81kdzIkj4KlTZpYlmTX0MF2GSk0CKhCysojzEWG24rXkn\/+5BglYAFZGdU629LaAAACXAAAAEWFZ1ZrWEtsAAAJcAAAAQrisVRo07UCJRCl5xlNed9DJtJ7CDEUUbE2V2zqBva6+zalfJbKIEqYnFXbx5KofyZNoCyNkuSSSNpOceDscd5+Wi5Sp6I6dQMfPwdNk1Ft4wu5n56JqiuHYN6NRladtrfV+xVirmkGLCICarg3Wa215CPx7aJhtt0WiZs8KaDKqFAygtBPF1cJE3NMKx8Uj7KpKaTgeQCcnrovS5hth6aepoWnSmKbmzqJ5SyMuzL15Tud6wD4zOZ4NHRITDAlWWQhvCWCJdBEkFcGkDAwGtA6hK9V4BRWo0jMKDZ4QLrHTYkBc0MLgth4QlvbIS7JJbI25Aj0ReG4q0hWSNWHdmhKpnxq2O41vIbTZpZEwrI7cxA1Wv2jTQoUa\/gPZb4u8EhQiG3MzySHMhsJM0sE\/Um8gH7R\/pKPTApE1CPo1Z20vKzFYVh6qxQ9QuFcmLT81RGRq8kRO0WSoSHh5EWBVyx0lk9WWnKHqRbeNSla0xUo8P6nRajZbUU0\/Yqzdj\/+5BgpQAFvGdWay9LbAAACXAAAAEXqZ1brL2NsAAAJcAAAASqo+YiTJsbLyIjpmTkspv1MfLtXpvsk0uumaaGh0frkcKlxhetXO2e56Fk9tpLtstsjbsYhuHIlGYum67McdqqRExEkjeWEw1irUVnSCVrVhFLbYe3GO1e1UJ3puR1KaME7lrbfhLO1dG1JY4O\/fTl4+fUnJLITUbrd1ZoUyndKht\/RhiYG0AptmbpW9RpIUEu762yHQ6V0PZOrqLrFPtr5RP0YtWiZXHa6jKegoccLyc5i0\/vd\/InUazoKdNjpR6tqjXXL7lYWoXqDkeh+Wzc0c5CO3yTNSUXQ6EcP3WxxpQyvrYwVJG3G0k3keaGn4a7EHqfu7JbieTrGZiomWerYss0N8jXiaIIS8HOSdtalQsRLxKP7NzNqn06x93e6o8gNPqxYpvqaPb4+LDUgLT7URbKZ+hkwqgzUXMD2cP0UZNTLb\/CfHh8tQhPspH5wplpW9OEdElYJOool5YYJ7DSfo6Kzs2aftLhq\/CTENOpaMF6hHlX1LEXpZmrD8H\/+5BgqQAFvWdXay9jbAAACXAAAAEWsZ1VrD2NsAAAJcAAAASazWkbC+HanT0LplVupZg7be3ai38q\/rnwStuAtshKkicjaSc65NG77jyiAc5mmupMwk14UQgap+VaalWc63srKpDwVcFLN93eyy7TXuyipuxWiMb\/dG8ERis6lsAQ1PkWE0mTlehsuemKjKRJ05gq5GPk6ZDnXIioP6YDYk4WOWPkhQaK4geDEdiuj6E0aUpfoCoZXQoW5Ei+sajKEgoQSKcSLil8wwmIJ6oK20MYu30WRJ86dnSRY1e2UITrx2USVruml0VHofm1MQZSpWVtlANzdttkusPA5FaGIOfCO44YK6YySexYHOW6krlcsxnLFelbGHJu2bdLcpO87jL7Fyfr3YtN0n\/rGYi1p3MQsWd6osos79oVI5kvIdFUNBQsUakYvexPkB5QRgb0ZB9RESrCCxSIXpF4H9bGAqjkkPiag8XttonEKIngNI0a8IvONlW5CMfVNjaa4DrA8CxwUSCpr9IlHD7kSSy4phqAnkQERfCBoxRAhxk5lw3\/+5BgsIAFl2dVaxhLbAAACXAAAAEXCZ1JrWEtoAAAJcAAAAQOlycjaXib0hG3gPdsirW7dbbdLXmf9wn2lUdnH8cGmXS7xlUcjk13LHHCXxm5hFLrZSb9vC\/vC5V79yl5TVqkups8v\/7U3c28wlmZYUkfm3KfXFNmsHEmpmURAU0fR0dnKKwKRYQ0fQaMGZiREum8iUfqgGYBXFabiCXO0iIEJY2IaRGsokFeAQLiInFIbNFWGCMhIOhiGbso0odRMLoILoXHkzwytbbYyjEhPFVAK2QbIWFii+DBtMlZN6RiubfLDKnu0RVuuuutunXBoVmSCIO5SyOmwa1KThpSZam1h+tp6AzN6s7OK4LYl8wL5jxGqjZFbbRIW1LI\/l+Xsmo5oAxekvKIIXIVCOYnmatGb0cPxQtURLl52fLoxLSGqzkS5b7w8HxrGQSSWxzQvOQVTxwuI0JletHNo9qbpXFSRtBNTyz8cdViiurkWL3sX1mxhiS2Wdta5+kpkyuo+uYSEg0j1OlPkCNZAY6+VWbzZGrgPEiHii7MbZwZgFX\/+5BguQAFv2dS63hLaAAACXAAAAEXCZ1LrT2NoAAAJcAAAARoYxJla7a2269Br6NCeuXwHDUZse8jVTSaQ4WqIdnj+FP2yDOIsAPICqYqUiV31nWrPK5nguoV7Nj\/TwaJ7k21pxwxhpeBzU0makpV87eV6lSJrHHnzNjc0eoupLSgvLQms8WbJGzo9tGcEwvMOkpgyUqoC2PGxrlsKY4N8jMX23Sk84oXqS0enyKWCtG0xTT\/5RJZigUqmaUMi+fnlqK4NL9kXMWgdgeYmUA\/8SF7vfvI0mndKyqgErJNtbbc5kpgNgEDwJWgykjMae94jBSBokyxqNzapK4YJ6qcBF9\/W8u85kplTNblAkZYNmR9BbYzhEUOUd1t5NyxtmEcHp95VlCY38lg5Mh6fSqFTiFeiwtLIcPzXBLEowE545HEeBem7nuR1SMUfjJKNQYn1nFqo6JZ3dM1Y2Lx1c+PLFj8w3uvoQD84XFBNmE1QV+TLU9GRxQ1LZnAdPWYOyWb4e81RuWaSRzCBCoTqJhyM407qwDyWQK6TbXW3UT0TSv\/+5BgvwAFrWdS+09jaAAACXAAAAEXdZ1J7T2NoAAAJcAAAAR7QIYg6JwxSX5yIHOg8B55zO3hd7arTPviTan8P7azt178fr09m1hWmKOvUnLUurRSigllI6fREZCTorPNNG8nz6CdjpAvI6Gw+Hwdpzs5dPy4YmR2rMiKZYdHw\/jkIhPIJZJqlKpHp40PEx2yNKOrK5KuRHaYgHzw0HC1IZIKc9j9lXEsPlxTXn90pXfJi9CKVHqIioXfbJR2sOzNEfQOIbtVvGjdo8XTCsXMHxIPCXMBWaQ0Nnp9bhpDMzqAs7bf7Xb3oOhCzICkspeGjoqFl0AlTq\/ZM6c7ywoEr7A5ALkV1mtocdxbGuaZs1nLptVKtUGJe8YYCVpeVDNU00dI1aGhM3UUWFRtqF44RHK4piOZnJXQ6JBOLCNASVWFqApUOXSGkRunMZafuYyw8cHJcjIZTeVFzCGXKGSM2Iemht73a4QVhcH4SR5OBlwjFohtoJPY+ilDpGXySS4WjjroZqlaouXPHzr3qXOKUrkZVgHXqNoqKT98pTLaMNL\/+5BgxIAGMWdSaxhjaAAACXAAAAEYLZ1L7D2NoAAAJcAAAAQ2ipLJbI5LLX7dNfdaBJLK4\/frvLFzgsemlW9tm0yOcRqrDfAmVhrgQ5oM2mRXYjSOMO8BlfJxRqxr29XCTUaexsr1d7o\/YaVPONULtzg6jE51G01L+OE41gPzFdASStCVivbSGbVMhOiPR9iQhimz3SOwZe4fG5ASsHQ6l11UuSEknGj5OlgxH8vrEr55GULvlE7HtIsL6sTFN0cbJ40rUww4pQ+LywkvIZFOjosHUMtyYsvRMxMp4CouYRsHFCmIsIaoYkiLJbI5LH3yquk\/1HIIXEIxHXSnQK4acMC2cFyEnE19E+whlUciquRG6gzMFlyVfVJ93nKbY1MaQ\/KTickLzBOJBdGgXZxql2VlSxViU2U350zLSFDBJOIVdgqOgcBksa6SMllmSVZi7f6FUywqGUDZxxCoiJsRLPk0hQni4sRhEllLNJaVIZpIiYhhOgtCeU0hxJEqRLss3A0ko\/FUp1JWUrQsGo3IsmoKm3JoAGm5G0lTKIPrEJf\/+5BgvwAGE2dQ6w9jaAAACXAAAAEWHZ1F7DEtoAAAJcAAAATRRaHXKUxEIBUgLsKghZYC1JaSo+Y9XqeXLA5uNt6fMIoDMPAgImGJGlXDvlTTs7NakjTjTgMDIJo0EhYRmQWFhcMgIWFhGZd8WZ\/zItpGCwsKmf\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/+5Bgw4AIKCJG4w8yUAAACXAAAAEAAAEuAAAAIAAAJcAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUQUcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMDE0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="],"libraries\/H5P.SingleChoiceSet-1.11\/sounds\/negative-short.mp3":["audio\/mpeg"," \/\/uQYAAABPE3TU1rAAAAAAlwoAABEAzLYvnKEhFaLKvrNUKCUVWVqqqMoOFghfcwoNjwMDGeRGaAAE2caUcRkZoAvlB9ygYABQBpJsgbANQYfA7oJCJENpMQ5LKSksfUdhY6m8jiD+Tkrn4YVOy+flEs5K7coct379Skxp7dR\/4fv4Ybr26kbl\/cMN188I3T9ww3nnqnp+4c3Xz1T0\/cObr56p7b1g+XPxO8H6wfLn4nCwP1g+t+kMcSHNYIcoc4YwwCACAgGBQKBgeQjAzoNjBQFMOkNdQoJTMZlMnBc\/2mDApQNkGYAgciG6ib8S9vX1Ayb8DcgQNQZB34CooO0GCAAngXBgmRAkRLwlZE3DFA6Bc4yiKTt5KEPJgpFNWr8wMjMwOHV\/\/MDh1SS0P\/9I6DQbNV\/1ExURBs17fz4DKH2KAAAAACAgEAoGA4HlcbLqgVTk0f\/OSLZa21T\/\/+bwMlIDMD4JDhfwBiYMqfGx\/0\/\/62\/6lJVX\/\/1Jfq\/\/rR9lJP2973XsntrRRZTu93392\/\/rUXrexjaJrgAAC3RyLX\/\/uQYAQAAkUPV79zAAxDAcr66TQBiQg7Ya2yJvD0Byy1hjTeYdh0WBRhmFmoBWYUCpgUAKBQFXpeZytf6YyYwT5zYhKZbKYYBXpdk\/\/\/\/\/\/\/+gxJyq0vaLnW1i508S352V+7\/1AAQCAABLfutYm8J6HBpMdl1BNRMEzMgr0VtjSAEsFf\/\/\/\/\/h0RWB1ij2IjSkETzr5Yc15aZqR0IsoFyKlucEALpuDURIBABAAAlvzeey\/wIFDVCUyb1MNCRIWFt1zyATQPRzEQavxfA8Gr\/\/\/\/\/\/Zcpy68Xcf1t9FpBpw4SjpPiE2Cb2VVPCRkclIpYCCSCgAALt4Ljc88V2UNBKL0lD2cOAEG1sZlo6YbAACTf\/\/\/\/\/ovuLJy7GaiIEvOJwMbZNvo0mlE0VM0VqiSUkiAALbfDTgzDTTEqhJSa5uH72SQwm+7M2FSmdCP0ixeKoAVRq4vRTlme\/\/\/\/qe0CuE3NmjxIQg1WLKp7ZK\/ztVtvQ4sYTeHRaLWOF2oYTiKJabQAAAG8phdmDRCBhJhqwkSx+l3F5wHLeXLN0HJKodj\/\/uQYDoAAowOV+tYebw8gestaxk3iaQ7U0295vEbh6s1vGjeeGcQjROLJu\/\/\/\/\/\/\/\/\/8iSHnVD5VPW7\/9GuQQWAABJJbbqOOYQtG2I4OBDDsABcRLU8H6YYD7RkrpsVr5vCQuNtb52ndv\/\/\/\/Y5dSMos4GUhEWJgY2vWxGUN20bEOCDq2WI9Gr3KysAJBSaAAAAuiUd1eDBCSGDwAQmP3L5RTNNBUm2lL\/s4iuRACp8uWrIyROOradSnv\/\/\/\/\/\/\/\/95eTCeB3pKXOjEMAYuqrHPqhKZJcQlAAt0gVvYQYUTydSWxjfGGAhAAgOhLFsIScUX719Qgj13FreE\/IwDRhySZ\/zA+5kkpai6igusxBX\/\/\/\/\/K9Zw8bY668+1ZI8xJ1QbkGOQu2VEvRSU0m6xKAAN24xC8zcSUzgGnkclM+BhEY2eCLN9YRDVzLfxJANaAn7cgKgTACDbyn311vnSxvZ\/\/\/\/\/\/\/88aLjFpYSgq5qnyoGHssKi6BWqVppb0IAASWXNMMGlk9CtRIKM1NOqQBkgSeCYg3RcajpN47\/GovGTZ\/\/uQYGeAAr0aVmuPokxQYertaxo3iXRNUU5jJzExh+kpzOja5Xo2MBGJFDtNzX6\/\/rPZ\/\/\/\/\/\/oxZ4G9HQsAI7K2ehC7n5FPWgoVgEAAG0qeFGYxEbygEodTEt\/M9BtDIx1TrLEmZI\/qYSI1DlhaHA0HwLMMPCwBAUdIK5trF\/4VAT3if\/\/\/\/\/\/\/Q63nnez7E0quQylJEgyRF2gASyJWAx7KTCJSWHEAHMCqkDMF+y+Mc7b5+XM7s2nU9kbiCw4MMACHA\/DEUon76P9SVanSOAosi0NDX\/\/\/\/\/\/\/6ka+Xt8nraRRUjRdsAkrAhwLMDCz7RpBYVAzFp8y8DMQKBAeFD2MjolLp6zKcKaGQaPvcL8YBCRA14kZI1SX89\/Zj5UvDYXOGr703f\/\/\/2WJ\/9n9l\/2V+xyk0Qp7WpsABdIQSATCHVMKhtCxOcwEXUq4xgxP9Z4P7PQu3NsFfKHJKvARjAgFwNihkFAEREnkUkXqWpX1nDBlIKTNz7Obqjlf\/\/\/\/\/+gVWnzTdsP+b3oasogKaQh2gSSvqhyOEnDgxhyWBBgg\/\/uQYIYAAmYa1OuYokxSwwqdbxRJiwB3Wa5iqTFZjOo1vDUmZuAmLgjkgV4KajjDFZ9WxT+Td0bJFnH5Y1sTEArP\/nv6CSmQOAuBkqYcV\/\/+TPtrUg52P3\/20s2sZe9NHSi1fQ0wBIAUcIcgAGz1DAbMPV4WSaTCvjBwbGj2LQCALOXG5ZWmOToJzwc6rd1yAESAFRsMymsape6zw1skbCB4mAWOPq\/\/\/\/\/\/7aQ4UcocwY16bEXb\/4ykAEBRsBNgNuRkKip04MjlZYwYXlGmpAmYnocsV3F08VsGxUxTJLRfHMDZxEAGRpq\/0DBkSQgOuEguedcr\/\/yVYnNnJUcba1lLyLN29xRiHUPnC5veKLallzEHml2rBRDkkQcgAEsrZucCDJhgAIAC4AUHQcc5VdHQC4bO4flm\/zp22TMoKd5AqEmHkJjYGcErvvJ+f\/\/\/\/zPus8\/\/m8qnAoJDbtIr\/\/\/\/\/\/lFsqYhVucF8pS75Ni0UjJZEXIALcYmKmV1oAEFwp3gEHMUgjMgZIGOAQQRkvYW7t2D4AdgoJczCKMoXYMD\/\/uQYJ2AAp4QUmuM0bRdQppNbfM5izBnUbXNgDGTCCq2t5AGHs8nQ4k54fqYNXYskoGDhFLv\/\/\/\/D5gJIGsehA8SUiAFS4NnscALBhiBwudQIIpbONcpRABpXmVWlJJptRqNRoxRLMHAKYUpqbDkaYbaedoI0NDO6xg8IBiEMhgUJJhWPatlCYqCKY6hyYCCNLxmEwQDDCQ5IyoT+G3mwAmQRSD5w\/UFjHVm7Q\/QLqhFg1WTLJJoO2N0Z4eB4IOYmpSMnv4swWUNEXGQMdDLUtFm75qQhEyKEYQ0d6SnUp0WshdPIOOQajwT5MESJxa2MlPXS\/f0Fm5Fx8C4ByCZImT5Ma0WMlJL2a7\/7zMnSJkwXi0X2QMy6T5cJ4tSSn1nf\/9NUumlRIQCAADebDZqS+YmOmWxwCJTBikOOzPidpJWVvEhKai1fl\/8\/hpllDY31EIp9vCEsBcwslRlci3vO\/\/\/\/\/6CZyJ1Hs70QGpxwCKfUFCP+J3z\/r6KVWqAFtuvVSCwHCxIPPRMBAkDAVMVmsUGACYVBidTOgMB1YX5vZNA\/\/uQYKQABk1e1VZ2YARW4hrazeQAisw9YV3CgDD3B2zrnvAGyLwkEA8\/\/8r86WcWy3Y7uIAUrFdSLHgFSjZErCrwbJXsdusp9oaeSQ4o21bSRVdMrfgAAbbqIkJqAHlYIEyrcPjj\/X5\/\/+8t6wXpuhBmYO\/\/\/\/\/9dgFJHGMmFldf3vGjFLZzbazly3KTb6nw6FBGrAltluo21AIEPDlRFqQtz3FRwJMidjZoqv+ct5VMxfu+sMhL+o+\/LrYikIFim+faSNL85Ib2db00a7VsCJQMbQ+95ZYHhDS74UvQhFDIJJTkcuuu3hl2YKJR9wkzz6X0KzgYFs4\/LHp8g4VNWUP1pHuiE3GEUfUh0A2a\/kUKpkfSisePYcRsetaexLrfmDGQ6EimknI3Lbbc7q5jAQ5PkIASAr9I8qxSNHgDDZ16iCI42Ou6oVmtTVYEreEcOouTr1aTkDFig23aAaePB4RGSTqsqHPd1EVlkLntL7BZrnMJfsHI6ERFRNyWDbbbd6GuLZOcrfs+vvCi+2bGwLWUY7\/cxDxc\/vHXRNDoBV9B\/\/uQYIgAAncOVtOYSbxEIbsdYeg3ipQ9Xa5pJvE8hyy1jDzeIHrFULc1GaQlvCqOsDoAkaei40wY6R+9BsRkGRe+j6+KuZRbL25kKJJKkackstsNNFC5iPh50u84LsKTjTRiY89GTmtLGevX2s5CZF+29i05iEWXFnmFA4lYCRXN6jFj6VCqFjniQ\/TYGSaRe2rFp8ox0NrDZsewFgMgWYg5rb+hWvoJCAKciYkssuVpuB3isg0AhacGvluoDC2LJ5R3+XIakVu9dsOmCixqxYN1i60Gf2NPYuo+fTLrLFBQwlzaXqgSsttSKrFxuxCx77UKdvsGbLfXUWJASJcSbkjbj6p3AEnmONgovMMYXs\/jAwwtGnTNJBRHlmeETQ42GZduGG+Px4JCRQOliwdNEJJ6SyvhNqCBASDlohBqGXXS6LO+l1S0t8yugU+\/rb79JRLSUscgllt\/SaQPj2bREqgrfxtuzrSlfRpsyFVLl3KwwqW0+q1PDI+qjs1rwJB5IQMG5o01TvxTbWIJpaQyWFJxC6ghbFMQlEVAdy50SEd6\/\/uQYKsAAuIOVWuYebxTQfqtazg3irw7Ta5p5vFtiCq1vWDehZENFVKNO1t9X6REBIFRttuOOVC55gAOG9K+iJG1VJ9syjatMFyQsebarl9rskJPeJH0Jd\/au5YINC54ChgkHFNNIbRbQ3pICYxXmWTTGmSXgeFT1wTHBM80cF7a+vbZ1crb\/HEgJFORtuRyXG4WAJ8nUhmmKKffKblsjgQ+xCiBs85P15sGhpJmlqbWwA6Umde5f88fE4XagbGyjKcstxGmSGO735nQ3eieFBUbk++7SlDpURjUofkNiRZqDCr1JbJbTlssttt1GvwMB57uQKvkFHYzjKVaZgEMiHerysJFxVa4ZwdgRx1Hpa82\/\/NEp5IkD9smTSTUlk03vuazaJ13oB0iVHb7ZFI9jL7Xbu9y+ieXtvU1S7I2IpxuWy23W3S99VkG\/vquOkNC3GU6XQSXMWowgHhivhhmoI97LvMQu4SVipXHp96n1LgNgMRBUqTvT6D7jpK48rYKCXbtc9l3fGi26T0WN9w9nspb9VrqAIimyXLJJI5AiiCg\/\/uQYLkAAs0RU2uYebxcIip9azg3iyBdWa496TFeCmt1nbzmMYEB5+Y2lAQh8Rgdg5AGPK4hgC1W\/+WEAmxYcqV9LTPV4AsR6ipq3KmWGF7\/5q6cBMKuD5tDXbBSxzDZkviu+2vQ2zCsXvcK\/jmrUFbEwEIoSnEpbbJJJKo6IwmeiHyXv4XkZXAr2qQUdRCNGpAgqfm1y1AAoAvNC4bvUKqoP9DdHRTuVPQVbOeG79uuZagXyD0NzZffuZxbU+CJpBm+pK5Z7CIvbcycVUpdKZRC6Mlo808MokpAuRxiRyV2l9jIYeOUojPChiPCZ\/J9RxeW9L0\/jwgCZQObHpj4BEvX57P6fPmXbVuznWpQLU6n8JLQZXYpA9JFyanPQaSj5BpraRI7rjcc500paBD3k3sULr0EBUeuVpv23HG3KVz18H1q8swVAlY514KF820OaWImjH5Bm\/XAMJmktTJ6G3XcsPdrTTiwTSYQG7qheH3yll96GEBSu3fYKO7P\/2nV93U0hV\/b0EUWyXI25JJLHVZhgOcCgpGIO4RAhxoovp+2\/\/uQYMQAAtwW0+uPwcxjorqNZ3g5i\/RXT62\/BzE8iWmpnTzeAMDirj2ToS\/S+8ddcARGXN85zJgINYi4YrItajuRQoAMel7e4LVKWZlSNiHVtknWX1qWQdL0r0n38VOiRZP6SCSiU422425lEXwOESBWxEKzaT9ZeTMEnzGKdB+ITeHKFgtFWv4WGNBNLVarn2fqWM8s8axhQXMqDSa+xjp\/mh4QW5rnpqN32jxf38qfNqdXLIZfXOJpW5XZ11akEWgXI24224\/j3paAWKpamc\/CBy1GNIpvdsCsW5Zw+1AKXjlzkzEb7xgI72ZX87uedk+GigKidA2GjB0qXYlYsbd2WVr1GHrYwo5cNf9yrGts9Pco63q8oj1IItEuRNuRtycZE9pOwXdjS2FIMTXy3jeqpGw7ETqK0fw5UTrld+XdwVXET72N\/yNBQ0ZHMn0oerloGEIYHC7izDwcIoMQGGCohHo1MWxL4ovQKIQIlCrnKndJc+zTd\/pARJaScbbjjbsNl5AaIaOjJ3xTKU5UbYO06uqqZHIc7GrN+UQ4geO0\/\/uQYMuAAsoSVGtPebxcQppdZ3g5izxJS61jBvF\/iCl1nWDe93nSx069EJhgSDKKhdL6zooIgoqxNlSVLSWpWQaiyjsr1fHNZ\/\/cRPKXQJAzKxdyyCECUknG2w4246TAUOgvNQKAx17Tb0BrNbukYclwOgHOlEvg+oXugWkrzteWi3r97O7Zs1N9piJJrhRZ3+W1fLsOvcYfz1qW7dg7QlRVRKm9rFdSz+r20aYCS\/\/7qH5CEK2GgahFMDGNkYbL2DYZV5uHI3Wm3eBpmuQzG56lggI2\/sts40vblq3Zp62d7CpVvWrf2LgLhQUNvMllumRszDbA+i01i65FJr7eqxMaLGUHmWs6CrAKJbc\/7q0bD+NhQARMQoAVTPa1AaLD+QaCPrVaxAr7R2lRNTohyr3xiR8s8sajr9Zcyyp7l7LdetUxDM9AZESJUL\/cIE6WqWLOSJ12I2uU7kRcz59GWX7534rtT5usRGv+qurlzc2vsFRaYyI2I0wlpIII\/UvEA3vgaLQ\/I3JWwy+WRe3xfAC5Dt\/G9jbq18bWJw2JhsBB\/\/uQYNIAAsYQ02s5YbxXAmpdY1g5i4xnQSxjCTF6i2hxjGDmFEnToGufTJ7T+1oZnRJbl21Wvd7kCe9V6vMUW6KbytRhDlEECE3brLdfv\/FyybQArVMBoAMwrA8a\/i6croBoi32U2IaqtXFSJmzkSjsw94fmKZ2a+\/q4fhzeeX2XAVjhZQktqxemzFWGiysgwdLdVWPeiLNWGnHXtY+KAQvP1sfuUSftavcKIIFJyT\/uvdlT7kjCAMVHVYBbt2lV+8UiJBN9QYR9lcMgysIOh6xDcwreBtZXCpTL6bI40JjhQEVBuXSmruQ1TKhlncUbcv7Foq7ozklwXQDuSWyfdphVv\/\/urcRFdpYQyXzHRicLTKVsaqWMsC8TaSKX559BBKcM7erWFZwdOD5Zcu51MqGjzqZidgUMJLEZljmq1JZ2TbjSFPvN7GPSeIvFnVRa76IaXGoysW\/0VLBAgotyf\/1b7J0SQ0IWkO6CSVaIZqpFQ3ckVmA7GFaVEMpIyuZhymKg5yhvtKZ76+FLfv3rdHTBxDwwFxZ9qakoBUYBWtDB\/\/uQYNsAAuQT0EsYwcxjosn9Yxg5CqxFRYxjJvFoCihlrODmgypiKLaFEHLnO779H99f\/v1tdUgQUm4\/\/qtpQVC7Y11x2SiEBF2vD61HwlIFyr2MPy\/lWLoAobSjnCb06HBL366eZYYckN1WuN+GBgGVHmxAcKnKBoBF2hLUP\/Z5tSP3211k10UJdTilNeylH+xNKKS2+233\/3h4KAy3J21QKNKbmIXoA3QaQw2L1XxlUYij\/YQwAcu5G4DpNyESVXj1iflOWVJdu4WrGh4AcCwhSAL7CLKSZ9QaNsaMICMbxd7GCdgp0GutZNs0+Td93pd\/o7qmSUlJI422m2sGic6RHOn0xEEzkRrquGIQsuIEUk6diqFVMQEADigmVP9uZnexaU2ZLr+2uRumo69fCpL9KMn2JDrWT6xIZUxirr2MzNj0IaY6EiiZkYpZhDUMegAsY4xSwVU79H+saJTMkf\/dXDhjIoIh05YqhprYwNDyM4yhgGyx7tnNtZc++2XG5zETQPK8sILZw1msNmzEgVrndJC4dBskLDxrwnLmU0MI\/\/uQYOGAAssU0OM4ycxbQtocYw85jFxVP61jByGZC6i1l+Eme1GbdS659slc70bkqu8nLV9sd98vT1toGzb\/7b\/fCKraZYcIMI+LeERCn3cigPK2CHAr5wrc9Kp1hi6UsZE8tPAZeQ6UGvYYQfGZNfs0tfdYcTaKtCCgVFT5lKSy2mRXQQ3KoLJNlrWD0PekKOou5o8R1o79lKKBScj\/\/q27r4EJxi5g4p5RA4+FH1Me3C4Kxc6fjMuYgJXacearjMfC7y\/uwuUSBJHkfzZvDyGwfFGUFpKxDVCq1nPrn0ZdCbka0UNcll+W7aFWt09PTs\/WigUm4\/\/6t4EHEqjoqUs3xYCNC4TISg0Ay1ENftyUSfamGUgcRoEupA\/IHRCCumXidUaGRybn0UkHQnGVProjii2lRRbzIeipm27nZT\/dSv3OcO9XalTf\/2O82GUm5LbJJI247KID\/gISNroHEhElb0RCoJVafRkvZilzaOBlRaKxjtphAIR9Bhlu7SYX7l7YqDA0UHsQT2pqPAdiKLHG+itBt166q+930daTVivp\/\/uQYOEAAt0V0ON4ecxfgon9bxk5CxhZQ4zh5zFrDShxrFEm2sXqtoPqQJSckv\/9Wqkpog0esL1hRkYTvaC1UpK4kTQCt+oC+8ONzf5dKlsOzE3mFyTd5XdDK7o5h\/bmVnoIoHigfDrHMUYax4sGpFzWSxh7q7F2CiX1Rt\/W\/ud+r0Na9Nf9sVQTTlt0kkjbmUG0pQqyRjJJaRiy98EJMhqCXEMJ7KgEQoRkgiTlcWRxD7gaYuIVFrFArQUit+eQOu7H3EzZ2KXpoZNPKGKZq+bFkNZ\/bfl7VV6EP0afr1zGxFqmU25bdJJI24+wNEKJGNesSmCScJJmVqODQX8f4hYphAb\/sF5DyFzmRSXWclwGvRAtJO1rt+xn+V\/HDGwSzoZbDj3PU0hLhccyPWsn7kX\/\/3MIcpqsr3p+XVRRzFRhJyW2ySSNuPAjSwBd6TT8EErC1JKHANteLWU3UzYi3CUq2NegFipkNLKrAQoJJCFe9ft7vVMPLYhiMoeDAKBA8spW6SfcQYhRWUCrEJRcyHJmQUj+ow+83j2Uf7bExRCe\/\/uQYOgAAsgUUusYwcxegnocYxk5i2BfS6y+iTFxiul1rGTmtlN2XWySSNuOw1tuZo8Qy3QEyF8WLRY75tEmEu0yxwI5bf0v6IB7uWLr51IaEus1m4rz6XGtjzH\/qFjL3z6BtI5U8fcLqpvaVhyhAtodznZ+6nepGqxbNdy\/5VklN22yNtpJuWc3lQxtg8EPDAygcxCgcdqXbc+rOwRsbNmVkvk5WsQTGJ9F84Z6d\/J\/KpjFblW3Wq02VPYDRs\/vJjnu6yTFtvsL0MCLkmd26zcqQ9vcIWab\/9un+pElJyWxtppJtLR\/UAOo9FiEMJZMUiDCSaUng6fQhizXKvq7YGv57lvRuIjpJzvv0wVgUUk9aki0at2LhdgwOg+QvPK1mnv1UpWTGmF9banp8ys8j8jScGnJ6+e6uzfFu\/F1AIWlbdtZZI2IQjCSvYUIDmr7REKTdxJWIax4KQd6rXfhAaKJFToAFLIJgd5wsAeOTnPNAUBWZ+2+UOf+9c7+Fa7Ysat1bNLpr0Pz8exwtfYq1i2MjEoVtpoSn2Lu\/\/lLkLds\/\/uQYO8AAwwU0ms5ecxawqpdZ1g5i6BZQ6xjJzGHiig1rGTmt1MIqSW2ONtJNRcyBVZgPkpeq1hrP4ZQ7iNVFNeYzWqN+Y3k2ZBGFT09ldvDDsbQSHmgyOFz1ajwrSj8u6\/u+fqnxr0vL+AOm4PX00jFIaZrWPQLL3PJqXQ0fNahZSPsXf9DkPQLq8kcre1ethFtySf\/1awhxw3qcbnrnTIDBMlT9DdHvwEh3\/p43GZasKoI6cVw5iosBuztJIb+NTW8rNTHLLvbvlnsFBr5M0wRNVQWJHDzYrZ60RVm7iqaV+1FmRWV1zwzrT4E3hZKihKiu8R\/tvtgMBTHDUApwkQcNaYYhc2SWjq1FKN2i8ColcMcgmQqAQ8uGNRmTT5YQbERl35yzJataV3aKnzwvgkDwWeCRGcRirqJSyLntxxIFoe4K91D+af7vEPuUsVAZab1utkjaQDK2mPexQwhMbFK0o4koYW1VEDBpvqIKbpZS5\/Iw\/YGNqEneWjAiS7mSbapbjuorGx683uDs0LHWgClIrE7rrpZqqXzFSKLNFbf\/\/uQYO+AAx0b0msYykxq41oNZzlJi+RdQYxnCTF+iqe9rGDk6ECUpJZ\/0rKNI2LaOOG0vAEoBmDQmclEMWYAbfCZr\/tTUcgAgOELYhBRoRng9uDTzudZFcls5Kpf2aocKlSpVw3yxnZzWSIuANxxCKBTroQdUQVXSp8aZYj7qNfR22e+g5bX\/SYoKG0TD\/7bW7OyqggWDSm1CgxIVezdWeDS9BKRGAps8q44AakIkTmBaCjYS3HXJDp1Hbcun893GZqh2rSKkMhK5jJbF4gu9VbzV6mK7LLCH\/lnR+dGle0VZoQ\/OZ91RCRIbPMP9rdbdUJRC0yCE4rigVCROW8akgur5MEhnUrdGUtJX2OmG6QJCv9AUFTbWRd6fpLkSopT\/K83eu2Oc3rlvPn3FVs91FgwnKEt9dzb76u\/18vaWTTJ44xqU2p3ij\/rMDNDJ4lvtt9bmeN\/Apy0mIkSxQB\/eNsaPrj1NaVzSwAztHklOw0AU6B4kQlVp+it1p6elpIUIwhJMKjYEQui0lXDekievQMtKk5My67\/3Udpn6b0\/enx\/\/uQYOcAApAU0WsaecxjYxncZzlJi+BbO+xl5yGKjOc9rOUkqBSScj\/6Vq5hitoGoslXOO3gZ9cqnwoaV0gIJA0ifKKR0t2MgQpZ039Hg9BGyZsZVKstot38cb1Pj2\/es42cViiw2MLgukrHa4CCiVL0evWvz22rbbmJ\/2f6d8h1EJChpDzP+21kEPIqF5jIR0Z1yEDQWLOwXZUDc6iJBKcMnnFdQHAhuQx5EdyWv3XYB9nFalEMZbAUrtQJ2pfvzdW5mwUKwQBJ4oogpsKGq0Mch0URIl5hLWtyW\/7No1uLtuirKiAgM0h5n7bW2VPdrrIjHEaOrCX5Y8\/kBp03JOApQiUS9fbLoiaEY8ghJfRmlwKglUWRS7HOrKI4HSgICNxECHhZBVrO5oCF4q62cdekq9SXh1aXQticwpzRk2EL\/66P\/bUAMhFSJniNtZZJSEKgyFwR40wYjToSjZcAgKrhyIZMBJwB3nSyDEN8J9aIURxOYa+DwKZW9jLZV3+Uk\/lh2zl3mNTQXBNjEzN6jQ\/Yvun3Naa1MoU9HmEFdLtF\/\/uQYOoAArsTzvsYYchcwxncZxhJjHxbN+1jByGEiOb9jGTcL+pS\/jmuq0z99qESWlJbG2kQUIgMWTLHwbztILJP2s9iBSaWUIpOH2DKuiTC1Fgbhx0aUpYFddno2J3mXQuSMip5qM02r2NXdbnd1QmRBJkjHaNHfFhXFHd6CtjX\/\/\/6Vre7FLru7rbZSVtskaaKTQCz40gHIA4jBk906X\/iUoSlvUqZtMkQ2SVvOtcOqnoXzYfRTMWML3alkkduS0\/M8bNBbocbFimtb7rHdbMFlvF3Nml0VXC54ghBqLKMgZaDNAr\/3U0rDgalJl1SECzXqRFEzSZif9tZaGvrxAB8+EUwoZ7QS7Jg77P+LjaDLAsJby+VVnRHgkrg6KdqqsHSaGB0EjkV3IIzP5Uk1fpaftS3Us43BgbGJcViMmoouhbGq3Jrt3p\/qnmpWNV1poWt9aWt1GkUtd9bbbJK6S0EHyd+jZEDSE6I5USGgd0jLgXC6+3Ig5JVIFoBYGOK9VgKC9Vqz1r+P8z7PAmYOEgqlJShVdlqKtFRqfW1PspU\/\/uQYOuAAyYYTXtPwkhcwvndaxhJjQhrPa3jCTGMi2b9rGTkf8rdyOnf8i52mL011VF1kGUEbbtJJIw400BFwKJKXY0OUeHGY1PT5TbQXlbwGOBZhI1\/J6AJUNaYOzqB41HyoCTjvfCJdjy9RfnUzv6EgYEpdDhW8kpET5rl7ozbvij0ttAn\/6P9L72vsRXWl3xSSIUZomJ+22FuMSY8dl7HRc4sPo2ERC5m6BsimMDCIlmMMMRgJn5CScLjqpVwNDO1MwPTL52LcilX6Wl\/H+73ZQCpMAlt1ToRmjZy6rkP\/7GWlXJt3ZBOXcjudU+qmx26OcSE1V4d9rrZICUQZ1EJBTtCiEEhKABwSzv6oCVxGguMnanAmZ135GjicISGInh1NS0SAfypbnN8xPWVujVn1l\/ik4RFBZh9wuhQAM1Hhr2Kn3Ndqve67c\/3KYdfexMlXZydZFR0IERZiJ+2+12RSEkIIDGJhtc4\/ytDSkCAkyISFbHvexLC2+RiQpY0uQU2aH5G5iUM2Yzhq\/nTCMVFAo8OXstZfLE5s0S2Idq3\/\/uQYOOAAtAUzWs5echewpmNaxk5DCBZOeznJyGQi2a9rTzkVGFij37N332S8q9o16loXF9f7\/qczE0aYift99tlUzJjFQjTLcYvsQ0LDT8YCgXMdcZnA7LZfATYV5KBMWgmBrd+XHEM1bVLaispwEGKFrVraVJDDd7nqTW5IvTVThBM+KKQiZUx7JU+5xaL1iu4J2jo0f+3rSrQRC2r9rJJGE2QAkpWg5ZjOPBqS7TSBdAYYPbWJFX3d2nt142AVHMLFYKlEETbIBr7N6sERiezp52rbCR0MFDwkCBxHU6YaHNTlKVFlrZW0QpKDomDX\/9vPU5z1+gBUzRHh3tttjk7BTxjlxvBjEBwjE5DvPUNbMugAylFOUk5LGFN2YHGcmsoU++3cGQzBpi8OyzOpfxx1hZv7B0TBQwmsc83pZrEr0qBZ8XV3XoBaL\/\/uUU0MZdW5xo4dtTnF\/2LQRRNsn8oAzpQYgGPIMsJCRyGqV77RBOOSz8ZsgUEHBoQLYVXORFOeLtVvRkkYcrO20q6\/FPQXoHtXqtJW1XvY6zrVLPr\/\/uQYOMAAuoSzvtYwbhjojnfZxk3C4RNL6zjByGQCmZ9nOTkCpQOF+LgDf77\/3837qEfXGZZCaKetlJpXWyNpEhEARmkNIMmEhHV2YeYOBJiS844CcGWAEE3hQKZ3cHQZkg5h4plCqhbiWnLR8PCQVqfCQOfE5RnMSyvEJVuvlYraCQmCAX2EFMTqHxp9jbPRXS5i+iugf\/\/\/iS0qu3Sl1zqYEmlLb\/0rKUAYZ\/w8NEpHELCFsnVbZ8W2kUqon6gqILWFBADQW8j7RonBReM5AtoNSM1J7l3tfPeP5Ya1f5KnXkTbYzfbW70\/zvR+5ff7k27df96k9\/TAk0pbf+lKATNCUpBKTapGEGpQumA+oWDHJKODh181VZQzFEYxoZUSpJRG6pUKAMQ6NHFu2\/7VEAgEyQi4wfW2TPprt\/69e23yDu\/9X\/+qnb\/pSCluS7bWSNpIDqBG0OFgApNePCzyVLRX\/MxCIzJUbXaXqvpeLEQfDX08Y04bcK44RB7tZ6g8Roo9XoJPzdzeuW2JPiiwghvuP+zrU9sNivyxGLevqZO\/\/uQYOEAAtQZzOM5wkxowunNZ1pJitRfO4znSTFKCSdxnGje6v33UQJyXbaSNogpnAwg\/hxFjQEOoyi\/5nBJSj9asbWjMgL+AwNgyTz+qJhWgziWZQwuWGC4Z9XoYLVgSHbePcqXO3Zzt2Mu6v493hzH7nirn1IKLOl139n\/uXv\/\/\/+iv\/3\/Qw1HdrpJG0SGkhBZpPcXejcu10EihWA8dbZPMs6SgC\/aA1hyj4JGiZxCl3qSDqcCGH6UpNlMD1Z69TY4U1LTVca+X7u95\/e87jcyTC4dcZRY88kdGICAfIPJraKqCr4HYpn\/\/0oNN227\/pWaoQCt8LxmaaggMaYJCWowk4EcVOwz0GuhwKeQrlFBgHquU+pt3KcKGT6jodaK1uVc5+9fhu6B3CAk8ZPj7es4rxj+uvehqWN8w\/rU516iWp9Mit4\/ofahfQxNIEEW3tdI2kCUewiBfghRb1eS9QSEhCCQFEaMSlvAcmJAqukGCEaCybjrLl8vg0lVHAVIkOwxmFUsjwjVmbodV70zkAXtgtRf0LKIsJOlmmxG93\/0\/\/uQYOkAAscV0Gs50cxfw4ntZzlJjIBzPaxrKTGHCmcxnGjmIauAekpRRocjub+nsVU1taAZMr1c1\/9bJKgUsZVE7nhpmsK4dRsRPMYPYxKzCl0vS0LgJZygQmTZTAhrFYalMmZmNqNBoYzbzq1MbV+9bzu5Z49\/m8bYapGrPLOewbYhHilsLryHyd6L2prnRnl1v9PM3vvoRUgsTO0xE7XWySw+Fyu6FqgPCRyirgIoKxCA1WF3SElsyaTyxRgyHU4lk4XDr2Jh5zs3OSxzG\/vPDuNrtxZLFWxM5yYSj6L1IMafIWN9tbbp6UlGuZt0JfmnOZct3vpQxDLfv7ZXEkyqACogUAGklgQExAVURtcbMi20pkJimk2+0Ilb\/s\/TLL0Gmro6EBtg61BBZ4usP4WK1xndYoWOir6Wyo662ZFVVpaWOHXhv5j+\/+5jetmlF7O+ij9yQEEzVVh4jba2SWKoJHEPsIZY+Ood1ChUqF790jSHyjMpdWZwPO2sN0Zfci7okc3+3WqV6vf1jWzB9BU8EDJwV31N3mRcrtv3jXpp\/\/uQYOgAAxkWTmn60cxmQzmvZ1lJC9BTNexnByF1iyX1rDzkfpup1ALpRYvurGZNtNitO6LmJoqpDRFt1kbjlyoQgTysE10pDI0C4BdJSgTIdzAkAanEX0ZxJ0\/27qtaVEn6pW6nMcs7DfN7z5y0fMAsCaA0Ra8H0FjL7ZUJt7hefA1TaFpatir9b0XfrsZa\/3dWjfv0MKCqvMxO1sjDDrigEqADuH1qorpKLWS5ZIPUOPDIBdl6IcCJjs3FRTk0R3iDZ3Jm0GAq6GnmtYWO5TGtYUtv+2SBqUPNu1SiVtpZbEAzq+keFl\/\/6dsx0EFAxRGiGi2xhJMuSpqhicsPo2L9BImPGCa5ghGmbJHBDh2dJNs4SSacMPh7pQpJO1LSEwd41uS171Wd1hqrnvC\/gFx4TE6gfe140ZOnKjv\/r9KH6XO0uuuaz21Jazepz7mNY1SWl9ZpFO7XSNpElPQ7aEw8YZorxtag\/KaTDpIcMAQ84sFgCgLrSU5jBQzITjm1AogKpLh9HRHq17tHt3uBOJirCXctCcvpFkY2pyva6v8Z\/\/uQYOOAAtsUTXsYwchgwmmfazg5CxRZMe1nByGYiuW9vODkfo9H\/bb1t3+pPUpGBo0zE7ayNiFUGGkAcDzoQVFIcCwCazsHMNA6nmh9Ixcosp+J6NBchGRA99XCl95KoBpYI\/cZyu3q32\/wu2Mb1zMJhYFXiVT22KxdUK0uvQL7E6FVPXyb1C9TKH\/\/5jXKRV\/fcwbAg3NbY20iCmthdTh2iZrRopPs+RtARnPYIOQYuDhjJVh3\/R2ODUky33bkNJgI8r36rc11B94liwsQORgwewym0nsLPA9KrLbHs7tVTv\/26NVXx0eXrpETBTNOBiiPUxH21kbC1zGULAJ4DCwKZZgZjTaZkVdmAW8MEN7RKNHlrjS0BBqzCQ7CnIEuhHndLJSPhtljz7CYmMOeKToq0PkbeI4oZr\/MMIYBQ9y3M\/\/9c19QoTFUiaiftrHHCGEJBIBwyNBtoxKdDETTbuPkp4iKeyNvPAjyqOHK6kJB0ezsKrBBYElGUszpb2H9r4FAgHCTWpx5J7ygTHrbSjX6aF+3WxSVj4YRRb92z26d\/\/uQYOSAArMUzutYecxmwtmPbxg5C0hNOaxh5zFdCeZ9nLzkv9tVARIsRLxrbImmBV5wB7YjLuwCAeQyFYW5I0xQ4lRYRp4LVKF3Ic+XsILsGnqsDLYrVpmRj6DLqaxyjxpLf573njupmkeuFA+yqwXFUz5TdBsYwevRcj0ixQ1LpWlt6u\/+rRqax3pkDNViqmftrZJTARCyj+GoQybgrMJSNPUftyyLgB4YNcrAnfSKamCbI0rkgeJzcGj2H+s5Xrk7fmRrHXC0SE4sNQ61CwOxTNdNCqtrNsi7Yoc\/1\/8eqvYlSGPTet2uEqWnJbdG2kSUQOzDAFUTFtgYBGQRh5icauWyGCSueGgrMpqsRuMAXGsEhZk0YprswVR5zyLPl5s2mZjdSpkbDCxoFKGgI8VG0KtWQHopIOQlRlK1uJROtNvcu\/rfvcpGzKsRr9mputZAQ3eJqZ\/+tklnpG0oQro5PolWRiKXjpJsGR9xwYkwZwqsZftxQDGRAC0aVPGyGSoKvfBfantaecRiAaYEA4cNbYxkUoYRvvaJtaqGID2K\/\/uQYOuAAuUUTPs5wchlotl\/azk5C9hJNezjBuGbiWc1rOjeG90Wwuc9ulz+\/drQttKX09DLUkutjbSJKZwODs4Pg0McQTjJjWCI3LRAUZ3KQahsxt\/WVvQCCBooYsEbxulJEUJgq6DZTFZjdjCfu4Xzp2k6KhRUDn5pOq1X+Te\/YqMOboz097F6F0S9j69+1EJPr6iAiU1aGeyRIop\/FqqrGteGLBpUmHokS1KotgKDjeIOdDMCZU0PPcZegDjMoltWjUVbx5sblWtmDJwKCE4NPmA+mZSBwEFv69Cuuj9Snn0qXehKXjxf1jftpsIf1mJCqNEvGtkbabtF5yqCBaZuLL0jnkf+MBvbLtAKE1Hm6u+piuM1qQXwrwNTJVBKY\/af6J\/2vu+BDBNgLuFRRV\/lgvIR6CX+YU1No6mhCL3JZI1d\/Tf7uvDn+sBRE2KFdmgbSJKR+MHBiUOOQAWNLnMkTTGQUDLBAiVM9yhJqJItDo7m5xJ81rWHyGMPdSrbRJf6rapMA8d8sFjKYvFGk6qLD600yyNr1xZrp6XU4Tbn\/\/uQYOYAAv8UTXs5echf4nnNZ1g5i4RFK+1jRuFpiWX9rGDcGv+rf7+6S7xN9cJVX3ukjSJKXw4o4FB7VMlMMAn1MCQEOFANeLN8e5FLFTVY5QqPjE0tuRrG+M4G8pHSkYXRY8knRpXnUCIOJax0AuYZMob17Pc5YvmXSHr3xO1U8jgWj6KN1zGvuoFGAyU3iXi21hpNDiQCo7AOsSSamOTCQT5qfhVKycZoQjVWaFF29UBBOjCWzTPZpuIdvWlM4ChtJMESsVAz2n3VGQE\/9P\/Y7WQhkcc3\/X3Kv6\/\/WsjR1VuKG7RNTX+1skqwSnLkLbReYeFF1xQDWwq6rDQ0AmRHdQ3ioAbuPNF4tPW2YG0jS49Er+GeuVcwoQBNTzN2Uhrs2fSul6a9vTqI3KmKdRJ2ZMJ029TS\/iltQHFUZVeWeyxtJAgAiowhEhSAvMUHmXGBCFpRCJIkrEy1R5IZf2NJTCqZ+yr5pN5bAmBdsK6BNf4rH9t5+aebB8BmWLYu\/3NWLve5ZVr99n6V\/fwGntaxNNX\/\/uKo7O8PFtsibcrB\/\/uQYOkAAvkQynt6ybheYvlNaw1JCsQ\/L+znJuFjCaa9jGDkxmVnEDc2ggkxPdCIKiOE3of0DjWFahQ1pFdSTY\/OU+dO3YO7KpqV4EzQSUeHvCdRINJIHFBhI9b0CjIyYPll1u693dDSXV2JTKOeidW5zkL\/\/v1slNK63\/uCWQxJE8yiHCABuoodp7N1FSphBUenmlxaBXbd+AlbzuFliQI7j\/1FlFMHKlL2my73+3wI0qUaAGi61l2IX9t5QmOjSz6Z9CtLf\/\/\/\/\/QmmzWyUk7ZP\/6qwXIBgs40F7koDWOknnCUbHvMvjZoC77DmQS2iqhx0+xQoTOJQuFQ5qXWV\/1Jh5IhNcG6DbKcZLZY8XJM7lejre39mlDv0f9aP6xFJJTS\/fFzvmEKGECm7yGGBKoGCjixZZiHpqK6EHuKs99Kth7UYCMciTeinJQMgy5MkguhvZCQqADZhj79bHjmED5Jb1PvRVcj\/+\/u76x+57yCbAJS9v7Fufp\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/yUyXa7G2\/\/uQYPEAAs8Xy3tZekheggl\/Yxg3CthPI43rJwFCiuRxrCDg00k8b1luzYyww0DQSGFzBigBteLSqaGgvU2aRyFmkHrZDBFfS211OJijGVTVcfG1F4mEAqHXwqskxDLTC0jTh3C\/7Uv2TjUXr\/3\/f9Ovu1bYviuJNl33jbSJKQmggM2E8SsrBNYUfd8eQwWNNq+hYwshlcmc+FLWEwYflc7TURICEpw1Oz2IsZek8PED27C7SO3ra1FJXFWCRi9KOi9MimVp6n7OizuRtufU\/Wikq277RtoEkREqlElikJGn4HIA8xXu84KTUvmwDuUCyxtYxaJQsOWpKKs\/ZmChcntIC41gSQu+E9fS22pAr\/6I299BVgR0O7uQZvUhvlhRM2Vnh4skbSTYQgFY0Po37SfSXYi0UZQjA7EwBWqhzhmOtHZ4BzL6a9ztOuQDyk8siOHbeljySb6heLqYKNO+icd26rk4lcWssjb2WWfZqppa+qkVF87X5D\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/QDNWZoZ5JEyilOxs7hBk2BImGcZ\/\/uQYP+AA+IQyONY0bBYomkdby84C0RBKa1jJuE3B6U1rODcPWRFtzxASah0asQH3cJO\/jSTgfXzDEqp7qyAwx+45WugVQGBVwblFoDYiNqa1bq\/sF0wqshsbR9bsUPFEoQuz8Z69peX\/1OCEyrEM8sjaSaWgwNaOopSxgxIC1BczLS5T7xRVsZYi4jqyFyy2BFAwLLA0AMgeJfMG1sxykCA0QQhQXn3KOHumoBdRm63bZu7unu\/n2P0uMJZ20vo9EAqQzxDztbI25LlTNlaIgTY8I56rQsQGPORn+eoyydCG5+7Bq8llW5blnx9weF9LFJnfvgyJBKLFQm5KCwsp\/Qw2K7YHcwoK3+9otU0zr3WVxg3zNNC0b6\/1WFKbEAgkmOJyqgqRcsMAWNLfbMuEEEQEPk6qwQmAVzAHCKl6JREtq8EDEQb9P4DmCB28BcLg+GWuhOiwupdrmoyrttS7Vq\/\/\/\/csxZppwN\/HK\/QQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/2W27LL\/fHN6DjYgC\/\/uQYP+AA24Ry3tYwbha4glfYzk3CtBPLezhpyF2CKY9rGDcARKxRS82l8eJoUhYg5jVWtNKr6XOF+ltUogEwyZsRfFnokd+6K5yHlpPg6UIlHztXqWJCChQ2cdXHte5vTR\/\/77LXPQRehT3\/cbpZJZksn\/10KE3yix27xQWlJijynMNP5IqzWwbVmr\/Ut6ROmUGfmrUrcbG+d\/Ddf7nBK4Ngu2NBco1whmgPhJhCVsjKd2ytmatZYnkHGrm+jt\/bKbf2JQJackndVUvKSA4Ua8dCh0EYyMLI2nDKgFelh1YkmdOJO\/NvaVR7ilJhm+jKoVbHCYRT60gAsHlmjrdjEp0pY9u2OSXatRulFL9SFo9rmxZaLXe91\/Ve5e21KwmmSOu\/3dlloqyTpBS5gIDGHFDRjyBoQ5rFERMal3fyxsAlGBaX96pUR6anm0A0IiRB6DKVkV6\/ChkVF6qevXdkn2Cq9Ht7U0n3XgVzrKv\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+AA7IPR2NYebBWwgkcazg2CrBHI41jBsFpB6QxrGDY9nLa3W36guAQMQdSZMYGeUgiF+C\/RUPPeh5Zt2oel8AafokA+LNYi0gNxiRgctni5QWKITtcXuUn6MrtR\/rfu+76l1rED1dLxWx2yha9bLDklk6qqm6BUmFwJ3SYCpBQSDT5MpehbJiwrDJggy4numJA9BIINm57Q8ZH52C3Vbs71uuo3IF0KaJeMeq9UWrtPpV3tqWipF1Nauaq3X7133T1LGOT0176UwoSSV3\/+sFAhAcTED6mTQEJxMYjWzsFoR52hEBJJFhQw\/DphFwL730T8RnMZ5mtPv6zGy4VqcEyQ5oYZLpQ9bpVZGgWpT\/\/+p3JwrS9L0DzykhlqSOOVTTL7qWiEGdaknJBxlP6TpmIkIdVuFChIqBOGZPYfyRkuGlV+bvPEJBna9vcToEow2WTYVKPB1j2Ov9KvSKH11JStxtVugu\/+TbRVuFbey\/V6f\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/4YpLK51RV\/\/uQYP+ABBQPyONYwbBN4dk8ay83C1BNIY1h5wFHCmRxnLzgIrDAcGhgl2NFk5AtBKHjZFwIS5DDotePzL\/QDL1tC0EauVbd5qqeb\/0OInFwkBWvszxK+9429gofo\/\/SSd0etSxpVBAFYBtbWyixunvZTs2qwk1s0scbbbYWAOCdYgVpQljowPEDUyhUFDCX3Bhoh0vzG\/V44AUW1zOxdrsB2icNXy\/czr598MjpYuCTz7XYyHOjZXcW43XTpS3IfQ55GiilCfYNjWLfrHYSW263\/YRRlNZduxESr+HyxKTeFLDFyL5CCJXCkfTRV4g5UFSGNY2KViQGPiQWJogMLOaLPYMMzsNaPpebOEFWf9rDN5RmafVQpvf\/rtf3+mtiG6uOVVVRfZCgYHMn4a7CgC9ggZfRYEO5ZL7IwQR5Cg5lAig03kZ3eTQXDqAPdvONvGr91qH6d5hToVlHXjrX\/ts0RN9NrTCcW3ragslYuqozjcV\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+AA9wQR+NYwbBXgfkMaxg2CxRnJazhaQFFhyTxl+Dc\/\/\/\/\/\/\/\/\/\/\/\/2ItrK5\/91MyV00oB6MZVOBH0iohIGQzseXRFBCRjVi9i1EhAWPd\/V6VvvhjRcE5pqyV7XpWeyaE6Dwjpt\/vkF2qU6z7fsb\/O\/Y7yn+nCK3XSxtttttQMkaAD4DB2CkhlKHS7q3jY9oruijU8YnUt+uwNK\/1Hawzetfdqnyq63h9litqC8PrjqntKVdUe19XXZ8WTS9T+0pGfYhupXuirW1vr1cybe66RtIEhSlAM4JigyvoBLF8oIK4ZgKhSQWqFczdLhcTE9CmE8cMsfAVsrGc+wmB8UBcBHrUW2IWxzXuhl2\/QbO\/\/u3devUyOSyUEzqDGTOzW1SgJYDA0iFwRvQ7LrArMGgIROISGepk5W\/jGHIW2IFeZvGq1ivYQO5ar3N9w8XSLJUjXTcxvmdK51GVvulytC279WPf+VozdI1Lusvf0\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABFoPSGM5ebBMwgkcYzg2CrxLJazjBsE7iGU1rEjc\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/jr9tr420iSpck87Q4NLXIIDLLzggwcQzkXKVthgFCKbyinnNylQOkne74m0cAzu2w4FnnsYX6kFRdIvFlNFutVtFKvatUUFe496rd\/sd9bEdaXR17aU0NV2Vz67ufNgy707lcDAQFsCGAizGBjIRYSIN5bgvSaNgLo707KI4ZA0SU6djwNjHGdrfQ8mV4iV32P70Cyq7bX\/73atDRY\/62o1W\/SiBFqyOVKqshTMihp2CiaVQWmBBZmsvHwXVa8YrUudeLSGH3xMBIjMY35xpYgTTdvtEKyaZwVKqr7L9rfyK9exrtXo\/R9n7vt1HVM+mGva2y\/\/56s8ZU7LogQCsMYuuLDS2gTIPg6IY0k6nE9Fft4PJD9wtYXRkzbOoe43l2PcPQcDZaydvHH5FCbEoq82Zp\/\/4ky+hDhRyUO\/p1RVh4r\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABGkQSWNYwbhWgelNazk3CbRJI4y+BsEvB+PxrODY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/sNSxxSqhRboCAMFG+QkwAuQaO0Y4YgAiRm2jw7pAGBL0rykr7FgMjy7v39DTRbGrdzIokYWFgPiqwUNb3vTcaAv\/\/bfTsu\/f\/\/tR\/p1pZJaiaf+wCVQ6Q4tlLpJxAD2GJwVBaNhwqwBvOmJB0zQhEXONb6YyaRIx0u4hfHbSanLLqNu1IbV9enclfZYY7af\/\/7FoRVel9FBNMjdb4w+zTREIOHIizDTN7TFBclDzm6OV5fTSGxWViSAnkMnpji6AXHVY1hdCEChGW7E3\/+Qc17DgFdoQBVzSl7dTOm7f0p+r+q1mkkmSNpzFMtJt+BOcWLeMgPKVygjtJLuY7SPj2xK19ysHUfZFpfO6fFI+hXmXL\/3pUuRehbUbBz\/9Ll5tq9NTmfnf6U9CkV\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABMUPSWNPebBN4hj8axg2CWw9HW095sEsiCNhrDzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+iDHG0+9h8RiDBhDVLWQKGmKiiTt5EbYZeGYCiFXSmtQrpJAPc8fX6eCMvSrA21iMbr\/oKoLt1fe+p\/7KO1\/7P\/9JbX8tqraSkbaf\/qdCw8wZU6D6la0ZasJZiYKc5vGruMF09xGdpoDwOhbea1pJnRFsLCJpdiJixhRTTmqldzNzru\/doXjVxd3R\/W\/Sjv911WjbyTLLbUSlVVU\/RIGz0pFFu0EgwCDjx6l2AVSWxwRo5PBfxx4hWkKt9vaxeq1smdBlFymKmuL1u1oQ1bk69jXtjNyr80jv2VsSn81c\/8\/XR00CKFyNp0qqqVaKokROgJQmigQR0nanCoFULfxoxNY\/aprDx8L5ivfF5gi48fG8wtGBI9BncPcizVqe7oRRcjqC51G+K3tave1KbGFK\/OxjbvWiK1U\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABMkQR+M4YbBGodjraw82CbQ9HW1h5sE9B6Oxp+DY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/Gy5G0pVVVVUUAzBxU5gOfWDgCMKmZS9w1N9XhC82V2K0qcFSGKqI8vkuiYntSLmepxLkLMpF0cvU1THVd3FNQoS\/u\/pTu4qquKbEoozdLuTimuJpxppyqqqwo4EBgQNhkodJYKxgdEi0+WcUn0qoaFT4dkPQnij3HvU\/AvNB0JiETC703tvWp4dzPe0lXY61z8VQr02i6VXbsC9V7f1f+5N96mkXI2VMqKKHxsRIi+cmWOFT3saXBxwFD8iDiL\/sVZWsiAkQn\/QNE4wRBEfcsXNAFRFa3WNw6m3r1oLf\/9AFvf\/t7K0iGNRptyqqrzpVJumAekc2xwrkekKoJImzWJO5w9OHHepaSWUleWRsWToHhABCyTLY1oupbBtDG10O7FXo6drNaPac\/L6yiEetSH39Kvr0Fv\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABLERx2NYebBSYkjsbw82Chg7HY1h5sENhyOxnCzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/dvtvghEQUAFyLXHnU1T35HiEcXxLLOBnZ3VPhqXmYu9txDIZwakcIrbBiH2C5dtbcNmX8Z\/\/rd\/\/\/e7\/u\/VZRDZbXHP\/vJ+aJKVAULKISwLuLa1kXhqNy4oDB\/MO3gluiRdfZViBngCHwwsQB9CgABiKiptzbWiiSiWM9TentYg+QS5D1zoaF\/\/\/+378hylLcscTqqqnSITF3Au+MUamxQGc7mCqGe5h+uOKP5rgUQ7764jXnnaHOue9alalD171Jq2pY1ivimqKdtGWVH\/uis6m2lmqjmiGaSJtzTKsNJCrJMQLNMCVyY\/uY0ShAZw6lS4A7Dmzrf2d7purePFFKnA0ADL8qfSNNWl1OTt7mqKtdU1+\/dJcn\/6uur2Jpts9Dif\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABS4Ox2MvwbA\/4djYaw82Ceg5I4zh5sEfh2Qxl6TY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/8LrjTT\/Z\/AsGQSmiSGBCq7MhaJiEKtg+MMWmqQPjVvLqDQQ\/pWq0Jre\/8Vgi69z07\/etm9SlXLd\/\/Wxc1TWN6f16GZXWkVKiqRBo1MAp6M72A6aJj20jp3asPMuPFcvqlgcJ980V8SwPlCaVOaoVW+quOf\/2WbnNldXHe5lfqtR2vj4vDK400pVVVfSNQ6SHCI6IUtBa8DbGJcAHRSR2Q9o0ssJ+G2qN33q6lzm0MULLW0ojV1XNGlDrbNOG270Nuu3N6uKbfvoY0ijqRRvjlIRRk0BtORppSqqs2\/4GaOhxnMkETiDw8gvKG4mK60aPVS7nAWUuZvQFiKjQKBj1V4ym66+wwgz8l6lXoTeIaKvpKP\/ZkxSthwBUbmfFU75v\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABUsOx+NPebBB4gjraww2CDQ\/HY1gxsE\/CCOxp7zY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+NxuJpfvRAYCMFAwNBFA2qAwG5DiiGF4MPjj+DplmfrG8QfDJJfUWxelMUhmqoVY+o9Qyxc93N46r\/5qz243VXSfl+VRs2v+2huRtppMqquLqIGAl6nIvow+gIOIatKcxdgdI0WBcupDyJ\/r3hFtAmmKiNKghqYvhposf7Ev2qm0ySETbZj9K35o3Z6EPz9KBK3KP2aUV3qklciaUqqrEgwIEACawzI4BAOYFSgqrUYVmEnwy2oha5NS1hSIMll3qmoBq0+pwYFDgvPtHMQ3PKkmIf2VXpdFK3lyGxb1769ScUxi9WjvZynarknHUhqJxpp\/\/DcbSOOzhEEvQAUBKhcs4EszTDqPCfV7uzSRms0qwjHiRYVblurlViyrzj1qStAut79jM9bbfGX\/etw76mx3069XwJRXtFv\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABHoPR2M4YbBIwcjrbw82CeA7HY09hsFWiCOxvDzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/4o5G0V\/zYxYgicYiCFgSCI1FQrWkELqAI4zIPFnev4TuZ1+4C58a5g18g8DdjG+XNjNc7mcCitiCriPZeY9\/6Kk9UIRQttMv13hMIFHBxg4JELbUKiULU2VYnmVKJyrfS1HAEU2\/nAwaCjHCq1qPnkz601MR\/36bX\/\/u2dHxf0aX7vIMXtbfUjC2yiucoISQhTTmC5ZgAAFkJWE3JGnEKmC1EmvCwdeI1\/zNOBqqRJLGlUDRVoSAFX9\/2ykDxbVZjR9wlWbrTes8oUu\/\/1t27f0hmJtlpe+9dR\/zLiAwSyQpOwegHQlP6nIRz\/PSFhtLZhxFCDS7OzisXf\/9CJPt1I67vW1WxVWyIO2j2zO5NOJNZf\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABVwPx1svebBDYcjraeg2CIA7HW09ZsEnB2Ntp7DY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ZijSaX\/yiC0JoKkBxKf5lji4pMyxlsdxsOvAvhTuTbjNYGx06Q5wCJNSpKdaWCqVE\/rLS5RrBASLVos\/b299NiW9tnamu7yO7N3QyxxuqqqqiIcAPnNix2A21ULUKZHCTeAIIt1pJFsAKr7TtQme\/spWSWm9jVPsXFIQSTG1r84cxph8f7Xv72UESa9S72i+5CLznfTFq5YJGUXMqitaQQiB2aaqy4VElhO10OJThIC\/QyV1+tUlVFJ\/9JMX8ePiGdeNsrIhEUEIUUl6R6ca1UfbxewXQltSqP\/9aHa3rnm2XXWHkS2jKUBuJtpJf\/pIARFOQBgUOGHQ84zcDxHcto6u0gqjfb\/BYSaXgw1YYyJHWpBHfrNJRfa\/Rq6b5jIW7qaGrtvkM2NvfVv0uz5jo\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABKAOR1ssWbBJodjrZe82Caw\/IYy9JsFGiCOxp7zY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/7+mySWs6JSJkZSnCnYYtDn5LC4EhZXMSVpdRJ17ylyerc4D5\/jR1rjAgc+5nztLKFre7tVr\/tr7qCcOpn3u1\/b3f60dVSabpI23VVVUAsLm4dLoNzHMwkagoSjT7sIQqr3g0iRD1b4TBhg5TUx08AWz8wJkDd6ZBqaJpOKOrd7Gahy+Rr1D700Z5aHaVoc3QNuNVNSuNIv\/4+56QBtk6SBd4hwBJJYXhiHezBSMz6bF6Ty+3oOAQ+DN6bKGuoRzl8A102C2wxPJRoq+xPjFBrJaPU5DO6mL\/NTIspRp1tpJ\/\/lBUPCAi7b5GDkFsHzaVy6oPOmsQoLPUpeaCeBezjgHIijW7EeHngupfa3chX+5Xtpy7HWNqN32oGmHvS2d9dHv1f\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABQIOx1sMSbBGgejYaew2CaQ7IY09ZsEkCCOtp6TY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/FK3EkpSVRsYGEt2B2JONuAV7AEAlUgP12zgwzh9pGZoXRUseEQ4oBiYdIMqRR\/JDDo8EBKLFsY+1bvTVpFtP2XAcUTDtHa9UsibSSlVVIgqYRePgFcNxL4i6Ntxeo\/DUwsw8oG5HzOmiE6tEowAgUs11VBxJFpNSX5Dc0ACqEehECNNt6LeRd12Td1PS444yiv\/emEA2q43uiIF8PZisDiT3+mWI0fP4iC9q4rCcGLKlDnuPOpNtHWOZz7GDpRdyL27NSfNIsqRS2puaz71916b76D1TbUiOVppJf6zBEEtEY+rWUTzLTMQFnQ\/C3gMbEuc2qS7OeWsDLJRxUYeuf3uCJt6UtbXMsdorq7Wr2Rd+s\/Wh5TFf\/+rsi6d3o\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABS8PR1tPYbBHwcjsaes2CKg7HYw9psEnByOtjBzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/23W2kVv+b+1ToEoCl5UMmwEtihF03IcUbVtZaKnb+AaSuMJuQb+aa7cLQtqNdKK0qk\/1a2B3ptQse+fS77WNzUm1v0NSNtNL\/ofhmZEdmdM5LG3CjTouVaru3IEazwwFASU2KAuD0mNRee0OQuqt2q0sxOt33Wqt\/XQW0LuoG9HYpJxFFE31ekLQzvHUdZWhqTMOGb2AAWszyWAEV+Mwky9YUCXoIrJqgM3Yg61sigwH0ROQc4KFmh5i3ZgR29fX7lORuuZWyvrr\/QiJxNJpSqqroiALGDxGo5IBQB2UQYntDiXQ2UgkeIggIgcAp2cSsrQzYXuNkdB16d5tXHG6V1NPss\/Sy\/b6ke2x3j\/TdGlwgj\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABZIOx1svSbBDYdjraeY2B7wvHWxhBMEmByNtlKTY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/akTSRTKqo2R0HbOnGus2SfDC9CDSFMJa2v5TTjdPjAtaV\/fLobgIw9n8NezTFC3QjEvLXJTfS677PG6uhtxNFE\/Q9CiyNxlU3qg4IIEG0pgPr6s8HNfUgsuI+jGRQUakTilCWBU+IH1PcYC63Db\/sqBphh6nEYk6NXd+OK\/T7X26vSlyVxlJf++8EojgmOwRhJiTqYGVKOIyKDdWs\/GMRpt2gIKFrJ61YC0KxxJD22sk7Gv3\/octGzvFiXVRGWUI07m9cUf1ojdJyRNpFSqqtG3IZBB\/riMjQ+Gh6sjKNsvN2rxxUBn2wVIfWJw2sWx9e9fQirZFa33HWU9HSrvo1MmvULtacZIWl2bkJLpTo6P\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABaILR2MMWSA8gpjsYSg4CNA7G2w9BsEWh2Otp6DY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/clbZRTKqrHZYh+YoyX70mhO0tkP0ydbGxGzvwgbfmT64ycfFTQNoPnUTwo1sc1+zvuxZl1wA06H0YDtSlK7WUITXDuhP96BvsYYlnXG0kj\/2L2GMFi7aLzhARwLcpZxXoD82NWkMrPvBVlzF2qNCuwd6FtCM8jXe9+2it7xRz188ubjqNX+jRK6mUkpVRFsaWimJ7IsXpTISGgsOIxd\/dIt9+S2OS34DT6BoDnDj0vpDi99QfbWcljj3mGaNX\/+\/mWf\/\/TqlFPqZiuv\/qZfsgtZ8QO8EYZDxeJKFzapGeATD3+otBpqO5KJvCYfWq6HXgyPg0LmQMtEpftDdt9mgTOn7K9yjYgF6bKHs+xfpM\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABZAOR2MsKbBLQcjsZek2B4wrHW1hJIENh6Oxl6TY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+1I2kkv\/gl3o4MhmKtcC0QMIDsKjpdz3O7e2L9ROFDJTGKYayjhnF3xtpvObXUOW2owr6b7bX9d53i7nmbdH2P8MoupU2420iv\/lDTUJBwVbT4JUVKDDQLsDxkJnoTmpQOOXigkcOWKb7lJp529+L7qyVIrfjTLUqED71kovdbYjq6tX0Wpdq6qWVXGUV\/dWVSwUDjfmXUG6BaGQAYFiFGJ3o8p6mvCuDDbEoTseq6NqteOclV8rfru+g\/\/\/9KaobFfsf1DOmhtxRpFf\/E4IckyuJucHH2AuPE3VWTRtaloLC6b9iiDkQALYsjfY1AhdRXq9ThmT2Luq0TiVq2Rfs7HatoppUz+h20HP\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABbMOxsNPSbBEQdjraYY2CJQ5HW0k5sD3B2OtlSDY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/2nU0kV\/8ccO2YsNWekxOkOyqUOCOQY1vThJk\/ephulPv0vNuF3MXe6nT1XNdiVv301kfxtjtTk9u+67S895oevxZRxNJFSqqMzshLG2kxTADACYPiAAM4ERmxkABqWMGGAOREwKFvXu7BCh7NKdqrD7Mc\/JfTQZnPV\/\/p2Kz1rDVvLNyJNIqVVVn4GZGLakQCuTAxVXURuwqQmi+9MDu9IgATDj4eEiCxJJ\/Qlcf9DPXJ1bUVP67GMq\/3pbQkWc76jy0fFyORppJf\/BCDS2jumFzs4C5BxEy5FTAVtl\/kwcqZ9nkQmJ72zpaPe2eqWRdOmFiNR9xn1H\/zTVH50fu9KLeiSo0IbZmIva7Gr1\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABcIOx1svMbBBgdjraMk2CBw5HY0MpsEIh2OxlhTY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+0omykv+vLDsiK54VCYhFJ5ONVdxzDrv+lEBphoYEQUPEFvotYYDHF90g2dRY8mvc4uihBezHqPpcxDO5K+rRpUrI0iimVVWtcj4LLUIXICoAnyFGVFCGx8hAhSNck+RsjlyJQ8B3pQgvKk6oNXxFS\/UinVo13reXTmXvbqbxiE+2tQfOPxikb6VHEkUTrFa\/DZ3gizYoFQyl4KBAsHgBP32EO1U+i0CzRHdKudfTHp22q2qCwonIXagRafC7rHPp\/\/\/\/\/7O5R1xtlFf\/7yL2PaFtPGQoYSSEAVxgLpVPDYvZewacE6WNz99Q1bX0PvShKtV\/TRyF\/\/XpR063t9LjL51\/vt3q\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABbMOR1tMMbBAgcjrYeg2CQw\/HY2ZBsD2hyNtowzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+VRRIpd+3RdQMCHPQ6pGVo4H1AXyfOF5jM93LSPaADg0LqWteIWLM\/0HpVMm9dGixCUNFnc8\/7ifdctW2u62vT96OXrddSRSX\/25St0+MIzShkoZOIDAzIYflXACrvUENclbITqUlK2tcPttr9fTqUOf7v2K9CWjy3Uskr6We7r+JHZEkkVKqKx5uKHoMuYiykRqt3ovpcARkPZJ8xcVYS\/dvePFQE5jlE0plSKlPGi9ta9yxtVH\/qdsa6lNFaVE8Z16NaHFe65DKUhx1NFIsqqky8TOBj9h7BSENFr8oo6bK3lV7gZw5MOizDz5wySXS5CH0M+tluvda5DFflkrYzW3\/W6l6lkq\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABZQOR1tJObBDwcjragM2B7g5HWyMZsEiiSOxkyDY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/3W20kV98viBaMAvfSVtQXGATRpPnRqjSREYRH2D1k7wIww2woVQiNctRTXq\/\/U29jL\/9zH7gym51\/dcz7PVU46mkkv7us2koV1TwcacBGGzgJFrjc8lbOdmO8DrLKErXmL3ZNdFT7qlpvMNfaBWeUqiGn\/\/zXFMb62XOVV6HHC2Ul\/76yNbAGpYiQWov\/OCL2wXQ++xASIhmCHcLj564iILTLXpsNf3H2MZp2PLL7qOPbZtu2uI0qVzc8v+6ryBx1tJJSqqMy\/D4kLYnAIhpDOZVEIaw\/O+Y1QxZGPRYEB4CFDaxz3oWmftbOsjNaGGZ+6qyUfR6bMC0jytX\/\/9n4pT\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABfILx2MaETA+ocjrYMc2B9Q7HWwkxsEFhyOthIzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/upppJL\/q7xobGu\/0y5rz1hduIkf7jbOTLOwQEgxhQ0Iepbw3XuADO7fuyKKqd9Jty+p\/RbQzt6UKOppIp97txkQoSVTJhYoa\/MReNqNw2JwhnUFSJ\/gNQVQQ6W7tBjJWI1rtZ\/6qLukrcRCN7NFwv9t+nq61HEkkV99W4rcWSh6Dxwa1iy6T4qdZBnBm\/14NAVjCwXN0rxRD3dS7jH\/9Vdb9e2ttuhRPdMXObpZkl\/ZzENBxxJIpf\/HHeTAAnJM+AhI0nmyKBtRi0gdAPpOHs+4BtsYZYh5JGldT\/1xQLvNV+lSaSrN0WoqFdFqKPWt\/p2U9P\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABlEMx2MZGTA4QcjrYYY2B4QtHWxkZID4hyOtgxjY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/fTV+748icD7UYjDpgZuHGXTNkD7ECoLB0EWOi4fSs\/DPexjLmLVRFHmbdX\/171mb5L7NhZyl\/1+JRdDepxtJFEyqisoi7rAlESzFpHxpy0CUm+tSIs5RWaaBxW9F7nCXfnnyDGGsXcspLf\/0Pd9u9+lIrn7UL3YtHfdknG00kT98VPj6CDqyEHBb\/hZdp0maARlQ1K7Gqy+eLKF72C\/xj\/\/tbStu96zX0rL9Ny9dSD4pTpvCNyhxxIlFf9QsZngnUYqCBGmJuG7vqmLRcwkWWYU+yLMtSAUqFNYqZ7tL1NtoI0rSy6y+kj5Z1tj6v0f\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABjMJR1nyKSA9IajoMSMmB9grHYwwxIDqA6Os9jBQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+qmmkif\/zuMdOhCzoA5LiwnjEPbbtPAWsQUMWOpA2t8rA\/q2MZvF0Mxls81VVWjcqdQ9lLIh8\/\/WO3nabNbTDkaSSK\/42HFEAiiXl3M9pFsJKB3VNjZudBqNZS+QuGejOvVw8otTJg617sjbptvxiOW+y7JSa9DqjaKS\/+Muyvo99qYDKWXgxgCJNSvPKBDB01BIHhauQw9ZnMmy7r32Oak7+RtRXePr1dT6\/93T3XcL9ChxxpIlf+\/LcMAGwrrlxIe2Qp5oBCpY1zwookDT5vHDVQApOKo\/W2iXi13RehH+\/N3ELNDeyLYsuzX0sqqp\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABlUOR1nlEbA+wSjrZSkkBvA5HWeMZsDvhyOtgwzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ccSSSX\/wFDmQ5iDpgtyk0OdlsC1qhkUMzkmYg4GJYpGyi0klvpcEHsAl99tVjBLMPHWtV7aNnHWzfYuv2X22976i6mINONpIIr\/4hC4YNoXPpCuMqNdZw03KYVZFxwnF61VoboolUKY6KUW2K63tbrye1qX0VfX3NWzz6qfevbrUcTSRP\/ybIUD429niEjZ8YAkHjKA28ZtMXMQqaTc9cdazm0J1K6PUce5KUqpYPtXHbZBbPZ8j3fvSKVh1tNJFf\/aamh6bbW5iwbvtEV0gkVENKGklhQCBlVFT0XMWrTdc\/6a9cXcMVOt2M3I0cw7T37Daqvs+w5mv\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABggJR1nvMSBFIgjrYQM2B2QrHWwwpIDtguOtLCRI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/9RMEkk8BuGH9DbzxQligKAUe8EAbCABEIq+XPiBZwfYPcn\/TsfZt\/\/\/\/1\/u+F2dl2X1a3E0kUl+826MUA3ezzPOswfiLnU2NUf4fBvqPEVGYdag5VLikYjb7kH9\/\/\/tu19HbftY70tmf49RtNIlSqqlSgkoahzs3PnbWExSsg3c7k3lYWVHhcED06U6UXgdr+AbqHjuml7EL2IVr9CNGhpRzlOSlJxxFFJf\/UjziC2rc+BlCspJ591ZukeIGFi7gulQ4PPzzvXU1so5krrtzSs7FVEq7G+Bm2aVR996bdKIcqeh9D9qnK\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABsAKx1sMESAywJjbYeASBuA7HWwMxsDshyOxhIjY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/9NQpEk9ReLMCbg+dJKqTy8HlACMHgUPuaEDR+VMtFAu5mBXqd70vYYFL1dqrjkkd23dav39T3df1+j+nU4mkkkf3uOGsCGIouwG9oTECIJibOpMRTHOtqhphAvW3chVzXleq9EkjR\/+1H2XoHlEetKVa7RK+Q30O9TbiSQJZVVI\/DMONimadHkeO7C9yD8SRf\/v1Zp9czBhAPY9ECrcsxr+WsSbBSyxurrfyS5vTahfpFGSHEBxNJIlMqisJkNEC\/V2QN6sDT00uc1m0sWQQ8IqaoQjjdjUcU9Gj0q7if\/3q3u0HHPe3QkOJ9etDNeopur\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABkIMR1sNGTA8IOjbPwYUB5A7HWwEZsDwCmOxhAjg\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/9xxJFFf+0eJP+AnxbIRKSCFXC3QIzYZQvqg0mYQSaypDmqo3s5921bEKrcwX6YytWm2QklJreope\/r9++ej42+2v\/amv\/QNSAwGxKMmvQiiwkAY5aQgEBUSIQXe18mvNnFuY11TO1fWu6yezN6ewc5dH1V1aq6bv37V16FE0kSToUpnnkAzJdgGdGg1jQuITaPnJAS4FlMVEZgy\/XYLLRnN\/qe7r\/\/7NXYhlaWqbATBFdWri2z6CRNJJJf4XYgpcRV+IejxQwQsCEaTYELfikJGxRJzKtagAuualtY90+H6qPpKGfb1J2rs96\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABjYOR2HmEbBBQdjrYKI2B0gfHQSkYoDqBWNth5iQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/7tqq\/9D9BAvLgK2YWLHjEKFhKfAZ8BFAgyxLN15YZsYrWggu21\/ue3ptdW5H0PCyKtVO19yn6W\/Vtr+qlWcKhpK0njq8Z6GMJ0eRjW1mZ2pBoCk20If61bbawuLKyypIXS1iv6OZX1FeyxKor+yv3b9b6lJuJIpH+4cjIKchDMMEl\/gVuQl4R3GBUKh8u2LlCq\/eSYiOBNlrUxG+3IGhZ69PrEtX\/\/Xp\/pdTevZixRJpJIP\/3q6Am8vUER4AmOBL07JLT1oNt+m7MDXkz1qlqB9xK9qvpUtLqb90jqWpdlY7GRR6U2e+pO\/22V0f\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABnYPR1njGbA6QQjoMaMkByQ5GweYRsDrBWOs94yQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+4okiifvqq0AF7FsTgeULFbXKXfvQ7XLQmskKKQ4Zd0+xD2\/\/qUz+ztUoXIVE\/WL1ydzK6N23OhxFUtbKqvYLuKh4Z3wCjHpX573fsYHDBaRNijAzcYYgW\/rc1bnpFcZO1AH3aqIxvTv\/rd+tKO13S29tKibaSJ\/\/sg3QMzfUbFlTHVcNAhiACCZlyoi0k6BRImQ2phdQ6+y7tXrQ7PuILZtC3p10M111Hftov9++6hK7VVfipHkDUrEMRd+CLlU4g4zJDlu4ggwXiN67jJFYbPMGsnjLxNRd9aGf\/9PjdG+SySbJg3\/\/TT\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABmcLR1nmMSA6gWjrPeYkBwAxGweYZMD2BCOs94yQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/3Sqr8GEtlY00lsRMk4KAIE6DoRWFCNqbDrTtd4o+Bwi8XAZK4v+jVLr6Neyz21brO+u5V+m\/TV\/9Evf5ULweTZBQlLCYFE7iCeodqWqCUuVPGkIWlDP9xlFXI9aKHrlJ24Iq\/qcv6Hs7nPoYjV6fUo0mSkfvhTBnCPqmBjkUAizPySh1BEohSC10QJ1rkZzT01f+hvtM00V19Kt9jftv\/uX\/Dz7ZZeqhkKIyLTBjiQI\/Er+PX56aIERxtrmBQIocA0ngGbWtn+UfAT6P4QsEIom9Ja9Nn+6hOdj9Ltak36dgz\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABs8ORsHjEbA3QMjYYSMSBwg7HQeURsDOBaOs9IiQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/u6pnv1mRcEpwAOL6gHHcMAo1BI2SIc8SShcWmf+mdXety5BVmlG3Tqa69fJIoWurZ+p92uPiqL+qpv9xIMDpBqI1C29GFKDANCo8PmjyzqL\/QxilpQ0WM+mfv782KP0XC\/bLq0CzyUUheNvq41lrMglf7l3bKqrKqgbghtFBAXcHY1DLxaRvwONJvNMHzJRASEwqW6XaU1MqXaq1NKdmpC1naHrRS65ikt\/nxZhT8fcj\/qqf\/OA+XnZPVCwdCu1r1bEzJjowHHMIHVl6RPfO5y1jkT9vrSGEPvRRkp6LoP9O9djW+lF7N1I46yv\/X\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABmIMxsHvGTA3ANjoJSIUB5QbHQM8YoD0guOkYxRI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/kyv\/oDICk64oAwKdzbRBRmxselGXvtZWrVR8L9ZSlmpF7NFql7KkM33ilL17ETNjfv3MK6fuKa\/4TAdL4JG+JjAC8sCQKBhZkMGwUefu1JQ7Sissi0dY3ASE\/5WteLM3NpdFVK2d\/0uJopFL\/2eIaIsEfACIspmVxxMGUdLPJBk9WcLxhRgyaeF7uTbde1dsO2qNoWg\/zEt5v+li6K3en02qsW+n3qapVVUehVYAXwdMZn4KORcHw0gGzTDADPPCS+ZyIttoat29rnb36npxva7pSpG\/8Y\/uqvZ9+a2SK\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABrsLx0GLGTA1oQjoJUIkBlwTHQYkQkD0hKOs8wyQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/3G0kki\/6JT6cGC5sIXr2YLwxA5yoJEwyKkxbwy2eHrii332vcLpbbXr95+8o9WOiNKFZt\/W\/3Ns66+p1VWx2v7KqZVVVsOeMM7cQKt\/pTTbcrmRPXFhusqcFT8uKjU7JSnteO3bkJeYrv92pmXqi1MahCLHfoc1yBXZ38LocTSKJX\/Ll4rwkzsDoExnHPmjQVa40ARUP3rShUyk8pstWhZU8AYxNLHYzu17dCB+arLnVNmuYaZCWvGC2pVd4jqxDx0UWAigFhgeCgOGAsDgwkDhqOHknhDVonhOfioOh0XCVK3uxVR9Z5RZ73VLc7Z\/\/7Fff1\/r\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABiIHR0mIGKA\/QQjrPYIkB7gxHSekZMDtguOs9AhI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+qZVPQG4MgwiaGBf6gaHQAcA7gk7ni4uZjTUBWIvCJ9H8vKiqWSH\/\/6H\/\/\/o7aylfp+pWToDBNYeR07bhEbmpkmXbVABCL15VKRcMzhKKkCffvD0LCV9F9H9v9voXT9+v0oT3ezPbzK6pZV\/BUaeDQQKBi4kNghIeUAAOGkBJ41zG3ABC2C7xaEqK8mo2gaGhZ93u6NHRP33\/Pf1fs6N2m6qWpVVFPvASxgQWMLHQIfAZ0wwBER8YChogPkNwYehIp8ZL6F3jr1UKLGUyLNaNy11Ctv\/\/MBxOr2S6f\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABuoFxsHjEJAxANjYJSMUBuArGwekZIDfA6NgkYxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/qlVT9HCFtEYCAqxhIYFBPPGjdtARkRPA06sqKuSOijJqgSD5gxl7BR927a19jBMhogWdHgEC2f6NCuVo1\/dJN\/5ITHAVbiCoWephOOdGBSYhPg497WMUNfF05R4o9DrKuLqVu9u65Sr+jUM\/ZUjdkqWOUvx3p\/yqaVVVbGB0KmjoBEXOrijzXZvZozNkDwQUsk+9f2WMjbMIGh417lX9jM0+\/kupjD9yu7K6dwp2+5kYLD+amf\/RDYUDY9GUmsDNAoDYqgFgVQnOrlEQslkZMGHVpdi+vdldCaaUpse36uKutNbNwkR3\/v3M5b\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABlYHR0mDGKA84JjYJMESBxwvHQSgRMDwiKOkkQzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/mpZVVRaO56DrhUBYaIuvA4pQWETpNCEHxQm219rmtEdSE9LZKN8LErVMVvt3IUUpy3v9CitfXVM\/\/ADCqcsYaT+XpThK+5YPoZaEUkJu92LG3TxbaiNtU7bQ2hDwOqpHQr1EEOJ7aumK1XdXZo8b90tP\/wFSMAaGFgiKSxLxE4LHz5JqUz21Quk\/RsSMTP+pSFoMtouM6sltotVyzHq17UK9f9286lT6qmv\/QwJm6oTFpowSBMSKeVKBUGgNDLELTfteXZxGtd+0Xt1Fk2MXTStht5JSW73GDZKR0put+GFIsRaNcqhNX\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABqgGR0EmEJA2oTjpMWMkByg1HQQkZMDgAmOgxIhI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/3dNTKqqcu4dUoFzT63rOfK2rOwvak4FT4sVEhhFb1l3MVC8uldjGpcljqVSf7\/3o2VT9VBLoK1T0SyqqwAZ3GBmdAhLBQIFGy4bPvvIqB4oNAwZNxRt28c5w9jZ1F+RjO+zgVn6WTGXiN69N\/\/K10Eu5SaiSRSlVVe2PSuj5GChabhERSy+5uZJIUOrqEHoatq1cKKc3FLx1Kq76lK+8jt6BLUB219Y2F9bP\/VtX9KmaVbq0ImTN6BUcYKFoYFTZIVeKB8WOoCtmpZGsTLfk3kbhY1+1CLBStoHp3\/\/qma+ec0KN\/7Eqp\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABm8Gx0GDGKA2wZjpJYMmB3AfHSGMQoDzCWOw8YzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/tpVXRIbK\/GquoMhJeAAaIwO0YZWcsCgheT+dvWt1Slo\/ZtvZ7NFtCrww9TUGX\/9eKdop9fXFO6lq\/+oULMCkTsYQxw3ERpwiCITBw6oMKWPPpUlna55QXcmyLD3O1noCN59Vrfo6+zsVtd6br2nnpofsGXVVSyqqGOqG654Rr3KJxg1cWMgXBFz27wkPFhc1Q7WferZPFnOXT3VaFcH8v3oVQh6vUtXhvrqpZVVURiiM21SQTsG0hnMUQ7YfSKLDQgGOSTqpTo\/b0Rrq6BvP1zOVV9FJ1v6W9eILeLdWxt6\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABqQHRsGGGKA2QLjYPQYSB5QXHQYYQkDWhWOkswyQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+mmVMwiXIxqMoNHMSCgMQmVFTh9T4WPOKuHVW9e5AnirHrfCrR2pt+3FPT7bV\/+y7q\/6Oi7qVf\/VmVEjImgsYyDwyke+t5pDWG7ekWDCL6QCQutZa\/mLLUuoLXOA+zZTRej+paNxG7TprVd0fdUr+w2YFYrnZCJDFgmAgACppbkFmIpEZ9nJscYe\/MKbTDqIdII02\/\/VsJcgjZM0UaGSD6mSvvgHoaHbIznrZMBeSeokUJUOR1S9sSuMi5I5scIUUKIN\/+uV7eT0I7\/I667nXd4+jTajqT\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABvAKR0kmGSAzwOjYJQMUBvwdHQSYQoDNAyOglIxI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/dTUv\/xTJxBHQZUHcQCWKtcYNoXUoJaV4+WKw8aWznym+8JVLk4stH7hTY+rZTapVdSrhyKV9qvfqr+1mr\/0ABxRApMLZULOGB8QgE8JjAnSbApjVDPbGtaLqsYx9brN5erreM8KbqlnK0jGja21ymy7u\/o2L+qpb\/RgfkANTCwQOzgyUPEnsJDzTg47qUzrc19TIjlGrO274tjs2jl0Wiy20e\/\/+70dKWxamqVYqODmNa5Eo0aocKLURJa8oBzRwXZ7bauKcVPLc35hvNsbcXeBXAXsR9ek3bambuWaIM6bf6v\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABpcOR0GDEbA54XjoJGMmB2gRHQSZIEDUAuOgkYhI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+pmmVVFLCw+BiUq0x2Zk7dBEjOxE4IXLsHbT6j4psahGpFyJLFdZk9fc0qx\/\/+swl38y53VbTZXfo\/mVnfxGhQBxpgPOBdY0cFEHiFCVilA5P6D+LBDc5deVtJkra623Xf2jM0eZ1aml+ebrdiJikij6Wqvqpb\/3QSAYMM6csdMgYKniBwqSLHDxSrAWI+hDqVt0MlJSPtk3JumNqItp04t4E+9NgtUEfVZi9lb6qZv\/ZJRsNXAWYtzepNdBG6Ax5Vm5bEuyS2PQq7E9Jr2WYvwt0ii2pu7+mjZ9r6NSKNP3Gv\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABoAHxsEmGKA5wgjpJCI2BzgNHQSZIADlg+OgYwxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/6qmv\/udpAq5f0ahQu5k8Ut69LjnARkUekqZd6EqP+\/OWpjv5dn73RdGcscZRfYlB7uC+xzp+pPvnqrqqZ\/6gMUAC0xnGEGxsYqOF0CQ+ZdLUVG5Li56zalaGCjl6XP7O6xXSe1p2ulnflvDt0qKyAH4ioK0QEQ72jW0XCSQO5rixhlltC9yWTJH+z+rbuu\/\/K\/\/8XT\/pWn\/Raf\/FhQKmJTCjpVDiI8DPDTTrzNL42Nva522bTt1vpkYsizxtHNWMoS9UvW5G+V9x6\/11gOj\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABywKx0EjGSA6QfjoMGM2BjQjHQMMZICug6NgkwxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/7qUf\/QC7gtDCAeTScKR1rnY5OPw3S8Fmn2tYumc9fNt8jQ7J2GP33wCk7fSreQ3OfTpkD73+K1fMyz\/7IWJHoN+UTeiypbslHYJUkUiF6eE0qQ7SyqjXSSjWt6FLzGP009+6VQ2+MjW\/5PWgk25p+r+Zmv\/C5RocFaOE1BakURA5Zp8NFWij3MMynH22vTbdSMa7Uoss9R+UYSpnPRWi5vadpldHzdqUuc+JT6lWv\/XBKnUOOYkQCaE7o0WeDIatzDlLsWrVgBCFiy86n0Q0zDejHOP3Cun+hOURcb96Ud\/9X\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABooEx0DGAJA34OjoJMMUBxQ3HQSMRsDsBOOgkQiQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/czTX\/ibcBmW\/EmZbXoTLrmmrYsigs2TbPx5UlUG3PSpnG5VAqtFA5yaqGdmgZbJyWxyEvsxXbrQ\/U5HDsx3NSvfPSin2\/cxI+6GS1BO4WbTASD4rnbGV\/+JBd5p\/03OBbU+gh7w4oUXzyU9C\/RUqqv0RJlR2C1O5ooI2iOSBkADUoGIU3G9Kh6iquaUUM9HeqXDZk+uaF6d9af90s\/6\/7U+5D66prvEQrZBDKPSMBBO9IQDBKLRcJhM9MO6fK1tdbcglZ\/z1FNViPmHxfT61d6sWiZ+3a0Nvr\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABtMFx0GDEJA9gfjoGGM2BgAlHQeMZIDUA+NgkYxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/qqalVVWgNEYng2yoNUMU4gIRdMZz4gCgdNhuy2gK01rHuFFN4sWKPrKsU1vyKfTyd7EWf\/Y0CVC0qxuh6WVU\/9NN\/5iDOA\/HDkByDpIqFhOA7mCQJGi0WFB1CZZOinUL1uE62enotY+TVVjVjIqyX1WdSZbJLron9H001f+SKCVoZBQd+HDic4NAAINDgMAuomNFErIsJtOYCeaknrdL3LvTahv2pxVtdX1V919SJsU\/cjXrvVLi+ipZVVWOikBFSMOo+P9aHERVEupECA6q9xWhIE0SNinU51bUa7RVWFON2exW1tLFX1adtrDVnpEWn\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABi4HR0EmMKA\/oYjpJGMmB0ATHQWYIkD1A2OgkYhQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+qqp\/8GNq8JqpMOKgjd2SB9xFBtRRxxA6tzs2AABW9r9lLkx+hOrOsO19C8nX1JdTTj23a7bvbbp+6lX\/1BKQAHSiMrxXYdQbde6fCFhZTkKaUsbUPTjTPoVbF1eOXRj+iqrZ9+N69Jlercz32VJrqqZlFEYTYc0fEYtGgQHwCeMOgyFQ6dFEjiBV+1T9Ap\/qYPPJpIbjbuRr\/\/pS20vHwf0D+mmf\/YyqopnB+Bs0dpJsatlo4dtTGsTWujws9hqpo11Depc8+sdeu9LHPDyOkyTVXQlUZtxQw5jlWK7dlmr\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABtYIR0kmGSA4wZjoGGMmBsAbHQSkYoDMg6OkYwxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/6qmZVVVerGRagYRWC0FwUB6cDIIB98Ti4GQWW5a3s+i1K73J9Fa+nfga7s\/nXiFrPtVZpYpjAqR1U\/1Ur\/5CAVoUkAql4p3EUChoTTaHhIs7egehIga5vXtW98yxOhW9zlRaRVs3CvL6LKEN9Bz1IU+jo3hPtqav\/IQWV0JyayGNrQq1BASC4DWJ3gSl\/N2pk2Vk+zVcR6b76W9Me3d8V795bqUzb6VUvZZci6qpf\/cgKFGQKHVmuahoBw1XNzSGjRXc6X9ydj1dZh+v+9A700i8\/NpgJbU+5mj9FJ8cl91C1\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABooMR0HmGTA6ILjpMGMSB1wdHQSYYoDbA+OglAxQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ySsr+Bwlm+BcPm8rNFB4x51yFCE9CLxt5WbHnWoEzng5KBRdlaGuUuoc7W6zV+m3lP5z9fo\/0f00r\/6AB2CciaMQwqpGgk0NQSLUPIPdIWxcwvcZ6eU8wPfvX9icU+tqFU53Pdc3c\/RqUaDs3SiqpZH\/RjEgg6BAwN2szyHolUc+tDK2WXmsm3xgpoZau9tJ2hyNDqvGoofUS\/Svce\/UtFyL6CplVXswWPFpmhKLhmKSlZGcQNOcyTNuI1GhJNak3knHgI\/pqpDa9CHjDiiJtttWOLWKFdr\/+\/\/S+v\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABs8Ix0EDGSA2wajYGMMmBuQlHQSEZIDUBSOgMYyQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/Wlr\/0QQGipwA72BObeTHjhEIQYaBzzs4s0yzdQ6xUqmUXsGb8i7uu15HTuLCsU6GGLXy6qz7+Z1sv1\/01LKoq0DRAEjyISwZMlavArvRVyTBkkCFDCLxZnpc4Uclq2B5jf\/WhFNmw3cbu6F6FMqm7Nn784inMopoVX1EQoSZuwpxcMBcyER5eHA84IBZwQcMVOmITF0pbFWeKLlDT3f\/09bFDCBsXrR\/+t81I3+leuJJJEoqyqqLFdf5QwlHIwQtCRArMhUnetbnMHtuFKxUXWHAQY16aKFlm3Pc2haBaxDrvVurRWPYpc7\/QpS\/T5D\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABmgHRsGDGKA7YMjoJMISB3wtHSSMZIDjAqNgYYxI\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/6lVU9gVrjiIKNHEsOmAOAQ4kmrFz7QbMnnLZCwqkmwADOY+mKljCKa03CGymz9X7M7\/yNX711VStIUaJsXSwDk4YxFBFwfEI55+IDTQKNePPrrfjmhXxW332flULvvFQ5rbe4Y4yYQwhWsapLRVfZr\/2DKmqq\/8atyMZvaNiOskV6humHZhZEiU1kpq7pZW+pyRYxu02nemIk+qP0d\/fffbTbr\/agdZjj6pqaFVU6C8T1trCXId27Bb6S1BNBGHqMIFAywH2\/WKiuhd2\/avI+jq1o9Vn2Wy3X2ZtHOvKKrR\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABqYHR2HjGKAz4JjYJGISB9wjHySEZIDVByOgYYzY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/1VUv\/iq1kSsHsimOAQaWMCpR0y9wXi1R5geZH7\/3CvfXsLrv99VeijrOoZY6nTXrVxVMWfXGa\/qmlr\/RwcFjngwZQZLkJjGDDZ88p6VEf2UM+hRRKLOroWxrNpbQhNjN1y\/elm2r+n70V8dPVK3\/uH65BQlMIhSNBOw4fWCzjjyoEWy2XQllrMjNvN86gstXoYhCZ3Syi7opTVsdR+Y5LSa6mmEjpRUeYIgA5gZiUGKH0uJtFWVEDI9TiIlDgUEjVNXobWjV4sRFUsQmwIR9tbN75lv9+hKPF+\/2V\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABsENR0mDGTA3INjoMGMUBoQpHQYMZIDlBKOgYYiQ\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/910tKioqBl6yAeSVyx6aXd3v7O+bspAhoOOam8P3rrZV\/qlQGMIb6710km\/duct6\/\/\/3CznxXvsSO+apmlVVbBQolqVubBmZ8ILEqRzeHN+dhSKYWhQCOIPepCh633fFN6RV6d9nkfbtuJ3M7FoqrRfX6Vex06L1dyTT\/TQMZFESBXs+MFnikiDAyFGa2DmvrCRVteQGoi4kRNV0NIT1AAVrXSn\/+lid5OMtO0DqpZv\/FjqzngnNVEJueGCrIDDQxtr8QIKWNtRMjSFSEdDNCBJqnf63s2PY1Ha5CdFK9teq7xf\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABoEDxsFpCBA5ogjpJMM2B8xRHSYMZwDSBeOgkYiY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/6WlV+IseBCqiGJZQAwzSJYuDQna0qYuF1wceh7LYs1S3lxDWnq30\/\/Fen7oSWPOEH6t3d61d+nqVVSSZCgKGDCgRT2vNmBOkVGuH0C+2vjf9Wp8fUwLoqT\/V\/\/1x46WSS7vRd\/V1SqvADIVRwWaLCIXt32JO2H4posoHgjxAtROx\/lqVIb\/ShH+zH3HNFnT\/1ps\/0\/5qpVUeYscKAFAxsOioUaTKtgC8+SAx9ilnKGs9X7rinoUiqpY8Zjv\/97f2bf7PvdR\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/uQYP+ABzwJx0DDESA3AOjYGGMUBbwRGwYIwEDChqNgkwyY\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/NTL1YDGCkx2lwmPGHJYDrPDQGg0grvUmxv\/2M\/7qr8zI\/\/\/RWum6KdxdX1vXUSSAAAMTRsxIAAAAhBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/uQYP+ACgsDxsDDCBAuQGjoIMYAAOgBGoAAACgYACMQAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAxNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="],"libraries\/H5P.SingleChoiceSet-1.11\/sounds\/negative-short.ogg":["audio\/ogg","T2dnUwACAAAAAAAAAADDrUxAAAAAAGQEC8kBHgF2b3JiaXMAAAAAAkSsAAAAAAAAgLUBAAAAAAC4AU9nZ1MAAAAAAAAAAAAAw61MQAEAAACVezb7EUT\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/8HA3ZvcmJpczQAAABBTzsgYW9UdVYgWzIwMTEwNDI0XSAoYmFzZWQgb24gWGlwaC5PcmcncyBsaWJWb3JiaXMpAAAAAAEFdm9yYmlzJUJDVgEAQAAAJHMYKkalcxaEEBpCUBnjHELOa+wZQkwRghwyTFvLJXOQIaSgQohbKIHQkFUAAEAAAIdBeBSEikEIIYQlPViSgyc9CCGEiDl4FIRpQQghhBBCCCGEEEIIIYRFOWiSgydBCB2E4zA4DIPlOPgchEU5WBCDJ0HoIIQPQriag6w5CCGEJDVIUIMGOegchMIsKIqCxDC4FoQENSiMguQwyNSDC0KImoNJNfgahGdBeBaEaUEIIYQkQUiQgwZByBiERkFYkoMGObgUhMtBqBqEKjkIH4QgNGQVAJAAAKCiKIqiKAoQGrIKAMgAABBAURTHcRzJkRzJsRwLCA1ZBQAAAQAIAACgSIqkSI7kSJIkWZIlWZIlWZLmiaosy7Isy7IsyzIQGrIKAEgAAFBRDEVxFAcIDVkFAGQAAAigOIqlWIqlaIrniI4IhIasAgCAAAAEAAAQNENTPEeURM9UVde2bdu2bdu2bdu2bdu2bVuWZRkIDVkFAEAAABDSaWapBogwAxkGQkNWAQAIAACAEYowxIDQkFUAAEAAAIAYSg6iCa0535zjoFkOmkqxOR2cSLV5kpuKuTnnnHPOyeacMc4555yinFkMmgmtOeecxKBZCpoJrTnnnCexedCaKq0555xxzulgnBHGOeecJq15kJqNtTnnnAWtaY6aS7E555xIuXlSm0u1Oeecc84555xzzjnnnOrF6RycE84555yovbmWm9DFOeecT8bp3pwQzjnnnHPOOeecc84555wgNGQVAAAEAEAQho1h3CkI0udoIEYRYhoy6UH36DAJGoOcQurR6GiklDoIJZVxUkonCA1ZBQAAAgBACCGFFFJIIYUUUkghhRRiiCGGGHLKKaeggkoqqaiijDLLLLPMMssss8w67KyzDjsMMcQQQyutxFJTbTXWWGvuOeeag7RWWmuttVJKKaWUUgpCQ1YBACAAAARCBhlkkFFIIYUUYogpp5xyCiqogNCQVQAAIACAAAAAAE\/yHNERHdERHdERHdERHdHxHM8RJVESJVESLdMyNdNTRVV1ZdeWdVm3fVvYhV33fd33fd34dWFYlmVZlmVZlmVZlmVZlmVZliA0ZBUAAAIAACCEEEJIIYUUUkgpxhhzzDnoJJQQCA1ZBQAAAgAIAAAAcBRHcRzJkRxJsiRL0iTN0ixP8zRPEz1RFEXTNFXRFV1RN21RNmXTNV1TNl1VVm1Xlm1btnXbl2Xb933f933f933f933f931dB0JDVgEAEgAAOpIjKZIiKZLjOI4kSUBoyCoAQAYAQAAAiuIojuM4kiRJkiVpkmd5lqiZmumZniqqQGjIKgAAEABAAAAAAAAAiqZ4iql4iqh4juiIkmiZlqipmivKpuy6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6rguEhqwCACQAAHQkR3IkR1IkRVIkR3KA0JBVAIAMAIAAABzDMSRFcizL0jRP8zRPEz3REz3TU0VXdIHQkFUAACAAgAAAAAAAAAzJsBTL0RxNEiXVUi1VUy3VUkXVU1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU3TNE0TCA1ZCQCQAQCQEFMtLcaaCYskYtJqq6BjDFLspbFIKme1t8oxhRi1XhqHlFEQe6kkY4pBzC2k0CkmrdZUQoUUpJhjKhVSDlIgNGSFABCaAeBwHECyLECyLAAAAAAAAACQNA3QPA+wNA8AAAAAAAAAJE0DLE8DNM8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDSNEDzPEDzPAAAAAAAAADQPA\/wPBHwRBEAAAAAAAAALM8DNNEDPFEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDSNEDzPEDzPAAAAAAAAACwPA\/wRBHQPBEAAAAAAAAALM8DPFEEPNEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQ4AAAEGAhFBqyIgCIEwBwSBIkCZIEzQNIlgVNg6bBNAGSZUHToGkwTQAAAAAAAAAAAAAkTYOmQdMgigBJ06Bp0DSIIgAAAAAAAAAAAACSpkHToGkQRYCkadA0aBpEEQAAAAAAAAAAAADPNCGKEEWYJsAzTYgiRBGmCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQasiIAiBMAcDiKZQEAgOM4lgUAAI7jWBYAAFiWJYoAAGBZmigCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAABhwAAAIMKEMFBqyEgCIAgBwKIplAcexLOA4lgUkybIAlgXQPICmAUQRAAgAAChwAAAIsEFTYnGAQkNWAgBRAAAGxbEsTRNFkqRpmieKJEnTPE8UaZrneZ5pwvM8zzQhiqJomhBFUTRNmKZpqiowTVUVAABQ4AAAEGCDpsTiAIWGrAQAQgIAHIpiWZrmeZ4niqapmiRJ0zxPFEXRNE1TVUmSpnmeKIqiaZqmqrIsTfM8URRF01RVVYWmeZ4oiqJpqqrqwvM8TxRF0TRV1XXheZ4niqJomqrquhBFUTRN01RNVXVdIIqmaZqqqqquC0RPFE1TVV3XdYHniaJpqqqrui4QTdNUVVV1XVkGmKZpqqrryjJAVVXVdV1XlgGqqqqu67qyDFBV13VdWZZlAK7rurIsywIAAA4cAAACjKCTjCqLsNGECw9AoSErAoAoAADAGKYUU8owJiGkEBrGJIQUQiYlpdJSqiCkUlIpFYRUSiolo5RSailVEFIpqZQKQiollVIAANiBAwDYgYVQaMhKACAPAIAwRinGGHNOIqQUY845JxFSijHnnJNKMeacc85JKRlzzDnnpJTOOeecc1JK5pxzzjkppXPOOeeclFJK55xzTkopJYTOQSellNI555wTAABU4AAAEGCjyOYEI0GFhqwEAFIBAAyOY1ma5nmiaJqWJGma53meKJqmJkma5nmeJ4qqyfM8TxRF0TRVled5niiKommqKtcVRdM0TVVVXbIsiqZpmqrqujBN01RV13VdmKZpqqrrui5sW1VV1XVlGbatqqrqurIMXNd1ZdmWgSy7ruzasgAA8AQHAKACG1ZHOCkaCyw0ZCUAkAEAQBiDkEIIIWUQQgohhJRSCAkAABhwAAAIMKEMFBqyEgBIBQAAjLHWWmuttdZAZ6211lprrYDMWmuttdZaa6211lprrbXWUmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaay2llFJKKaWUUkoppZRSSimllFJKBQD6VTgA+D\/YsDrCSdFYYKEhKwGAcAAAwBilGHMMQimlVAgx5px0VFqLsUKIMeckpNRabMVzzkEoIZXWYiyecw5CKSnFVmNRKYRSUkottliLSqGjklJKrdVYjDGppNZai63GYoxJKbTUWosxFiNsTam12GqrsRhjayottBhjjMUIX2RsLabaag3GCCNbLC3VWmswxhjdW4ultpqLMT742lIsMdZcAAB3gwMARIKNM6wknRWOBhcashIACAkAIBBSijHGGHPOOeekUow55pxzDkIIoVSKMcaccw5CCCGUjDHmnHMQQgghhFJKxpxzEEIIIYSQUuqccxBCCCGEEEopnXMOQgghhBBCKaWDEEIIIYQQSiilpBRCCCGEEEIIqaSUQgghhFJCKCGVlFIIIYQQQiklpJRSCiGEUkIIoYSUUkophRBCCKWUklJKKaUSSgklhBJSKSmlFEoIIZRSSkoppVRKCaGEEkopJaWUUkohhBBKKQUAABw4AAAEGEEnGVUWYaMJFx6AQkNWAgBkAACQopRSKS1FgiKlGKQYS0YVc1BaiqhyDFLNqVLOIOYklogxhJSTVDLmFEIMQuocdUwpBi2VGELGGKTYckuhcw4AAABBAICAkAAAAwQFMwDA4ADhcxB0AgRHGwCAIERmiETDQnB4UAkQEVMBQGKCQi4AVFhcpF1cQJcBLujirgMhBCEIQSwOoIAEHJxwwxNveMINTtApKnUgAAAAAAANAPAAAJBcABER0cxhZGhscHR4fICEiIyQCAAAAAAAGQB8AAAkJUBERDRzGBkaGxwdHh8gISIjJAEAgAACAAAAACCAAAQEBAAAAAAAAgAAAAQET2dnUwAAQDkAAAAAAADDrUxAAgAAAKJ1IqciWEBEOC8uMUNeZkQ60K+\/x73\/B5hjR\/8K3u7\/C\/8k\/zv\/TnRj5iWqdGWARKG7Xif6sZu6qXsysGxfdGoWT403Y5Hczlb3w3RVoHIqZuRg7NnO5JXBB4+NP9bf5vPD2lHs06E\/7Pr50Vtv+YXv4srypKqvj6NdoxfW0V+8Qsg6iNspVkps7WUyK3CSbCYmSlKsWTmWvWe5aJf33qd170PzfJrHepqLJ20\/vXn17KH\/6VVpj8tV\/ehprk4nnM7B5UEUEZzOcbmCkN9UNBEWCIDuDJa2+W37kP7r+8P98WMx919jzv+erO+Z+fX9ZH8Y79r8\/eP4Wt0w+dF0\/hSjRqucTA9l8emdTA9vBWNtD2wIAysA1Ud87593dz8M0gSivDaRkLbqPepFVGTcjuQLB3uJbkQ8VGonGZxK7VTQNKdSNxW0z5GqJGBHBWD383JuSuDEU27\/dLfCa9qrFFwVbfuLzbqJKhEAnMqUrvp3KlOmgqJdmyAqFYCQTyLDtIsJPIIISuCBWkpLvFcbOqPyrguaBbtnBpzMcl1+cCczRysoejdMEeACGQiAaV81SGqGXkbiNAmykl40AyGSCoXh3Zpc3W1w0AOczMipIMKdTA03thnaRIcQgDhLiw0PhVib\/mu\/xx7WnUuPWhsWEA6aiKVVOKwudaUs1k5ZSSVXlepENHLxgqFBjA0AvMrE0E2qtCttdo9bLP3pLwDky7RMNZo+p4UDA3HVDks80cQH44Lq1S47yXrQIlXEGAmFoVaqkLZM5El7efvxdqmf\/3vwzducx5srj2826SVIU5AWE5fYuLiYHtoGAFTbujPsVd26J+mtr1NTyLLMfr\/f7\/en3wFAGVH3yo2L7S0sNERGfDREkUgQF1cpUkVMTExMXIK4SnFxkQqRCkGkQqVKyzRRkZ9Jmn+sJt9ZHLv3ntjdPz9aucrYqhOtMkgPiXHUAZzvk\/SIP98nqZ+w00sNSWYwAbDacHRAJSYVGw5Wikbaptu0TduEQSgvsfRSoRK5mlcHarWq0na+Xa78VD8\/bfqlroYKhO\/vQCf895637wx+PdMzwfwtKSsQgKQ1iMm6YDU2rxYbbuhFhhWXS3dkvhmq3j+CxLv0Fu2rhWWFBvqsrv63gByKGkL3Gbx\/Yj\/6ZWh3Jd7ys7rFzSIgh6Kk1P0KPr+xH\/XS662EM7+wvd4BFgDgvAJ4OQm89HQrAQAAVAAAAAAAAFGpIgAAQC3JDWnzc8\/Kft12MOwsR1mGM20CNGtUtP0QfZAgwU0tEHwg+OCDD+m7vX2kooWHJrzYF\/++PnqNNhKtEFshNqbqKuLjKkZi42IDi1oev9\/8eDiyeknPHSZtWQB09+O4qwDAB0EZoN9X0ObFxeV9AAAA9359HZcA4wQ\/QHIJ3AmhSQD+jF7YH4H7Ulnuy\/f5P7Lfv3mv2M9hsnnCfwUOWpSW9+L7\/IvM\/hW7sR+DF4AWAMBZg1NYOQAAAAAAAAAAAFCpsFIAAADCpPV5XAjUmkaJkRDzBAAyOjWW5bYrnX+IAQAu8rx5srTtdcVv25AIQmi5FNdcWtP45q+\/tXfnDxVvbg0GKRngAADfGngauiQAEQBAAqcTLEhUYif+1SawHoYFnkIX5198cB+UMgonAJkNflyezGYLvMD0OZ\/e3\/8x96ZvLvX4UDye2eYy2pc+T\/H++Yu5Xx5cxn4U\/gEAAADW4XDKw7wC7Pi+GbByAABYDAAAsBgAAACAFZWqAAAAAJmrAMxfHQDw7c7d3XtjfX9qf9cEAPHbvFaTcP+yAwCAbOgIliaVOb096l0kJATVIy65YYMAWKY\/sz+7v\/icyQIAAIAnOsK1cmMIAAAAGoALAApMwAGeWUJIEIxr6xzAiKSj+sNEJSzZoAMOZ2J5iALeKtbcP\/q8X7ryP8\/vP31sSrocC3b4H3vaG9b+6\/3zV9cvlylx6R8AAADgdjj1oQp4BXDzh9HAywAAIABgAIsBAAAAGMCKSoVEAAAAY0w9BYB9qwPlbvN+ZODn4afvd9rvyRcAmV\/WeSzP6lUAAACIGnTf36E70q5SggCEnlfaZl0hiqKzfzyTC\/sHU2EGAAAA4I0bdn68CQDABgAqgAMA+AzADwAADNhwp6gAn+EAP+80DvVHlYGj4IyIkQZiBa5vDAmBGAAK3uut7D+veJPl9vx763OTl2e\/nv7TK57QXbf3z48+hxKa\/gAAAH\/+lxdzXM0vr2brcB5W6gIn7wIAWAwALIbFsBgAAGAAqFSqIgAAYO\/XVwEArLz1vHjO6AKBMK7mTpp3M1q+YxUAAAAAZ++XMe+4s8HoEP5x56bLrfWvjy5+\/OFci\/0fAINNEgAAWA4LAAAWAGgnAOAD4H0BAJBXIWDjRBTU99qJACGgPsrKqCRJyJ8LkfRBq5ghKBAyASADlhvW8R8T7wUJyd\/fHfIQV\/xyw7Pc3DMPYTg\/bzmI3z8AAADAcuMur7J8GQAAQKVSQ1gsFQawgsVSVREEAOjNb5sEAMuWbwsLiM9d\/31qvv5\/tvB09nR2vggAsLOtxz+udNbtP\/H4jf7+XH8uN\/Fu+dHV+gtWg3PDRV4fz75VXuhFfh\/feHvaH2829pUD3d3ddD89n\/anaZqm3nvv4XTpFZdLBxVFcSmKSwhhlxqlRgMAsEAFAFBQgVWpC2VWCMgqUDGNiCtJkSRJEsC49c8CgGEEGHYBYAHAQlMrAODAApcLAAqggdBYHtBSjkHnv\/+zro8A4\/AxHB9nSI+Qd\/VfFWD\/+wDQAGTl86hru40vsHa3K+3fvvrLu8dVqY9hpUWlEqq1tQCrLWvrVsuMSk2lUpyczbi18iet1uee3XPWn97f5eRkOaa1YusDgA4yxtSHpnyLO\/UqmH6iRnEzFUVRhFEIbrc95k\/ytT3Onuw3\/19GF4vabEl\/j2Ff3vhB9xe5HrJMNzTZHTFQMM7yuZvw+PfBTzGqof+Awx6VFAwYpOvzc9Of7XPxoFttzqjuaqGM9M3HuZi2vywA3EOosHWIbmt721Szc73Taro9evbQ7dGzR1e6nbYJicQuT3f1XYGJpOvQVhgcJjp0fP1Tl\/I4HLj+0s+Xl1f6loOoqg9rymoBnO+LSwOufFvyB22lTVSmx+lsCWAIOUYAqn4NzUl4+bMxaMNw2bglFlkvJicZKn3Lon6b2APBm4Ov2WPavqmfbydnqU5aNQCarN6k9tB5IcX19vYvEg8uYT8xPqs3bvnSb9vZblH\/UWSvj409GPwBIBKRWPvp+2b0gavpgVcdANiv3\/7vL89Pzw977bXXXpuCjKgAAAAAAFQqLQQBAACEhqdHiY0VZohl2vCvmJoZiw993rOYhoqKYt+SMwAer6ISt3OlvVHXdc9WAeHUKocCjVanX6tMyqW1TCrZF1X8+TdbH3I9aM9+m8d6pl4v60vn3\/\/+\/fH9x\/6xz+vZZ7sz+\/Pn\/5t7efEAx54Z6Afogvx\/5hQAJBh33PcTL051uG3rW+6O8qG47xkVAVCDDWwA+Gje4wZ+gMrP+C3p9FMED3z\/w2CSbeo66SxgJ2CAbDIAnnx+Ti9dG0mP8u3ByMeXwNgdgmX0q931jJwe4aeTRz6+SIvdQfgFAMCb+JKHyQ7g+ffeBwBmayUgMyMEAwAAAABWVIUgAAAAZusA6IIOHHPbD1lKCdK8tRYAiP26BE8oIAiwOrczoeDRHIKyhbBN2kSOJrHSzlsVFFqb+pdfvHzfeKawqgXss9aPjga0JmFXJrmYmaGldSKqij4kBXOS3glf\/yIhlyjm7KkBqGZvoKMh4QA082d2IQblDQCQsBLQRgAFAGwwLCAqnUAC33uyUguASQpzK2yDCb\/gAxQAPkze1P7QtaF0zZ8ejHwcS6aeD5LL7\/YUiCOl1\/7x9D\/yIVamks1\/AACA8e0hwQsSBgBg9upjfwQAJSMYUGExAAAAAFGpkBAAAAD303UAeLVW2jOwCz9ZPr7RBABuX70bAMC4rQDBAzIBIAIp49lUF377Z5nvVQcAAIAMDerP9x\/PtVm5gQd4HaozW3kfom7q\/cpd1FmBzHx82DPyfe77Zf2x3zJauS7OAnflRmiuU\/24mgnPfzMzTF55VcL6UaeDBd03C7SBH3sNAMAHFQBwmQjH+PiJJDIieNWs93Y6ZnGiIzsywRpstREF0LbBAX4LfsT3M\/xmeT6d8RfpPUgo8dJu+Nnfz\/YPHz9P3\/EX2XpWKPHzHwAA0N\/95RL4wdq9AfB3AICXAPvnmwSvHv9sAEDJpEawmAqLAQAAVlSqQgAAANy8IACYZU2fEiqTux70RwJA6R8vAQCA7H0d3Xb+ULb9lvMuDz7IzEAkEVE0NV+xocxorox3twIAAByvANhsatBSBjbk5hTp3bfP2Xvbj\/vc6qHZGeNpTE9+5ZzcACS7K19qT64DQM8537qlog7JeBjqE0OOSxRORZb5+FlKrR00vBwQHPYYBV0B60PA5gIAVA0AAH0AcHDBaUlA3gQNhyInhmPx4VSd63r4CpIPGsqkKtoAKAABHtu9xY99\/Nzy73bPE9k1Hdf8edZ7d+8n\/9Pys839jEQPkcmXfwEAoGMUvXAEBQCANfgU62ckkHQyIiqViqhUKpVKFYIAAAC49SzAEygDeyc3f7sXXtbasnLf7noKAPO\/f+IFAACA7V39WZ+SvYRFX0ug1eAzZeIBnDAMbTnTq+5B3zr+ffwNAIADjKsB\/iJEdwJfZXQOQ+KppWHTMI6Lh+yuXP2P2X\/62Hq1pvkzB9wQJCSHPCSze813Kumc8xngL3CnI7pv479z7GHeuN9nyDTlw+UEsTG092UOSSicXC4Cuave++H4AGDPAo\/kvoHLBoDQAADDhQUAABcAQGGRAGAB+ODHWPofGKoD8HARSMAiAA8f6BGr\/S\/OaTQsLQJkhwICXppd5O9z\/M3y\/Zpm+A21OGsKzS7yZ13e5rqfnoYeUJOXfgEAcD2IHzQ59hzQ\/AMAYLbeBZCZEZVKpVKpVJpKpQohAAAAyqegQO4IQ1MLtf+xKNAncsgA+ZurewBg6mjaHWdfUIA2ABESpW3unKIj0tuY\/2vLAQAAwNT6zMvXuXa629lCG4C6e5jrMKj\/+FRenCooUexn\/sChXBGJT\/fWLurkFecotTa\/s+OhI0Edc56uKiFg5nEBYjo7wQDQ\/PZA9+f7Q+Rk0eGfCxYC+PDaxWVDFasa59Uv3AyqxskeqA5+SHClcQbHx3L6O\/U4PkR\/FChPHWgcTp+IDAkcksCShrDNagHrsY8LfDG\/VoFDAcPwFAAUZ\/3q4OkBf2xY70Q4RzKeL7Q+AxnyA77oY+AoHoEK49uCRn7Shwy+Se3+R\/06NOu\/f55KqBkKzpvUEf8qN6\/rztMRwr+JZGnW9AWwPzv7oasOa9uXf7YIJv7Pv7\/tALCG44X1MwDZ6YhKJ5VKpdI0lVYBAKCr7YCk6K6c12\/r7IN7lQvf5nPEhkARoADKJBPufl1Hi5l94G7dWTPeewKU0vtM\/mvF3+QlSustu\/Y5hQX4mzWVPlM9ux5ow+eLzVqdj+mzWZWbSnJqxmJMe155qH3Kw3TUv09Mu6cucrXvMWc4AdzZLAh3W5oRTxUwpU1HXr5PAdf+VIj2QeFgBCDB2gtkMs35\/AA47pJ\/SZIbIJOTBggPNJN2WsWG\/XD68bFs\/nF8jd3v\/\/8MfIYfXfUGjmsNCIcF9iyUrCSn1x\/D5e9UCBzN\/L\/BCDPtNMnCiVYrAc6PBjYM4NQDjh4BACqs9Z2sJPmCDQCcXTPSHICjEBTIRABPZ2dTAABAbQAAAAAAAMOtTEADAAAAQELvsBr\/Uf9G\/07\/WP9a\/1v\/R\/9M\/0r\/Of9P\/1j\/Sr7odNx3\/AvmdHBbsFDo1Pyv0t\/A7UYLC1+MbrNbv\/7lNwDy28MDmPiH1QCANTjWvPr1FgAaMiMqTaXSdESlUiMqpALAwnw1lbKTj5t8m3PXlz+meSYzpLGx\/AqeUJlQnq5flkq1srB5XW0De5sjAFC8ynPW5vlfti4uoVD2l2kDwLtO0WrgmaFupiHOk5QyTXFyyP7rNx03Znq03Tmq1kpl5LXc\/fRKn\/jfJDRDfa11fe3\/\/NcMxY6P1W7+OPVVabwk080dv+MfZKdkzH013w40gJf6Qts6HQs7fVV5uOLnmJP43al2avmPcX\/9pPD\/c8yNBvwk5rDvaYdwofNfBcA+QJKPukDJoWq+6gDDRf9ULxbin7WGKqHzie9\/MMqr43P49n0iSLiaERfRl7kGtkrFZr\/FSDD4+Z8PAMS\/Ll0DDrLP4aMcgCMQCIDQBAMGAH4o9dZ3075gF0dwk2WcD52Rf5f+FW1qaEHwZY5maMarvxWAuav\/8ybAlfPg+csNAHCB7\/Dq6esAYJ4l6SiiqVFEpalUKqQIAOrUCb\/JW8toDv2ErFtXnokKIXR5st\/06AuCUPK1s1FWoAofVgWvdIQux1\/oTlZDYPUSNHgtqFNbgAn2f0WTJN3vnmE\/eyh+fNiZ01HOIRk6yeSfNFmHPTnuuDm8naG2T\/1ftQ9AD3vPn\/9c07WnvvbOczdzEkw2tGJU0GfI8XV2J7H41PGBEeUzjV8uWLj\/2zDJ6Q+E\/gHyWMVXZ0\/A9ADy13eSf3zUD\/FhcSjvVf0EvkODCzicDszvh9OSDAOMQEMwwP1\/1fMAuA7AMzKNZbOYPmB\/EgCaTACcQEDT\/6Qqf+4oSSzwAZdfqSw5BCgnJwcwmJWtAtCqTRAygAC+OK3cd+oxxnRrMgPuQqdTvlJvMG9vxFkY\/gAAmGN\/W+kB5t8C1nGchrXugB5lRAFNZ0SlUqlUqpAQAABYxcBzOGEvJJ1M0fyZhOA9IJQcBB9CYPwd2quxsGVt45ttBh8gl9xB5ORcOaVooONSS28Z1upJL\/\/u63pqv+QGfEUVAADA74Bzk10tdDjjcpt+3V7r9fIwzl1Jw11Fk8UH9axw7pzl8Lj9S8eTGBunyVx+s3d2n7zzTD6M6TwHoOvU+J5JZQsOZ\/1\/5cDz3BCBAPf4xVZrhGldDAVo5hWGD+ElkbQDlJw93w8NNIz319nZ\/QIc2nxNz4Chu9zC8J8iW\/75FSNDDg2Sn4jg19GFY05f+fO+YOiUkzhQ2GYCnPxZi2D+8Y+Duy+6mxxH4Su\/WQ46iRIYZ6+5HqzjZ7ifABYcdHT8OL7tQxUfyIAPDgC+KI3gV9pnesURXNUV50GnVn7S\/0RxcHUMfwAAQH\/5+8\/AlQ\/gm6VhDmD26purAQAyM4qiZEQ0NaJSqUJCAADgXCFD9jP84Ofxs2bJ2r+yt9AGMu0p6t\/b5xOYAR+uJZUznpxn9sFDYWoonRfTF3V6f+qvgjaTz1p\/Gqlw5ZHwrE\/916oAtn2TYLpz3DyZdx\/iHx4VCZvOjKoSmHZWVdUn+wy83Ke\/Hc8XAAxQA+9kXTfPfFGcU5\/a8XMGoPvZ2VV5AGa+Fr99hx7N01uFNlV4KUnnkeLzY8HmTPG1YW8Gx\/35+VWzgcMRCfkKzAYgmT9n6\/Sn2\/2v6P19F3XfxxE2DVDml\/omjn\/y\/qGorxP\/xabnZy1gwwa4gbg5l0d\/CMlPkt\/dP4AKyNl8NVj9Y\/S\/wN7xAAAI\/+5UpKNDI8eJTR\/m14B4mwHWCRB6WR9giHsACFsIAVwA3iid0Gehu6G5haBMhEPi1JO\/2\/s3WvFUnASHPwAAQOubtxvc1AVYXo038wYAMjOKaCrdoFKpUURVEQAAmPxsQfAdmeu+JWampzX+Gna+x7LchqJhz937FUqoyuUBh1y2sEhk+59Nt\/XnVfHtv6zP8u2eG63kswxTy1mpw5cfaqHprSrpZACAdx+SOjeTRb8kOenePsVhTeicenfUqs1NsTy1dp5dDNSxTZG7m73k9LAngc5fvbtQ7lOf4vp8QdW5s8tsNuwNz3X5lCtgwGTOqafAyeGnzn30FN\/RgrkaKrd\/iOqUPsOn0j8H\/OQKvzp554LPRB09\/y+GYNj\/wwak\/Jc7277Z4x6r\/gP48x+UXmFnsaQASDEfAY8UEf+gszOnjx9HZ7GcpuClhY6wSbRTP8jEPoHMkr0pAJKWe+PA5sR\/NXnAwQ\/Q0QGcYEeR2Z4YhkdobGnAdgYAXug04EdNpyA1B5dqQ+V0ZR+136ZPxT1S+IVw\/QMAAPb1nTTfi9vbgNnaC0i6ZBRl0lQqNalUVQAAiPHuLITS8n46\/ux9KO\/7NzivGCfaFsBPDgeSyR7ofG6l6whxXFFdTM78eUrP8qc7d78\/stif6YtGa52OXOa+6NeWSJv6zOGbBujv6Sr\/t8NP5VVPT06RSYfN4dMbp7LbPLfmcMPm296fPb+Omao5ZPfZB\/pc6n0yF25v+3XW\/XZ3y88zmn2SOae+sz\/VX82m+nz7sPPMPmI253bBvRv\/q5fD2C+q0Yb9lTSnEv7sO4oM0KuBs32EDIBzP7KV59sBpkdVLgROPrCPMkHqOSnLzzQWgHMzeP\/+fHyQLfpO4DTNPrjjz4e0YKSEhbVcYrSIq+1rnO4HDaqTw4b0C9O9t6m+ygixB4CdFFaTvJMYGPgAnACwiMIesBxgSgiQwQAoAF7odORnuX+B4J6804RD6IiejT+JYQguQeADTWj26P\/xH81D4u+Cx5vgMMCyo8xMakYRlUqlUqkqAgD0tVTfvQbiiy8v5ezune26z\/WXFCWIa29c\/400FzJh5g+Alpa2bX1pSxfN\/V0Di\/Fv6s4TAAkAwDPk\/590U+yjntVyY87c707NO+PXzajLM9lXJln8EdGPah5nKjfpU0+yspncL9XOaT4j6s46O+arC3IY+Pc9PVdThnsGnq5h11F7ejbPPjDtJ\/NQvUswj4CGB3cJnUEgrhffPhxLDBxEjmTDn043z0OWDnPORuY3G+AgmvPbdG6Qt+gOw1GdjYF9X8AGnBwfLWeUE4ufnPpq\/kPhcR4p72f78\/MBiyQBag6AAJ2QCwF4RwaGjg5QjjlABJIE6I+fFns+jiUvnKoYc2Qg4KCZDWiGjKMBHuis3KtYXyIbuEKBP6cn3ioDk1EMXKGFPwAAge3nx3cHuGngOHvlrywARJkRHaNSkxpRqVSqSAQAAF4th0oqz+PY9kTJi215lbDBbOYpFJ7e8yd5pMAHHzyRQyT6l8iG7VPOle\/slNddtPq8xdT7zJSB1nJf\/P5nX3mk5JugtAVIr5POQ15kkUXvp\/P\/ryYvVddx5DlG4fmnZg\/ztdZhp5KvvmZqesT2eWqKieD8+rc85lews1S9SstMnp4fQG+sdJpVftZwv3s4OX7MXy3nx2TRJJQYyPlOtR+oYn6KJugzrW1m9Yr6J2XfVvzhj7vqH9jUkR+HM7GT\/\/bx5z92DoDFd5TA2fA3YkKGWT+3OvHzg8UBTpAAcPhiA5Y6NXz\/w4ILOHBcAPj4AX6KmoV1WOCebdLAcg4U4DxguZof+GmfBsUN6wA3wQAECz7oLMRH2d9E8ZRdckOf0\/Mf6V8gObiaGn4BAPBXRSZ+swGANTgWWS9rILNHmTQdSaUjKlVFAABwriLIVemVnfWTm5ffeoSi04d8tg\/sLFASCMWX3dO1xxG\/VOgPpfY2+0ABfFaIbHugtqEmZbfzGdyaZ97U\/bevvivPFJjqOAFQew97zg7rX109NUCDnMvZ3ndzm+nksHX37sMh619JJ8A+L1NK51QJt33G49e4xX2ei+7ec9dVNXn1PlwJQPZUdhwvx7JrO888giZH6U7OAIdz2F+5ffKT0AIdNpuD\/mWAAhDmkEZXxnkA5ntB78k8gphrfjUo+VKW9+YcfJM1GHEYw3\/OiqezMmwv1UzODfrmdsDhAHD8T+WHhf1ew2YD\/OlsAxvjgQOYhwtVGID6IRLOeWZr4Iz5aAEAHghqdCt9wABbZ5pjOwAF3ufsym2mb7I3yIhDonNkz+F\/IhmEfwUaviwdXJdftB8A\/WeXwOMjRzg+BqzDByyZmVQ6yiiiKpUqhBAEkNRvDV3mMdFXm6YH1VpHNIv84HloqN\/n4EIG7h2tY+nn3AuhR\/AZJXuhv\/vnmAvLAc7UgQQA\/q\/+XZtEq3eYChSy+XOA4m7GOWKmCkj40F3d8yZUIuie+spP7bRPnxY4P+qz\/ycr\/6pRTW32eoBmkzVTPe9weoDFBZt2VuK+eor+vAbG1g\/7v+XI6Y8T4hfJUfhu5tgx3N4Duw5775IEeID9vTVL\/Phfcl0wgGAOoD\/b+w+2XpoDn9ObJAF9px\/8WvqpC16AgW42vUF\/sBzMhgaWUzgtMIubLBlMToO5Tj8asICB4yjp5153E8YJUHhnAIQIR80GMsrQgZAB\/udMxEcRr1vLcHCTZOhzJu5V55OIduOKAl9oyOXtzS\/7Cuj+8LcH4PEC3wHWoYD10wMyM6NMmqZSqVQqVRUAvK5\/1g7x7cfYK3s\/k4y+eWCilAbnhVM\/9nh8GKw2lgu0K\/6U7H2mhJYyNqKFQATk79F+CT7Qgs9tcFcSEgCAmcxx4\/MDaDgcPpOIpeEZuM6h1ahYmbvZNDW7soHsXZWp97yHPtn91bs+GnRamdSnOExWf9R12vrG1Gl2g17NO4cC0p1NFRy59j0m+ceRWLBzGDjnixxIH26KAus6SecmGQYak9IX7PONk5Sxho+blWqYin3o4gc9k2A2H+PiAEDQNB82m4n5+PmnMulwejnxoSvcD4X6uPoXyfASU636AA+6k+1FjnB0BToxKH54WB2yBOBU\/nK\/5+K4g9eJi\/UZzkJJHWM2VB3gAxQxEIBqA97nLMSzjDcxPJEaAp2FeJ\/nCUvLTuMSRcwfAEAD\/O37qw79dmzAbH0AmRnlQqUmHVGpEVUhBAAAHvfh51nLh2\/dPoPwCyu\/ny\/R9X0o+Hbw+4VJIeMBhaAQ1hjKT\/9G3BnwmXPa7F\/+07Xpztmm5WZmAFpv9d98p\/wlWSCfBQCpnuPd\/SV6d+XJaJhm1+B212x+vZnN4v1LdnauPcTDrhHTpz7dTjg0FyeBpqs5SzF8dWdvGoCTdK90bwoOu5nv+CF+VKdmcMm7HrLbcD7jOrDzMkCfmJ6z5w4F0AfG9OGcBP7r+P9n+cnBbf35cfCf6mydPvhNB5ITSn5xfIYNP\/gfaVMH\/rMh+VdR2+mnr7Kes72GNDkb6CtB0FAHSnea7z\/+85ofdpQc\/LT++wwJeDioJfBvwaceVjNFMgDjmyRgUfqULzfhgOe\/UUf6fRXoCJARYMMMTRUe6EzoQ7XDQHPjqtTQ50zoXduXmL6iJPiCnqI39y9++CYgjU8\/GWDifywsAGbrDwIyM6OIpkZUalKpVBEkAFAzaNHHtuu8zj88nfLyFef0mOPDS4FPJucQknrfWoAMGe0HM98e7rGUoRUoZ0z4Vi319usqaz7jrBs0QASmdzfUbggylVXKz30mmdE1WWeoFF3U19d+vk6\/qe57uO\/T1zHVWjRkd1GfrIHTU677zK7+ag7AZlj76Zmh2JxhSp3zMkxRkPxPzr+BM+dspyOs\/356DuDDZjjiO0yUnPPmw7Z4LUAyJ43mS9AAzgAd5a8\/SsXeSmedDn\/EQYiPDXrik5ciuzh98uFkZuBERQk+MN\/xcXc\/8NFS+wsaIAGAmdYHNgdIqoCV+IojjxBRTn5\/eoy+d26GhZZN5R8U1ErHdL+AcqSBNpNFADIIAE9nZ1MAAEChAAAAAAAAw61MQAQAAAApVZeXGv9C\/1P\/Tv9M\/0v\/V\/9K\/0r\/S\/9P\/1T\/Rv9W\/udM8F3WF2jeuFqCR+dsPrZ63WJ6EolLMvwBADBvzI0\/RoKHR8J9OIDZ+pmAzEJTqVHSUVKpVJEiAACwLw\/L75+P3ut7pShfws78SL2kLRIo8yP72ZeQA\/S7FiTfvNvzvkCmw2tLKERkV6utjffe1\/RqbYWSJ02PPngfYjPROQzAjHyhDUfK0mR+au6p\/73X3gBzujD0cM6jY84P6B7V5qBv7qnrvOD6Bj8gGU0mmXX7dDvnr7PdcddTX9QH3N6VppR\/VQKOj89SRyVgZvGv3zux+M4B3ZMGQ4xENp9dkEekQ1G3Px3X58CGzT6bWxY7vwkfJTUHh1N14H\/tKhMkG6D3jw+7DnCafUooA9q5b\/6VETK94ewHA+wChgGWkH+gjvSXCIBoDQGVuDiqdMKzAJ3QCUAAQbGJOQT8DEDfAUADHuhs6F3vL8CNK6rw56zwVeNPNE9cbcMvAADuE+KxJSgBy9oBQGYmNaKTEVGpVCpVSAEAwP5Ma7KjpGG3+TdhnJeLZD+p5s9jkxrdGCAsbC7vxGAZL0ogO+H8uvjgCQZFS+kBTsciUW3QI7IiOP1V594QzDu+XcXDWp6nPhQAAMD136zsbXiNwk\/a69X7GJ7ynl3+xGb3nJn+5L6UN\/uF2uxmesym66zto\/r+3pfiU6N9\/sBJ+jM1UNVnuKDOLw9Tz+6c+boptPeh\/qxO8qtxQM5\/YuL4LME59dmb\/dl1FBFXfZRdlUqucJI\/R1nbB\/9QGRdyIzKfDT+GFAAbLvhYxJfODmLi75w9D+6AdT4Gv1CABZy+118vKoHC6l+BC85+OPO+Fpxi4eC\/9TP\/21J\/3mnBBZYDx9QL4F4esYAfh9Pt4vRjGc56SgBcwwB8AIEAEACe6JzFY4s39CV5EvpKGxadq74\/9YY+JTeRuNUO\/AMAAADMK8Aapiyy\/gGQdEZRRtSIjqgRlaoQAgCAsT8AcAkYnNN2udcvAYrPQCYE5N\/J1ddd7giNIy4FKBS8FAGxftPgFNeQe01ak1hN2KFDrjrwvMeenB1l7VyeKuz+doeB7JYL7Wxu0UDtZFfWJDSqp5LNP66Us8CQCclP83kyd5Wf\/\/C9svO91VlbdJXcFAMzbD30Zqrq5IHzjRpgs+fQHxfVCbxaY0b3kNxnUYP2p7YV+F\/EdwKQOa09\/eGQ7ENS3Cr2KbER9WNkVBbQ4YPFUk6s\/9Sd8VP8cFJ\/GKoAOM03jvnuG46ivpp\/HxoRADDwN5SAZJdch8bsH9SfhxNrgeLcO\/nPXt4\/M7T\/vQ2wAfiQAMxwaJ2XGFwV8GMBQNBroZcXgGPDViQQBByGzQF+6BzFa+tv6BpvIryshT\/njG9b3wPFxrW84Q8AAPBNREp8LN65bABWA1jDMbFkJjWjpFKpVCqVpqoIAACMX+C91\/IysTHHzNIT5IwvUwCE2vuAtChK8IWuw4MPS\/NO5N07hQx2NSxqZeOjx5f7vnEnB1MZlXX\/6E3nngUU9lsz4N\/pfpmTnXPYVXLm3fV68uTXnH1AJzfni7mbdx\/Ov\/Ic7t29n8y+xsB5O6ELgA09HGof9q78Jx8WB88+Tj+f93+nmGROpp0fHiZ3iTTd+1ElAvZmA\/TgF7scw0hE3zNTp\/f5nxHkATTV+9S++Djj7UHCD6Tfn8gffizm430o6VMPPRKOPHwmnCmU5gN+KCVX507w8xV1Oo1x1N9bCA+o1tnjfHxI6A1IAviRF7ilX4pv4jSnAJjj9EEVck5QARg2OJpuzBbAEjBpADQAfugc6WtbT+glT8Je2aoj0XmF16cvR3KIMGsMfwAAYO7y314fOLPZLBuZNJ0RlUqlUlUhAADo5yOoCP7MMfQ1KTLQtiliIKoOjSr7dpa+8JfPvbwshp7p86+slJx9My9admeiCHov\/cfqR\/983pQ1+i4L+Kd\/6XNpExTUKMWsxmvb6rCZ6XRYPM2bZD6fk+31cL7\/OX0Z4DHZrv11zuye\/cXU1OTAt0+37zeGPfhinA8Ht1l7Tpmbe0N9qgHIA3mGf3ZX713nYpvyPmCzv7pt7eKYbnYdcFS8QbpzH5Av85Yn5346OjXTBgm+A0rtX53N3uyCAV+5x1I9nwTt2jDMF4j6WR9\/vZfB+nA8MuvA8b0mH3GYXxk+gaMjC+pyFB04xlA\/DD5+wOATtwXQgk58OIVZFS5OWjspICIZKhbbGZ+NAnhgmkLDVWELvug89OOau+tlmwjv2BUWnTexffsd+pJsIhFnIfgHAAAAeKgUOZaAdThiycweZZTUiEqlUqmqAADg8hIAXwMI8pv8dZe+Xh6Xgv8yKx\/avJehSPEevPeZba+p0Yz5kgF+YzsRQ0fP7CIo3aEd4YStK++QcbftgG2mAACAzy95O2Dc5twKGeWa0xi281c0J+\/f1GTNKJNTXbtu+OeeM3NNZe7PvSFrT07m6NfALk5x6P31fde1q+ZQnRzU5Ly1eSmM8bi\/jj8x9t5f9eeXLfCnt79O9fTQsHci5+LNdyGno4Kwqd6fbW3+HNF09aVzSEhmb77Bqe9sgI2deJYDzj4U+Q2AMXAaDuIb+xz7wYmrh\/xlyvcte2QX\/m2yeU03YEe5Cqd6zLvY4biWkUnN1doJ8LBYiuE3ADg+LCQAdR4AYQkk0gCA62QFUAUC+NRoFoA7AhSBZgABnug82GWfbyA5hJ99gEbn7m5PfKGO7RDpl\/xl\/gAAAHH6zWo0zM8HLOsnBGRGmRGdSVOpVCpVkQAA4KPDg18+fCv26TvY\/uR0Mm7TQGih8DtQWgIBOloPAK25Nlus76rf+8axYWY8nfy\/uZNnyP0fGabez7\/+8\/9rqalhBkgAgLNCzaGiAjPXnV2H\/fava9PFKTLzyQYe+LC7qzjur49ys2\/35Fe2+VV2Vu09dPNvvvJfiudRUzbb4vA\/X8DQldSu7BxxOFR+iW\/7mEQ3+7Qav4ISw3Zlcej6TmESwLmPn8PIIhV+bvwxoN9hs9lKGL7kbokBaUPBQT\/mNtCwk+Kc+YJNPqi1DQyIMUgkQCYAm7wBUfWY7pCSsxda\/6BxXAY\/0CZl+v44+IzBIXGhP\/AVNPA\/CMDWa0A7aywAlsQ1IqpuCyW44oZmgAze6Lz42xknLIonEUdJWHRu9e2KE3JrvkmkosnwQQO2f1RuOkyJD\/Y3KwGyAqzDASy5RJ0aUTOiSlOpFKgQAODbMfNUbvPNW0obYIc\/p6wXbiG0uj9uexoAMtXrrbb4dtKOKR3BA2T1\/thDbd6RAppuKAogw\/dvemlkAIB5T5MATJ7hzyeH09bbXz37k72L+dQ0uYuecZn1FKaSIVXq\/vP71+fTeXbXOXmYGZpnyOK12892sxP+83gf52beB\/Tm7Gvvcw6nYNjv\/qtrfNHFTP\/wpTj6z\/ypBk6TIxtdWBsvZmwd2DG+\/qOg2JmA4YB\/eaABHvThFPZBOk0D3yD\/kxshA5ycm\/4qCX1ZaMLV5dfIPvbbeTLuN0tNvHbKbRKY7vO12Z9+VAd\/htNyAFVqbiIJB\/852C7v0N9fABDcNmz6VRgaCBUAjABkAJ7o3LrrFXvqW\/AkwqwJFp2nu\/7iDovmmUSiS\/bCBxoM46tTAt4SNzVYgxfrPyB7ZkTNjCJqRKVSIRECAII+9my\/RL6dpwTJef3lc+ECxuGHEB7u\/AMhQIZrMoTirtU7d6n0Im+zVb4l4Du80s9P\/K9FHuf6frZoDRosADXAnGKAPV8pvm3o50NS81J1Np5zJwdOzcs2\/945pu2+pxh6n\/nalWLvTXaBeedfALCLt\/M4+crdS5FzsQE40Js5md+qNjuHrw+fw4Fuwc8uPPRfN\/MLx49hcp1mV7tqtM2kpmF\/NcAHOMlR\/djkjRim9hlG6LP5AwUb2OY3qTRsOHD9JC7UcBQjMIDmQU7oU+F\/e3+mxqlTRZuu+TCjRW7AA\/T0h8Y3ECsB6vu05cNL12ErBsQihMYhjZqzXwAtBw5Wp+MnoEGwjyUg5AQIAP7ovNT7p56wKJ5EtqtJsOjc+tvP77Ao3kR8VQh8QEOfH17cewPOLPHYAjwrwBoslsyMkko3aGpSaSoVQUgAgB9+UPf0NncBna9S53Z2O9tmAm23tz8\/L6UEBRi23UX0Qgitb32hACGXrM7ni\/f7GgosAN7VaLcB5txmcqEMb1K5q5usop3jGdMj4OvJ3\/7Wv8m65uRveGpnq2quhFInEcwhafpfdE59Y1MPgD7DrnefzBqa7nP9szl839XX2Z3sz9rzw1cdEubQH4APOv4SJDTwi\/neSbk3+CRf8EfeTg5S+Vl09t+4NUDDF2TvSiX3msbtzh5fhtVGfOow6ry+WsfPf3s22ByOPjPFamps4sOx+GqO0xv42pMAStALcAAAwEko9Z30GOPhBzr9QB1FOes3Z2YASBc8mMilCcJhSYXT+AAYR8EAbaiGttUBpgGe6Nzj\/e5P6Mb0JcKrs7DovLrtV++wtORJqJkJ\/gEAAAAeNzieCVjD88KSvUSZEZWOqFQqlYpECAAAxCMArgA5TM\/ff6SaoQBPtwfVOPuukHMbChkgK5ez4ycrePEQusnOjE+z3TPX6RnMO3YYIqYH6n+FsaAdhsYAMF311pgC0Cill0yfD1mJzqYge5\/TlO7+z65w9kNm\/U\/irCt9+B6mu\/HJqWv6+072zKESwByg6POrnfy99+0+1vN222D3UKfg7WbbQNvqzzoZVfWn6vSFG2YDuPh8aNr7nP39lCwQ0\/9i1D55awA+bupgUmnkx3Kv\/107or86oxxH2jjxXThtHCJ1dtp9fMDesw+foTobj3\/Ahr62VXsHzlk0NYtawl3gcl39x+n\/j4AB\/y6wSQL5OSs5nJzwoA5YAQQ98cEwgBR8FIyXCvD8WCgdG8gEZiiIWQHe6LzE2\/3sIZfkSWRenQ+Nzmu63nUPTE8icTU1fGE16KbuTaBrPv4PYH4eYFk\/CIgyotI0HUU0lUqlqiIAYCbbgieS\/mWmp+wPP598UtVbNLrtOJScFoIPaOJGDl0hFCD7Tvq09c\/aK+eltNZo+WdKaaW1\/Zhvv6bWMm0KAACAiB52f7mpbvZUVavOS97few8b2tk\/Ndk+c76YzZ6TcFNfhn8Oqfn7vmv\/+vRkyxR3P39FOR0+ol96TjdYDgfjuw9+AMd3zr1JzRsgEWVsFHx3rONndfQ7GjZnqlqcx862HGrYrU048LaM9yQAQFGY7xvXQPu7iXtrVPWjgQ3EZ8fV2lTrhEmC3gZIXwBuGqfPOJErXes04BM1Y\/07YaD9mZ+W00cJ7M8CEMBwKurF3Qr\/AYAAiua2kGEjJLtvotBmAANAowYAHul81e2\/plsNk8juIrRSFp2XernHHUg2EV\/phi\/6arB3zWcMoP\/PgwE+8DcdoFeANXgklqhnZiMziqhUKpWqSABA\/+nJr2twt+fKBxH5115N9gqTJG9YnaXlIfzGBS1ei\/et95opOYcud373b7hV3+Ui7DXA8zfHN1OfKQ3I80z21At64CRfNTvZXT1kDf8tn\/rHrtfrlsd933OeM86c+9\/u3t377NoYvn2mhycLyFFfys8uMukGTnFNMtTZcxpgH\/Jiswd25z7At\/E5GhVNnvMTMnU2IL7P2191m\/fbnHZ19if59VFo8iTUseb7gQ9T3sAX\/bWHXbA5m\/1FAXzIITdMCkn7Ox\/2yaY4cA\/7kjleYfwC0LCLrXG6OycuGCdlNBpYSsEdiIU1yy4FbMA4APxHzrlP9NeEn5ymcAFA8OP4J7XYg7faIZmBAJDZu1oyA2yawQFPZ2dTAABA1QAAAAAAAMOtTEAFAAAAGm8IaRr\/Tf9O\/0n\/RP8+\/0\/\/R\/9G\/0j\/WP9E\/0v\/Td7o\/O0mCbVCJ0KkZ41h0Xmr22\/tKScOEd6WDV80S9fti4cNNI0vvnsD3NxgWTKTjjKi0lQqlRpRkRACAPx38\/cLt62Y+JnQuv3vnnVYIYyj\/+qEifZD8IWyqrvntqZ3yjTNFCBDid51\/d+bcp7WnaQHAIbO5zVt6h1aXrepmFz5bvZ8smTm9EJr12aoU+J80X98eudmJnnPlbRIPnWQ9OmNd1MPczY8VP876ZOH8czJ03v+CaXhp3HY\/c\/Pn3+dzW99muZ9sh+q58hHvXlN1Onne2edPvwAHHhHwhi\/fG1IgNxbhvNtbJ6Cc2rYmvHxfXISxtl2R77CURgOkejVmWOweUxnsXtMWnJ31kH1DuIIH07XMUNZfvOZRcCPEwaUWn47hARrHTjhFE6EhXcGZeAzCQYSmqofknotDPKyV3GgcapIbGyzAtjwAZAVvuh8m\/03W6KziTA1LDov9XJvdzKCJxFfoQ9fYNtr\/8hnN+aAw9+yAQ\/fgQowWzIzM6JSI2pEU6lUhRAAkH\/y0ZpkrOvUJqM+r+3EF7yUtNlYG9pQ3++VAAwZk6mOrLtQNAMFcra+u\/X6L7roBQZvqN\/9oLnAOZ2Sc878DofqanKOYbJ+OecXf87wFPPck83pM79kd7oTFafnU7k7+zf12+ecU2I4WWRe3uyThmdXf2ru4t8zHEr+aqrI3l1NAcV+3FzdTW6APIcPAOyhEeztn6UN\/nESSMY6Pv\/8+3FyWjj9xbmPf3GrF6L+GN39W\/0\/R18QKeFk5N54U2a+YGOnj6ttseM1OC7sMbydcSBhg6T+AtAI+\/HvKxwlVij7P\/VjAH45B6qS\/\/xNfGu1Pj6s4deLDjSZMYejQOFD4qHk4QcAGNBsIgEEmuA7H3AA3uj8iPuvmmOYRHpmDpHOV9tK6rtbdrGJuAMOfJBzUnj5\/efAJ5i3AGtQopGZmVFGVGpSqbCiqgIAtJ399CFGjXmTg+Zoc379brzNRdwbPzR3MC6+BEoGSgi+zaO+egyFCRzdM\/3N9nluZQLyS+qLnWIsen53cBzjbB3ETFWWfZuvLCY5nOw9X8Xwr+Hkn6fOPtMPRR4qv6oed26m0OSZ7DlblZsmws3ZUM\/H5L\/Z7P2NYrS\/6myy95kq7Uqg7ybv3rXZtWegewMU9csD2JD5mfccBoqNx3EUJ4eT9LX\/Vs6RD4CkRl+dnD0fABAHzPlRwls6OLcZzvadnIT\/+fihawAcd8KVP3Sq57CtAgA2CfAezR8AoAU7Z6CHV05gG1XidP5IBsJWcuYAHkiG6j+ydLSDlQpyuFABAM5PEsoNrNQChIzSyEAOAN7ovPft31eoikMkru8W8ei8lpuE5w4Eh8i8\/lb4AwAAjbd\/7U9gfgLAbP0CRJkZZVIjKpVKpVIVCQAA5gMVqPo113gDsL1f2lny6nalo4McO7\/zQCGDz1kAd84dxmrDsrsnZDrZcNdfjt0id6AXgDK1XI2fg6kxHj9YAGwzUPvQv01zrmFPs2dDzrS1GRxxTLrr9zvslzu7hW6uLopKeH77mtMUVH82xc6Z3PC5z8lsPjubnqvqQ3P49X6y2ex9ce\/DHmAXXfA1HOWEcvxUSyLgegEoOW8SLBhvalOcm5cDRxrzTyD5qgK6E+p+QPf8zcGmgWEOzJ8EOIlifaD5+cg4gv+1BBCRZfXzp6K81M7CB6rB7CKKwBWSa0qZ9Dj9qD4gHP8+QGvFspokdMZvKv+VALD4kAZoFhoEspPPbHJQIGMAXun8aFvJ64ROdqLIdrkFk85Hu0pZd+gUh8juij98Meaw8u9\/vEyg8Xve7xJuxxOC2foLyKj0iEqNkqZGVKoiBQBoe4lXnbPXxkPQnv6w4vMKFI4OGvo7AAH5vvz8JAMAdMH7vf96XqNxSV\/QG0AG+PP3\/PFiyg00ADDpzJmBmXsaDEPSOezxD86Guqgcqsnpd\/+Lyrn\/DZWIvfrPr5xNX703h0NNnengNh4\/hjMnt1P+nXf4vD+VVx7OydI0+9SPnEPRLzaW2UdHaNDxaC0nDsB33+fknX98keiFXp2Mzfys6H04\/PfBQGCdKCULACZ3JXwNF1BQbfEhRyL5+QE2RQMlmC++t5YPx1I49AILoLtIQNqUGRoe342RZKJ11IG2VBfBI62EFKZjFYnj4ABcj6ML2+buAOzcYDuUDwD+6HyUrbTnDp1gE4krtEJEOj\/qLmmtsMjeRLYrFnyBPd8ebz5dAvhvpxa4eQRYhwLWTweIMqPMiEpTk0oBlaoKAPhTmk\/F7oytBV+BOnmanmbALzpfHC8kTApd8OMlXzJIPmtagEnuwnuTD9AVoKOlvfdhy7O2MZqBBlRDAgD3OQ1f9fRXJSdr11sHquvrqqthfN\/x52f6Ld+m4fN1yH9n7up76E0iPFXsOqPIH873\/MOP481XSVkA75f2\/ZvqniK30+PjA6Dn2qeXoX7lEvLkvyDPZmcjT2u+PzecDYbN3qfzRxUA\/3NT35t0fjjX6T9uDeGqiMFBhxT5eTi0cGrLnbxHP5xKAxs+tQFk\/lewuv+u7yBQ0AlF0vuGvfvjgg0AUMcbwIL9ACerIyWwwFHYAiD52BlwzF24LwIADQgATG6iDgUI4A7B0eZAH3AAPun8aauU1kJ\/M4nsoiOodP6eF8lRoZ9ZI\/Iha4IvFnMyT77TAf2LN8cF5g8B1qHEkpl0Jk2lUqlUKpUKKQQAhBPD0ZxvMxgbdoaX79xcGyIw+nTp+67XB19Ki6cU8JPwwsqUtODPPB7VN6nWU73nKW83mTQAFKzj+te9TVDoDZh3wkXRGx\/4U\/pfZ8bze\/qfew4NuwYOOl81VMPASfM75yv\/+ekE+LfoDcxL5wHucz7ZSdIMswecHB95Z7eqd9G7hq\/86sPsM71n33+Y\/IIv5cA5HPa0SXLbnN+2yUkDAxSSf6TDYH4s7IaGL5LftoD+z0\/xn+MKGmS97NcqjTIhfj7+M5jvBaXh5Dk++s5+4lN1\/KA\/PMy+luUPw9+PIkctIIDqwHzcD2mDX9Hg4QOovl5wFUgWYKoHKmIBg2yQRgBuCMChAR5e6fycTim1QlemQWR3y9QQ6fyYDqnRQuc2i8i8DIEvFg1b9ZsrAB9rBzDvDFiDGkvSGTWomTSVpkAqFSkEAHD0veWvJ3faQUIgrB63+0MGP7eAX\/Z479tM8JQcioT+JB6NL\/uBUqZUkP6PHecGgKi6BoCzU9QXuRQy0Ns855\/KrmtuyPkic\/bMaGpP\/zc5B\/aVDExD6+endfxOTcG\/9IGTa88vZ\/qaA7XkvJMv+cF1JedsOABzoHufKn\/46Fh3H46Pdft8\/+8B9ynlTH5K2fjDUjvnvlNejixsi53VAwN4pnz0PXvvfSWgffg60JvDzJnKJ5s5jNnW1COwsjpxBPVDDoA2iLmHC6S\/h+9dInHeKQeE4R51urXhME2Subf51IEfis2NaeoxVah7b7n8dGJHgmrCtghQ5ZyPKpEmYEBLaEWgALAGPul8rFcZfQ9XG55E+ptSMOn8Wg5p1UPfii+RmQngA4ylx+v9fYBt4+b0cGzMenaapmlqRKVSqVSqECQAwPR1OWvudzmv6ZhQopXXQ4536bLvfJdJ7x00lAIZ\/73bF0rJUCCX3vLk5PXSPP\/3eM7O+LKDCum82pKBDG0qPedj7cHmTibf5\/3uNupxfnocqb9\/2df\/sGcyofd0f\/LKKe\/Kw8sn8cxAZ\/Vu+PlJbhzjdvuoAM4MeQZGw\/Fv\/O6s98nNF3RW0RuMcF7cKK7DPuzvNACDn+sM939gfkmSOSgzyY8knH7\/APmNhmJgqr7KRx+GinUKhG1IAKoYkv5BQyELOicdfNTNLN2PTn8v9xbKUmRF6OQ6ALmWrtXA\/VN\/\/j\/5VAdDgYEyG7eMYDgnZniOayecKoADPvEg7jfh+VA4wAdQH6EIZOoAXun8uJ1SxJ16zSSyXUQrzKTzZ1mkzRkWQSOytTL8AgDwdzhwcxqY7czes9BRoVKpVCoFIiEAABD36GvBfXs7+UjdZW3BUx3eNky6lgBwC1TDWDSZO2zil3jNK7q2dHA0t9IBci\/MFFBfP\/29h3l\/n5ZAAzXmmgAAYH\/ifr\/bc8\/Nj\/nvDdCnC3L3nV9dWcUcfpz6Yu+d08euR2e+sdnVGCWgB7Pgdh9nTOP++ss5dU7nXb0kzM46r2Pev546w9u+OYeszT+\/ftO0yf90ieRHV25gDyDmvzmcz8fM4ez\/mTyu+Z8cn+vuz7vveTj4+cwHgqsPgNiHwUPRVO9OXi8nJ3sHKzcDh5oDn2Iy8otxjul2nOA4388S4nPbgXE6en8d5ujv\/sfuY917eziBAnhh+Dc4\/frgg6SPOWkNCAn8WdJAyTg+46B+tFYL2hGaA4UswLYluBQgAD7p\/DUvMleFTraJzMwElc6f8ZAxm6uaRmS7iCpcYa7vgHl8\/O6RhZsXzHp2OjOiUiMqlRpRqaoAAN3JTq4\/vWut2nD98hm\/u+W3Sq0oOX9ELywFyWQK7+kvHnJOL8A6g+md3rS58z\/js14oEieluOvb\/\/47ODGmMfY3snIqTzN9904PdL+9T\/\/+Z\/Z5+50NTFbRd+Z9Y\/88JnyHuTrzZG6oJ9hrOvbr2wZ29bh438o\/xebbTLHPDFk332724VQnxe40\/W1TVO\/DFNTJH0BC8tkcAPgrfds6gXcCR8Th+PP2zhSPkAaOKGj76\/xPB6mqmiSepKk6bqXhB0h0NDFa3q\/8cagKH3\/AfLyBr0kulaT4sCyoe+C79gDYGAag8nwBWuofAO++OnslOjlyICANJEREgPro5ES\/wTAAGMhAtjZsgMAGPun8XHZp+woEh8i84oVJ5+Z9kuqEbjeIbHFEDH7AHMv+260BAMC8BCwLnVEsoqOkUqlUKpUqpAAA88hch5BbUgW4BBzb7ezsdBPx7aQNhSDskIiqrlejKYRRjlzaV\/c\/Woe1Pk303FopQiUP\/PrOpgPTAEkl1cm99xd5dmmF0vLkufD1ADRd3zMPx2r7z4d4AqebU12Te24AfjScPfVLGl56Kjub0zvHm0MVL0lv32GQmlSYrJ3Zw6FX9U3J0zTl6b17muAd9uzEAHLdJUQe4M93thPLaw4DUh+uPwyAB2BLXP8+LH9SmTnT1vztpqH2Zu+QzZcGNCOSxjxecfwrX2FtsXqM+t9Xpz\/LyckppQG26I3T0TQavvKBl7Au8HOB6knhTn8VpvcxBLqJB4EDpAZy22DxMzE\/WuGVRHoDJrBTW6EBAcwxCwYAXun82g\/p9wxVsYlsxxUqnb+WXdrsrp8MItvtuMIPAPrfJjsAAKexZGZSo4wiKpVKpVJVBAAQcwyPlLEhA4gHQJSLyMKn1+49YU4MOGUxXV0KD\/uCPp\/T9l9vO0UvME85T3Tc9u0Yf734tF8X3+fAWIDGn7\/eAmidedwaPfPdk1l5mK9dz\/fjZu+qHubQRe9zsDVOvu+8r703Z3cCG3bt50xr4PRm8Ol\/rQPk3nt29Vef32yu2bvonXP\/vvqX5+xiF\/86+xwA9vz5\/79O5uOz6o8f40T98Q2niq0mq85yMhr+Q2wOQDVzfy\/b2nU+uyABkg3DDtkp5X84fVTrIAES\/Q\/jvnii5fdO1rGoX3\/4KODQLD60fFMVWBxjwK1ipZY89xc4kA7+7Q65v5CU2Dm4HjQAkBc41XshsfDATAMfHnA6BmSUewbcngYHFAFPZ2dTAABACQEAAAAAAMOtTEAGAAAAQ98Y6xr\/Tf88\/0L\/Rv9C\/0b\/QP9H\/1T\/Qf9A\/0T\/QV7p\/FkX2WcGIXoS6XFSoNL5vR+yewv9GCaRfpPJMlf43NUhgK\/\/79g0nGW9CMhORxEdUalUKjWKqEghAIDc6x3Wf3fvn7n8Lx4feLGddIR6PgybvhSCpxBoYZw3H9ab21ubgwk6j\/6n22FpvU9lDZQ5d0rP4\/Zx5BKF3MqfKYABAHYfjlpwmvN2Mod9BlfXc7urO0dVnHq69m0w6\/wMn88Ptk59ePbdB4D8a+eM\/3FyTHG+pruBs\/M9Q\/6\/N\/R1cgp9b1mpnRYzVU9i2oXS\/hirgq\/JGIfDCQZfbg7ffzQwpY\/rTErA4Odh+Gn1PudfB2ccztgPJ4cDT0MNXZ0+cdRjX7XDGsI5R0XjoVo7a0n402cEG8vHoOrOLVPqkFj8ZAudYQDYu5LNyfOR4P2GhADAT80AguA\/gKyY9A8Ani0\/gzbIjGCcktxAFyAAXun8XncZ1UPXjk1k3lICk86\/5yytCLVEiMwSfID50PjbtwP8H3DKrCQ1SiqdVJpKpVKpQgoAsL\/djSYSkhKkBFa0JouW7IOP3PYPtr6Z6znPM5lv3f+DG7Q25TYzLoV9sln\/UbiKKfb9Nibucxz889PbBWCGKXc4u06K16NvsumEGcPzMm\/\/Htz22Gq78z7n4aXobwPNgfNvCebP4fXaHyBiymM597KfB5uieBuglZWvxvd\/nGDjndrD2T+9MDAlfgfYw+3g9FmZT2Ye8SOWocKP45aNxJ6vTtg7NwD4\/IAp4ACAPhzA02X2+MQPCwgDTD4oeCw\/XdSU+tA43Q8uVY25hI+vw+Fv547bD9SH\/1dw1vGdsxKyHIAMf2h97+Ym4QLIBJ2cV1T1A22gDQnZOgfAmUCmn4GjAcgAPun8O8+ynVDHgEiPIwCYdH5eD6m9hygZRLbjD180oPGvoycg9l8WmjluKjBbrwFRJp3UiEGNqFQqlaoiBIBHX5Wb3NMRKhR5hr5TezvgcwiPjW1ue6HzHd75hctZgBJyAALd\/\/nIbVopdPe5mT73Rp\/XqY++OZMzFMFymYRCQ50Ph\/qkMndl7g3yd99POlT1A3BO5Qb4KhWQkJV9QWbCATKpPRtd5OdDWU7wHHg8avMvzD6QX8AGAMic+roPQJ7MIwDu\/mIneJw7SJAmJUr1UH8A4LAPnUr91H\/9xT8jP8iD43ajnvftZO9i59fcEUI5\/bvwMxgG7zN9+B+2dqreeSfnnAZf9fVSOyVOhFj3Q8JRxsc\/lqPENZz4zyAQtQ9OzjpZAP7J1fk0JAjqus4ScYDiI9BgALZmdgOAEFgDYiAAPun8da6yqoWqKXKkX4bFudL567bK9BY6TSKyu8waPsBmr19\/\/wE4A2fWaTqjpNJJU6l0RKUqQgAAeB+NkfznDAFfgtvTi9EGdu+WvWdajB\/57QeTCzD7p5Xr+50Jz+QCDTWgXU5Lf1ryBrL5+XCAdXwsH9n2cb+VqJn\/np2f0X7mHFpGHcfxA72Hnnky4WzHBx84jOJvzs9umiyOv4b7W9eceMSw8wsSZoOzzjm7Mua72l2f4mDXoP730frKzaZPX39sGPiKPse62P\/94\/yvfKiTiH1zdOpFfpyRX7WT6XQ0Dd+qxkWd3kBvNpL4AGMNBfuH\/Ae84OuMwrFiU0XVFnMuCz7s+gfMftOx9OnX5zEcF4re9jwJqnW+zoBOigaAV5w6CQeAhNfk\/wPUkjCo0AIABgAzeOuj4gdgVwPADPSqAzLaAD7p\/OelS1dCnREiMxoCk85\/nk2aEroWIDJT4AME8m+tK6BsuA04Lms\/IKmZjCijBpVKpUZUCEECACyNPxdb39hKup5kww8uL68phdJOGSPbyixM0FCkqT\/caiDvjLuWrvjy7Qe9MD1wJ7cCABMcMCzpuTDNlUBW7Wsz4\/qpu2nn9X+nqWtg+DpcZ6qKOc6v8aki2R\/fOSZ\/W23Vaa8+MHpbN7sAph6dzZz+9TWcpo6Gq4D6LQAUnAYymSp49w7e\/6uwe4D8dzu3fZxxY7Rk9oF+e1NW9yub\/2CfKXad3MCVhh597VQ65yiR+DJiADYeXXwsghHYr6c+x18ydVwnh8Ote6f\/XhowHLNFWTEOp+G0w5Gpu62Gn5YJyMAAVOcGWABaOGmjBIvtbD3Q1AE8ADgAwwIDEYmQyMYMDQaycxhRAD7p3Pw6yRa4fjaIVGYMlc5ft1lWzNDZGpFq3fAFum5\/97TNgfFNCnD6kpk9Izqp1IhKpVJVAQAm0Yb+VmtjnQA+Z+9qdULxN3p8\/z8G3zCfl9LJH\/5x3srk3HJh7hPl063sy\/nx\/brbD\/c7J\/kCKAao1H\/RyTk3mMtU8icpqqohu5lquGEz5zBsmrvZAGSePkndyWR+UZxTX2eAaXon51BAvuQ5WXlubej6cADI7TbvbMxz5hcz9VUD56urC2AXCXt3949Nwhd+OMChks8mu04eF8PAGznv+PPh\/yv96kjCgmZ+AvYGAXX2V8u4KAAYSPr8kt0VfO2ozK\/15wMqCvafYMZsofffdvUSMLAboPdHzyuU+fhhD1K3vPpK0SlRP5r8KuHnAwDE03DMzGFsrRdgoHLBDwCEos5lgKNh580GwOUAcAQ+6dx8O8kITwyI9NYNk86f7SqrVehG04j0W0INHwBW5d0E\/yc4jSXKTDrpiEqNqFQqVRUAgNDTs3KNg7N8Ca0Pvfbz1PG0H0qAjb\/9YPBtcpnH5L41LFrP7M8qUwcx3e\/bma+PV0+XszdN5bAv9uvwHXMGmE2fy9zZnZPV9Kn8SvYfssncFwUOJ6yx\/Z1g+vymSvTdmcxOphOa4rq2c3Lczvw2ZwM9nTOczT5\/NnPD9IZqgO9jfvRmN3Ha6li7n6O1kyNozO9gyAN8A9+mTsPBEvyL7WPtM0\/j6x0GyD2HLOkZWtsedvHFoeKI7NtCEE4OQgsvhxbeC0g57\/a\/spxEBOe+pF1HAH7h4AQC\/nu80r8NYH3qOQzI5WEATiiHE3Rc8FE0VpPC5He\/EvkhAT9AiLKHDSDAEKA1QgA2GwwAPuj8aV1KENZRQHQAJp0\/11V2tdCV4CZS0Q78AJrE\/Q9uAABOX6JMakYZ0VQqlUqlioQAAGD9WKS6YgDgChCF4FD385eJ0wnDiJzKW8HAxQ3r7bw08C\/vLrfL1MdlbsW0ztt+W+ftm9zG2WfUHIY\/e7rhXVJflZnc21TKZj1NBTbMFH3E8FUASXFnDfT9Ul\/fvms61WHDyexPJcmVbE5nF9xZNw1str++RDL7k1Nw8hyAo9VsLdXi8SGVE0cc53zPfTaigDnbtE9\/DkXBKRp35X+TEnT6IVJ2+WCGswFKf3\/VTus\/3bsBspLyF4f91hgS55zcYHPs4b1oHZH6u0PeJG6ZfTR8U+6aJciW3dyy9MUeDymUwo8G1lIJUPwBzFLq178\/DgDnAC6lFm\/GxQHc01eMYzjAOGUAKCeATd6CgQjN0YDsYgA+6dz8HGW0SMtMEJlxQIJJ5+\/rImtF6Ft0kkglwRf0aMzjUN0ATfuvHTizWZsZZSZNU6lUKpWqQgAAmX+a38M7+y\/K+\/L96XDA11qMv\/rN5eb2JN+e+7S4duef49JY7LMmk2lTFzlr2j7BzFSwZvdhTR2PPp1bp+xTKOznvOm4+9M6vtrzPjPnuA+pjK+Pi5mZ\/ec8J+eyONif2FN1+uTJD8xn1++4vqg83dC95Hsgh9MnJ+F0fuCwdyvV+\/f0V2lgYF4Tusw2\/0NvDp77HKGGKklCMsrvnNxc+2Dm8T5Ub9j1+Ps+AKA+9HEKQofAphNg8wU45+Fg2RzgA7sOewh54eSPtjjMcClhzM7RS3yUnZnubAXA30mA1o5cYO648Ie\/QiCt4A5nyWavh3Xg4MPpGDiJZBy6riSd\/jnBlYCDCgwnAIShiPPAYSDWAkAm4AVtbAA+6fxzmWW6hm4wifQBVDr\/3mfZUwM0IrXALwAANnBTgqhnJp0RlY5omkqlqgoAAKxAoEQhfvVpGG8J6pW2d+62oeBDL3gFbKaQZ8rU+nm3Gh7+ZWoFMlNZzFOn1NDkTHBl5lB8dK76475WxzBuY2wVyduuzKJ3MZe6PxzBrz5T5xxqrt\/8hg1fuzOrnl2n997z8czU4Vycb2ya2vSvuWd3ApD5VefF\/VzFULk3X1nPie5kKt31rTb8KRWwDww5nOfutDZQv12M9d+icu\/Tk8XZfLbMnDCbmhn14kerGU7\/OTkBDp\/gn2PO4WzOTvgqfE7uRH2Af5Fd\/WNiWuq+nA\/E904G2QPIAz86CmBzlTQcoJByfzvEoNG6QnWUtCp\/AD9ocCJQVp6S5wqPAw8LoLkgEvQQU010AxHdeAjOAWYDAj7p\/Hc7yeq4WiJEqgSVzj+3Wb5eQaIQ4QIfMO96uvXbC9w1TrREmZlUKpUaRVQqlSpSAADq9K17BdF8IPfIkWkM\/rV4KLncuP+n\/6ZQ+jztl9Mv3XNhKvubiVbK99PAPs9dw2HSm+8\/tmvv59YpZaZQmFsTH\/6GAyc3N9u99z57f8j9z8dYhk6dpkz1Ob0b76\/umSKp\/gG7kj1qpqeqMveZv9ibW4Auqtn7Q28nFzlw+Hb2Szb5Bw67zmenAdFQpHsnwPk6wNcfx7HkdNh9mH+fnXBYKL6d7vfmA4wvOpGTzsmaGacW\/zlWh4+vdyr+c\/CTTno9YEEOKJtz+l+9NaSe0zE4Lw3NBuztxL8aAfiwOHA4x58feT3X4z8OsouzOL0dWCcWeH91wyfxBgTMQAkFDpA4yMAZ9o0AwjZgMgY+6fz3OsrTSBKIOAQmnf88uzydoFWIOBFOV\/B3ogE3X8wDnKVnRjQdRRlRqdSkUhVCAABCGTJOTvMz4VvIX3Kd9ZwTPIRclIp55Kuz9aascwa+\/jONiVLOxpNpuWVyIau8KHYD0Y9mM5vaXL\/3P8oY04P77XHe1P5sZeafHqj7O9AMxZBwnjyfrDw9w9m\/+U\/uXRvIgn12wuGza+5N56kfeTabOsUMSj9R3FBDOX5+\/nv8+TTwRR0ANmPi0L5whYsaahrr8Mm\/wcVOwd46JMEHFAfQhdHv2LQZggB+Dj1fXey8RZ\/c5XPrB+zzDQAKYBdjv5RgGKfU+7DHnz\/O\/Vqrc4LwZ77\/GAA7GpYlPFy84X79oTqBo\/GPQ1EHuqn+xsmmPB8AQBvl6GQ+NJ9S\/gKQRIISGq5WODmDiRkg4MChVQcABl7p\/O86yttI\/QARg0rn\/1y7HBtJAxEHwxUFVw2wZscCJxtUOsrMjKIoolKpVCEIAQDkkH4t\/7hL59seyPL4nu9tT9rz16al7vmw3x5SxmdTL8kXDx62uc2dhSgtlzfnz0bL95qi+0lPH+qza84pfv1534Zjms4c\/1XWT3P378H\/H197idq5GqnNo7fCC9Rh5zlJJb9zKvveZ+p82DNVzZyfzi06NlpU3r2\/YCprk5UA7wzHdAO5OQeKr3PoRv5DqbA2LWt4piWmoY2G3BTMlzAAZ\/xjQ24kfptOmKGrgaEO1ObBaRV3Sw7wbw5DcebQm3H6+HByzPTHYb4uDpVKgC4UZw5g7MbcqgPk4ENckzfeU8UZ5chG6cPnfkrHnJPKgb\/gqqUAJ\/7\/49DUBq6B+ykZgNM\/A+BgY5HPAQEnYCAGT2dnUwAAQD0BAAAAAADDrUxABwAAAGHt5yAa\/0H\/Iv82\/z7\/R\/9L\/0n\/Qf9M\/zb\/N\/9H\/0M+6fzfzypXmFCBSAzBoPP7Osp24TQawAMmYLrjRNnGkhpRaSqVSlOpNFWFAABKMdrfs7u70e1L8eyDsNae3\/z1k5bsOxpf3\/XD0bqsL1speXHjX3KeJybBeHGe90tuhn32vsgZl067rztaTs+c69lUNUV+n3fGuZk5FCc3bu47j5\/+\/X73afS3\/ZZbn89KaWJeHKCaiw3uH41prj0l03KZ5kWpt6H2QPt0TWfC2Tok7D\/f6NhAc7\/\/uXX359CFXRvyMzDPb5uQu\/4zHHP6\/PGz1vFval0nJwPbWjwtB7ymhAXcWwC+CCiAkwM0mLv+w1H\/GeRnnNP4HObnv5UC6mnhP8MdR2Z\/McI0QO5OY5wk\/\/+AxRpZa1OeJSG4\/CyysHMfcI1nA5BfwAGjr\/gGfzlq6KASFzJpkOka9gc4HBBwAP7n\/Dqa9CAsADDp\/O\/VZCtBSxAJ8AFzLE9\/HOCtcNOAKDOTpjKoSVOpVKoqggAACPtFv\/Ll+KVEGsJ26dy4lam267eywjax2V3yXcjKZPzjizJ1Sl7npzRy6ZaY9q8XbpqC+x9OP3rzfuqrzuka4JzZOcwRNOea1jNJwiR7YOfMF7DZDMZF0ecpoPOcHs65YE6yEezZh\/b8qM2cncCQCJjipn60qGC9GZLqz0xTSfNYevb4\/YH5Jf3KYuFccbp67D3t25l3t18lSDDBiaiq\/AD2adghcwDIDd8oik0j8DNoLqCYG4Cshg8HAmavj\/pF46ytg\/QjPIADHJ+\/3Mq4\/5NKWac\/oOpa5WYCK6jFn89OulEWgToZCAYwgMvAlgYgjgBe6fz3MckzNfWFRsRg0vnvc5SrhHxAJMAHWCwfv93g\/Q4nMzMjmo6SSo1oqlQkJACAL12ywkm6k1e89kL\/8\/pwCWXrSj54Ovrbj3ktyH3enEe\/mTblPDfo5HZQHzg86Tlnn\/MqC4ZPbaY3H38jT04yffb3ZpNMb9gU5z3dUMMfhv1nzkOlbQZc+2vvr3lzmiR798O8bKAOAANn03\/+FJskPzM0s+eFmil6epIfh0x+R333M47Wxc6AbX6qBopbfB9cHIr8MQ4nRwYcXwb9ZUZMYZgUJ6u\/utrh9A9tIae4SQEJMCoBw\/hPgzT\/nBsO6yAnIv\/Bgn9WO90kP7T4eEqfGWoAaFrZ5\/IM0kkCn12AAviNOZyj\/AA\/\/yEIGkAM6LrtJRJfDVdbEAUnGrFAAMDpUCFnkwFe6fz3Pck9HqAQiRkmnf98dblB6AaIGHxAQyO+eDvAnTiZSWcURdQoolKpEVWRCAAAeVvfs+U6tSa+tGWgbZx+2eaiQaZbR09YVqZSV8\/b52flnlZL1voZF+tGo\/HZO71FcFO5d5N7eHKg6zDzYwru\/VRSs\/Fd6TNfRWfxP1nTlfzvNIcz53DYT\/qt\/Zv97djh\/cNHhw5vHza\/raoGOCcTcnK\/X8XsgSLvLnrwwD57Ts8LdGf9UF\/8zMrfSZ8fm3MacPcr3JIFkuTHl14+B4Rzn9ehKD8c9v58oj7Pii6gfk3GnCOoOZ+eGXyCc4TTbLDRme\/oHenHh5PjiKjO9gadlx7UD+H4gcSf3\/IofPDR\/cSp92MWYHVJlxAwyI9Pb4AN1FggKgFJ9us4HQ0AGOwDTHUg4MhADEEypjWABv7n\/LUt0kOmzgVApfO\/V5eze1AyRCqaAl8A9i+39gCM75\/nBC6eXOg9M0smTVOpSaVSqSIhAACCCUbKbO9OwlkVQrvi9uGHqlz4uH252p0ueOFkkv\/dc\/Rv4+\/dP34Mxpk+2+Ptrze3ie\/s7j7FvOd9qp7OcNxtW+57ss\/GVDa9iXKAJ8HxYTLp\/YM57HpG1Sdj6hGHm8m7+hnO3smh2cyZByCrgX8\/9b++qj\/5xQZgrq7yUFSqc7vduB3c7fHzUHNy9tn\/09TZBQfo7ZutjTu\/sQGm5JRv4BzqQALq69I\/8MG5+pz\/gW5qcsGPzjardkNu2B+osh4IkSSWIx86OcGVfD6ulwUNiOGQA6f3iz1wGxI1NMxgie\/RUD\/DK2\/vh+aH8YXK\/5x+1RcnAcJhWepnKAM3cCTAgO00ACL5JtPiP2gAbusGHuj8te0yBa4fEAXCIdD5vXe5hTOAYLiCjg3A1X\/vwLwAyJ6ZNE1HEZWm0lQqVRECAKC4U7PtZtPqcXsR\/mcN2XdnzaL52biUuxw6NLR3OVAOerk8m78636\/NL+aZ1LkP0\/DZ03WSUdN3DU3Vb\/rh\/29V+26zb3eH4fTT6e7ff+rDfydDf9jKzc5DMfthu\/O0m\/7qr4LpOU9DsampYdOHb5uTWQD7fOtBOTPM5CGHHwe+5+u\/odi1oeCaZLPtFygY8d\/mdAM6fPX5l2Bd6+z4gYF6dCR\/\/o03BXtgz\/fW3M+n8r8\/2P85uWH3HNrw0XA4hS0doZ9+9I\/5zI\/6UD\/7jw8UIve1DQcaPWz2\/Ge+ar4y12uc1o+hKB1qTIqceQtg84BgYyhlwyTjKz9fcbbxI\/gQABIh\/\/14kMkAgPmhoRhklL3jFcgAEQEAPun856vLDoIBIgECnZ\/nLGuqg4AFvkDQXf78BGzN+OYKOEtmZlKjiErNiKZSqaoAAJ75xYTaSSf5xLzzq3dlavm59kD\/euvjQel5tKlMv9D+0za5TznnMvep09f783l\/aUpjPBVNz655ff78WU94porNM0zSR9vz5n\/qIg\/Pw5lKaHYmXz++JhGcSQZ2594vJ3tDe+pfw5msXXTV9+ypc2XSmUDzCiA\/OQXn0NdseLo3TNXU7OrhMD47P1pbiGH8\/HzgXwDk+dqfJHM+Nk4dUWZ9x9Z87UP5wPHv6ft4nPL6\/NXpOyjJH5z4z0F1Xn+VHzh80j+gbAEk8PMpGNhFQVvoY8CmMAD9bzHTPx\/IBU6eWP2aNNDcvXfvsfM\/jHD9cTg54Zx3hhpWzv1UpDTEThRQdMIpNeE6kPCJx5ENXXAAKHjUARowBB7o\/L41GUowAHDo\/HVvcgZBAcLCFQp\/qWE3mvGNvbH3klQ6opOOqEmlqVQqVUUAAPSslf8b93aeVk+7Hvz+\/7stujtu9nm9f301uYy7jg7XB+eL0981t9e\/\/j73\/fnhvJ17L2XjvOh6Dso89TnnW56mr7137pnucvf5n9rNhjlnqNrT9e+zsbYzf1tOPx+PR9OJzg\/0bkybx\/T\/poazh9PAmbOHvpLuc4Cf5kfzz4859sEPoz\/nR8JmNgWUn5NZv5Rb9+YH8B8AcM6BP9epcHAw\/YE9zeGrgEkE58eW2ByhV+cO6fdTZAZ+cICTUrCSl5oD+8CG0xu+Vc0kB3BKtOWH0z+kex2BBwzaCYuBPeQ20L8U\/uCOIx9cDD24Pw6E1BrB3w9cB5hM\/mIAQPHhVGGBBZJsGXBRwAEKYACh9QANHuj8vEyywoNBAQh0fl+77MABgC8w7MbzyzUaG1t\/Mxi206PMzE7TETWi0lQaBqoAAITJNC+5P8WG2Wft5Qxtnij+nAU8fufWouan8zzvl8Nlv\/E83j9vObv5snefbvt+Hvs\/\/6gf49O+9+0ppjn1h\/YFA992nySvrjYdWq3PH62pejnPzqybP\/\/NPvudMzS5zzkcYE\/VL\/\/wdOXTmTMC4DTOrJlTPb85deBwtjur5k\/v6QGG9v4nyiHuizu\/1wGw\/9vFa26HneqzC\/TFARDpk8\/L4MSxZ\/MDH3ZBWoLlnOnAGfC+RXtgtLledrGpA2DaDrfTn\/QXTEs5WLVYHtQO6TP4MdsIKsPVVL\/ho315xE7XxfxcZUeSOF3wB3bWTpqemQ+aUVZs+LYQ5ERORo4B8aeTZB+acwFOxgCZ6LCRQKtiNltAMC1sMqijBF7p\/O97lKcIPRAhGHT+unZZjQAA3gB99z88WU72iKZmUqOkk0qlSlUkAAB+BRtMuOc\/obT9nnPkpIRHPuN5bts\/+sNX74uH7azc\/NDz\/uVxT4VbznlcX7dF\/V66cfMEZ1d58qp8v9jw79O73r4E+\/UBtjvJ+Sdd0ENt\/5nJZvhzMj+K8JYjMyensNP3X3S4c3\/Nnh7t3JWH\/ehof7bWUaqO8qs6vhzNk9NMd\/J1eiCp\/nSz\/1aahM\/eU18HgCa\/DoDgAMVfvgOG9H00HwBVoynaXzoSyvvDT2UAEPp2OBtg+w9Yezed26UcuJ1sjtvNlG84W1soBZS4UB6YXycA22z7E+CoGidGBeCmLIXhYwYORAW+\/oP0wcfPPxA+wkpCFPuBFPwkvMIZGe8gxAAQcDSTAQUHAH7o\/HXvchsBAAQ6v66jLCcAgAdHp9VQSNwUQYloahTRVJqOqFRqRIXFIhEAAMT4fxy8X1h+SlU6N4f8dSEDXU+KaLscfYzQTt3mDt8fnz+93Nfci59LVrvV+9BP\/t6zfp1+ut7XH18zbjfjbe8\/HEN\/9Yh0Qc7nFr+WZrX1l\/EJ6q1mv+z9bzN8Bs6ePaz\/rcb73YZjHTlSX1O1a+AAnR+86cD6ywHgex\/oOT37+PPjVA+OfMQeux8fcFz7y9\/aAuCH\/6uVn\/zA66NaAKfjb6dOP\/w3iZLDJNmpA\/tj0DGHApBGl9HgQ3kQczP54Tr9GOMJNp\/i+I8Cjj\/kIw4n1I+ApepPkvysFpjq4YfhFPkNfwoqBa0G5ov94Bje+R+gbZ3TTwMkjpFLGGCzyXUwrQNNbXYTGgAe6Px9K7KVYABg0Pn7XuUGAQDMFfyf4KYEGaMzo6QziqKkUiOqQhAA0\/pn3LXbDdur73TFa1hZ2vYXVn019VBWO819IPdw\/67+MRU9MSy1nWs56UuP+0uy8Py+mc5zpvePie51LhpNAjn5+brfs7s\/LJ+Lvd\/+Yc5lnpkbpObM\/LfGyYxd7jqPpB\/n\/Pjs3OVjvrp+88\/2v09veg5dDaeLuTthH74fpqGUdWBtRMbb6e9nU9kJ7KH0s4VD0tKbzckGSv+hTid8Noj\/lJOTTeBpxl9lAB2bfqiTsDecY0BsNvaPUe0C2Mzvao6KiA9Mpd4cADhGu4x6OH12fLkHyqd18i6YA1WxuTDMAdV89TSQkBu4yANfgqrYLLjIBcPa3C8eYDgBFCl4gAMIUKbgfxxY8QFYJ4SYfjg0s5wZdUMfMDgH0AwZAD7o\/Ll22U4wgCAIdH5\/NhmIBAngAX8FfyiUt8IT9MxMOsqko4gaUamwUiEAgCDrqy\/ZW9m5j9VCyP6t88brA71tF9Yfwu5qY\/l5uyVwmv1OWfnO+9s8Lvtz5nxuX+A8DNP4a98ixizN\/Ph6jvgXnTSbZ07tnWya7NkwnQP++uRvoMhr5xfZb53u5F9Zw87zBdRpBr421OaXMGTSMOf0v0nyqyl6V7GzOd9OsSGHO5oGflZxvud+dvU4iz1nTiH+5mBt+OA\/UrVm8wo+KmAo6eXQ9NBs5mw4KX2AGYpiz2mq8882x\/jzNzv6Uzmb28WGac55LJBk8IFV\/+MnGljcthHZ+s7ejlWBnz3w4ZRRvhnHcJQa3ECbApkD2QcYpy987yRYgEPDLXJy9i81oY5dBg4sDQD7lEIrANhkAxngqIAYhgBPZ2dTAABAcQEAAAAAAMOtTEAIAAAAY4wRkhr\/Nv87\/0T\/Qv9F\/z\/\/P\/8+\/0D\/Rv9L\/03\/QD7o\/Lk3WUpQgEAQ6Pz9qDKxwQDAFfxn0DCi949gNDeFX4Gkl6TpiEpTqVRqRKVSERIBAJD9UNWZ7fLeQl6mpd7Sd144PiTa8kvc34Gp4RP3u62XNf9e89MzzbTNZWcu3Qf8Hfd1ZbfGcS\/vF\/\/M0i8rG5E9vz6P7Mgs8s9Q552m9anl3sntaYZpAqLeMLnrMk0Xv8PAoe6vgdl1snbtht9+64Um9yX5tgc2SSZnw70ffAfZ2UPNteld7CL1+tzAARTmF36QvvX4DvlX4yQFoIR04DyilGwAeFTA+c\/5Wj8iBRmpjro+eOFUN4qfVWLfEKyVI9kfhgGnlDmdT4MfB9drJ8Zdh77+Uxs4UCTD9wBTRdUC0iew6oFrQGM7bh068gNEcAL4cAIEQvcHKtwYA4pD2CZsAB7o\/P7oMiAAgEDn96vLDAIAeDD+R8IFp0eZdNIRNaLSNJVKpSpCAAB0afs7Mms+5nEzZfxqcClqPmh4Oav9QYh+3WrrHf7yyXlauS0vgtLPb955kcrrcWubB3kzj92\/\/Fdz7z3sh8k7\/zBM1daeD\/uwi11nN8x6NdqdWhwVp+Gi2aK6T\/YGIPfALzfmU2zYACcv6J7prKKovf3+w2m1AHZlPWlmF3VgA\/Tp6XnIIt8nTwk4ezBF8zyFrcq9u7+xqQa+AU8BM2yD\/OC7rx989+X0PA8n536o3zn9JADm8CM3B0j3R3qURMH3zFCM\/1fJyc467FpN2wmDDUA18K2ygnJyrB8A6T4ApOZTvvvwwv75sLsPlPnBK4B\/zmTUCgA\/1EwYgxMAih+nryPAIiEMhhYzGwPACkJeaI4CHuj8enRZ6sEhgIhC5+93lxOSBoC5o5PQZiadSZeITiqVSqWqCsBd12sMSx8vPNn2VvzSRwvArYs\/JX30vzv3v\/5xfvr39vHQ+4\/ftsc\/6\/s+0p\/Tbk1fcauN23jSQdQ9++qss7\/PyhmmnJ0bv2RxoIb7T2XVTur0tykemKn2V0IdHiqh7qa\/ff1mn1NTXTnT2DnGxMk6s933v84cVORA9T4JDPVg0z4kT8LKf1IUdX7s0zXMADC1Abq4wo6\/6oef8bY1dQByzznFPvzrZ5IW5XbuuRX\/1uROf+rAyS34p9VlC\/+A\/33gUFH58KtEBhWdAxYwX7CBTPGtSG+fqcvpBxdkyH+r9uI0vn6\/NpujJIAP+OG\/5KzASf58ucd1yuuPQSeFU31rPH0LHwAFyU7wQyUoZHD4u9Ixmx8yKOAQbCBRAAU+6Pz1aLIEyQRAoPP9nGRpBY2EBR7gY7gexNmZmVRqRtSISqWpVIVEAACUqpdXIsv3wGb9lP7pJArd0868b9O92blu7l9+aG3cX2kl++bmLbgoE\/ttlPOD83Nu8ZT9dW4b2qZNHe5\/l\/sNx8Pr2baeTUJrd+\/TDWx6Tu68h02Va\/Jf+8DO+Vd6rt00uV3nJKf2VV21Kznne8Le7GSGR31VXv3WPofm9NlZ9PinqR9DY9bx86qOZLjlX2e7z\/XnY3z3Mz9ueJnZvcCMvwHI7D1MHTiUzvyBvck9Pzj\/m9\/WL13x2\/w4Wsn+y43QT24Z+3NxnnM2cGCSF\/Lfp2haDYpJHr+QTZKS\/sP8HPvyAZ8n31\/4\/HNLvitAszGALrFd7cNW+WqkAv\/hJYmWYgcXC77rOMCpPgVFMcAms40DdsvSBAB+6Pz97HIWAQAMOn+eXZYgmAC4gs+zQfdTX40112ZmRhFNR9SISqVSqVRVAACy1e5XJu8OS\/3td8wayerr3x+75\/zHw5+\/rd\/vz\/++PtwfO\/uVeTOkvphIPtzkxWJT+PU8h99sOGfvOW8+v07ncH60ctPzqwvge9fAoci4OTl1sf8vNH994+Rm51efHOjsorNd9\/n1C1SdpMm9z\/6aQ7r5szm7GDHXh\/5\/sP67l+87k2ZP7b67SfVB71huhv2uNJz4LNmc3gDluQYf7KUD\/kLtQ3KA\/W0fAJSvb82hvzmHF0N9v2aKjyS0qCpKuMEnonKzKwFO36fnj5BlN32SdJozbliC0SIpOlo+NBoiV4jvPv2wAYGKPysNGwe\/glAUvbO+dGz2gTj0P7GAZBnAOe8XnWaABYe+ADVsZsCCTcOs2QDQCAA+6Px5d1kQAMCg8+fZZUGSAPCAq3bkPSFOZmZmFGVSk0qlUmlVAAAk7aca3drn6lU1+e733aDvCwnj5aVqu3d0dPsrH\/44179R5+BoXM\/rMfT1V2Vqt87g1\/5+f+W0aveXmw\/nPzPX7nufd7Lq0FQ+ZxqUe8isnXVmODdn6Moh34E8D705QImeM5weBpgP8+TkJvvs5ioKisZPkgBN0RQ0518FQHey0anO1jxc8D\/neuoAtYGHvYdjhBhV\/vcBcxfR54c95IxP\/d+pAg40Zn8l9SvEIa0N7eIM9QjN4WarAZIewAB82OUiS\/ZzHtKv75c55oD6OIHeMCR8ow4AsEsUHVy+++9zQil+nKOarxRyP9VJJ7hjxADYNBd8YL2zMX+o6Ba3eklNlyH0LgGmqy4KDBgQDlCFBpsqFMAHgwI+6Px5ddmCAAACnb8+mwxLAgAP+Ct466PjyUxKmqYmTdNRRFOpVJECAIDPQ3kgcu5Fmteq7zCx+oSP+Mvv61n\/P8WdrfOHyRfyh61a3rTfnO333M72FyW3rclJS7h7sqdrn+\/f2AdeNxoSnvqqnfWZoiuB381MF3X2\/dDzO+ckdwG16UnBwC0SMj9wcGuHY1Mpz7mX3kqbZwzHaHz+ceq0q+r51jTJYfP5409k7Wols\/jnJ7s5gOk7VX5+jhU\/LBiurQMk6a+sdmrMt+kNB2hmzv8axyTw7NJOKvWF04+FmcOBkRg55wfVDroSp4\/o961v2z6boSCLqil0w8DuT+z6zgII6uz6qjoA8KEbmf7BGOWm9fGvGgCYk8AFPgOfKwDJCdKGkgaEgCtvGtUhJDAAWUN8yQwdOgoSYEgCwAYe6Pz+6LIgAIBA5+fnJAORAGaZOaZUOZlRZpTUKKJGVCqVShVSAMpALdbfOdxJCvnisDc5BSgET\/djvvXvd87NV+v5v1kE8K2Ds2k8Hjx4wRZyP++LNk1N9bLPzrf3t92Z9ON5lAXXx4DUxLnbcA6nmq5Pcs7nQ6PM2syZf0HV5qN\/+D3Qf06e7jbRnIv\/15kzxdXpvgaqNs+wme7e8PWbzxx6n8NUzWS+6cMwXZmL\/nU9ymsYYJ8\/ydZBzTA21MMXQEIHO96Drz9OHKUFFlANfONs+OHvaP3kAGDzRSND\/foJCxskLSWf0On0Q9FDPK4BgNxsoP5lyfDBf8q8bM6hWt4sfP34\/E8sxydCfkXV2u8Y5uN7kL\/yvSkDgKo\/rxJ88FMPrlcenLF2KDrXSHaG1AQ\/AwYDBHSDAygEAB7o\/PnqMiAAgETn7+8u2wkA4A0yDOkb5nvJKKIzIzqpVCqVKlUhCAAA3l\/NvDb+fA5\/ua4vIp9G7+6RgQc9fdmxhz+dbeZkPqve9us\/jKrT\/PnH9\/3q+8ennPO2bs+osJ6m\/d7Gt6Y+OOtpjru\/TpW+5RRdQzF3Hn\/bNSgPfeZb0f\/PbKhkT88e9IAZQFZ\/P0xrfl395bs\/\/44sOn44jenLDHPy09lz5fwGmr2ZHnpvDncmU1Mclv8GOOyFzx++BHSD\/ICgOGzYzG8D2w2H871T6BMvPsk0Th8LpzC5SU4Sfqr+PtRh2OM\/mwNkstE+PwB2c+9uBv4XRPg7LX1qfzj9R8f\/vgJ94XSsVdQgcTIG+EkDyhKczRYsj\/vRknxa4OfGOIo\/XE3OGXIVPAD\/Jw5d\/eHdmAKQFXG0CGAdlQY+6Pz11WUqAQAEOn9+unQIAOABxcbzBByK4+mZ1CgqVGpSIypNpVJVAQCgrPZOl4ejUb45cH6deHgVrMu\/D0uvLk9sXxXKI\/9Mfev9WHtQzoN5fSe16WXr6zJeX6ZGH7SefHtb38d8uP84v+7fP2fSlf89xENRu7I5TPV\/atjXzvk27NlZJ2d\/dUHnZvg2ZO0ZfvQDmTNVMPvuO+gEH3zfuBqG7P70hlIXevMt\/OHE9tRmmqNTXBQH\/qiO\/HsX3bRp997zx6z56e99g\/sdJNp+fPzwQcIerLffuwi7Qyh+vqzkhOKw\/z+aQ9fQei6UbANJADqBF\/VrLgrVPZAPBfBR\/Dec3t7ZskU7QCkHCQRJ6w8LP78028KaFFTCOecBi4P9Z+8yFD90ACDQQoLaTB0V+O8YyYmT3KShNJcVGmcgNxyEjAQAPuj8\/W6yISgVJMGg8+e7y8QDFIBzQcFL9szMQieVjiIqlQKqkAiAyB00M9+9gRX2VoQA0M\/Xfjzo3\/rld2Ep3a98a7z31GOLP89\/frj8ylzPn3P9dZHp8cd4kP2\/wjz7c\/+\/2LT2FDWZfzU+nvd7GX\/+mnPe3W6Drk3VfMU5AwD91VP9UFW5e5IE5Ien3j\/QG6qrFtic8\/07\/b1pzsFFffZBudP1sLtOHk3y66Ry4L3hUF1QiXoYIPfNaajmWs\/RC6ejA4O\/VCq5H+euI8l1+rHfw4ZvffL2r9zAPnZ9aQMboEVL2pBfp5z+OVW\/VcrxsbOE03JY2\/GY0yeyZmD7C9EH9gHo2jcAGy9v\/KG\/\/gAU+HB6eCv+\/kv3Uv+YVc\/V\/hQc0OkxfhKZcu4EtSgBrwAnNGioK7dqCkaznJzwVsj2MxmaADCEKAEAPuj89dNlIgIACHR+fzaZEADAvFR4m4a78ORwkBnRmRklNSMqNaJSVQH4\/r1r\/29fJa1dbwwt71XWptr05m3VH2\/s3+V2t5gA\/Wz5uHa0\/3VncR5dfJjHb5vazct+9t\/cucj\/TH7q21XsPzX98\/51FeWtPOTpOXll71bDvT\/dyUn632d6v51Th2m6+fTMfhw\/\/QfT7\/nxZyd\/tH9T0HDe2pN19m8ukuqerj4AnCmYX+7hvHTD7gRODvvO\/s+m5wCYPxTsAR+m5oXt7+oNALDHfLWpG\/YP0ePLk9ibpNzfNwD\/Qzcb0ekDTi+\/wLl\/fN2I6vgBcAFyng9Akxsw6lF+Te0NDd9ooBz5ZJRh+K8dQPHlgvq19OXrDztwWsnhqPVhOqI\/MiDqDAIqQ0j4kHyiu\/w4HGIdlJIeJwcD4ALAdgghAGFTbWxI6GORyQIe6Pz+7jIhAYBA59fXKAMCALiByulJTZpOms6IGsGKplJVBAAACVPGqn9Ymr\/t6e3nz52n9o\/f+vTTE08\/qfvr+fc4MQ2e3zzfHPBfZ+Og9k\/2y2Kdx6Pj+tlBf64\/76a7PUp9\/+vWM\/B1\/lTX7zS5qa5Tc6p5ukjOPvRUfc0++8M2huPw\/3dP46SeliYb+u6dNOd0Fuxizj6b6fPnDuA72Pyr0nMGYH\/w4fiqC\/A2e1eyBza5pzIHd76uSbSrf4eCPm2QgTqGWIsNwAbYH8BhP5x+nMKTAHzcgFL7S3b1hi+jHMPe1SPzATb7tPxuQR+N+PlfaPHHn9o69wudTmH5\/9VODjndDUhfGH7HKW0SUjAE+LeWK1dd+I6jCgDYmGLOy+78AwlkKZAVo2BJ+cUjfiQAwJnNbAJsyCA0MFsBT2dnUwAEkZkBAAAAAADDrUxACQAAAD5N4mIV\/0P\/RP9Q\/zv\/P\/9B\/1T\/RP9D\/00BPuj8+egyIAERGHT++mwyIQCAG47SSZoaJU2lqRnRVCqVGimCAABg9uW39yfm89\/9j\/ofn5+Ht+orXlTSwFufa\/Vf3Fy29+mnae+bPB7nR+e+6Te+fUkmmfJBXyz28\/SzefvrVH+d75sqOveb+buzsv7z3+jUbDyq9s69oZ7sapo\/kw7148ioX3lN+PaFys8eavPNzMF00N99a\/0csjl1VcLhnM23OsOp2fnFr+DHOv5ndNztzZ7vnJ68OK+1lziFaf38asMD3XN8n1WHsH+S5iT7k5tO9v34+HD6vwO\/Huj4A7ZpDoc9SMwFAADDiz7aZwyfP2ycXPw2NsmZ8rYFDvsJbOqXQENCAeWL5aMxYKArAsDBdz8QOa3vHIOhDIIZNYEHsAtAR5LOXwDYbvwHEr5xO25SE3ZQoLtpQtO2DGQaAD7o\/PXdZUIAAIPOX19dFgQAMPfUe5hjnoWmkxpRM6IjKpVKpVIVIQBOH1c\/4o9JJ9MXS6W9fx0HyO1RTcu08qL68+LBxU\/T2YNPbrf+frDY3EqffshnPXkRbFsHPZ+fnc8zmykvnpZmJsqZz1dC5x7ld\/4TVQ7\/vk5f5ujfXfvB24fafu2uZZ1+NHTmDfqpu\/dfdRAAbJL30Hse8HTNeX5Mrc+zUb93Tn++x2nXdYZT9S+Ia89+mbTZ1\/+c+P+D8G\/HruEQ47NzoqFy\/w6+ED4ciovi0KLZqE+eX+492s6PD8jdHxtx7v\/qHbmxi4H0ZYvt\/higwV\/FJkOnj7jknLhOgHY29eEDx3ACxU\/VipiPf1\/D2a8sAK\/HR8JYJx7r7ODE1zHxOsloksAf+F4cPE7ArXIMwC+SgKFOnQubjAIYkKQBHuj8\/tWl5x4gYYJB56\/PLhMCALhR9LMzo6RmRpk0lUqlqVSFBADAW0Yux3tTJ7axc3TOSt9qz\/+s+vzue9+\/Op+ew+\/e+HHdFrWlzdLBzW3vv\/f9yKfTf2D88WveZ6qO\/Y39ZrZ9+rq+7nNYyF\/2oStJ0ZPdn4r3e3re366m6L2nJ1dyNuew99x17NhfZ+7\/Z9fp97I59Ob0F1P\/0wh2cY4\/rXVT1V9\/\/h558Yn1zPlNDxwodsacfmsSH8A+Sc4w\/3N29aZfmDIH6smGvZlzHzeHvS02wFD459GcY53hyJO\/bGWSe9hmhGwLbPzbZfMbNntvkNj91DwosC4a2FDOpubNZx8ffl3FCH45qN81sdSiHwxP\/GvaWSNX\/eDjSvNx6z\/vwDv3\/07tGwAYG4fUHx\/mBxCdGAIzmzkaMvPOXgIGEgNtq+5AGH5oAzIBMgB+6Pz102VDAACHzl+\/u2wIAODcJSgadJRUmhpFVJpKJagUUBUhAI6+reOnIDu9gXRpeHzyBlDIOXK0\/+pWKdG\/Lnv63\/+6ug25z+XvUh\/+9OvLp\/uL8\/U\/y5WDthlPPmjfP\/s6x+K+h9v9fr9N+3538\/f8Ye69S\/t+59Hv78TL\/9B1uskiEyAn\/adzT5RqOdhRQNX5J+TX06OT+\/T\/TDNvsR9Os8F34ysOPiboj8+N+40ffvh22J8aPqTm7NzXRycv+PcdJ\/iD3ZtG\/zB3CczH91ze3yQA\/LMP8713Ohz+2Nr6w89wcM\/65fhwsHNGkHAURfyDtq3SFHwOfcxHlf\/MD0kaMA67jBDrC2iWOIpNMwBD\/swWIBLhjeOjJs\/HSCcqXPhIzoIP+GTA\/Y0TTsDeQCYI7A8ys8C+AT7o\/PlsslAHBSDR+ftXl40GKCDJnLIsNuzMzChKKjWi0lSqVFpIBMDugBTHYE\/fL2rne121CtAHtw7WD89XKqk3Rg+n30x\/\/vgg+UZL3jnbWv8aZ5rj\/Xncaux9Pqd4+vc9Pt0w53N35+dA8WczkzX02f3wNTM9SX8+e38HmW437DTMlVTV2x+qYH33zp7N5uOXZooBIL\/YXTi7gfP0eW+GrzxA47a1MkL\/ioQ6nKke+P1h\/zve3BwrftrTlNnUpH6wbzY6j2wc\/+++d9RO\/ymc8LucjOkYJCfxDxyrKH0Oeg4k73edTS7oqHEoR02ajx8VyMheCMdQkFZRZnNhijkAc+DzD0j6OAQfR2Z\/wVc\/PqSzP8vxxyZ2zLp0YG1S7oePzk444VSp4PiRGCSYAQC4SGSDw2C2S4RdlmzJKD7o\/P1VZVqCBoBE5+9fXTYEADB3LHq+x+JeStIZRTSVmlSaSpUqQgiAvN7+fjhXOnW1M1L+Lp0B2o6Kt+Zvpw2pvbiyrnz7od\/ztL4z\/r3TZw+T4d+zPs+Pe14\/39UZlxeFsXxUaOOl\/dYPZobJ8bsnqbt1oCCHec4\/99zzk\/vrNse413\/zLQB+vSebfRaG5PdWVne+8532diq\/+7Yb8ny9BcA5+wAUL9B0VZ3HNPDnVCd\/kq+nE6vrU19Np\/J2ugf23A8bDtDqfaIidus4ydmHEz946dvZY\/b5n6L4+eP091I1Tj9eVAdGcfnviC1+JPXodb2ShLqPj9gkZOJbezYA2ocMhfC\/iKxWUeEOIz1\/APLtQ9KtPB9OCgeQPhKQpu9\/H2CJnAQar+RHLGoTg4rxEgDAUZRLMManCbMWCEAAHuj8\/uky0AAJYND589NlogESRjDHKhbcHB2dqGfvmUmNokKlUqlUqkICMLC3dLcZPz1M34frR\/arn0Npq+3R9nT8GPpJRyd1AFouK9rFH7c\/PT3MtVfP+Gbv1rhv9HCa518Pl9u9\/vzh04\/z6dM+dKTvk6dqzyngrZnZybzJ5zRkb1ypbajX2Lczc\/j89\/5jPtBdk7ttkffX+XdO8+xxn3fc7+fseshDJRvYeWZyV06ezh\/Pzj69u+ciZ+e5poq9cU91DjNdWTPwBfvs2rWh93B0z\/XzsDfauHXYOL7vWImInzD5X497OUnu4oM+CPOr4+M\/A183yaG\/AIAaoD7nputGZn4+2T048zf7sKu2gSPdetJObAg7eThgwAmp09ixMDiGk9EcfVUvJBSIfESichCnjw+NT9wFOKvFVvkeCChTFUAlCgiFzSM7N6CQoUEEwbA3Puj8+RxlChwACHR+f3YZTgAAD1j8Lhq3I9AziiJqJh1FNJVKpVJVAQDwlm3M3Vl6fkjj3vvVjclQ1WRpd1euVuhNqrxQu4+aT3ZWS9pNIrzVx1+VcGD\/x\/E\/jfZY7N3+\/X2fhwev3x\/CDfWlYtp54OzpgtO\/YvdzvnpXdmM419z77NkUDBvOf\/5pHvXwA0WdAxs494\/vv\/7\/3380P\/O6KQAY4ItjtRzWOgGP5v8fv76dMO\/7DNFc8zIUvhngdI8K+IINHDifDSSdqQ\/J6NgFUzjh+NhozTgFs+eg85Z20Rv7zKH+piPWaeNwfN2oPQMM+hp9OH7EUX5IbRkcWUW3gAMUh\/8ufjL+48NZ47SWMEpBTg4nlC3Bfz\/8qH8ILK+QX8pmJaRAAQCZEzuHs\/4HS4R5J1AGIFgABrNRyL4AjQCbTAA+6Pz+NcqAAAAGnb8+uywIAGB++td1ODhLZiYd0VFEU6lUKpWKkAiAL4fEpIPz6uj98X8vtGQA1\/9fzNlia+me8UE\/sSP4018\/rbe\/ef7j6cGtP7XCXNv79WBxMrjMrV1+lduWWp8XBzmf3VrnqirtYv\/r9+lprryz"],"libraries\/H5P.SingleChoiceSet-1.11\/sounds\/positive-short.ogg":["audio\/ogg","T2dnUwACAAAAAAAAAACTqtpjAAAAADy2SHoBHgF2b3JiaXMAAAAAAkSsAAAAAAAAgLUBAAAAAAC4AU9nZ1MAAAAAAAAAAAAAk6raYwEAAADeV1h+EUT\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/8HA3ZvcmJpczQAAABBTzsgYW9UdVYgWzIwMTEwNDI0XSAoYmFzZWQgb24gWGlwaC5PcmcncyBsaWJWb3JiaXMpAAAAAAEFdm9yYmlzJUJDVgEAQAAAJHMYKkalcxaEEBpCUBnjHELOa+wZQkwRghwyTFvLJXOQIaSgQohbKIHQkFUAAEAAAIdBeBSEikEIIYQlPViSgyc9CCGEiDl4FIRpQQghhBBCCCGEEEIIIYRFOWiSgydBCB2E4zA4DIPlOPgchEU5WBCDJ0HoIIQPQriag6w5CCGEJDVIUIMGOegchMIsKIqCxDC4FoQENSiMguQwyNSDC0KImoNJNfgahGdBeBaEaUEIIYQkQUiQgwZByBiERkFYkoMGObgUhMtBqBqEKjkIH4QgNGQVAJAAAKCiKIqiKAoQGrIKAMgAABBAURTHcRzJkRzJsRwLCA1ZBQAAAQAIAACgSIqkSI7kSJIkWZIlWZIlWZLmiaosy7Isy7IsyzIQGrIKAEgAAFBRDEVxFAcIDVkFAGQAAAigOIqlWIqlaIrniI4IhIasAgCAAAAEAAAQNENTPEeURM9UVde2bdu2bdu2bdu2bdu2bVuWZRkIDVkFAEAAABDSaWapBogwAxkGQkNWAQAIAACAEYowxIDQkFUAAEAAAIAYSg6iCa0535zjoFkOmkqxOR2cSLV5kpuKuTnnnHPOyeacMc4555yinFkMmgmtOeecxKBZCpoJrTnnnCexedCaKq0555xxzulgnBHGOeecJq15kJqNtTnnnAWtaY6aS7E555xIuXlSm0u1Oeecc84555xzzjnnnOrF6RycE84555yovbmWm9DFOeecT8bp3pwQzjnnnHPOOeecc84555wgNGQVAAAEAEAQho1h3CkI0udoIEYRYhoy6UH36DAJGoOcQurR6GiklDoIJZVxUkonCA1ZBQAAAgBACCGFFFJIIYUUUkghhRRiiCGGGHLKKaeggkoqqaiijDLLLLPMMssss8w67KyzDjsMMcQQQyutxFJTbTXWWGvuOeeag7RWWmuttVJKKaWUUgpCQ1YBACAAAARCBhlkkFFIIYUUYogpp5xyCiqogNCQVQAAIACAAAAAAE\/yHNERHdERHdERHdERHdHxHM8RJVESJVESLdMyNdNTRVV1ZdeWdVm3fVvYhV33fd33fd34dWFYlmVZlmVZlmVZlmVZlmVZliA0ZBUAAAIAACCEEEJIIYUUUkgpxhhzzDnoJJQQCA1ZBQAAAgAIAAAAcBRHcRzJkRxJsiRL0iTN0ixP8zRPEz1RFEXTNFXRFV1RN21RNmXTNV1TNl1VVm1Xlm1btnXbl2Xb933f933f933f933f931dB0JDVgEAEgAAOpIjKZIiKZLjOI4kSUBoyCoAQAYAQAAAiuIojuM4kiRJkiVpkmd5lqiZmumZniqqQGjIKgAAEABAAAAAAAAAiqZ4iql4iqh4juiIkmiZlqipmivKpuy6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6ruu6rguEhqwCACQAAHQkR3IkR1IkRVIkR3KA0JBVAIAMAIAAABzDMSRFcizL0jRP8zRPEz3REz3TU0VXdIHQkFUAACAAgAAAAAAAAAzJsBTL0RxNEiXVUi1VUy3VUkXVU1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU3TNE0TCA1ZCQCQAQCQEFMtLcaaCYskYtJqq6BjDFLspbFIKme1t8oxhRi1XhqHlFEQe6kkY4pBzC2k0CkmrdZUQoUUpJhjKhVSDlIgNGSFABCaAeBwHECyLECyLAAAAAAAAACQNA3QPA+wNA8AAAAAAAAAJE0DLE8DNM8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDSNEDzPEDzPAAAAAAAAADQPA\/wPBHwRBEAAAAAAAAALM8DNNEDPFEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDSNEDzPEDzPAAAAAAAAACwPA\/wRBHQPBEAAAAAAAAALM8DPFEEPNEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQ4AAAEGAhFBqyIgCIEwBwSBIkCZIEzQNIlgVNg6bBNAGSZUHToGkwTQAAAAAAAAAAAAAkTYOmQdMgigBJ06Bp0DSIIgAAAAAAAAAAAACSpkHToGkQRYCkadA0aBpEEQAAAAAAAAAAAADPNCGKEEWYJsAzTYgiRBGmCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQasiIAiBMAcDiKZQEAgOM4lgUAAI7jWBYAAFiWJYoAAGBZmigCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAABhwAAAIMKEMFBqyEgCIAgBwKIplAcexLOA4lgUkybIAlgXQPICmAUQRAAgAAChwAAAIsEFTYnGAQkNWAgBRAAAGxbEsTRNFkqRpmieKJEnTPE8UaZrneZ5pwvM8zzQhiqJomhBFUTRNmKZpqiowTVUVAABQ4AAAEGCDpsTiAIWGrAQAQgIAHIpiWZrmeZ4niqapmiRJ0zxPFEXRNE1TVUmSpnmeKIqiaZqmqrIsTfM8URRF01RVVYWmeZ4oiqJpqqrqwvM8TxRF0TRV1XXheZ4niqJomqrquhBFUTRN01RNVXVdIIqmaZqqqqquC0RPFE1TVV3XdYHniaJpqqqrui4QTdNUVVV1XVkGmKZpqqrryjJAVVXVdV1XlgGqqqqu67qyDFBV13VdWZZlAK7rurIsywIAAA4cAAACjKCTjCqLsNGECw9AoSErAoAoAADAGKYUU8owJiGkEBrGJIQUQiYlpdJSqiCkUlIpFYRUSiolo5RSailVEFIpqZQKQiollVIAANiBAwDYgYVQaMhKACAPAIAwRinGGHNOIqQUY845JxFSijHnnJNKMeacc85JKRlzzDnnpJTOOeecc1JK5pxzzjkppXPOOeeclFJK55xzTkopJYTOQSellNI555wTAABU4AAAEGCjyOYEI0GFhqwEAFIBAAyOY1ma5nmiaJqWJGma53meKJqmJkma5nmeJ4qqyfM8TxRF0TRVled5niiKommqKtcVRdM0TVVVXbIsiqZpmqrqujBN01RV13VdmKZpqqrrui5sW1VV1XVlGbatqqrqurIMXNd1ZdmWgSy7ruzasgAA8AQHAKACG1ZHOCkaCyw0ZCUAkAEAQBiDkEIIIWUQQgohhJRSCAkAABhwAAAIMKEMFBqyEgBIBQAAjLHWWmuttdZAZ6211lprrYDMWmuttdZaa6211lprrbXWUmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaay2llFJKKaWUUkoppZRSSimllFJKBQD6VTgA+D\/YsDrCSdFYYKEhKwGAcAAAwBilGHMMQimlVAgx5px0VFqLsUKIMeckpNRabMVzzkEoIZXWYiyecw5CKSnFVmNRKYRSUkottliLSqGjklJKrdVYjDGppNZai63GYoxJKbTUWosxFiNsTam12GqrsRhjayottBhjjMUIX2RsLabaag3GCCNbLC3VWmswxhjdW4ultpqLMT742lIsMdZcAAB3gwMARIKNM6wknRWOBhcashIACAkAIBBSijHGGHPOOeekUow55pxzDkIIoVSKMcaccw5CCCGUjDHmnHMQQgghhFJKxpxzEEIIIYSQUuqccxBCCCGEEEopnXMOQgghhBBCKaWDEEIIIYQQSiilpBRCCCGEEEIIqaSUQgghhFJCKCGVlFIIIYQQQiklpJRSCiGEUkIIoYSUUkophRBCCKWUklJKKaUSSgklhBJSKSmlFEoIIZRSSkoppVRKCaGEEkopJaWUUkohhBBKKQUAABw4AAAEGEEnGVUWYaMJFx6AQkNWAgBkAACQopRSKS1FgiKlGKQYS0YVc1BaiqhyDFLNqVLOIOYklogxhJSTVDLmFEIMQuocdUwpBi2VGELGGKTYckuhcw4AAABBAICAkAAAAwQFMwDA4ADhcxB0AgRHGwCAIERmiETDQnB4UAkQEVMBQGKCQi4AVFhcpF1cQJcBLujirgMhBCEIQSwOoIAEHJxwwxNveMINTtApKnUgAAAAAAANAPAAAJBcABER0cxhZGhscHR4fICEiIyQCAAAAAAAGQB8AAAkJUBERDRzGBkaGxwdHh8gISIjJAEAgAACAAAAACCAAAQEBAAAAAAAAgAAAAQET2dnUwAAQDYAAAAAAACTqtpjAgAAAPAdYZ8gVUH\/IT05ZG1LR\/8qNjQzPDg2YV1S\/wze4OHc5Ofq8uREY\/DlwVRl7k3srpc9u8i66fdkoHOyTtfvu5pjtY2eiZ3E62GyAvHRmJ+2zs85WEyjuqvi7Zi3IZ8OfD+\/Uv9k6+GjB2\/5to+4Eg+qvj52ukQtrMNrvELIKojbKVZKbO1lMitwMl93cJCkWLNyLHvPctEu771P696H5vk0j\/U0F0\/afnrz6tlD\/9Or0h6Xq\/rR01ydTgCS6Pyz+SQbAqTwAY4SnX82n2UjHDSf4BCHQuF4dBcoOJJ0ZkTTEZWOqFgIiYQQAicvyZx8+ftuad\/PL+V5v8TS0nybM19tm5cAANjfOPt8m6Zp\/9fzNOX8ZWZi+t77B59vH77B7n2+H\/oksNmcg\/n\/Y\/x\/9AcagMP3w+Fwvp9MOJnQnZxMkgYOfMjcnJOnOeS3wwEgM0kOv9y94ZzmNN\/PwTg5wMnpf4D\/f7Zqk7Dz29nfmDqsTlU7fv79JNT307A5G4oDlXyHOkDZa\/+oGlHg3K\/O2XtURfxvZRQ\/g5+OP3SCc5JzkuvPFABsgA\/scxyf+e4YTJQT8P0lZTLDKdIA\/nZ3d1\/v\/z\/8+TA+Pj4+bgFUa4H\/fx9gOM7\/P4CDDAKcRipZwVnqNFKhCu6qQ\/\/XbT5WrEQAHgpAIbWPsd9OssdnnsY3n\/bzO+ZDsb82BQMa5IFqOqWtWm3gNtwCnERaD4w9FJxGSgjGDm66VtaADYxnAH5XtGs0arFFWgI1QxeznnJRJADceBbjwBLxQRxJLaVWlksAnEjKsnBwIknKwsX6WmVZZort55mZWa1WMzai38YBkGUw6orpgB9ZTkyK2zj7RBMTiJumkdaisVETH+tIJK6CYjwkmo7jFcbGRCrExQVNj7an6tGGMYnHxFQbRsNESTQ2iPenAARPuooXCp50FS+0cqvVarVa+qtNWVuWKau1Vclqs1q3thSVmpqiKIqIrdVq6a9CAGA1bGq3W1E11Gp3tHmsEVExYtVatVisVaNGjFgRY7dbTXW02cRUuy3JtHSiKumRSILExDh0NBqNRokLpQIsXzrTw4RrCdOZHiY8VqvIqFNPqKqpjSon1brVIqzSa5sSADFiRC1gMEZF1aiKipgiYrdagiAuGgpe51RXzx5KqqlQPZTSbbp4bAEMZYq1B4anQ5li7YHh+R4BAC6VeuupJdMBAIAMkWUmJRDUWGNUNZXSwtLEQlha6jAxp2dTnRaVJl3xPsS6jdBPu2zTiM5KAHKaLddFFCD61OWv5+jj97QeqkKJKHCaLddFFCD61OWv5+jj97QeqkKKgR8os4wiaisRlWoCAPwCAGS73W4nI8ZO9iC2lRWrqmIBADVGrVhFVI1EFjWRCAohRIagyMjA5mCzWtQQw9HBsBsqpgZMTDUB0VsoGn2SzqDVqYpiamaiMTOz1JpamklXV6XbUCrVQzU9NdWpREoSAstM4GAMAIY4BPxyRZnwSz3M6GEQbyumK4jGhAGhQgEQpIJlRR8WVhxgUiaJheUEWQBUquk21Uq3iY2EFkRiA8eFCiXVoalGSoSwOWBMR76rRkLy47UrzweIOE+Qaloplszr\/l7Zc8uhdaEMAuw52vM0qlueGSxvSyYBYqBtWEOmzvj0Wq0wWG1kJn3uBAHYAOzYsWjFUZsdOxatOGryAvCiDABUM1iYqka9wVw4kiBW2IwoFUQwnBVR91rTSZU8Emg5V0wcAczc4ZryRpu5w3XlDfoB1gghFQCoyaRCY1ZRtGZojIpMj+6isK4GwEsIhDJK3S0w11txkiXsXKut1WG6nWu1tTpMd4rMemvCIgQWAGLVGEEIwjAewI5LPKHCbg8Cp1pohPu1\/6miBx\/cWs9tCm56az23KbjpC7DZBCaAxkIsAFBUIVIHNcQ0E5iamalaIgkTRFGPdIDrFgCRIDbx0BLxaLvpJgHUWN\/N1SRcjfXdXE3CPkAVLAYggywwsVQNGDSaqm6qSNvpNj2a+gNNeiYfBOBl0\/RM56pgpr\/yANxY7yWFJjfWe0mhyQdYQWCZAhCZ1EEsYsEwTM1MhKmlpaWePZuWGtZQ6mtfqoGsP3Ascrk1ABzf0fKjcXxHy4\/GelFEUZN2+84iRFbLXG1EURSVmjo1NTU1RYT+0gIgRkWtWKvF0UHBYhVVCxgxRq0xxjUYa2oO4+NdIQYHcRBBisQEcXGON7G20XZ7tj3TSY\/00FEkNAAcYygVwdF7lKFUREfPlabIyGrUAdgxQ0zKjKhk5C7QzwAIqqoIslogqqY4ggE1WDEMm9XBBPQaLI1aXTwikYgTRoPAQSxxDqIBcsIEjhGRMAgVKprATjXaTrUvVQAEZa\/djyN7UPbYdRyc7hEAIHaAuB5dhgAQIiugCCrHjIpYsBcnk1Wt5gZzxdygWFhoTdIv6itJQXi46gnjuv0UaujggAF4Xut57eoq0K\/EXH0AOksuX1tRDYoWu3fwjLNb680cZ8nl6xTVoFqxewfvcXZrfZnjF0hRjZqyUldUq3XUrWZZU2+dalEb\/wAAAACByaiHrQ5VFVIFAABVUSMqeEHAGCuINWqNpkSqJinVAADMdBbC3KDTmJpKjZmJBarWQq9RFSm0Gq1Gq9G+mjmQSD2bVFBSqcRBGIlGwkgUE4g5RB4JAAjBoawCnxCIS6pHtxtUimoMBLFCmQBkW7YIwIEhM1BDa9FH2+03ywoAOR2rMgY\/YaCZ9K2a2A5XTBVNp7RVJE26KkKaSqwrrThqpotbg9ED7Tt1cKAJrY7F7lWAFg3T5LLXYsVAIBAWBQiFIyiXAHhAA2LcGqcA\/iueXzfRGbS6XXT\/d8jrff668iueX1fRGbS6Nbr\/J+X1Pn9dOQ+2xfQAeBpWllnc5CpWVQFAEbBYbA4IYDWxIACAAgBBbKKBEiYg0VAoNogYxSaIj0kYBxruxhEVRJDQQgRRCAIQioZFJjCWQ1Bgg7TqVI82lQpBNP7lu0YpaDoh6At4h8IGAZIcKIVtyFar11hz7EpQ5gr1aVG1qkC1q1WhkArFS4MAzzX21XaSYM4XWSE5H74N2eN7337uMXIad\/B3kSJus9EdoOPlS2zDkYbLNEDZ3ayZoQWhjToAnvtdPi6iN3hFu+B+hrzqs+sm97t8XERv8Ip2wf0MedVn180NI30BRdQFUTcTAPBJPg2qh5jFclmuqgAAqNVuEyq1YIoCqqKIUQAjBkAAAIJ6TAwkEiujwBFkMHJ4rHTExVhQkGUJAR82BVzVuBr\/hmhcBAAEIi1cRqt6RAoC2hY6TdvACCUUjIWEAABjxQbQO9243R95OMDCT4I0fF80DvlOVzyPi4BoJLrP1qPwLwIRQthwqLPJuL3TV1BE3FxEBchQjWrDcnnYbc2YcdxmDOBWPEOYg2wB24FGg1aOUQVe2z0+DtE4pEW76L5DnuvWy2e3XA5RDWnRPrrvsLr1ciMJXyDVVkDWFgkA8CSe1cI55lhVuQoAgIirpkHcDjYFEGNVVEAxagAAAAjiHRcJY8L4SCS2Uhj4uNEvAkM4IcUS4AAM8HUG6XbJZcBgnDBiMMgCiBMpHrpRiKhEkksEhBCCCVhcoSwtmlqTAklfEguwR0miceEGfu1cToscfFLvuKiQhaMptyAKIFGUH2mhftjRtu4tIbH\/zWzvQhR+8Kyhz47h9KwmdjgoDkEHog+0edLKap+TbvlhYuGQLPhhYRC+mt1fs+gNWdkuuE2ed4HJbDxmUQxZ2T64zXaBGwIfILKeEpQtAJ4MVAoxc85yVeViOQBAFtQ7ZUkwHAQFUDAiACJiCgAACqqIEhONBoTyCA5EV9eMCt2guCioGADJDt4A7ouepu1SAKnQqW6bfguKeVzsA5a4ip+EpvEhBFiSgnIogyyPIrRTey4OKGkj0lWsJbq\/Fi7TBP2JtN2WCZRWnXlFc\/HVaVYrkMl4DlPF\/iEwPXp6\/VaMGaRfDdSBEVVHpnWNElPX3n0eBiPvrQjAV8CGwsPjMyFQaEMEXmqN71M0B05VmP6nPq9qrZdSa3yfojlwqjFM\/1OfV1vr5XwBUQURlQwAgGsyuQfkylWssgqAqCBYrAGwatQqCIAAChAlLsYx8UH1mCGJRGICKYoTKs5BJMp56op3ORqQnm3TVCsliPT0fpQISyEOJSQrxLKRoFA6LwBwOQdA0u1ZVZUAgAIAK7JABQNQXapNkDbGhRVNOy5DPQgYG6boZPd9SL8dIq18sZN6q4MAJHY1WtnajvGJ76Rt18Aitj1sqTGjgVGAXauODvCA0sB6ANw4zoOC6B8MhG2GEeEk1mKiaVUA3qqdPg9RDdyhnv++RGZfBFq10+chqoE71PPfl8jsi4ZzhWBqqwAAXx8AMzEpZrFizrEqFgBTRVTE6giCiAUUQAAAcXBFQAEBAMBOpJYwcWLjE1oxJCQIYoYkrIWOscI2Xt9YvQAC4RgkAIJ7ucgwQEaB7IAgJwArlkQQYhBxkcDNGDsDhBDyExoMV2IUm8a89F5rObpBACDQxJM8j8BwhDqmcj+1+x6nte15YDBqg95gILoFnXYfIC+C7VzFro6xSEegYy7p588KFrRdj86zCdFGt1qtDvP88A165MwfWFplKYbG\/R4PvppdPnZRga+Q73+eROr8FbOaXT52UYGvkO9\/nkTm+SvmARIgJwAAwE4Gs4ucy7mqsixmAQAw1GaaVky7XQ01wNEuFlFTDQzKAABUSkqbIj3L1KiCBAQgYDrq6gl1dhoijMaFAAJsAH6ZSYMU2QCWCOmWiP+TUMTAHxVEx8Y7kCUAgAkEgAAMf3Wo8z7HGZEShAj6tZ2NYsKquq5bcjMvSChkegpjvlr+TAjSIofY79drSXs\/S7mPET\/r0VtN3PUzjxGCEKudYUMxVoRvS14Qh9ahxBUu\/uCjpYkOCP4Gdi3cLUnix3Qb4Y8GfnqdX7PIQZ+w\/Pvzo0ZmP8SFU+r8mkQO+rjl358vkdkPeRndkHJXAAC4PoCE1ZQI5rKqqpxlAQBQwxEHS7AadnUoAgAw1SYAABQkjEYULRETxkeDQYXRuqRQ0RjZIpI4pgAAAILWaoh5AKwQSgIAqQeWBgBCLwptCYxQX3sm6uOU5imQig+iCAEAWf7DrEa7IAUGaAREFhgQBvsOS+BEa7lWqu+ovnhvvwOj8YTSdPf5IRLtuEi9Jcj\/mb3XYTbSze6+1FaqeiGvWy5WOkCOtKGvFKpRQpCQHpnx6wciqCmQBs00wBeiEnJ0LEyps0EscQD+Oe2XURRA97b8\/LN1kfk7LPbwOe2XURRA99X\/\/LP1kfk7LPZ4JpZ1AwC4kgUws4RsZbmqqpIAINaCACCCiGkooAAAQEgQGxvEOvHEKiRaIRKtHGPbSlQ4EpuASAgQBeEEFsfj2ExAhTcxQx5BggAwYAXOVtT\/VpGo7cfKVqMr76nA6RAAWZR1pCtJ+Pk+BeQ2kSJ\/U6Q6TRJS6vWDJ98XNFYDBGFcX1JIjN1NpyCZoatimZBJhIEwPAcrwx6eXVw\/OoWjdeRowAUYdsz9bWkE4M5nULbulmaiNJ1\/iu03lYrEsgBPZ2c="],"libraries\/H5P.SingleChoiceSet-1.11\/library.json":["application\/json","{\"machineName\":\"H5P.SingleChoiceSet\",\"title\":\"Single Choice Set\",\"description\":\"Create sets of single choice tasks\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":11,\"patchVersion\":44,\"runnable\":1,\"fullscreen\":0,\"embedTypes\":[\"iframe\"],\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedCss\":[{\"path\":\"styles\\\/single-choice-set.css\"}],\"preloadedJs\":[{\"path\":\"scripts\\\/stop-watch.js\"},{\"path\":\"scripts\\\/sound-effects.js\"},{\"path\":\"scripts\\\/xapi-event-builder.js\"},{\"path\":\"scripts\\\/result-slide.js\"},{\"path\":\"scripts\\\/solution-view.js\"},{\"path\":\"scripts\\\/single-choice-alternative.js\"},{\"path\":\"scripts\\\/single-choice.js\"},{\"path\":\"scripts\\\/single-choice-set.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Transition\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.VerticalTabs\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.SingleChoiceSetTextualEditor\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.MultiChoice-1.16\/library.json":["application\/json","{\"title\":\"Multiple Choice\",\"contentType\":\"Question\",\"majorVersion\":1,\"minorVersion\":16,\"patchVersion\":14,\"runnable\":1,\"embedTypes\":[\"iframe\"],\"machineName\":\"H5P.MultiChoice\",\"author\":\"Joubel\",\"license\":\"MIT\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"js\\\/multichoice.js\"}],\"preloadedCss\":[{\"path\":\"css\\\/multichoice.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.TrueFalse-1.8\/library.json":["application\/json","{\"title\":\"True\\\/False Question\",\"description\":\"Test your users with 'True or False' type questions\",\"machineName\":\"H5P.TrueFalse\",\"majorVersion\":1,\"minorVersion\":8,\"patchVersion\":11,\"runnable\":1,\"license\":\"MIT\",\"author\":\"Joubel\",\"embedTypes\":[\"iframe\"],\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedCss\":[{\"path\":\"styles\\\/h5p-true-false.css\"}],\"preloadedJs\":[{\"path\":\"scripts\\\/h5p-true-false.js\"},{\"path\":\"scripts\\\/h5p-true-false-answer-group.js\"},{\"path\":\"scripts\\\/h5p-true-false-answer.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RadioGroup\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.DragQuestion-1.14\/library.json":["application\/json","{\"title\":\"Drag and Drop\",\"description\":\"Drag and drop the elements into the correct drop zones.\",\"contentType\":\"Question\",\"majorVersion\":1,\"minorVersion\":14,\"patchVersion\":22,\"embedTypes\":[\"iframe\"],\"runnable\":1,\"fullscreen\":0,\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":23},\"license\":\"MIT\",\"machineName\":\"H5P.DragQuestion\",\"preloadedJs\":[{\"path\":\"h5p-drag-question.js\"}],\"preloadedCss\":[{\"path\":\"css\\\/dragquestion.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"jQuery.ui\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.DragQuestion\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.Summary-1.10\/library.json":["application\/json","{\"title\":\"Summary\",\"description\":\"Test your users with fill in the summary tasks.\",\"majorVersion\":1,\"minorVersion\":10,\"patchVersion\":22,\"runnable\":1,\"embedTypes\":[\"iframe\"],\"machineName\":\"H5P.Summary\",\"license\":\"MIT\",\"author\":\"Joubel\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"preloadedCss\":[{\"path\":\"css\\\/summary.css\"}],\"preloadedJs\":[{\"path\":\"js\\\/stop-watch.js\"},{\"path\":\"js\\\/xapi-event-builder.js\"},{\"path\":\"js\\\/summary.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.SummaryTextualEditor\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.ExportableTextArea-1.3\/library.json":["application\/json","{\"title\":\"Exportable Text Area\",\"contentType\":\"Static content\",\"description\":\"Library that displays an area where the user may input text, which is exportable as a doc-file\",\"majorVersion\":1,\"minorVersion\":3,\"patchVersion\":18,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"runnable\":0,\"machineName\":\"H5P.ExportableTextArea\",\"author\":\"H5P Group\",\"metadataSettings\":{\"disable\":0,\"disableExtraTitleField\":1},\"preloadedJs\":[{\"path\":\"dist\\\/h5p-exportable-text-area.js\"}]}"],"libraries\/H5P.InteractiveVideo-1.27\/library.json":["application\/json","{\"title\":\"Interactive Video\",\"description\":\"Put texts, tasks and other medias on top of your video.\",\"license\":\"MIT\",\"contentType\":\"Media\",\"majorVersion\":1,\"minorVersion\":27,\"patchVersion\":9,\"machineName\":\"H5P.InteractiveVideo\",\"author\":\"Joubel\",\"embedTypes\":[\"iframe\"],\"runnable\":1,\"fullscreen\":1,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"dist\\\/h5p-interactive-video.js\"}],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-interactive-video.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"jQuery.ui\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5P.Video\",\"majorVersion\":1,\"minorVersion\":6},{\"machineName\":\"H5P.DragNBar\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5P.InteractiveVideo\",\"majorVersion\":1,\"minorVersion\":27},{\"machineName\":\"H5PEditor.Wizard\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5PEditor.InteractiveVideo\",\"majorVersion\":1,\"minorVersion\":25}]}"],"libraries\/H5P.MarkTheWords-1.11\/library.json":["application\/json","{\"title\":\"Mark the Words\",\"description\":\"Test your users by making them select the correct words from a text.\",\"majorVersion\":1,\"minorVersion\":11,\"patchVersion\":9,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"runnable\":1,\"embedTypes\":[\"iframe\"],\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.MarkTheWords\",\"preloadedCss\":[{\"path\":\"styles\\\/mark-the-words.css\"}],\"preloadedJs\":[{\"path\":\"scripts\\\/keyboard-nav.js\"},{\"path\":\"scripts\\\/xAPI-generator.js\"},{\"path\":\"scripts\\\/word.js\"},{\"path\":\"scripts\\\/mark-the-words.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.DragText-1.10\/library.json":["application\/json","{\"title\":\"Drag the Words\",\"description\":\"Drag and drop pieces of text to create complete sentences.\",\"majorVersion\":1,\"minorVersion\":10,\"patchVersion\":17,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":19},\"runnable\":1,\"embedTypes\":[\"iframe\"],\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.DragText\",\"preloadedCss\":[{\"path\":\"dist\\\/h5p-drag-text.css\"}],\"preloadedJs\":[{\"path\":\"dist\\\/h5p-drag-text.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"jQuery.ui\",\"majorVersion\":1,\"minorVersion\":10},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.TwitterUserFeed-1.0\/library.json":["application\/json","{\"title\":\"Twitter User Feed\",\"description\":\"Displays a Twitter User Feed\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":21,\"runnable\":1,\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.TwitterUserFeed\",\"preloadedJs\":[{\"path\":\"twitter-user-feed.js\"}],\"preloadedCss\":[{\"path\":\"twitter-user-feed.css\"}],\"metadataSettings\":{\"disable\":1,\"disableExtraTitleField\":1}}"],"libraries\/H5P.Dialogcards-1.9\/library.json":["application\/json","{\"title\":\"Dialog Cards\",\"description\":\"Makes it possible to create learning tasks for your site visitors.\",\"majorVersion\":1,\"minorVersion\":9,\"patchVersion\":18,\"runnable\":1,\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.Dialogcards\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":26},\"embedTypes\":[\"iframe\"],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-dialogcards.css\"}],\"preloadedJs\":[{\"path\":\"dist\\\/h5p-dialogcards.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Audio\",\"majorVersion\":1,\"minorVersion\":5}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.VerticalTabs\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.AudioRecorder-1.0\/library.json":["application\/json","{\"title\":\"Audio Recorder\",\"description\":\"Record audio and download it\",\"machineName\":\"H5P.AudioRecorder\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":33,\"runnable\":1,\"author\":\"Joubel\",\"license\":\"MIT\",\"embedTypes\":[\"iframe\"],\"preloadedCss\":[{\"path\":\"fonts\\\/h5p-audio-recorder-font-open-sans.css\"}],\"preloadedJs\":[{\"path\":\"dist\\\/h5p-audio-recorder.js\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5PEditor.ColorSelector-1.3\/library.json":["application\/json","{\"title\":\"H5PEditor.ColorSelector\",\"majorVersion\":1,\"minorVersion\":3,\"patchVersion\":1,\"runnable\":0,\"machineName\":\"H5PEditor.ColorSelector\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":24},\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"scripts\\\/spectrum.js\"},{\"path\":\"scripts\\\/color-selector.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/spectrum.css\"},{\"path\":\"styles\\\/color-selector.css\"}]}"],"libraries\/H5PEditor.RadioSelector-1.2\/library.json":["application\/json","{\"title\":\"H5PEditor.RadioSelector\",\"majorVersion\":1,\"minorVersion\":2,\"patchVersion\":2,\"runnable\":0,\"machineName\":\"H5PEditor.RadioSelector\",\"author\":\"Joubel\",\"preloadedJs\":[{\"path\":\"radio-selector.js\"}],\"preloadedCss\":[{\"path\":\"radio-selector.css\"}]}"],"libraries\/H5P.MultiMediaChoice-0.3\/library.json":["application\/json","{\"title\":\"Multimedia Choice\",\"description\":\"Create a Multimedia Choice\",\"majorVersion\":0,\"minorVersion\":3,\"patchVersion\":44,\"runnable\":1,\"author\":\"H5P Group AS\",\"license\":\"MIT\",\"machineName\":\"H5P.MultiMediaChoice\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"embedTypes\":[\"iframe\"],\"preloadedJs\":[{\"path\":\"dist\\\/h5p-multi-media-choice.js\"}],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-multi-media-choice.css\"}],\"preloadedDependencies\":[{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5P.Image\",\"majorVersion\":1,\"minorVersion\":1},{\"machineName\":\"H5P.MaterialDesignIcons\",\"majorVersion\":1,\"minorVersion\":0}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.GameMap-1.5\/library.json":["application\/json","{\"title\":\"Game Map\",\"description\":\"Let your students choose their exercises on a game map.\",\"majorVersion\":1,\"minorVersion\":5,\"patchVersion\":4,\"runnable\":1,\"author\":\"Oliver Tacke\",\"license\":\"MIT\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"machineName\":\"H5P.GameMap\",\"embedTypes\":[\"iframe\"],\"preloadedJs\":[{\"path\":\"dist\\\/h5p-game-map.js\"}],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-game-map.css\"}],\"preloadedDependencies\":[{\"machineName\":\"H5P.Question\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.SoundJS\",\"majorVersion\":1,\"minorVersion\":0}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.VerticalTabs\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.RangeList\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ColorSelector\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.Wizard\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5PEditor.GameMap\",\"majorVersion\":1,\"minorVersion\":2},{\"machineName\":\"H5PEditor.DateTime\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5P.SoundJS-1.0\/library.json":["application\/json","{\"machineName\":\"H5P.SoundJS\",\"title\":\"Sound js api\",\"description\":\"API for playing sound (http:\\\/\\\/www.createjs.com\\\/#!\\\/SoundJS)\",\"license\":\"MIT\",\"author\":\"The createjs team\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":2,\"runnable\":0,\"preloadedJs\":[{\"path\":\"soundjs-0.6.2.min.js\"}]}"],"libraries\/H5PEditor.VerticalTabs-1.3\/library.json":["application\/json","{\"machineName\":\"H5PEditor.VerticalTabs\",\"title\":\"H5P Editor Vertical Tabs\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":3,\"patchVersion\":14,\"runnable\":0,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":24},\"preloadedJs\":[{\"path\":\"vertical-tabs.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/css\\\/vertical-tabs.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5}]}"],"libraries\/H5PEditor.Wizard-1.2\/library.json":["application\/json","{\"title\":\"H5PEditor.Wizard\",\"majorVersion\":1,\"minorVersion\":2,\"patchVersion\":17,\"runnable\":0,\"machineName\":\"H5PEditor.Wizard\",\"author\":\"Frode Petterson\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":23},\"preloadedJs\":[{\"path\":\"Scripts\\\/Wizard.js\"}],\"preloadedCss\":[{\"path\":\"Styles\\\/Wizard.css\"}],\"preloadedDependencies\":[{\"machineName\":\"H5P.FontIcons\",\"majorVersion\":1,\"minorVersion\":0}]}"],"libraries\/H5PEditor.GameMap-1.2\/library.json":["application\/json","{\"title\":\"H5PEditor.GameMap\",\"majorVersion\":1,\"minorVersion\":2,\"patchVersion\":4,\"runnable\":0,\"machineName\":\"H5PEditor.GameMap\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"author\":\"Oliver Tacke\",\"preloadedJs\":[{\"path\":\"dist\\\/h5peditor-game-map.js\"}],\"preloadedCss\":[{\"path\":\"dist\\\/h5peditor-game-map.css\"}],\"preloadedDependencies\":[{\"machineName\":\"H5P.DragNBar\",\"majorVersion\":1,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5}]}"],"libraries\/H5PEditor.DateTime-1.0\/library.json":["application\/json","{\"title\":\"H5PEditor.DateTime\",\"majorVersion\":1,\"minorVersion\":0,\"patchVersion\":9,\"runnable\":0,\"machineName\":\"H5PEditor.DateTime\",\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"author\":\"Oliver Tacke\",\"preloadedJs\":[{\"path\":\"dist\\\/h5p-editor-datetime.js\"}],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-editor-datetime.css\"}]}"]});		H5PIntegration	= (function(x){
			let url	= window.location.href.split('/');
			url.pop();
			x.url	= url.join('/');
			return x;
		})({"baseUrl":"","url":"","siteUrl":"","l10n":{"H5P":{"fullscreen":"Vollbild","disableFullscreen":"Kein Vollbild","download":"Download","copyrights":"Nutzungsrechte","embed":"Einbetten","size":"Size","showAdvanced":"Show advanced","hideAdvanced":"Hide advanced","advancedHelp":"Include this script on your website if you want dynamic sizing of the embedded content:","copyrightInformation":"Nutzungsrechte","close":"Schlie\u00dfen","title":"Titel","author":"Autor","year":"Jahr","source":"Quelle","license":"Lizenz","thumbnail":"Thumbnail","noCopyrights":"Keine Copyright-Informationen vorhanden","reuse":"Wiederverwenden","reuseContent":"Verwende Inhalt","reuseDescription":"Verwende Inhalt.","downloadDescription":"Lade den Inhalt als H5P-Datei herunter.","copyrightsDescription":"Zeige Urheberinformationen an.","embedDescription":"Zeige den Code f\u00fcr die Einbettung an.","h5pDescription":"Visit H5P.org to check out more cool content.","contentChanged":"Dieser Inhalt hat sich seit Ihrer letzten Nutzung ver\u00e4ndert.","startingOver":"Sie beginnen von vorne.","by":"von","showMore":"Zeige mehr","showLess":"Zeige weniger","subLevel":"Sublevel","confirmDialogHeader":"Best\u00e4tige Aktion","confirmDialogBody":"Please confirm that you wish to proceed. This action is not reversible.","cancelLabel":"Όχι","confirmLabel":"Ναι","licenseU":"Undisclosed","licenseCCBY":"Attribution","licenseCCBYSA":"Attribution-ShareAlike","licenseCCBYND":"Attribution-NoDerivs","licenseCCBYNC":"Attribution-NonCommercial","licenseCCBYNCSA":"Attribution-NonCommercial-ShareAlike","licenseCCBYNCND":"Attribution-NonCommercial-NoDerivs","licenseCC40":"4.0 International","licenseCC30":"3.0 Unported","licenseCC25":"2.5 Generic","licenseCC20":"2.0 Generic","licenseCC10":"1.0 Generic","licenseGPL":"General Public License","licenseV3":"Version 3","licenseV2":"Version 2","licenseV1":"Version 1","licensePD":"Public Domain","licenseCC010":"CC0 1.0 Universal (CC0 1.0) Public Domain Dedication","licensePDM":"Public Domain Mark","licenseC":"Copyright","contentType":"Inhaltstyp","licenseExtras":"License Extras","changes":"Changelog","contentCopied":"Inhalt wurde ins Clipboard kopiert","connectionLost":"Connection lost. Results will be stored and sent when you regain connection.","connectionReestablished":"Connection reestablished.","resubmitScores":"Attempting to submit stored results.","offlineDialogHeader":"Your connection to the server was lost","offlineDialogBody":"We were unable to send information about your completion of this task. Please check your internet connection.","offlineDialogRetryMessage":"Versuche es wieder in :num....","offlineDialogRetryButtonLabel":"Jetzt nochmal probieren","offlineSuccessfulSubmit":"Erfolgreich Ergebnisse gesendet."}},"hubIsEnabled":false,"reportingIsEnabled":false,"libraryConfig":null,"crossorigin":null,"crossoriginCacheBuster":null,"pluginCacheBuster":"","libraryUrl":".\/libraries\/h5pcore\/js","contents":{"cid-assets":{"displayOptions":{"copy":false,"copyright":false,"embed":false,"export":false,"frame":false,"icon":false},"embedCode":"","exportUrl":false,"fullScreen":false,"contentUserData":[],"metadata":{"title":"\u03938_\u0395\u03a0\u0391\u039d\u0391\u039b\u0397\u03a8\u0397_\u0395\u039d\u039f\u03a4\u0397\u03a4\u0391\u03a3","license":null},"library":"H5P.GameMap 1.5","jsonContent":"{\"showTitleScreen\":true,\"titleScreen\":{\"titleScreenIntroduction\":\"<p style=\\\"text-align: center;\\\"><strong><span style=\\\"font-size:1.25em;\\\"><span style=\\\"color:#2980b9;\\\">\\u0391\\u03a3 \\u0398\\u03a5\\u039c\\u0397\\u0398\\u039f\\u03a5\\u039c\\u0395...<\\\/span><\\\/span><\\\/strong><\\\/p>\\n\"},\"gamemapSteps\":{\"backgroundImageSettings\":{\"backgroundColor\":\"rgb(255, 255, 255)\",\"backgroundImage\":{\"path\":\"images\\\/backgroundImage-696a0e777d1e9.jpg\",\"mime\":\"image\\\/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":1280,\"height\":720}},\"gamemap\":{\"elements\":[{\"id\":\"c1386611-7f17-4383-8df4-3a79e18d62f7\",\"label\":\"\\u039b\\u03b5\\u03be\\u03b9\\u03bb\\u03cc\\u03b3\\u03b9\\u03bf\",\"telemetry\":{\"x\":\"28.267752148349164\",\"y\":\"38.19287401376953\",\"width\":\"4.375\",\"height\":\"7.77777789705962\"},\"neighbors\":[\"1\"],\"canBeStartStage\":true,\"time\":{},\"accessRestrictions\":{\"allOrAnyRestrictionSet\":\"all\",\"restrictionSetList\":[{\"allOrAnyRestriction\":\"any\",\"restrictionList\":[{\"restrictionType\":\"totalScore\",\"totalScoreGroup\":{\"totalScoreOperator\":\"greaterThan\"},\"stageScoreGroup\":{\"stageScoreOperator\":\"before\",\"stageScoreId\":\"566242e2-b896-4f6e-9fa2-4e27df235929\"},\"stageProgressGroup\":{\"stageProgressOperator\":\"is\",\"stageProgressValue\":\"open\",\"stageProgressId\":\"566242e2-b896-4f6e-9fa2-4e27df235929\"},\"timeGroup\":{\"timeOperator\":\"before\"}}]}]},\"contentsList\":[{\"contentType\":{\"params\":{\"media\":{\"disableImageZooming\":false},\"text\":\"<p dir=\\\"ltr\\\" style=\\\"text-align: center;\\\">\\u03a3\\u03c5\\u03bc\\u03c0\\u03bb\\u03b7\\u03c1\\u03ce\\u03bd\\u03c9 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac \\u03bc\\u03b5 \\u03bb\\u03ad\\u03be\\u03b5\\u03b9\\u03c2 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b9\\u03c2 \\u03bf\\u03b9\\u03ba\\u03bf\\u03b3\\u03ad\\u03bd\\u03b5\\u03b9\\u03b5\\u03c2 \\u03c4\\u03c9\\u03bd \\u03bb\\u03ad\\u03be\\u03b5\\u03c9\\u03bd<\\\/p>\\n\\n<p dir=\\\"ltr\\\" style=\\\"text-align: center;\\\">\\u03c4\\u03b1\\u03be\\u03af\\u03b4\\u03b9, \\u03b4\\u03ae\\u03bc\\u03bf\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03c6\\u03af\\u03bb\\u03bf\\u03c2.<\\\/p>\\n\",\"overallFeedback\":[{\"from\":0,\"to\":99,\"feedback\":\"\\u039c\\u03bc\\u03bc\\u03bc... \\u03be\\u03b1\\u03bd\\u03b1\\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03ac\\u03b8\\u03b7\\u03c3\\u03b5!\"},{\"from\":100,\"to\":100,\"feedback\":\"\\u03a4\\u03ad\\u03bb\\u03b5\\u03b9\\u03b1!\"}],\"showSolutions\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"tryAgain\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"checkAnswer\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2\",\"submitAnswer\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"notFilledOut\":\"\\u03a0\\u03b1\\u03c1\\u03b1\\u03ba\\u03b1\\u03bb\\u03ce \\u03c3\\u03c5\\u03bc\\u03c0\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b5 \\u03cc\\u03bb\\u03b1 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03b4\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2\",\"answerIsCorrect\":\"\\u0397 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7 &#039;:ans&#039; \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae\",\"answerIsWrong\":\"\\u0397 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7 &#039;:ans&#039; \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2\",\"answeredCorrectly\":\"\\u0391\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ac\",\"answeredIncorrectly\":\"\\u0391\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2\",\"solutionLabel\":\"\\u03a3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7:\",\"inputLabel\":\"@num \\u03ba\\u03b5\\u03bd\\u03ac \\u03b1\\u03c0\\u03cc @total\",\"inputHasTipLabel\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"tipLabel\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\",\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"autoCheck\":false,\"caseSensitive\":true,\"showSolutionsRequiresInput\":true,\"separateLines\":false,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"acceptSpellingErrors\":false},\"scoreBarLabel\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 :num \\u03b1\\u03c0\\u03cc :total \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03cd\\u03c2\",\"a11yCheck\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd. \\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03b8\\u03b1 \\u03bc\\u03b1\\u03c1\\u03ba\\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03bf\\u03cd\\u03bd \\u03c9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2, \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03bc\\u03b7 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03b7\\u03bc\\u03ad\\u03bd\\u03b5\\u03c2.\",\"a11yShowSolution\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03b7\\u03c2 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2. \\u0397 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7 \\u03b8\\u03b1 \\u03b5\\u03c0\\u03b9\\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03b8\\u03b5\\u03af \\u03bc\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03c3\\u03b7.\",\"a11yRetry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7 \\u03c4\\u03b7\\u03c2 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2. \\u0395\\u03c0\\u03b1\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03ad\\u03bd\\u03b1\\u03c1\\u03be\\u03b7 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7\\u03bd \\u03b1\\u03c1\\u03c7\\u03ae.\",\"a11yCheckingModeHeader\":\"\\u039b\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u0395\\u03bb\\u03ad\\u03b3\\u03c7\\u03bf\\u03c5\",\"confirmCheck\":{\"header\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b7 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"confirmRetry\":{\"header\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03be\\u03b1\\u03bd\\u03ac;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"questions\":[\"<p dir=\\\"ltr\\\">\\u03b1. \\u039c\\u03bf\\u03c5 \\u03b1\\u03c1\\u03ad\\u03c3\\u03b5\\u03b9 \\u03bd\\u03b1 *\\u03c4\\u03b1\\u03be\\u03b9\\u03b4\\u03b5\\u03cd\\u03c9* \\u03bc\\u03b5 \\u03c4\\u03b7\\u03bd \\u03bf\\u03b9\\u03ba\\u03bf\\u03b3\\u03ad\\u03bd\\u03b5\\u03b9\\u03ac \\u03bc\\u03bf\\u03c5 \\u03c3\\u03b5 \\u03ba\\u03b1\\u03b9\\u03bd\\u03bf\\u03cd\\u03c1\\u03b9\\u03b1 \\u03bc\\u03ad\\u03c1\\u03b7 \\u03ba\\u03b1\\u03b9 \\u03bd\\u03b1 \\u03b2\\u03bb\\u03ad\\u03c0\\u03c9 \\u03b4\\u03b9\\u03b1\\u03c6\\u03bf\\u03c1\\u03b5\\u03c4\\u03b9\\u03ba\\u03ac \\u03c4\\u03bf\\u03c0\\u03af\\u03b1.<\\\/p>\\n\\n<p dir=\\\"ltr\\\">\\u03b2. \\u039f *\\u03b4\\u03b7\\u03bc\\u03bf\\u03c3\\u03b9\\u03bf\\u03b3\\u03c1\\u03ac\\u03c6\\u03bf\\u03c2* \\u03b3\\u03c1\\u03ac\\u03c6\\u03b5\\u03b9 \\u03ac\\u03c1\\u03b8\\u03c1\\u03b1 \\u03b3\\u03b9\\u03b1 \\u03c4\\u03b1 \\u03bd\\u03ad\\u03b1 \\u03c0\\u03bf\\u03c5 \\u03c3\\u03c5\\u03bc\\u03b2\\u03b1\\u03af\\u03bd\\u03bf\\u03c5\\u03bd \\u03c3\\u03c4\\u03b7\\u03bd \\u03c0\\u03cc\\u03bb\\u03b7 \\u03bc\\u03b1\\u03c2.<\\\/p>\\n\\n<p>\\u03b3. \\u0397 \\u03b3\\u03b9\\u03b1\\u03b3\\u03b9\\u03ac \\u03bc\\u03b1\\u03c2 \\u03ad\\u03b4\\u03b5\\u03b9\\u03be\\u03b5 \\u03bc\\u03b5\\u03b3\\u03ac\\u03bb\\u03b7 *\\u03c6\\u03b9\\u03bb\\u03bf\\u03be\\u03b5\\u03bd\\u03af\\u03b1* \\u03cc\\u03c4\\u03b1\\u03bd \\u03ae\\u03c1\\u03b8\\u03b1\\u03bd \\u03bf\\u03b9 \\u03c6\\u03af\\u03bb\\u03bf\\u03b9 \\u03bc\\u03b1\\u03c2 \\u03c3\\u03c4\\u03bf \\u03c3\\u03c0\\u03af\\u03c4\\u03b9 \\u03ba\\u03b1\\u03b9 \\u03c4\\u03bf\\u03c5\\u03c2 \\u03c0\\u03c1\\u03cc\\u03c3\\u03c6\\u03b5\\u03c1\\u03b5 \\u03c3\\u03c0\\u03b9\\u03c4\\u03b9\\u03ba\\u03ac \\u03ba\\u03bf\\u03c5\\u03bb\\u03bf\\u03c5\\u03c1\\u03ac\\u03ba\\u03b9\\u03b1 \\u03bc\\u03b5 \\u03b3\\u03b5\\u03cd\\u03c3\\u03b7 \\u03c0\\u03bf\\u03c1\\u03c4\\u03bf\\u03ba\\u03ac\\u03bb\\u03b9.<\\\/p>\\n\"]},\"library\":\"H5P.Blanks 1.14\",\"metadata\":{\"contentType\":\"Fill in the Blanks\",\"license\":\"U\",\"title\":\"\\u03a3\\u03c5\\u03bc\\u03c0\\u03bb\\u03b7\\u03c1\\u03ce\\u03bd\\u03c9 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac:\"},\"subContentId\":\"93c66479-c2f2-4656-98ba-dbc6840edade\"}}],\"specialStageExtraLives\":1,\"specialStageExtraTime\":1,\"specialStageLinkTarget\":\"_blank\",\"alwaysVisible\":false,\"overrideSymbol\":false},{\"id\":\"566242e2-b896-4f6e-9fa2-4e27df235929\",\"label\":\"\\u0391\\u03c1\\u03b9\\u03b8\\u03bc\\u03b7\\u03c4\\u03b9\\u03ba\\u03ac \\u03b5\\u03c0\\u03af\\u03b8\\u03b5\\u03c4\\u03b1\",\"telemetry\":{\"x\":\"63.31976481230213\",\"y\":\"24.121815166591286\",\"width\":\"4.375\",\"height\":\"7.77777789705962\"},\"neighbors\":[\"0\",\"2\"],\"canBeStartStage\":false,\"time\":{},\"accessRestrictions\":{\"allOrAnyRestrictionSet\":\"all\",\"restrictionSetList\":[{\"allOrAnyRestriction\":\"any\",\"restrictionList\":[{\"restrictionType\":\"totalScore\",\"totalScoreGroup\":{\"totalScoreOperator\":\"greaterThan\"},\"stageScoreGroup\":{\"stageScoreOperator\":\"before\",\"stageScoreId\":\"c1386611-7f17-4383-8df4-3a79e18d62f7\"},\"stageProgressGroup\":{\"stageProgressOperator\":\"is\",\"stageProgressValue\":\"open\",\"stageProgressId\":\"c1386611-7f17-4383-8df4-3a79e18d62f7\"},\"timeGroup\":{\"timeOperator\":\"before\"}}]}]},\"contentsList\":[{\"contentType\":{\"params\":{\"media\":{\"disableImageZooming\":false},\"text\":\"<p dir=\\\"ltr\\\" style=\\\"text-align: center;\\\">&nbsp;\\u03a3\\u03c5\\u03bc\\u03c0\\u03bb\\u03b7\\u03c1\\u03ce\\u03bd\\u03c9 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac \\u03bc\\u03b5 \\u03c4\\u03b9\\u03c2 \\u03bb\\u03ad\\u03be\\u03b5\\u03b9\\u03c2 \\u03b3\\u03b9\\u03b1 \\u03c4\\u03bf\\u03bd \\u03b1\\u03c1\\u03b9\\u03b8\\u03bc\\u03cc <u>\\u03b4\\u03cd\\u03bf<\\\/u>.<\\\/p>\\n\",\"overallFeedback\":[{\"from\":0,\"to\":99,\"feedback\":\"\\u03a0\\u03c1\\u03bf\\u03c3\\u03c0\\u03ac\\u03b8\\u03b7\\u03c3\\u03b5 \\u03be\\u03b1\\u03bd\\u03ac...\"},{\"from\":100,\"to\":100,\"feedback\":\"\\u039c\\u03c0\\u03c1\\u03ac\\u03b2\\u03bf \\u03c3\\u03bf\\u03c5!\"}],\"showSolutions\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"tryAgain\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"checkAnswer\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2\",\"submitAnswer\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"notFilledOut\":\"\\u03a0\\u03b1\\u03c1\\u03b1\\u03ba\\u03b1\\u03bb\\u03ce \\u03c3\\u03c5\\u03bc\\u03c0\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b5 \\u03cc\\u03bb\\u03b1 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03b4\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2\",\"answerIsCorrect\":\"\\u0397 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7 &#039;:ans&#039; \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae\",\"answerIsWrong\":\"\\u0397 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7 &#039;:ans&#039; \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2\",\"answeredCorrectly\":\"\\u0391\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ac\",\"answeredIncorrectly\":\"\\u0391\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2\",\"solutionLabel\":\"\\u03a3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7:\",\"inputLabel\":\"@num \\u03ba\\u03b5\\u03bd\\u03ac \\u03b1\\u03c0\\u03cc @total\",\"inputHasTipLabel\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"tipLabel\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\",\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"autoCheck\":false,\"caseSensitive\":true,\"showSolutionsRequiresInput\":true,\"separateLines\":false,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"acceptSpellingErrors\":false},\"scoreBarLabel\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 :num \\u03b1\\u03c0\\u03cc :total \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03cd\\u03c2\",\"a11yCheck\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd. \\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03b8\\u03b1 \\u03bc\\u03b1\\u03c1\\u03ba\\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03bf\\u03cd\\u03bd \\u03c9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2, \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03bc\\u03b7 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03b7\\u03bc\\u03ad\\u03bd\\u03b5\\u03c2.\",\"a11yShowSolution\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03b7\\u03c2 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2. \\u0397 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7 \\u03b8\\u03b1 \\u03b5\\u03c0\\u03b9\\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03b8\\u03b5\\u03af \\u03bc\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03c3\\u03b7.\",\"a11yRetry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7 \\u03c4\\u03b7\\u03c2 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2. \\u0395\\u03c0\\u03b1\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03ad\\u03bd\\u03b1\\u03c1\\u03be\\u03b7 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7\\u03bd \\u03b1\\u03c1\\u03c7\\u03ae.\",\"a11yCheckingModeHeader\":\"\\u039b\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u0395\\u03bb\\u03ad\\u03b3\\u03c7\\u03bf\\u03c5\",\"confirmCheck\":{\"header\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b7 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"confirmRetry\":{\"header\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03be\\u03b1\\u03bd\\u03ac;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"questions\":[\"<p dir=\\\"ltr\\\">\\u03b1. \\u039f \\u03b1\\u03b4\\u03b5\\u03c1\\u03c6\\u03cc\\u03c2 \\u03bc\\u03bf\\u03c5 \\u03ad\\u03c6\\u03b1\\u03b3\\u03b5 \\u03c4\\u03bf *\\u03b4\\u03b9\\u03c0\\u03bb\\u03ac\\u03c3\\u03b9\\u03bf* \\u03c0\\u03b1\\u03b3\\u03c9\\u03c4\\u03cc \\u03b1\\u03c0\\u03cc \\u03bc\\u03ad\\u03bd\\u03b1!<\\\/p>\\n\\n<p dir=\\\"ltr\\\">\\u03b2. \\u0388\\u03c7\\u03c9 *\\u03b4\\u03cd\\u03bf* \\u03b3\\u03ac\\u03c4\\u03b5\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03c0\\u03b1\\u03af\\u03b6\\u03bf\\u03c5\\u03bc\\u03b5 \\u03ba\\u03ac\\u03b8\\u03b5 \\u03bc\\u03ad\\u03c1\\u03b1 \\u03bc\\u03b1\\u03b6\\u03af \\u03c3\\u03c4\\u03bf\\u03bd \\u03ba\\u03ae\\u03c0\\u03bf.<\\\/p>\\n\\n<p>\\u03b3. \\u03a3\\u03c4\\u03bf\\u03bd \\u03b1\\u03b3\\u03ce\\u03bd\\u03b1 \\u03b4\\u03c1\\u03cc\\u03bc\\u03bf\\u03c5 \\u03ae\\u03c1\\u03b8\\u03b1 *\\u03b4\\u03b5\\u03cd\\u03c4\\u03b5\\u03c1\\u03bf\\u03c2* \\u03c3\\u03b5 \\u03c3\\u03b5\\u03b9\\u03c1\\u03ac \\u03ba\\u03b1\\u03b9 \\u03ba\\u03ad\\u03c1\\u03b4\\u03b9\\u03c3\\u03b1 \\u03c4\\u03bf \\u03b1\\u03c1\\u03b3\\u03c5\\u03c1\\u03cc \\u03bc\\u03b5\\u03c4\\u03ac\\u03bb\\u03bb\\u03b9\\u03bf.<\\\/p>\\n\"]},\"library\":\"H5P.Blanks 1.14\",\"metadata\":{\"contentType\":\"Fill in the Blanks\",\"license\":\"U\",\"title\":\"\\u03a3\\u03c5\\u03bc\\u03c0\\u03bb\\u03b7\\u03c1\\u03ce\\u03bd\\u03c9 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac:\"},\"subContentId\":\"bd6fc36c-1c7f-4806-bc62-52b9e45e92c8\"}}],\"specialStageExtraLives\":1,\"specialStageExtraTime\":1,\"specialStageLinkTarget\":\"_blank\",\"alwaysVisible\":false,\"overrideSymbol\":false},{\"id\":\"be5cfdd6-6f06-487c-aa5f-b2942281bcb9\",\"label\":\"\\u0391\\u03b9\\u03bd\\u03af\\u03b3\\u03bc\\u03b1\\u03c4\\u03b1\",\"telemetry\":{\"x\":\"56.53550429669833\",\"y\":\"80.40605055530428\",\"width\":\"4.375\",\"height\":\"7.77777789705962\"},\"neighbors\":[\"1\"],\"canBeStartStage\":false,\"time\":{},\"accessRestrictions\":{\"allOrAnyRestrictionSet\":\"all\",\"restrictionSetList\":[{\"allOrAnyRestriction\":\"any\",\"restrictionList\":[{\"restrictionType\":\"totalScore\",\"totalScoreGroup\":{\"totalScoreOperator\":\"greaterThan\"},\"stageScoreGroup\":{\"stageScoreOperator\":\"before\",\"stageScoreId\":\"c1386611-7f17-4383-8df4-3a79e18d62f7\"},\"stageProgressGroup\":{\"stageProgressOperator\":\"is\",\"stageProgressValue\":\"open\",\"stageProgressId\":\"c1386611-7f17-4383-8df4-3a79e18d62f7\"},\"timeGroup\":{\"timeOperator\":\"before\"}}]}]},\"contentsList\":[{\"contentType\":{\"params\":{\"presentation\":{\"slides\":[{\"elements\":[{\"x\":22.868343678536423,\"y\":9.679761232556263,\"width\":55.5374060764456,\"height\":19.359522465112526,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p style=\\\"text-align: center;\\\"><span style=\\\"color:#ffffff;\\\"><strong>\\u0391\\u03ba\\u03bf\\u03cd\\u03c9 \\u03c4\\u03b1 \\u03b1\\u03b9\\u03bd\\u03af\\u03b3\\u03bc\\u03b1\\u03c4\\u03b1 \\u03ba\\u03b1\\u03b9 \\u03c0\\u03bb\\u03b7\\u03ba\\u03c4\\u03c1\\u03bf\\u03bb\\u03bf\\u03b3\\u03ce \\u03c4\\u03b7 \\u03bb\\u03ad\\u03be\\u03b7.<\\\/strong><\\\/span><\\\/p>\\n\\n<p style=\\\"text-align: center;\\\"><span style=\\\"color:#ffffff;\\\">(\\u03bc\\u03b5 \\u03c0\\u03b5\\u03b6\\u03ac \\u03b3\\u03c1\\u03ac\\u03bc\\u03bc\\u03b1\\u03c4\\u03b1, \\u03ac\\u03c1\\u03b8\\u03c1\\u03bf \\u03ba\\u03b1\\u03b9 \\u03c4\\u03cc\\u03bd\\u03bf)<\\\/span><\\\/p>\\n\"},\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Untitled Text\"},\"subContentId\":\"175b12d7-b513-427e-8433-0fa708e872fb\"},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"},{\"x\":27.7687030382228,\"y\":60.014519641848835,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.Blanks 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"text\":\"<p style=\\\"text-align: center;\\\"><strong>\\u03a4\\u03b9 \\u03b5\\u03af\\u03bd\\u03b1\\u03b9;<\\\/strong><\\\/p>\\n\",\"overallFeedback\":[{\"from\":0,\"to\":99,\"feedback\":\"\\u03a0\\u03c1\\u03bf\\u03c3\\u03c0\\u03ac\\u03b8\\u03b7\\u03c3\\u03b5 \\u03be\\u03b1\\u03bd\\u03ac...\"},{\"from\":100,\"to\":100,\"feedback\":\"\\u03a4\\u03ad\\u03bb\\u03b5\\u03b9\\u03b1!\"}],\"showSolutions\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"tryAgain\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"checkAnswer\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2\",\"submitAnswer\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"notFilledOut\":\"\\u03a0\\u03b1\\u03c1\\u03b1\\u03ba\\u03b1\\u03bb\\u03ce \\u03c3\\u03c5\\u03bc\\u03c0\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b5 \\u03cc\\u03bb\\u03b1 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03b4\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2\",\"answerIsCorrect\":\"\\u0397 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7 &#039;:ans&#039; \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae\",\"answerIsWrong\":\"\\u0397 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7 &#039;:ans&#039; \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2\",\"answeredCorrectly\":\"\\u0391\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ac\",\"answeredIncorrectly\":\"\\u0391\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2\",\"solutionLabel\":\"\\u03a3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7:\",\"inputLabel\":\"@num \\u03ba\\u03b5\\u03bd\\u03ac \\u03b1\\u03c0\\u03cc @total\",\"inputHasTipLabel\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"tipLabel\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\",\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"autoCheck\":false,\"caseSensitive\":true,\"showSolutionsRequiresInput\":true,\"separateLines\":false,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"acceptSpellingErrors\":false},\"scoreBarLabel\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 :num \\u03b1\\u03c0\\u03cc :total \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03cd\\u03c2\",\"a11yCheck\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd. \\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03b8\\u03b1 \\u03bc\\u03b1\\u03c1\\u03ba\\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03bf\\u03cd\\u03bd \\u03c9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2, \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03bc\\u03b7 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03b7\\u03bc\\u03ad\\u03bd\\u03b5\\u03c2.\",\"a11yShowSolution\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03b7\\u03c2 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2. \\u0397 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7 \\u03b8\\u03b1 \\u03b5\\u03c0\\u03b9\\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03b8\\u03b5\\u03af \\u03bc\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03c3\\u03b7.\",\"a11yRetry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7 \\u03c4\\u03b7\\u03c2 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2. \\u0395\\u03c0\\u03b1\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03ad\\u03bd\\u03b1\\u03c1\\u03be\\u03b7 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7\\u03bd \\u03b1\\u03c1\\u03c7\\u03ae.\",\"a11yCheckingModeHeader\":\"\\u039b\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u0395\\u03bb\\u03ad\\u03b3\\u03c7\\u03bf\\u03c5\",\"confirmCheck\":{\"header\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b7 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"confirmRetry\":{\"header\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03be\\u03b1\\u03bd\\u03ac;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"questions\":[\"<p style=\\\"text-align: center;\\\">*\\u03c4\\u03bf \\u03c0\\u03b1\\u03bd\\u03b7\\u03b3\\u03cd\\u03c1\\u03b9*<\\\/p>\\n\"]},\"metadata\":{\"contentType\":\"Fill in the Blanks\",\"license\":\"U\",\"title\":\"\\u03a3\\u03c5\\u03bc\\u03c0\\u03bb\\u03b7\\u03c1\\u03ce\\u03bd\\u03c9 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac:\"},\"subContentId\":\"ed7cec58-8e3d-43f4-995d-c2cfbc360800\"},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"},{\"x\":29.40215615811826,\"y\":38.71904493022505,\"width\":39.20287487749101,\"height\":13.253206420908285,\"action\":{\"library\":\"H5P.Audio 1.5\",\"params\":{\"fitToWrapper\":true,\"playerMode\":\"full\",\"controls\":true,\"autoplay\":false,\"playAudio\":\"\\u0391\\u03bd\\u03b1\\u03c0\\u03b1\\u03c1\\u03b1\\u03b3\\u03c9\\u03b3\\u03ae \\u03ae\\u03c7\\u03bf\\u03c5\",\"pauseAudio\":\"\\u03a0\\u03b1\\u03cd\\u03c3\\u03b7 \\u03ae\\u03c7\\u03bf\\u03c5\",\"contentName\":\"\\u0389\\u03c7\\u03bf\\u03c2\",\"audioNotSupported\":\"\\u039f \\u03c6\\u03c5\\u03bb\\u03bb\\u03bf\\u03bc\\u03b5\\u03c4\\u03c1\\u03b7\\u03c4\\u03ae\\u03c2 \\u03b4\\u03b5\\u03bd \\u03c5\\u03c0\\u03bf\\u03c3\\u03c4\\u03b7\\u03c1\\u03af\\u03b6\\u03b5\\u03b9 \\u03c4\\u03bf \\u03c3\\u03c5\\u03b3\\u03ba\\u03b5\\u03ba\\u03c1\\u03b9\\u03bc\\u03ad\\u03bd\\u03bf \\u03b1\\u03c1\\u03c7\\u03b5\\u03af\\u03bf \\u03ae\\u03c7\\u03bf\\u03c5\",\"files\":[{\"path\":\"audios\\\/files-68698957daf94.mp3\",\"mime\":\"audio\\\/mpeg\",\"copyright\":{\"license\":\"U\"}}]},\"subContentId\":\"29aa8895-6cfe-4249-a25d-920be5a31f2a\",\"metadata\":{\"contentType\":\"Audio\",\"license\":\"U\",\"title\":\"Untitled Audio\"}},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}},{\"elements\":[{\"x\":29.40215615811826,\"y\":58.07856739533758,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.Blanks 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"text\":\"<p style=\\\"text-align: center;\\\"><strong>\\u03a0\\u03bf\\u03b9\\u03bf\\u03b9 \\u03b5\\u03af\\u03bd\\u03b1\\u03b9;<\\\/strong><\\\/p>\\n\",\"overallFeedback\":[{\"from\":0,\"to\":99,\"feedback\":\"\\u03a0\\u03c1\\u03bf\\u03c3\\u03c0\\u03ac\\u03b8\\u03b7\\u03c3\\u03b5 \\u03be\\u03b1\\u03bd\\u03ac...\"},{\"from\":100,\"to\":100,\"feedback\":\"\\u03a4\\u03ad\\u03bb\\u03b5\\u03b9\\u03b1!\"}],\"showSolutions\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"tryAgain\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"checkAnswer\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2\",\"submitAnswer\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"notFilledOut\":\"\\u03a0\\u03b1\\u03c1\\u03b1\\u03ba\\u03b1\\u03bb\\u03ce \\u03c3\\u03c5\\u03bc\\u03c0\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b5 \\u03cc\\u03bb\\u03b1 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03b4\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2\",\"answerIsCorrect\":\"\\u0397 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7 &#039;:ans&#039; \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae\",\"answerIsWrong\":\"\\u0397 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7 &#039;:ans&#039; \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2\",\"answeredCorrectly\":\"\\u0391\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ac\",\"answeredIncorrectly\":\"\\u0391\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2\",\"solutionLabel\":\"\\u03a3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7:\",\"inputLabel\":\"@num \\u03ba\\u03b5\\u03bd\\u03ac \\u03b1\\u03c0\\u03cc @total\",\"inputHasTipLabel\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"tipLabel\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\",\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"autoCheck\":false,\"caseSensitive\":true,\"showSolutionsRequiresInput\":true,\"separateLines\":false,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"acceptSpellingErrors\":false},\"scoreBarLabel\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 :num \\u03b1\\u03c0\\u03cc :total \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03cd\\u03c2\",\"a11yCheck\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd. \\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03b8\\u03b1 \\u03bc\\u03b1\\u03c1\\u03ba\\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03bf\\u03cd\\u03bd \\u03c9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2, \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03bc\\u03b7 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03b7\\u03bc\\u03ad\\u03bd\\u03b5\\u03c2.\",\"a11yShowSolution\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03b7\\u03c2 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2. \\u0397 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7 \\u03b8\\u03b1 \\u03b5\\u03c0\\u03b9\\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03b8\\u03b5\\u03af \\u03bc\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03c3\\u03b7.\",\"a11yRetry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7 \\u03c4\\u03b7\\u03c2 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2. \\u0395\\u03c0\\u03b1\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03ad\\u03bd\\u03b1\\u03c1\\u03be\\u03b7 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7\\u03bd \\u03b1\\u03c1\\u03c7\\u03ae.\",\"a11yCheckingModeHeader\":\"\\u039b\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u0395\\u03bb\\u03ad\\u03b3\\u03c7\\u03bf\\u03c5\",\"confirmCheck\":{\"header\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b7 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"confirmRetry\":{\"header\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03be\\u03b1\\u03bd\\u03ac;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"questions\":[\"<p style=\\\"text-align: center;\\\">*\\u03bf\\u03b9 \\u03bc\\u03bf\\u03c5\\u03c3\\u03b9\\u03ba\\u03bf\\u03af*<\\\/p>\\n\"]},\"metadata\":{\"contentType\":\"Fill in the Blanks\",\"license\":\"U\",\"title\":\"\\u03a3\\u03c5\\u03bc\\u03c0\\u03bb\\u03b7\\u03c1\\u03ce\\u03bd\\u03c9 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac:\"},\"subContentId\":\"ef916a0e-36a0-4ca7-826e-9eeabecd2ced\"},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"},{\"x\":24.501796798431883,\"y\":9.679761232556263,\"width\":55.5374060764456,\"height\":19.359522465112526,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p style=\\\"text-align: center;\\\"><span style=\\\"color:#ffffff;\\\"><strong>\\u0391\\u03ba\\u03bf\\u03cd\\u03c9 \\u03c4\\u03b1 \\u03b1\\u03b9\\u03bd\\u03af\\u03b3\\u03bc\\u03b1\\u03c4\\u03b1 \\u03ba\\u03b1\\u03b9 \\u03c0\\u03bb\\u03b7\\u03ba\\u03c4\\u03c1\\u03bf\\u03bb\\u03bf\\u03b3\\u03ce \\u03c4\\u03b7 \\u03bb\\u03ad\\u03be\\u03b7.<\\\/strong><\\\/span><\\\/p>\\n\\n<p style=\\\"text-align: center;\\\"><span style=\\\"color:#ffffff;\\\">(\\u03bc\\u03b5 \\u03c0\\u03b5\\u03b6\\u03ac \\u03b3\\u03c1\\u03ac\\u03bc\\u03bc\\u03b1\\u03c4\\u03b1, \\u03ac\\u03c1\\u03b8\\u03c1\\u03bf \\u03ba\\u03b1\\u03b9 \\u03c4\\u03cc\\u03bd\\u03bf)<\\\/span><\\\/p>\\n\"},\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Untitled Text\"},\"subContentId\":\"8cc016ab-e468-4e82-a214-e082065f5e6d\"},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"},{\"x\":35.93596863770009,\"y\":35.4924578527063,\"width\":30.345475334857888,\"height\":9.679761232556263,\"action\":{\"library\":\"H5P.Audio 1.5\",\"params\":{\"fitToWrapper\":true,\"playerMode\":\"full\",\"controls\":true,\"autoplay\":false,\"playAudio\":\"\\u0391\\u03bd\\u03b1\\u03c0\\u03b1\\u03c1\\u03b1\\u03b3\\u03c9\\u03b3\\u03ae \\u03ae\\u03c7\\u03bf\\u03c5\",\"pauseAudio\":\"\\u03a0\\u03b1\\u03cd\\u03c3\\u03b7 \\u03ae\\u03c7\\u03bf\\u03c5\",\"contentName\":\"\\u0389\\u03c7\\u03bf\\u03c2\",\"audioNotSupported\":\"\\u039f \\u03c6\\u03c5\\u03bb\\u03bb\\u03bf\\u03bc\\u03b5\\u03c4\\u03c1\\u03b7\\u03c4\\u03ae\\u03c2 \\u03b4\\u03b5\\u03bd \\u03c5\\u03c0\\u03bf\\u03c3\\u03c4\\u03b7\\u03c1\\u03af\\u03b6\\u03b5\\u03b9 \\u03c4\\u03bf \\u03c3\\u03c5\\u03b3\\u03ba\\u03b5\\u03ba\\u03c1\\u03b9\\u03bc\\u03ad\\u03bd\\u03bf \\u03b1\\u03c1\\u03c7\\u03b5\\u03af\\u03bf \\u03ae\\u03c7\\u03bf\\u03c5\",\"files\":[{\"path\":\"audios\\\/files-6869897b8d264.mp3\",\"mime\":\"audio\\\/mpeg\",\"copyright\":{\"license\":\"U\"}}]},\"metadata\":{\"contentType\":\"Audio\",\"license\":\"U\",\"title\":\"Untitled Audio\"},\"subContentId\":\"b1c33d71-0681-4a06-8aec-aecc032de39c\"},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}},{\"elements\":[{\"x\":29.40215615811826,\"y\":60.014519641848835,\"width\":40,\"height\":40,\"action\":{\"library\":\"H5P.Blanks 1.14\",\"params\":{\"media\":{\"disableImageZooming\":false},\"text\":\"<p style=\\\"text-align: center;\\\"><strong>\\u03a4\\u03b9 \\u03ba\\u03ac\\u03bd\\u03c9;<\\\/strong><\\\/p>\\n\",\"overallFeedback\":[{\"from\":0,\"to\":99,\"feedback\":\"\\u03a0\\u03c1\\u03bf\\u03c3\\u03c0\\u03ac\\u03b8\\u03b7\\u03c3\\u03b5 \\u03be\\u03b1\\u03bd\\u03ac...\"},{\"from\":100,\"to\":100,\"feedback\":\"\\u03a4\\u03ad\\u03bb\\u03b5\\u03b9\\u03b1!\"}],\"showSolutions\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"tryAgain\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"checkAnswer\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2\",\"submitAnswer\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"notFilledOut\":\"\\u03a0\\u03b1\\u03c1\\u03b1\\u03ba\\u03b1\\u03bb\\u03ce \\u03c3\\u03c5\\u03bc\\u03c0\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b5 \\u03cc\\u03bb\\u03b1 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03b4\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2\",\"answerIsCorrect\":\"\\u0397 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7 &#039;:ans&#039; \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae\",\"answerIsWrong\":\"\\u0397 \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7 &#039;:ans&#039; \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2\",\"answeredCorrectly\":\"\\u0391\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ac\",\"answeredIncorrectly\":\"\\u0391\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2\",\"solutionLabel\":\"\\u03a3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03b7:\",\"inputLabel\":\"@num \\u03ba\\u03b5\\u03bd\\u03ac \\u03b1\\u03c0\\u03cc @total\",\"inputHasTipLabel\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03b7\",\"tipLabel\":\"\\u0395\\u03c0\\u03b5\\u03be\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\",\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"enableCheckButton\":true,\"autoCheck\":false,\"caseSensitive\":true,\"showSolutionsRequiresInput\":true,\"separateLines\":false,\"confirmCheckDialog\":false,\"confirmRetryDialog\":false,\"acceptSpellingErrors\":false},\"scoreBarLabel\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 :num \\u03b1\\u03c0\\u03cc :total \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03cd\\u03c2\",\"a11yCheck\":\"\\u0388\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd. \\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03b8\\u03b1 \\u03bc\\u03b1\\u03c1\\u03ba\\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03bf\\u03cd\\u03bd \\u03c9\\u03c2 \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2, \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03bc\\u03b7 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03b7\\u03bc\\u03ad\\u03bd\\u03b5\\u03c2.\",\"a11yShowSolution\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03b7\\u03c2 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2. \\u0397 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7 \\u03b8\\u03b1 \\u03b5\\u03c0\\u03b9\\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03b8\\u03b5\\u03af \\u03bc\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c3\\u03c9\\u03c3\\u03c4\\u03ae \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03c3\\u03b7.\",\"a11yRetry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7 \\u03c4\\u03b7\\u03c2 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2. \\u0395\\u03c0\\u03b1\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03ad\\u03bd\\u03b1\\u03c1\\u03be\\u03b7 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7\\u03bd \\u03b1\\u03c1\\u03c7\\u03ae.\",\"a11yCheckingModeHeader\":\"\\u039b\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u0395\\u03bb\\u03ad\\u03b3\\u03c7\\u03bf\\u03c5\",\"confirmCheck\":{\"header\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b7 \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7\\u03c2\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"confirmRetry\":{\"header\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"body\":\"\\u0395\\u03af\\u03c3\\u03b1\\u03b9 \\u03c3\\u03af\\u03b3\\u03bf\\u03c5\\u03c1\\u03bf\\u03c2 \\u03cc\\u03c4\\u03b9 \\u03b8\\u03ad\\u03bb\\u03b5\\u03b9\\u03c2 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03be\\u03b1\\u03bd\\u03ac;\",\"cancelLabel\":\"\\u038c\\u03c7\\u03b9\",\"confirmLabel\":\"\\u039d\\u03b1\\u03b9\"},\"questions\":[\"<p style=\\\"text-align: center;\\\">*\\u03c7\\u03bf\\u03c1\\u03b5\\u03cd\\u03c9*<\\\/p>\\n\"]},\"metadata\":{\"contentType\":\"Fill in the Blanks\",\"license\":\"U\",\"title\":\"\\u03a3\\u03c5\\u03bc\\u03c0\\u03bb\\u03b7\\u03c1\\u03ce\\u03bd\\u03c9 \\u03c4\\u03b1 \\u03ba\\u03b5\\u03bd\\u03ac:\"},\"subContentId\":\"3276189c-e3f6-4712-b11d-da833a20f6fc\"},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"},{\"x\":26.13524991832734,\"y\":9.679761232556263,\"width\":55.5374060764456,\"height\":19.359522465112526,\"action\":{\"library\":\"H5P.AdvancedText 1.1\",\"params\":{\"text\":\"<p style=\\\"text-align: center;\\\"><span style=\\\"color:#ffffff;\\\"><strong>\\u0391\\u03ba\\u03bf\\u03cd\\u03c9 \\u03c4\\u03b1 \\u03b1\\u03b9\\u03bd\\u03af\\u03b3\\u03bc\\u03b1\\u03c4\\u03b1 \\u03ba\\u03b1\\u03b9 \\u03c0\\u03bb\\u03b7\\u03ba\\u03c4\\u03c1\\u03bf\\u03bb\\u03bf\\u03b3\\u03ce \\u03c4\\u03b7 \\u03bb\\u03ad\\u03be\\u03b7.<\\\/strong><\\\/span><\\\/p>\\n\\n<p style=\\\"text-align: center;\\\"><span style=\\\"color:#ffffff;\\\">(\\u03bc\\u03b5 \\u03c0\\u03b5\\u03b6\\u03ac \\u03b3\\u03c1\\u03ac\\u03bc\\u03bc\\u03b1\\u03c4\\u03b1 \\u03ba\\u03b1\\u03b9 \\u03c4\\u03cc\\u03bd\\u03bf)<\\\/span><\\\/p>\\n\"},\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Untitled Text\"},\"subContentId\":\"cca5beda-203c-4890-88d3-d07d7656ac8a\"},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"},{\"x\":35.93596863770009,\"y\":35.4924578527063,\"width\":30.345475334857888,\"height\":9.679761232556263,\"action\":{\"library\":\"H5P.Audio 1.5\",\"params\":{\"fitToWrapper\":true,\"playerMode\":\"full\",\"controls\":true,\"autoplay\":false,\"playAudio\":\"\\u0391\\u03bd\\u03b1\\u03c0\\u03b1\\u03c1\\u03b1\\u03b3\\u03c9\\u03b3\\u03ae \\u03ae\\u03c7\\u03bf\\u03c5\",\"pauseAudio\":\"\\u03a0\\u03b1\\u03cd\\u03c3\\u03b7 \\u03ae\\u03c7\\u03bf\\u03c5\",\"contentName\":\"\\u0389\\u03c7\\u03bf\\u03c2\",\"audioNotSupported\":\"\\u039f \\u03c6\\u03c5\\u03bb\\u03bb\\u03bf\\u03bc\\u03b5\\u03c4\\u03c1\\u03b7\\u03c4\\u03ae\\u03c2 \\u03b4\\u03b5\\u03bd \\u03c5\\u03c0\\u03bf\\u03c3\\u03c4\\u03b7\\u03c1\\u03af\\u03b6\\u03b5\\u03b9 \\u03c4\\u03bf \\u03c3\\u03c5\\u03b3\\u03ba\\u03b5\\u03ba\\u03c1\\u03b9\\u03bc\\u03ad\\u03bd\\u03bf \\u03b1\\u03c1\\u03c7\\u03b5\\u03af\\u03bf \\u03ae\\u03c7\\u03bf\\u03c5\",\"files\":[{\"path\":\"audios\\\/files-6869898d0f695.mp3\",\"mime\":\"audio\\\/mpeg\",\"copyright\":{\"license\":\"U\"}}]},\"metadata\":{\"contentType\":\"Audio\",\"license\":\"U\",\"title\":\"Untitled Audio\"},\"subContentId\":\"493c491b-6a53-49de-b92a-78464f559577\"},\"alwaysDisplayComments\":false,\"backgroundOpacity\":0,\"displayAsButton\":false,\"buttonSize\":\"big\",\"goToSlideType\":\"specified\",\"invisible\":false,\"solution\":\"\"}],\"slideBackgroundSelector\":{}}],\"keywordListEnabled\":true,\"globalBackgroundSelector\":{\"fillGlobalBackground\":\"#4fabeb\"},\"keywordListAlwaysShow\":false,\"keywordListAutoHide\":false,\"keywordListOpacity\":90},\"override\":{\"activeSurface\":false,\"hideSummarySlide\":false,\"summarySlideSolutionButton\":true,\"summarySlideRetryButton\":true,\"enablePrintButton\":false,\"social\":{\"showFacebookShare\":false,\"facebookShare\":{\"url\":\"@currentpageurl\",\"quote\":\"\\u03a0\\u03ad\\u03c4\\u03c5\\u03c7\\u03b1 @score \\u03c3\\u03c4\\u03b1 @maxScore \\u03c3\\u03b5 \\u03b1\\u03c5\\u03c4\\u03ae \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7: @currentpageurl.\"},\"showTwitterShare\":false,\"twitterShare\":{\"statement\":\"\\u03a0\\u03ad\\u03c4\\u03c5\\u03c7\\u03b1 @score \\u03c3\\u03c4\\u03b1 @maxScore \\u03c3\\u03b5 \\u03b1\\u03c5\\u03c4\\u03ae \\u03c4\\u03b7\\u03bd \\u03ac\\u03c3\\u03ba\\u03b7\\u03c3\\u03b7: @currentpageurl.\",\"url\":\"@currentpageurl\",\"hashtags\":\"h5p, course\"},\"showGoogleShare\":false,\"googleShareUrl\":\"@currentpageurl\"}},\"l10n\":{\"slide\":\"\\u0394\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\",\"score\":\"\\u0392\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1\",\"yourScore\":\"\\u0397 \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1 \\u03c3\\u03bf\\u03c5\",\"maxScore\":\"\\u039c\\u03ad\\u03b3\\u03b9\\u03c3\\u03c4\\u03b7 \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1\",\"total\":\"\\u03a3\\u03cd\\u03bd\\u03bf\\u03bb\\u03bf\",\"totalScore\":\"\\u03a3\\u03c5\\u03bd\\u03bf\\u03bb\\u03b9\\u03ba\\u03ae \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1\",\"showSolutions\":\"\\u039b\\u03cd\\u03c3\\u03b7\",\"retry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"exportAnswers\":\"\\u0395\\u03be\\u03b1\\u03b3\\u03c9\\u03b3\\u03ae \\u03ba\\u03b5\\u03b9\\u03bc\\u03ad\\u03bd\\u03bf\\u03c5\",\"hideKeywords\":\"\\u0391\\u03c0\\u03cc\\u03ba\\u03c1\\u03c5\\u03c8\\u03b7 \\u03bb\\u03af\\u03c3\\u03c4\\u03b1\\u03c2 \\u03bb\\u03ad\\u03be\\u03b5\\u03c9\\u03bd - \\u03ba\\u03bb\\u03b5\\u03b9\\u03b4\\u03b9\\u03ac\",\"showKeywords\":\"\\u0395\\u03bc\\u03c6\\u03ac\\u03bd\\u03b9\\u03c3\\u03b7 \\u03bb\\u03af\\u03c3\\u03c4\\u03b1\\u03c2 \\u03bb\\u03ad\\u03be\\u03b5\\u03c9\\u03bd - \\u03ba\\u03bb\\u03b5\\u03b9\\u03b4\\u03b9\\u03ac \",\"fullscreen\":\"\\u03a0\\u03bb\\u03ae\\u03c1\\u03b7\\u03c2 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\",\"exitFullscreen\":\"\\u039a\\u03bb\\u03b5\\u03af\\u03c3\\u03b9\\u03bc\\u03bf \\u03c0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\\u03c2 \\u03c0\\u03bb\\u03ae\\u03c1\\u03bf\\u03c5\\u03c2 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\\u03c2\",\"prevSlide\":\"\\u03a0\\u03c1\\u03bf\\u03b7\\u03b3\\u03bf\\u03cd\\u03bc\\u03b5\\u03bd\\u03b7 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\",\"nextSlide\":\"\\u0395\\u03c0\\u03cc\\u03bc\\u03b5\\u03bd\\u03b7 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\",\"currentSlide\":\"\\u03a4\\u03c1\\u03ad\\u03c7\\u03bf\\u03c5\\u03c3\\u03b1 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\",\"lastSlide\":\"\\u03a4\\u03b5\\u03bb\\u03b5\\u03c5\\u03c4\\u03b1\\u03af\\u03b1 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\",\"solutionModeTitle\":\"\\u0388\\u03be\\u03bf\\u03b4\\u03bf\\u03c2 \\u03b1\\u03c0\\u03cc \\u03bb\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2\",\"solutionModeText\":\"\\u039b\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u03bb\\u03cd\\u03c3\\u03b7\\u03c2\",\"summaryMultipleTaskText\":\"\\u03a0\\u03bf\\u03bb\\u03bb\\u03b1\\u03c0\\u03bb\\u03ad\\u03c2 \\u03b1\\u03c3\\u03ba\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2\",\"scoreMessage\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 \\u03c0\\u03b5\\u03c4\\u03cd\\u03c7\\u03b5\\u03b9:\",\"shareFacebook\":\"\\u039a\\u03bf\\u03b9\\u03bd\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b7 \\u03c3\\u03c4\\u03bf Facebook\",\"shareTwitter\":\"\\u039a\\u03bf\\u03b9\\u03bd\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b7 \\u03c3\\u03c4\\u03bf Twitter\",\"shareGoogle\":\"\\u039a\\u03bf\\u03b9\\u03bd\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b7 \\u03c3\\u03c4\\u03bf Google+\",\"summary\":\"\\u03a3\\u03cd\\u03bd\\u03bf\\u03c8\\u03b7\",\"solutionsButtonTitle\":\"\\u0395\\u03bc\\u03c6\\u03ac\\u03bd\\u03b9\\u03c3\\u03b7 \\u03c3\\u03c7\\u03bf\\u03bb\\u03af\\u03c9\\u03bd\",\"printTitle\":\"\\u0395\\u03ba\\u03c4\\u03cd\\u03c0\\u03c9\\u03c3\\u03b7\",\"printIngress\":\"\\u03a0\\u03ce\\u03c2 \\u03b8\\u03ad\\u03bb\\u03b5\\u03c4\\u03b5 \\u03bd\\u03b1 \\u03b5\\u03ba\\u03c4\\u03c5\\u03c0\\u03ce\\u03c3\\u03b5\\u03c4\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c0\\u03b1\\u03c1\\u03bf\\u03c5\\u03c3\\u03af\\u03b1\\u03c3\\u03b7;\",\"printAllSlides\":\"\\u0395\\u03ba\\u03c4\\u03cd\\u03c0\\u03c9\\u03c3\\u03b7 \\u03cc\\u03bb\\u03c9\\u03bd \\u03c4\\u03c9\\u03bd \\u03b4\\u03b9\\u03b1\\u03c6\\u03b1\\u03bd\\u03b5\\u03b9\\u03ce\\u03bd\",\"printCurrentSlide\":\"\\u0395\\u03ba\\u03c4\\u03cd\\u03c0\\u03c9\\u03c3\\u03b7 \\u03c4\\u03c1\\u03ad\\u03c7\\u03bf\\u03c5\\u03c3\\u03b1\\u03c2 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\\u03c2\",\"noTitle\":\"\\u03a7\\u03c9\\u03c1\\u03af\\u03c2 \\u03c4\\u03af\\u03c4\\u03bb\\u03bf\",\"accessibilitySlideNavigationExplanation\":\"\\u03a7\\u03c1\\u03b7\\u03c3\\u03b9\\u03bc\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b5 \\u03c4\\u03bf \\u03b4\\u03b5\\u03be\\u03af \\u03ba\\u03b1\\u03b9 \\u03c4\\u03bf \\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03b5\\u03c1\\u03cc \\u03b2\\u03ad\\u03bb\\u03bf\\u03c2 \\u03b3\\u03b9\\u03b1 \\u03b5\\u03bd\\u03b1\\u03bb\\u03bb\\u03b1\\u03b3\\u03ae \\u03b4\\u03b9\\u03b1\\u03c6\\u03b1\\u03bd\\u03b5\\u03b9\\u03ce\\u03bd \\u03c0\\u03c1\\u03bf\\u03c2 \\u03c4\\u03b7\\u03bd \\u03b1\\u03bd\\u03c4\\u03af\\u03c3\\u03c4\\u03bf\\u03b9\\u03c7\\u03b7 \\u03ba\\u03b1\\u03c4\\u03b5\\u03cd\\u03b8\\u03c5\\u03bd\\u03c3\\u03b7\",\"accessibilityCanvasLabel\":\"\\u0395\\u03c0\\u03b9\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1\\u03c2 \\u03c0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\\u03c2 \\u03b4\\u03b9\\u03b1\\u03c6\\u03b1\\u03bd\\u03b5\\u03b9\\u03ce\\u03bd. \\u03a7\\u03c1\\u03b7\\u03c3\\u03b9\\u03bc\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b5 \\u03c4\\u03bf \\u03b1\\u03c1\\u03b9\\u03c3\\u03c4\\u03b5\\u03c1\\u03cc \\u03ba\\u03b1\\u03b9 \\u03c4\\u03bf \\u03b4\\u03b5\\u03be\\u03af \\u03b2\\u03ad\\u03bb\\u03bf\\u03c2 \\u03b3\\u03b9\\u03b1 \\u03c4\\u03b7\\u03bd \\u03c0\\u03bb\\u03bf\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03c3\\u03c4\\u03b9\\u03c2 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b5\\u03c2.\",\"accessibilityProgressBarLabel\":\"\\u0395\\u03c0\\u03b9\\u03bb\\u03ad\\u03be\\u03c4\\u03b5 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 \\u03b3\\u03b9\\u03b1 \\u03c0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"containsNotCompleted\":\"H \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 @slideName \\u03ad\\u03c7\\u03b5\\u03b9 \\u03bc\\u03b7 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03bc\\u03ad\\u03bd\\u03bf \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03b1\\u03c3\\u03c4\\u03b9\\u03ba\\u03cc \\u03c3\\u03c4\\u03bf\\u03b9\\u03c7\\u03b5\\u03af\\u03bf\",\"containsCompleted\":\"H \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 @slideName \\u03ad\\u03c7\\u03b5\\u03b9 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03bc\\u03ad\\u03bd\\u03bf \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03b1\\u03c3\\u03c4\\u03b9\\u03ba\\u03cc \\u03c3\\u03c4\\u03bf\\u03b9\\u03c7\\u03b5\\u03af\\u03bf\",\"slideCount\":\"\\u0394\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 @index \\u03b1\\u03c0\\u03cc @total\",\"containsOnlyCorrect\":\"\\u0397 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 @slideName \\u03ad\\u03c7\\u03b5\\u03b9 \\u03bc\\u03cc\\u03bd\\u03bf \\u03c3\\u03c9\\u03c3\\u03c4\\u03ad\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2\",\"containsIncorrectAnswers\":\"\\u0397 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b1 @slideName \\u03ad\\u03c7\\u03b5\\u03b9 \\u03bb\\u03ac\\u03b8\\u03bf\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2\",\"shareResult\":\"\\u039a\\u03bf\\u03b9\\u03bd\\u03bf\\u03c0\\u03bf\\u03af\\u03b7\\u03c3\\u03b7 \\u03b1\\u03c0\\u03bf\\u03c4\\u03b5\\u03bb\\u03ad\\u03c3\\u03bc\\u03b1\\u03c4\\u03bf\\u03c2\",\"accessibilityTotalScore\":\"\\u0397 \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1 \\u03c3\\u03bf\\u03c5 \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 @score \\u03b1\\u03c0\\u03cc @maxScore\",\"accessibilityEnteredFullscreen\":\"\\u0395\\u03af\\u03c3\\u03bf\\u03b4\\u03bf\\u03c2 \\u03c3\\u03b5 \\u03c0\\u03bb\\u03ae\\u03c1\\u03b7 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\",\"accessibilityExitedFullscreen\":\"\\u0388\\u03be\\u03bf\\u03b4\\u03bf\\u03c2 \\u03b1\\u03c0\\u03cc \\u03c0\\u03bb\\u03ae\\u03c1\\u03b7 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\",\"confirmDialogHeader\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03c4\\u03c9\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03ce\\u03bd \\u03c3\\u03b1\\u03c2\",\"confirmDialogText\":\"\\u0391\\u03c5\\u03c4\\u03ae \\u03b7 \\u03b5\\u03bd\\u03ad\\u03c1\\u03b3\\u03b5\\u03b9\\u03b1 \\u03b8\\u03b1 \\u03c5\\u03c0\\u03bf\\u03b2\\u03ac\\u03bb\\u03b5\\u03b9 \\u03c4\\u03b9\\u03c2 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c3\\u03b1\\u03c2, \\u03b8\\u03ad\\u03bb\\u03b5\\u03c4\\u03b5 \\u03bd\\u03b1 \\u03c3\\u03c5\\u03bd\\u03b5\\u03c7\\u03af\\u03c3\\u03b5\\u03c4\\u03b5;\",\"confirmDialogConfirmText\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03c9\\u03bd \\u03ba\\u03b1\\u03b9 \\u03c0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03b1\\u03c0\\u03bf\\u03c4\\u03b5\\u03bb\\u03b5\\u03c3\\u03bc\\u03ac\\u03c4\\u03c9\\u03bd\",\"slideshowNavigationLabel\":\"\\u03a0\\u03bb\\u03bf\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7 \\u03c3\\u03b5 \\u03b4\\u03b9\\u03b1\\u03c6\\u03ac\\u03bd\\u03b5\\u03b9\\u03b5\\u03c2\",\"confirmDialogConfirmLabel\":\"Confirm\",\"confirmDialogCancelLabel\":\"Cancel\"}},\"library\":\"H5P.CoursePresentation 1.26\",\"metadata\":{\"contentType\":\"Course Presentation\",\"license\":\"U\",\"title\":\"\\u0391\\u03ba\\u03bf\\u03cd\\u03c9 \\u03c4\\u03b1 \\u03b1\\u03b9\\u03bd\\u03af\\u03b3\\u03bc\\u03b1\\u03c4\\u03b1 \\u03ba\\u03b1\\u03b9 \\u03c0\\u03bb\\u03b7\\u03ba\\u03c4\\u03c1\\u03bf\\u03bb\\u03bf\\u03b3\\u03ce \\u03c4\\u03b7 \\u03bb\\u03ad\\u03be\\u03b7:\"},\"subContentId\":\"d264fa09-6807-4c10-bb00-1b62723fba82\"}}],\"specialStageExtraLives\":1,\"specialStageExtraTime\":1,\"specialStageLinkTarget\":\"_blank\",\"alwaysVisible\":false,\"overrideSymbol\":false}],\"paths\":[{\"customVisuals\":{\"colorPath\":\"rgba(0, 0, 0, 0.7)\",\"pathWidth\":\"0.2\",\"pathStyle\":\"dotted\"},\"from\":1,\"to\":2,\"visualsType\":\"global\"},{\"customVisuals\":{\"colorPath\":\"rgba(0, 0, 0, 0.7)\",\"pathWidth\":\"0.2\",\"pathStyle\":\"dotted\"},\"from\":0,\"to\":1,\"visualsType\":\"global\"}]}},\"endScreen\":{\"noSuccess\":{\"endScreenTextNoSuccess\":\"<p style=\\\"text-align: center;\\\"><\\\/p>\"},\"success\":{\"endScreenTextSuccess\":\"<p style=\\\"text-align: center;\\\"><\\\/p>\"},\"overallFeedback\":[{\"from\":0,\"to\":100}]},\"visual\":{\"stages\":{\"colorStage\":\"rgba(250, 223, 10, 0.7)\",\"colorStageLocked\":\"rgba(153, 0, 0, 0.7)\",\"colorStageCleared\":\"rgba(0, 130, 0, 0.7)\",\"showScoreStars\":\"never\"},\"paths\":{\"displayPaths\":true,\"style\":{\"colorPath\":\"rgba(0, 0, 0, 0.7)\",\"colorPathCleared\":\"rgba(0, 130, 0, 0.7)\",\"pathWidth\":\"0.2\",\"pathStyle\":\"dotted\"}},\"misc\":{\"useAnimation\":true}},\"audio\":{\"backgroundMusic\":{\"muteDuringExercise\":true},\"ambient\":{}},\"behaviour\":{\"enableRetry\":true,\"enableSolutionsButton\":true,\"map\":{\"showLabels\":true,\"roaming\":\"free\"}},\"l10n\":{\"start\":\"\\u0388\\u03bd\\u03b1\\u03c1\\u03be\\u03b7\",\"continue\":\"\\u03a3\\u03c5\\u03bd\\u03ad\\u03c7\\u03b5\\u03b9\\u03b1\",\"restart\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"showSolutions\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u03bb\\u03cd\\u03c3\\u03b5\\u03c9\\u03bd\",\"completedMap\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b1\\u03c4\\u03b5 \\u03c4\\u03bf\\u03bd \\u03c7\\u03ac\\u03c1\\u03c4\\u03b7!\",\"fullScoreButnoLivesLeft\":\"\\u03a0\\u03b5\\u03c4\\u03cd\\u03c7\\u03b1\\u03c4\\u03b5 \\u03c0\\u03bb\\u03ae\\u03c1\\u03b5\\u03c2 \\u03c3\\u03ba\\u03bf\\u03c1, \\u03b1\\u03bb\\u03bb\\u03ac \\u03c7\\u03ac\\u03c3\\u03b1\\u03c4\\u03b5 \\u03cc\\u03bb\\u03b5\\u03c2 \\u03c4\\u03b9\\u03c2 \\u03b6\\u03c9\\u03ad\\u03c2 \\u03c3\\u03b1\\u03c2!\",\"fullScoreButTimeout\":\"\\u03a0\\u03b5\\u03c4\\u03cd\\u03c7\\u03b1\\u03c4\\u03b5 \\u03c4\\u03bf \\u03c0\\u03bb\\u03ae\\u03c1\\u03b5\\u03c2 \\u03c3\\u03ba\\u03bf\\u03c1, \\u03b1\\u03bb\\u03bb\\u03ac \\u03c3\\u03b1\\u03c2 \\u03c4\\u03b5\\u03bb\\u03b5\\u03af\\u03c9\\u03c3\\u03b5 \\u03bf \\u03c7\\u03c1\\u03cc\\u03bd\\u03bf\\u03c2!\",\"confirmFinishHeader\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b1\\u03c4\\u03b5 \\u03c4\\u03bf\\u03bd \\u03c7\\u03ac\\u03c1\\u03c4\\u03b7;\",\"confirmFinishDialog\":\"\\u0391\\u03bd \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03c4\\u03b5 \\u03c4\\u03ce\\u03c1\\u03b1, \\u03b4\\u03b5\\u03bd \\u03b8\\u03b1 \\u03bc\\u03c0\\u03bf\\u03c1\\u03ad\\u03c3\\u03b5\\u03c4\\u03b5 \\u03bd\\u03b1 \\u03b5\\u03be\\u03b5\\u03c1\\u03b5\\u03c5\\u03bd\\u03ae\\u03c3\\u03b5\\u03c4\\u03b5 \\u03ac\\u03bb\\u03bb\\u03bf \\u03c4\\u03bf \\u03c7\\u03ac\\u03c1\\u03c4\\u03b7.\",\"confirmFinishDialogSubmission\":\"\\u03a4\\u03bf \\u03c3\\u03ba\\u03bf\\u03c1 \\u03c3\\u03b1\\u03c2 \\u03b8\\u03b1 \\u03c5\\u03c0\\u03bf\\u03b2\\u03bb\\u03b7\\u03b8\\u03b5\\u03af.\",\"confirmFinishDialogQuestion\":\"\\u0398\\u03ad\\u03bb\\u03b5\\u03c4\\u03b5 \\u03c0\\u03c1\\u03b1\\u03b3\\u03bc\\u03b1\\u03c4\\u03b9\\u03ba\\u03ac \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03c4\\u03b5 \\u03c4\\u03bf\\u03bd \\u03c7\\u03ac\\u03c1\\u03c4\\u03b7;\",\"confirmAccessDeniedHeader\":\"\\u03a4\\u03bf \\u03b5\\u03c0\\u03af\\u03c0\\u03b5\\u03b4\\u03bf \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03ba\\u03bb\\u03b5\\u03b9\\u03b4\\u03c9\\u03bc\\u03ad\\u03bd\\u03bf\",\"confirmAccessDeniedDialog\":\"\\u0391\\u03c5\\u03c4\\u03cc \\u03c4\\u03bf \\u03b5\\u03c0\\u03af\\u03c0\\u03b5\\u03b4\\u03bf \\u03b1\\u03c0\\u03b1\\u03b9\\u03c4\\u03b5\\u03af \\u03c4\\u03b7\\u03bd \\u03b5\\u03c0\\u03af\\u03c4\\u03b5\\u03c5\\u03be\\u03b7 \\u03bf\\u03c1\\u03b9\\u03c3\\u03bc\\u03ad\\u03bd\\u03c9\\u03bd \\u03c3\\u03c4\\u03cc\\u03c7\\u03c9\\u03bd \\u03c0\\u03c1\\u03b9\\u03bd \\u03b1\\u03c0\\u03cc \\u03c4\\u03bf \\u03be\\u03b5\\u03ba\\u03bb\\u03b5\\u03af\\u03b4\\u03c9\\u03bc\\u03ac \\u03c4\\u03bf\\u03c5.\",\"yes\":\"\\u039d\\u03b1\\u03b9\",\"no\":\"\\u038c\\u03c7\\u03b9\",\"confirmGameOverHeader\":\"\\u03a4\\u03ad\\u03bb\\u03bf\\u03c2 \\u03c0\\u03b1\\u03b9\\u03c7\\u03bd\\u03b9\\u03b4\\u03b9\\u03bf\\u03cd!\",\"confirmGameOverDialog\":\"\\u0388\\u03c7\\u03b5\\u03c4\\u03b5 \\u03c7\\u03ac\\u03c3\\u03b5\\u03b9 \\u03cc\\u03bb\\u03b5\\u03c2 \\u03c4\\u03b9\\u03c2 \\u03b6\\u03c9\\u03ad\\u03c2 \\u03c3\\u03b1\\u03c2. \\u03a0\\u03b1\\u03c1\\u03b1\\u03ba\\u03b1\\u03bb\\u03ce \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03c4\\u03b5 \\u03be\\u03b1\\u03bd\\u03ac!\",\"confirmGameOverDialogTimeout\":\"\\u039f \\u03c7\\u03c1\\u03cc\\u03bd\\u03bf\\u03c2 \\u03c3\\u03b1\\u03c2 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03c4\\u03b5\\u03bb\\u03b5\\u03b9\\u03ce\\u03c3\\u03b5\\u03b9. \\u03a0\\u03b1\\u03c1\\u03b1\\u03ba\\u03b1\\u03bb\\u03ce \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03c4\\u03b5 \\u03be\\u03b1\\u03bd\\u03ac!\",\"confirmTimeoutHeader\":\"\\u03a4\\u03ad\\u03bb\\u03bf\\u03c2 \\u03c7\\u03c1\\u03cc\\u03bd\\u03bf\\u03c5!\",\"confirmTimeoutDialog\":\"\\u039f \\u03c7\\u03c1\\u03cc\\u03bd\\u03bf\\u03c2 \\u03c3\\u03b1\\u03c2 \\u03c4\\u03b5\\u03bb\\u03b5\\u03af\\u03c9\\u03c3\\u03b5.\",\"confirmTimeoutDialogLostLife\":\"\\u039f \\u03c7\\u03c1\\u03cc\\u03bd\\u03bf\\u03c2 \\u03c3\\u03b1\\u03c2 \\u03c4\\u03b5\\u03bb\\u03b5\\u03af\\u03c9\\u03c3\\u03b5 \\u03ba\\u03b1\\u03b9 \\u03c7\\u03ac\\u03c3\\u03b1\\u03c4\\u03b5 \\u03bc\\u03b9\\u03b1 \\u03b6\\u03c9\\u03ae.\",\"confirmScoreIncompleteHeader\":\"\\u039c\\u03b7 \\u03c0\\u03bb\\u03ae\\u03c1\\u03b5\\u03c2 \\u03c3\\u03ba\\u03bf\\u03c1!\",\"confirmIncompleteScoreDialogLostLife\":\"\\u0394\\u03b5\\u03bd \\u03c0\\u03b5\\u03c4\\u03cd\\u03c7\\u03b1\\u03c4\\u03b5 \\u03c4\\u03bf \\u03c0\\u03bb\\u03ae\\u03c1\\u03b5\\u03c2 \\u03c3\\u03ba\\u03bf\\u03c1 \\u03ba\\u03b1\\u03b9 \\u03c7\\u03ac\\u03c3\\u03b1\\u03c4\\u03b5 \\u03bc\\u03b9\\u03b1 \\u03b6\\u03c9\\u03ae.\",\"confirmFullScoreHeader\":\"\\u03a0\\u03bb\\u03ae\\u03c1\\u03b5\\u03c2 \\u03c3\\u03ba\\u03bf\\u03c1!\",\"confirmFullScoreDialog\":\"\\u0388\\u03c7\\u03b5\\u03c4\\u03b5 \\u03c3\\u03c5\\u03b3\\u03ba\\u03b5\\u03bd\\u03c4\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9 \\u03b5\\u03c0\\u03b1\\u03c1\\u03ba\\u03ad\\u03c2 \\u03c3\\u03ba\\u03bf\\u03c1 \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03c4\\u03b5 \\u03b1\\u03c5\\u03c4\\u03cc\\u03bd \\u03c4\\u03bf\\u03bd \\u03c7\\u03ac\\u03c1\\u03c4\\u03b7 \\u03bc\\u03b5 \\u03c0\\u03bb\\u03ae\\u03c1\\u03b5\\u03c2 \\u03c3\\u03ba\\u03bf\\u03c1, \\u03b1\\u03bb\\u03bb\\u03ac \\u03b5\\u03af\\u03c3\\u03c4\\u03b5 \\u03b5\\u03bb\\u03b5\\u03cd\\u03b8\\u03b5\\u03c1\\u03bf\\u03b9 \\u03bd\\u03b1 \\u03b5\\u03be\\u03b5\\u03c1\\u03b5\\u03c5\\u03bd\\u03ae\\u03c3\\u03b5\\u03c4\\u03b5 \\u03c4\\u03bf\\u03bd \\u03c5\\u03c0\\u03cc\\u03bb\\u03bf\\u03b9\\u03c0\\u03bf \\u03c7\\u03ac\\u03c1\\u03c4\\u03b7 \\u03b1\\u03bd \\u03c4\\u03bf \\u03b5\\u03c0\\u03b9\\u03b8\\u03c5\\u03bc\\u03b5\\u03af\\u03c4\\u03b5. Your score will be submitted once you finish the map.\",\"confirmFullScoreDialogLoseLivesAmendmend\":\"\\u0391\\u03bb\\u03bb\\u03ac \\u03c0\\u03c1\\u03bf\\u03c3\\u03bf\\u03c7\\u03ae! \\u039c\\u03c0\\u03bf\\u03c1\\u03b5\\u03af \\u03ba\\u03b1\\u03b9 \\u03c0\\u03ac\\u03bb\\u03b9 \\u03bd\\u03b1 \\u03c7\\u03ac\\u03c3\\u03b5\\u03c4\\u03b5 \\u03b6\\u03c9\\u03ad\\u03c2!\",\"ok\":\"\\u0395\\u03bd\\u03c4\\u03ac\\u03be\\u03b5\\u03b9\",\"noStages\":\"\\u0394\\u03b5\\u03bd \\u03ad\\u03c7\\u03bf\\u03c5\\u03bd \\u03bf\\u03c1\\u03b9\\u03c3\\u03c4\\u03b5\\u03af \\u03ad\\u03b3\\u03ba\\u03c5\\u03c1\\u03b1 \\u03b5\\u03c0\\u03af\\u03c0\\u03b5\\u03b4\\u03b1 \\u03b3\\u03b9\\u03b1 \\u03c4\\u03bf\\u03bd \\u03c7\\u03ac\\u03c1\\u03c4\\u03b7.\",\"settings\":\"Settings\",\"volumeMusic\":\"Volume of music\",\"volumeSFX\":\"Volume of sound effects\",\"restrictionsAllOfLong\":\"The stage will not be available unless:\",\"restrictionsAnyOfLong\":\"The stage will not be available unless any of:\",\"restrictionsAllOf\":\"All of:\",\"restrictionsAnyOf\":\"Any of:\",\"restrictionTotalScoreLessThan\":\"You have a total score less than @value.\",\"restrictionTotalScoreEqualTo\":\"You have a total score equal to @value.\",\"restrictionTotalScoreNotEqualTo\":\"You have a total score not equal to @value.\",\"restrictionTotalScoreGreaterThan\":\"You have a total score greater than @value.\",\"restrictionStageScoreLessThan\":\"You have a score less than @value in stage @label.\",\"restrictionStageScoreEqualTo\":\"You have a score equal to @value in stage @label.\",\"restrictionStageScoreNotEqualTo\":\"You have a score not equal to @value in stage @label.\",\"restrictionStageScoreGreaterThan\":\"You have a score greater than @value in stage @label.\",\"restrictionStageProgressIs\":\"The progress of stage @label is @value.\",\"restrictionStageProgressIsNot\":\"Ths progress of stage @label is not @value.\",\"restrictionTimeBefore\":\"The current time is before @value.\",\"restrictionTimeOn\":\"The current time is @value.\",\"restrictionTimeNotOn\":\"The current time is not @value.\",\"restrictionTimeAfter\":\"The current time is after @value.\",\"unstarted\":\"not started\",\"opened\":\"started\",\"completed\":\"completed\",\"cleared\":\"completed successfully\",\"missingContent\":\"No content was set for this stage!\"},\"a11y\":{\"buttonFinish\":\"\\u03a4\\u03ad\\u03bb\\u03bf\\u03c2 \\u03c4\\u03bf\\u03c5 \\u03c7\\u03ac\\u03c1\\u03c4\\u03b7\",\"buttonAudioActive\":\"\\u03a3\\u03af\\u03b3\\u03b1\\u03c3\\u03b7 \\u03ae\\u03c7\\u03bf\\u03c5. \\u0391\\u03c5\\u03c4\\u03ae\\u03bd \\u03c4\\u03b7 \\u03c3\\u03c4\\u03b9\\u03b3\\u03bc\\u03ae \\u03ba\\u03b1\\u03c4\\u03b1\\u03c1\\u03b3\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03b7 \\u03c3\\u03af\\u03b3\\u03b1\\u03c3\\u03b7.\",\"buttonAudioInactive\":\"\\u039a\\u03b1\\u03c4\\u03ac\\u03c1\\u03b3\\u03b7\\u03c3\\u03b7 \\u03c3\\u03af\\u03b3\\u03b1\\u03c3\\u03b7\\u03c2 \\u03ae\\u03c7\\u03bf\\u03c5. \\u0391\\u03c5\\u03c4\\u03ae\\u03bd \\u03c4\\u03b7 \\u03c3\\u03c4\\u03b9\\u03b3\\u03bc\\u03ae \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03c3\\u03b5 \\u03c3\\u03af\\u03b3\\u03b1\\u03c3\\u03b7.\",\"close\":\"\\u039a\\u03bb\\u03b5\\u03af\\u03c3\\u03b9\\u03bc\\u03bf\",\"yourResult\":\"\\u0388\\u03c7\\u03b5\\u03b9\\u03c2 @score \\u03b1\\u03c0\\u03cc @total points\",\"mapWasOpened\":\"\\u039f \\u03c7\\u03ac\\u03c1\\u03c4\\u03b7\\u03c2 \\u03ac\\u03bd\\u03bf\\u03b9\\u03be\\u03b5.\",\"mapSolutionsWasOpened\":\"\\u039f \\u03c7\\u03ac\\u03c1\\u03c4\\u03b7\\u03c2 \\u03ac\\u03bd\\u03bf\\u03b9\\u03be\\u03b5 \\u03c3\\u03b5 \\u03bb\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u03bb\\u03cd\\u03c3\\u03b5\\u03c9\\u03bd.\",\"startScreenWasOpened\":\"\\u0397 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7 \\u03c4\\u03af\\u03c4\\u03bb\\u03bf\\u03c5 \\u03ac\\u03bd\\u03bf\\u03b9\\u03be\\u03b5.\",\"endScreenWasOpened\":\"\\u0397 \\u03c4\\u03b5\\u03bb\\u03b9\\u03ba\\u03ae \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7 \\u03ac\\u03bd\\u03bf\\u03b9\\u03be\\u03b5.\",\"exerciseLabel\":\" \\u03b4\\u03c1\\u03b1\\u03c3\\u03c4\\u03b7\\u03c1\\u03b9\\u03cc\\u03c4\\u03b7\\u03c4\\u03b1 @stagelabel\",\"stageButtonLabel\":\"\\u0395\\u03c0\\u03af\\u03c0\\u03b5\\u03b4\\u03bf: @stagelabel\",\"adjacentStageLabel\":\"\\u0393\\u03b5\\u03b9\\u03c4\\u03bf\\u03bd\\u03b9\\u03ba\\u03cc \\u03b5\\u03c0\\u03b5\\u03af\\u03c0\\u03b5\\u03b4\\u03bf \\u03c4\\u03bf\\u03c5 @stagelabelOrigin: @stagelabelNeighbor\",\"locked\":\"\\u039a\\u03bb\\u03b5\\u03b9\\u03b4\\u03c9\\u03bc\\u03ad\\u03bd\\u03bf\",\"cleared\":\"\\u0395\\u03ba\\u03ba\\u03b1\\u03b8\\u03ac\\u03c1\\u03b9\\u03c3\\u03b7\",\"applicationInstructions\":\"\\u03a7\\u03c1\\u03b7\\u03c3\\u03b9\\u03bc\\u03bf\\u03c0\\u03bf\\u03b9\\u03ae\\u03c3\\u03c4\\u03b5 \\u03c4\\u03bf \\u03c0\\u03bb\\u03ae\\u03ba\\u03c4\\u03c1\\u03bf \\u03b4\\u03b9\\u03b1\\u03c3\\u03c4\\u03ae\\u03bc\\u03b1\\u03c4\\u03bf\\u03c2 \\u03ae \\u03c4\\u03bf \\u03c0\\u03bb\\u03ae\\u03ba\\u03c4\\u03c1\\u03bf Enter \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03b5\\u03bd\\u03b5\\u03c1\\u03b3\\u03bf\\u03c0\\u03bf\\u03b9\\u03ae\\u03c3\\u03b5\\u03c4\\u03b5 \\u03c4\\u03bf \\u03c4\\u03c1\\u03ad\\u03c7\\u03bf\\u03bd \\u03b5\\u03c0\\u03b5\\u03af\\u03c0\\u03b5\\u03b4\\u03bf. \\u03a7\\u03c1\\u03b7\\u03c3\\u03b9\\u03bc\\u03bf\\u03c0\\u03bf\\u03b9\\u03ae\\u03c3\\u03c4\\u03b5 \\u03c4\\u03b1 \\u03c0\\u03bb\\u03ae\\u03ba\\u03c4\\u03c1\\u03b1 \\u03b2\\u03ad\\u03bb\\u03bf\\u03c5\\u03c2 \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03b5\\u03c0\\u03b9\\u03bb\\u03ad\\u03be\\u03b5\\u03c4\\u03b5 \\u03b4\\u03b9\\u03c0\\u03bb\\u03b1\\u03bd\\u03cc \\u03b5\\u03c0\\u03b5\\u03af\\u03c0\\u03b5\\u03b4\\u03bf. \\u03a7\\u03c1\\u03b7\\u03c3\\u03b9\\u03bc\\u03bf\\u03c0\\u03bf\\u03b9\\u03ae\\u03c3\\u03c4\\u03b5 \\u03c4\\u03bf \\u03c0\\u03bb\\u03ae\\u03ba\\u03c4\\u03c1\\u03bf \\u03b4\\u03b9\\u03b1\\u03c3\\u03c4\\u03ae\\u03bc\\u03b1\\u03c4\\u03bf\\u03c2 \\u03ae \\u03c4\\u03bf \\u03c0\\u03bb\\u03ae\\u03ba\\u03c4\\u03c1\\u03bf \\u03b5\\u03b9\\u03c3\\u03b1\\u03b3\\u03c9\\u03b3\\u03ae\\u03c2 \\u03c3\\u03c4\\u03bf \\u03b4\\u03b9\\u03c0\\u03bb\\u03b1\\u03bd\\u03cc \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03c0\\u03bb\\u03bf\\u03b7\\u03b3\\u03b7\\u03b8\\u03b5\\u03af\\u03c4\\u03b5 \\u03b5\\u03ba\\u03b5\\u03af.\",\"applicationDescription\":\"\\u03a7\\u03ac\\u03c1\\u03c4\\u03b7\\u03c2\",\"movedToStage\":\"\\u039c\\u03b5\\u03c4\\u03b1\\u03ba\\u03b9\\u03bd\\u03ae\\u03b8\\u03b7\\u03ba\\u03b5 \\u03c3\\u03c4\\u03bf @stagelabel\",\"stageUnlocked\":\"\\u03a4\\u03bf \\u03b5\\u03c0\\u03af\\u03c0\\u03b5\\u03b4\\u03bf @stagelabel \\u03be\\u03b5\\u03ba\\u03bb\\u03b5\\u03b9\\u03b4\\u03ce\\u03b8\\u03b7\\u03ba\\u03b5.\",\"toolbarFallbackLabel\":\"\\u03a7\\u03ac\\u03c1\\u03c4\\u03b7\\u03c2 \\u03c0\\u03b1\\u03b9\\u03c7\\u03bd\\u03b9\\u03b4\\u03b9\\u03bf\\u03cd\",\"enterFullscreen\":\"\\u0395\\u03af\\u03c3\\u03bf\\u03b4\\u03bf\\u03c2 \\u03c3\\u03b5 \\u03bb\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u03c0\\u03bb\\u03ae\\u03c1\\u03bf\\u03c5\\u03c2 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\\u03c2\",\"exitFullscreen\":\"\\u0388\\u03be\\u03bf\\u03b4\\u03bf\\u03c2 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7 \\u03bb\\u03b5\\u03b9\\u03c4\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u03c0\\u03bb\\u03ae\\u03c1\\u03bf\\u03c5\\u03c2 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\\u03c2\"}}"}}});