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);
;H5P.Column = (function (EventDispatcher) {

  /**
   * Column Constructor
   *
   * @class
   * @param {Object} params Describes task behavior
   * @param {number} id Content identifier
   * @param {Object} data User specific data to adapt behavior
   */
  function Column(params, id, data) {
    /** @alias H5P.Column# */
    var self = this;

    // We support events by extending this class
    EventDispatcher.call(self);

    // Add defaults
    params = params || {};
    if (params.useSeparators === undefined) {
      params.useSeparators = true;
    }

    // Fallback if column is empty
    if (params.content === undefined) {
      params.content = [];
    }

    this.contentData = data;

    // Column wrapper element
    var wrapper;

    // H5P content in the column
    var instances = [];
    var instanceContainers = [];

    // Number of tasks among instances
    var numTasks = 0;

    // Number of tasks that has been completed
    var numTasksCompleted = 0;

    // Keep track of result for each task
    var tasksResultEvent = [];

    // Keep track of last content's margin state
    var previousHasMargin;

    /**
     * Calculate score and trigger completed event.
     *
     * @private
     */
    var completed = function () {
      // Sum all scores
      var raw = 0;
      var max = 0;

      for (var i = 0; i < tasksResultEvent.length; i++) {
        var event = tasksResultEvent[i];
        raw += event.getScore();
        max += event.getMaxScore();
      }

      self.triggerXAPIScored(raw, max, 'completed');
    };

    /**
     * Generates an event handler for the given task index.
     *
     * @private
     * @param {number} taskIndex
     * @return {function} xAPI event handler
     */
    var trackScoring = function (taskIndex) {
      return function (event) {
        if (event.getScore() === null) {
          return; // Skip, not relevant
        }

        if (tasksResultEvent[taskIndex] === undefined) {
          // Update number of completed tasks
          numTasksCompleted++;
        }

        // Keep track of latest event with result
        tasksResultEvent[taskIndex] = event;

        // Track progress
        var progressed = self.createXAPIEventTemplate('progressed');
        progressed.data.statement.object.definition.extensions['http://id.tincanapi.com/extension/ending-point'] = taskIndex + 1;
        self.trigger(progressed);

        // Check to see if we're done
        if (numTasksCompleted === numTasks) {
          // Run this after the current event is sent
          setTimeout(function () {
            completed(); // Done
          }, 0);
        }
      };
    };

    /**
     * Creates a new ontent instance from the given content parameters and
     * then attaches it the wrapper. Sets up event listeners.
     *
     * @private
     * @param {Object} content Parameters
     * @param {Object} [contentData] Content Data
     */
    var addRunnable = function (content, contentData) {
      // Create container for content
      var container = document.createElement('div');
      container.classList.add('h5p-column-content');

      // Content overrides
      var library = content.library.split(' ')[0];
      if (library === 'H5P.Video') {
        // Prevent video from growing endlessly since height is unlimited.
        content.params.visuals.fit = false;
      }

      // Create content instance
      var instance = H5P.newRunnable(content, id, undefined, true, contentData);

      // Bubble resize events
      bubbleUp(instance, 'resize', self);

      // Keep track of all instances that are tasks
      const taskInstances = [];

      // Check if instance is a task
      if (Column.isTask(instance)) {
        // Tasks requires completion
        taskInstances.push(instance);
      }

      // For H5P.Row, we'll retrieve the actual task instances
      if (library === 'H5P.Row') {
        const rowColumns = instance.getInstances();

        // A row can have several columns
        for (const rowColumn of rowColumns) {

          // And each row column can have several content types,
          // some of which might be tasks
          const rowColumnInstances = rowColumn.getInstances();
          for (const rowColumnInstance of rowColumnInstances) {
            if (Column.isTask(rowColumnInstance)) {
              taskInstances.push(rowColumnInstance);
            }
          }
        }
      }

      for (const task of taskInstances) {
        task.on('xAPI', trackScoring(numTasks));
        numTasks++;
      }

      if (library === 'H5P.Image') {
        // Resize when images are loaded

        instance.on('loaded', function () {
          self.trigger('resize');
        });
      }

      // Keep track of all instances
      instances.push(instance);
      instanceContainers.push({
        hasAttached: false,
        container: container,
        instanceIndex: instances.length - 1,
      });

      // Add to DOM wrapper
      wrapper.appendChild(container);
    };

    /**
     * Help get data for content at given index
     *
     * @private
     * @param {number} index
     * @returns {Object} Data object with previous state
     */
    var grabContentData = function (index) {
      var contentData = {
        parent: self
      };

      if (data.previousState && data.previousState.instances && data.previousState.instances[index]) {
        contentData.previousState = data.previousState.instances[index];
      }

      return contentData;
    };

    /**
     * Adds separator before the next content.
     *
     * @private
     * @param {string} libraryName Name of the next content type
     * @param {string} useSeparator
     */
    var addSeparator = function (libraryName, useSeparator, content) {
      // Determine separator spacing
      var thisHasMargin = (hasMargins.indexOf(libraryName) !== -1);

      if (libraryName === 'H5P.Row') {
        let lastContent = null;
        let contentCount = content.params?.columns?.reduce((count, column) => {
          const contents = column.content?.params?.content;
          count += contents?.length ?? 0;
          if (contents?.length > 0) {
            lastContent = column.content.params.content[contents.length-1];
          }
          return count;
        }, 0);

        // To avoid messy margin computation, separator setting should be disabled when there is more
        // than a single content inside a row. We also don't want a separator if we don't have any content
        if (useSeparator === 'auto' && (contentCount > 1 || contentCount === 0)) {
          useSeparator = 'disabled';
        } else if (contentCount > 0) {
          // If we only have one content, we want to follow the same procedure as if that content was
          // not wrapped on Row and RowColumn. 
          addSeparator(lastContent.library.split(' ')[0], useSeparator ?? 'auto');
          return;
        } else {
          // No separator.
          return;
        }
      }

      // Only add if previous content exists
      if (previousHasMargin !== undefined) {

        // Create separator element
        let separator = document.createElement('div');

        // If no margins, check for top margin only
        if (!thisHasMargin && (hasTopMargins.indexOf(libraryName) === -1)) {
          if (!previousHasMargin) {
            // None of them have margin

            // Only add separator if forced
            if (useSeparator === 'enabled') {
              // Add ruler
              separator.classList.add('h5p-column-ruler');

              // Add space both before and after the ruler
              separator.classList.add('h5p-column-space-before-n-after');
            }
            else {
              // Default is to separte using a single space, no ruler
              separator.classList.add('h5p-column-space-before');
            }
          }
          else {
            // We don't have any margin but the previous content does

            // Only add separator if forced
            if (useSeparator === 'enabled') {
              // Add ruler
              separator.classList.add('h5p-column-ruler');

              // Add space after the ruler
              separator.classList.add('h5p-column-space-after');
            }
          }
        }
        else if (!previousHasMargin) {
          // We have margin but not the previous content doesn't

          // Only add separator if forced
          if (useSeparator === 'enabled') {
            // Add ruler
            separator.classList.add('h5p-column-ruler');

            // Add space after the ruler
            separator.classList.add('h5p-column-space-before');
          }
        }
        else {
          // Both already have margin

          if (useSeparator !== 'disabled') {
            // Default is to add ruler unless its disabled
            separator.classList.add('h5p-column-ruler');
          }
        }

        // Insert into DOM
        wrapper.appendChild(separator);
      }

      // Keep track of spacing for next separator
      previousHasMargin = thisHasMargin || (hasBottomMargins.indexOf(libraryName) !== -1);
    };

    /**
     * Creates a wrapper and the column content the first time the column
     * is attached to the DOM.
     *
     * @private
     */
    var createHTML = function () {
      // Create wrapper
      wrapper = document.createElement('div');

      // Go though all contents
      for (var i = 0; i < params.content.length; i++) {
        var content = params.content[i];

        // In case the author has created an element without selecting any
        // library
        if (content.content === undefined) {
          continue;
        }

        if (params.useSeparators) { // (check for global override)

          // Add separator between contents
          addSeparator(content.content.library.split(' ')[0], content.useSeparator, content.content);
        }

        // Add content
        addRunnable(content.content, grabContentData(i));
      }
    };

    /**
     * Attach the column to the given container
     *
     * @param {H5P.jQuery} $container
     */
    self.attach = function ($container) {
      if (wrapper === undefined) {
        // Create wrapper and content
        createHTML();
      }

      // Attach instances that have not been attached
      instanceContainers.filter(function (container) { return !container.hasAttached })
        .forEach(function (container) {
          instances[container.instanceIndex]
            .attach(H5P.jQuery(container.container));

          // Remove any fullscreen buttons
          disableFullscreen(instances[container.instanceIndex]);
        });


      // Add to DOM
      $container.addClass('h5p-column').html('').append(wrapper);
    };

    /**
     * Create object containing information about the current state
     * of this content.
     *
     * @return {Object}
     */
    self.getCurrentState = function () {
      // Get previous state object or create new state object
      var state = (data.previousState ? data.previousState : {});
      if (!state.instances) {
        state.instances = [];
      }

      // Grab the current state for each instance
      for (var i = 0; i < instances.length; i++) {
        var instance = instances[i];

        if (instance.getCurrentState instanceof Function ||
            typeof instance.getCurrentState === 'function') {

          state.instances[i] = instance.getCurrentState();
        }
      }

      // Done
      return state;
    };

    /**
     * Get xAPI data.
     * Contract used by report rendering engine.
     *
     * @see contract at {@link https://h5p.org/documentation/developers/contracts#guides-header-6}
     */
    self.getXAPIData = function () {
      var xAPIEvent = self.createXAPIEventTemplate('answered');
      addQuestionToXAPI(xAPIEvent);
      xAPIEvent.setScoredResult(self.getScore(),
        self.getMaxScore(),
        self,
        true,
        self.getScore() === self.getMaxScore()
      );
      return {
        statement: xAPIEvent.data.statement,
        children: getXAPIDataFromChildren(instances)
      };
    };

    /**
     * Get score for all children
     * Contract used for getting the complete score of task.
     *
     * @return {number} Score for questions
     */
    self.getScore = function () {
      return instances.reduce(function (prev, instance) {
        return prev + (instance.getScore ? instance.getScore() : 0);
      }, 0);
    };

    /**
     * Get maximum score possible for all children instances
     * Contract.
     *
     * @return {number} Maximum score for questions
     */
    self.getMaxScore = function () {
      return instances.reduce(function (prev, instance) {
        return prev + (instance.getMaxScore ? instance.getMaxScore() : 0);
      }, 0);
    };

    /**
     * Get answer given
     * Contract.
     *
     * @return {boolean} True, if all answers have been given.
     */
    self.getAnswerGiven = function () {
      return instances.reduce(function (prev, instance) {
        return prev && (instance.getAnswerGiven ? instance.getAnswerGiven() : prev);
      }, true);
    };

    /**
     * Show solutions.
     * Contract.
     */
    self.showSolutions = function () {
      instances.forEach(function (instance) {
        if (instance.toggleReadSpeaker) {
          instance.toggleReadSpeaker(true);
        }
        if (instance.showSolutions) {
          instance.showSolutions();
        }
        if (instance.toggleReadSpeaker) {
          instance.toggleReadSpeaker(false);
        }
      });
    };

    /**
     * Reset task.
     * Contract.
     */
    self.resetTask = function () {
      instances.forEach(function (instance) {
        if (instance.resetTask) {
          instance.resetTask();
        }
      });
    };

    /**
     * Get instances for all children
     * TODO: This is not a good interface, we should provide handling needed
     * handling of the tasks instead of repeating them for each parent...
     *
     * @return {Object[]} array of instances
     */
    self.getInstances = function () {
      return instances;
    };

    /**
     * Get title, e.g. for xAPI when Column is subcontent.
     *
     * @return {string} Title.
     */
    self.getTitle = function () {
      return H5P.createTitle((self.contentData && self.contentData.metadata && self.contentData.metadata.title) ? self.contentData.metadata.title : 'Column');
    };

    /**
     * Add the question itself to the definition part of an xAPIEvent
     */
    var addQuestionToXAPI = function (xAPIEvent) {
      var definition = xAPIEvent.getVerifiedStatementValue(['object', 'definition']);
      H5P.jQuery.extend(definition, getxAPIDefinition());
    };

    /**
     * Generate xAPI object definition used in xAPI statements.
     * @return {Object}
     */
    var getxAPIDefinition = function () {
      var definition = {};

      definition.interactionType = 'compound';
      definition.type = 'http://adlnet.gov/expapi/activities/cmi.interaction';
      definition.description = {
        'en-US': ''
      };

      return definition;
    };

    /**
     * Get xAPI data from sub content types
     *
     * @param {Array} of H5P instances
     * @returns {Array} of xAPI data objects used to build a report
     */
    var getXAPIDataFromChildren = function (children) {
      let childData = [];

      children.forEach(child => {
        if (child.libraryInfo.machineName === 'H5P.Row') {
          childData.push(...child.getXAPIDataFromChildren());
        }
        else if (typeof child.getXAPIData == 'function') {
          childData.push(child.getXAPIData());
        }
      });

      return childData.filter(function (data) {
        return !!data;
      });
    };

    // Resize children to fit inside parent
    bubbleDown(self, 'resize', instances);

    if (wrapper === undefined) {
      // Create wrapper and content
      createHTML();
    }

    self.setActivityStarted();
  }

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

  /**
   * Makes it easy to bubble events from parent to children
   *
   * @private
   * @param {Object} origin Origin of the Event
   * @param {string} eventName Name of the Event
   * @param {Array} targets Targets to trigger event on
   */
  function bubbleDown(origin, eventName, targets) {
    origin.on(eventName, function (event) {
      if (origin.bubblingUpwards) {
        return; // Prevent send event back down.
      }

      for (var i = 0; i < targets.length; i++) {
        targets[i].trigger(eventName, event);
      }
    });
  }

  /**
   * Makes it easy to bubble events from child to parent
   *
   * @private
   * @param {Object} origin Origin of the Event
   * @param {string} eventName Name of the Event
   * @param {Object} target Target to trigger event on
   */
  function bubbleUp(origin, eventName, target) {
    origin.on(eventName, function (event) {
      // Prevent target from sending event back down
      target.bubblingUpwards = true;

      // Trigger event
      target.trigger(eventName, event);

      // Reset
      target.bubblingUpwards = false;
    });
  }

  /**
   * Definition of which content types are tasks
   */
  var isTasks = [
    'H5P.ImageHotspotQuestion',
    'H5P.Blanks',
    'H5P.Essay',
    'H5P.SingleChoiceSet',
    'H5P.MultiChoice',
    'H5P.TrueFalse',
    'H5P.DragQuestion',
    'H5P.Summary',
    'H5P.DragText',
    'H5P.MarkTheWords',
    'H5P.MemoryGame',
    'H5P.QuestionSet',
    'H5P.InteractiveVideo',
    'H5P.CoursePresentation',
    'H5P.DocumentationTool',
    'H5P.MultiMediaChoice'
  ];

  /**
   * Check if the given content instance is a task (will give a score)
   *
   * @param {Object} instance
   * @return {boolean}
   */
  Column.isTask = function (instance) {
    if (instance.isTask !== undefined) {
      return instance.isTask; // Content will determine self if it's a task
    }

    // Go through the valid task names
    for (var i = 0; i < isTasks.length; i++) {
      // Check against library info. (instanceof is broken in H5P.newRunnable)
      if (instance.libraryInfo.machineName === isTasks[i]) {
        return true;
      }
    }

    return false;
  }

  /**
   * Definition of which content type have margins
   */
  var hasMargins = [
    'H5P.AdvancedText',
    'H5P.AudioRecorder',
    'H5P.Essay',
    'H5P.Link',
    'H5P.Accordion',
    'H5P.Table',
    'H5P.GuessTheAnswer',
    'H5P.Blanks',
    'H5P.MultiChoice',
    'H5P.TrueFalse',
    'H5P.DragQuestion',
    'H5P.Summary',
    'H5P.DragText',
    'H5P.MarkTheWords',
    'H5P.ImageHotspotQuestion',
    'H5P.MemoryGame',
    'H5P.Dialogcards',
    'H5P.QuestionSet',
    'H5P.DocumentationTool'
  ];

  /**
   * Definition of which content type have top margins
   */
  var hasTopMargins = [
    'H5P.SingleChoiceSet'
  ];

  /**
   * Definition of which content type have bottom margins
   */
  var hasBottomMargins = [
    'H5P.CoursePresentation',
    'H5P.Dialogcards',
    'H5P.GuessTheAnswer',
    'H5P.ImageSlider'
  ];

  /**
   * Remove custom fullscreen buttons from sub content.
   * (A bit of a hack, there should have been some sort of override…)
   *
   * @param {Object} instance
   */
  function disableFullscreen(instance) {
    switch (instance.libraryInfo.machineName) {
      case 'H5P.CoursePresentation':
        if (instance.$fullScreenButton) {
          instance.$fullScreenButton.remove();
        }
        break;

      case 'H5P.InteractiveVideo':
        instance.on('controls', function () {
          if (instance.controls.$fullscreen) {
            instance.controls.$fullscreen.remove();
          }
        });
        break;
    }
  }

  return Column;
})(H5P.EventDispatcher);
;var H5P = H5P || {};

/**
 * Constructor.
 *
 * @param {Object} params Options for this library.
 * @param {Number} id Content identifier
 * @returns {undefined}
 */
(function ($) {
  H5P.Image = function (params, id, extras) {
    H5P.EventDispatcher.call(this);
    this.extras = extras;

    if (params.file === undefined || !(params.file instanceof Object)) {
      this.placeholder = true;
    }
    else {
      this.source = H5P.getPath(params.file.path, id);
      this.width = params.file.width;
      this.height = params.file.height;
    }

    this.alt = (!params.decorative && params.alt !== undefined) ?
      this.stripHTML(this.htmlDecode(params.alt)) :
      '';

    if (params.title !== undefined) {
      this.title = this.stripHTML(this.htmlDecode(params.title));
    }
  };

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

  /**
   * Wipe out the content of the wrapper and put our HTML in it.
   *
   * @param {jQuery} $wrapper
   * @returns {undefined}
   */
  H5P.Image.prototype.attach = function ($wrapper) {
    var self = this;
    var source = this.source;

    if (self.$img === undefined) {
      if(self.placeholder) {
        self.$img = $('<div>', {
          width: '100%',
          height: '100%',
          class: 'h5p-placeholder',
          title: this.title === undefined ? '' : this.title,
          on: {
            load: function () {
              self.trigger('loaded');
            }
          }
        });
      } else {
        self.$img = $('<img>', {
          width: '100%',
          height: '100%',
          src: source,
          alt: this.alt,
          title: this.title === undefined ? '' : this.title,
          on: {
            load: function () {
              self.trigger('loaded');
            }
          }
        });
      }
    }

    $wrapper.addClass('h5p-image').html(self.$img);
  };

  /**
   * Retrieve decoded HTML encoded string.
   *
   * @param {string} input HTML encoded string.
   * @returns {string} Decoded string.
   */
  H5P.Image.prototype.htmlDecode = function (input) {
    const dparser = new DOMParser().parseFromString(input, 'text/html');
    return dparser.documentElement.textContent;
  };

  /**
   * Retrieve string without HTML tags.
   *
   * @param {string} input Input string.
   * @returns {string} Output string.
   */
  H5P.Image.prototype.stripHTML = function (html) {
    const div = document.createElement('div');
    div.innerHTML = html;
    return div.textContent || div.innerText || '';
  };

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

H5P.ImageSlide = (function ($) {
  /**
   * Constructor function.
   */
  function C(options, contentId, extras) {
    var self = this;
    this.$ = $(this);
    H5P.EventDispatcher.call(this);

    this.aspectRatio = this.originalAspectRatio = extras.aspectRatio;
    // Extend defaults with provided options
    this.options = $.extend(true, {}, {
      image: null,
    }, options);
    // Keep provided id.
    this.contentId = contentId;

    this.image = H5P.newRunnable(this.options.image, this.contentId);
    this.image.on('loaded', function() {
      self.trigger('loaded');
      self.trigger('resize');
    });
  }

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


  /**
   * Attach function called by H5P framework to insert H5P content into
   * page
   *
   * @param {jQuery} $container
   */
  C.prototype.attach = function ($container) {
    this.$container = $container;

    // Set class on container to identify it as a greeting card
    // container.  Allows for styling later.
    $container.addClass("h5p-image-slide");

    this.$imageHolder = $('<div>', {
      class: 'h5p-image-slide-image-holder',
    });

    $container.append(this.$imageHolder);

    // Add image
    this.image.attach(this.$imageHolder);

    this.adjustSize();
  };

  /**
   * Set the ascpect ratio for this slide
   *
   * @param {Integer} newAspectRatio the aspect ratio
   */
  C.prototype.setAspectRatio = function(newAspectRatio) {
    this.aspectRatio = newAspectRatio;
    // Adjust size if image has been attached
    if (this.$imageHolder) {
      this.adjustSize();
    }
  };

  /**
   * Reset the aspect ratio to the previously set aspect ratio
   *
   * Typically used when exiting fullscreen mode
   */
  C.prototype.resetAspectRatio = function() {
    this.aspectRatio = this.originalAspectRatio;
    // Adjust size if image has been attached
    if (this.$imageHolder) {
      this.adjustSize();
    }
  };

  /**
   * Update the size of the slide
   *
   * Typically used when the screen resizes, goes to fullscreen or similar
   */
  C.prototype.adjustSize = function() {
    var imageHeight = this.options.image.params.file.height;
    var imageWidth = this.options.image.params.file.width;

    var imageAspectRatio = imageWidth / imageHeight;
    if (this.aspectRatio >= imageAspectRatio) {
      // image too tall - Make it smaller and center it
      var widthInPercent = imageAspectRatio / this.aspectRatio * 100;
      var borderSize = (100 - widthInPercent) / 2 + '%';
      this.$imageHolder.css({
        height: '100%',
        width: imageAspectRatio / this.aspectRatio * 100 + '%',
        paddingLeft: borderSize,
        paddingRight: borderSize,
        paddingTop: 0,
        paddingBottom: 0
      });
    }
    else if (this.aspectRatio < imageAspectRatio) {
      // image too wide
      var heightInPercent = this.aspectRatio / imageAspectRatio * 100;

      // Note: divide by aspect ratio since padding top/bottom is relative to width
      var borderSize = (100 - heightInPercent) / 2 / this.aspectRatio + '%';

      this.$imageHolder.css({
        width: '100%',
        height: heightInPercent + '%',
        paddingTop: borderSize,
        paddingBottom: borderSize,
        paddingLeft: 0,
        paddingRight: 0
      });
    }
    else if (this.aspectRatio === undefined) {
      this.$imageHolder.css({
        width: '100%',
        height: '',
        paddingTop: 0,
        paddingBottom: 0,
        paddingLeft: 0,
        paddingRight: 0
      });
    }
  };

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

H5P.ImageSlider = (function ($) {
  /**
   * Constructor function.
   */
  function C(options, id) {
    this.$ = $(this);
    var self = this;

    H5P.EventDispatcher.call(this);
    // Extend defaults with provided options
    this.options = $.extend(true, {}, {
      imageSlides: [
        {
          imageSlide: null
        }
      ],
      a11y: {
        nextSlide: 'Next Image',
        prevSlide: 'Previous Image',
        gotoSlide: 'Go to image %slide'
      },
      aspectRatioMode: 'auto',
      aspectRatio: {
        aspectWidth: 4,
        aspectHeight: 3
      }
    }, options);

    // Filter out slides without image
    this.options.imageSlides = this.options.imageSlides.filter(function (slide) {
      return slide.params && slide.params.image && slide.params.image.params && slide.params.image.params.file;
    });

    if (this.options.imageSlides.length === 0) {
      return;
    }

    // Keep provided id.
    this.id = id;
    this.currentSlideId = 0;
    this.imageSlides = [];
    this.imageSlideHolders = [];
    this.determineAspectRatio();

    for (var i = 0; i < this.options.imageSlides.length; i++) {
      this.imageSlides[i] = H5P.newRunnable(this.options.imageSlides[i], this.id, undefined, undefined, {
        aspectRatio: this.aspectRatio
      });
      this.imageSlides[i].on('loaded', function() {
        self.trigger('resize');
      });
      this.imageSlideHolders[i] = false;
    }

    this.on('enterFullScreen', function() {
      self.enterFullScreen();
    });
    this.on('exitFullScreen', function(){
      self.exitFullScreen();
    });

    this.on('resize', function() {
      var fullScreenOn = self.$container.hasClass('h5p-fullscreen') || self.$container.hasClass('h5p-semi-fullscreen');
      if (fullScreenOn) {
        self.$slides.css('height', '');
        var newAspectRatio = window.innerWidth / (window.innerHeight - self.$progressBar.outerHeight());
        for (var i = 0; i < self.imageSlides.length; i++) {
          self.imageSlides[i].setAspectRatio(newAspectRatio);
        }
      }
      else {
        if (self.aspectRatio && self.$slides) {
          self.$slides.height(self.$slides.width() / self.aspectRatio);
        }
      }
      self.updateNavButtons();
      self.updateProgressBar();
    });
  }

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

  /**
   * Set the aspect ratio for this image-slider
   */
  C.prototype.determineAspectRatio = function() {
    // Set aspectRatio to default
    this.aspectRatio = 4/3;

    // Try to identify aspectRatio according to settings
    switch (this.options.aspectRatioMode) {
      case 'auto':
        var imageRatios = [];
        for (var i = 0; i < this.options.imageSlides.length; i++) {
          var imageFile = this.options.imageSlides[i].params.image.params.file;
          imageRatios[i] = imageFile.width / imageFile.height;
        }
        imageRatios.sort(function (a, b) {
          return a - b;
        });
        // Get the median image ratio
        this.aspectRatio = imageRatios[Math.round(imageRatios.length / 2) - 1];
        break;

      case 'custom':
        if (this.options.aspectRatio.aspectWidth && this.options.aspectRatio.aspectHeight) {
          this.aspectRatio = this.options.aspectRatio.aspectWidth / this.options.aspectRatio.aspectHeight;
        }
        break;

      case 'notFixed':
        this.aspectRatio = undefined;
        break;
    }
  };

  /**
   * Attach function called by H5P framework to insert H5P content into
   * page
   *
   * @param {jQuery} $container
   */
  C.prototype.attach = function ($container) {
    if (this.options.imageSlides.length === 0) {
      return;
    }

    this.$container = $container;
    // Set class on container to identify it as a greeting card
    // container.  Allows for styling later.
    $container.addClass("h5p-image-slider").addClass('h5p-image-slider-using-mouse');

    $container.bind('keydown', function(e) {
      var keyboardNavKeys = [32, 13, 9];
      if (keyboardNavKeys.indexOf(e.which) !== -1) {
        $container.removeClass('h5p-image-slider-using-mouse');
      }
    });
    $container.bind('mousedown', function() {
      $container.addClass('h5p-image-slider-using-mouse');
    });

    this.$slidesHolder = $('<div>', {
      class: 'h5p-image-slider-slides-holder'
    }).appendTo($container);

    this.$screenReaderAnnouncement = $('<div>', {
      class: 'h5p-image-slider-sr-only',
      'aria-atomic': 'true',
      'aria-live': 'polite'
    }).appendTo(this.$slidesHolder);

    this.$slides = $('<div>', {
      class: 'h5p-image-slider-slides'
    }).appendTo(this.$slidesHolder);

    // If the H5P is embedded e.g. inside a non H5P accordion, the
    // slides DOM element might end up with no height. Using a
    // intersectionOberver to overcome this issue.
    const observer = new IntersectionObserver(() => {
      if (this.$slides.height() === 0) {
        this.trigger('resize');
        observer.disconnect();
      }
    }, {
      threshold: [0]
    });
    observer.observe($container.get(0));

    this.loadImageSlides();

    this.$currentSlide = this.imageSlideHolders[0].addClass('h5p-image-slider-current');

    this.attachControls();
  };

  /**
   * Update aria-live region with the current image's alt text.
   */
  C.prototype.announceCurrentSlide = function () {
    this.$screenReaderAnnouncement.text(this.imageSlides[this.currentSlideId].image.alt);
  };

  /**
   * Update layout when entering fullscreen.
   *
   * Many layout changes are handled on resize.
   */
  C.prototype.enterFullScreen = function() {
    this.updateNavButtons();
    this.updateProgressBar();
  };

  /**
   * Update layout when entering fullscreen.
   *
   * Many layout changes are handled on resize.
   */
  C.prototype.exitFullScreen = function() {
    for (var i = 0; i < this.imageSlides.length; i++) {
      this.imageSlides[i].resetAspectRatio();
    }
    this.updateNavButtons();
    this.updateProgressBar();
  };

  /**
   * Adds the HTML for the next three slides to the DOM
   */
  C.prototype.loadImageSlides = function() {
    // Load next three imageSlides (not all for performance reasons)
    for (var i = this.currentSlideId; i < this.imageSlides.length && i < this.currentSlideId + 3; i++) {
      if (this.imageSlideHolders[i] === false) {
        this.imageSlideHolders[i] = $('<div>', {
          'class': 'h5p-image-slide-holder'
        });
        if (i > 0) {
          this.imageSlideHolders[i].attr('aria-hidden', true);
        }
        if (i > this.currentSlideId) {
          this.imageSlideHolders[i].addClass('h5p-image-slider-future');
        }
        this.imageSlides[i].attach(this.imageSlideHolders[i]);
        this.$slides.append(this.imageSlideHolders[i]);
      }
    }
  };

  /**
   * Attaches controls to the DOM
   */
  C.prototype.attachControls = function() {
    var self = this;
    this.$leftButton = this.createControlButton(this.options.a11y.prevSlide, 'left');
    this.$rightButton = this.createControlButton(this.options.a11y.nextSlide, 'right');
    C.handleButtonClick(this.$leftButton, function () {
      if (!self.dragging) {
        self.gotoSlide(self.currentSlideId - 1);
      }
    });

    C.handleButtonClick(this.$rightButton, function() {
      if (!self.dragging) {
        self.gotoSlide(self.currentSlideId + 1);
      }
    });

    this.$slidesHolder.append(this.$leftButton);
    this.$slidesHolder.append(this.$rightButton);
    this.updateNavButtons();
    this.attachProgressBar();
    this.initDragging();
    this.initKeyEvents();
  };

  /**
   * Attaches the progress bar to the DOM
   */
  C.prototype.attachProgressBar = function() {
    this.$progressBar = $('<ul>', {
      class: 'h5p-image-slider-progress'
    });
    for (var i = 0; i < this.imageSlides.length; i++) {
      this.$progressBar.append(this.createProgressBarElement(i));
    }
    this.$slidesHolder.append(this.$progressBar);
  };

  /**
   * Creates a progress bar button
   *
   * @param {Integer} index  - slide index the progress bare element corresponds to
   * @return {jQuery} - progress bar button
   */
  C.prototype.createProgressBarElement = function(index) {
    var self = this;

    var $progressBarButton = $('<button>', {
      class: 'h5p-image-slider-progress-button',
      "aria-label": self.options.a11y.gotoSlide.replace('%slide', index + 1),
      tabindex: 0,
    });

    var $progressBarElement = $('<li>', {
      class: 'h5p-image-slider-progress-element',
    });

    $progressBarElement.append($progressBarButton);

    C.handleButtonClick($progressBarButton, function() {
      self.gotoSlide(index);
    });

    if (index === 0) {
      $progressBarElement.addClass('h5p-image-slider-current-progress-element');
    }
    return $progressBarElement;
  };

  /**
   * Creates a next or previous button
   *
   * @param {string} text - label for the button
   * @param {string} dir - next or prev
   * @return {jQuery} control button
   */
  C.prototype.createControlButton = function(text, dir) {
    var $controlButton = $('<div>', {
      class: 'h5p-image-slider-button ' + 'h5p-image-slider-' + dir + '-button',
    });

    var $controlBg = $('<div>', {
      class: 'h5p-image-slider-button-background'
    });
     $controlButton.append($controlBg);

    var $controlText = $('<div>', {
      class: 'h5p-image-slider-button-text',
      'aria-label': text,
      'role': 'button',
      'tabindex': 0
    });
    $controlButton.append($controlText);

    return $controlButton;
  };

  /**
   * Go to a specific slide
   *
   * @param {Integer} slideId the index of the slide we want to go to
   * @return {Boolean} false if failed(typically the slide didn't exist), true if not
   */
  C.prototype.gotoSlide = function(slideId) {
    if (slideId < 0 || slideId >= this.imageSlideHolders.length) {
      return false;
    }
    $('.h5p-image-slider-removing', this.$container).removeClass('.h5p-image-slider-removing');
    var nextSlideDirection = (this.currentSlideId < slideId) ? 'future' : 'past';
    var prevSlideDirection = nextSlideDirection === 'past' ? 'future' : 'past';
    this.currentSlideId = slideId;
    this.loadImageSlides();
    var $prevSlide = this.$currentSlide;
    var $nextSlide = (this.imageSlideHolders[slideId]);
    if (!this.dragging) {
      this.prepareNextSlideForAnimation($nextSlide, nextSlideDirection);
    }
    setTimeout(function() {
      $nextSlide.removeClass('h5p-image-slider-no-transition');
      $prevSlide.removeClass('h5p-image-slider-current')
        .addClass('h5p-image-slider-removing')
        .removeClass('h5p-image-slider-' + nextSlideDirection)
        .addClass('h5p-image-slider-' + prevSlideDirection)
        .attr('aria-hidden', true);
      $nextSlide.removeClass('h5p-image-slider-past')
        .removeClass('h5p-image-slider-future')
        .addClass('h5p-image-slider-current')
        .removeAttr('aria-hidden');
    }, 1);

    this.$currentSlide = $nextSlide;

    this.announceCurrentSlide();
    this.updateNavButtons();
    this.updateProgressBar();
    return true;
  };

  /**
   * Position the next slide correctly so that it is ready to be aimated in
   *
   * @param {jQuery} $nextSlide the slide to be prepared
   * @param {String} direction prev or next
   */
  C.prototype.prepareNextSlideForAnimation = function($nextSlide, direction) {
    $nextSlide.removeClass('h5p-image-slider-past')
      .removeClass('h5p-image-slider-future')
      .addClass('h5p-image-slider-no-transition')
      .addClass('h5p-image-slider-' + direction);
  };

  /**
   * Updates all navigation buttons, typically toggling and positioning
   */
  C.prototype.updateNavButtons = function() {
    if (this.currentSlideId >= this.imageSlides.length - 1) {
      this.$rightButton.hide();
    }
    else {
      this.$rightButton.show();
    }
    if (this.currentSlideId <= 0) {
      this.$leftButton.hide();
    }
    else {
      this.$leftButton.show();
    }
    var heightInPercent = 100;
    var fullScreenOn = this.$container.hasClass('h5p-fullscreen') || this.$container.hasClass('h5p-semi-fullscreen');
    if (!fullScreenOn) {
      heightInPercent = this.$currentSlide.height() / this.$slides.height() * 100;
    }
    this.$leftButton.css('height', heightInPercent + '%');
    this.$rightButton.css('height', heightInPercent + '%');
  };

  /**
   * Update the progress bar
   *
   * Highlights the element in the progress bar corresponding to the current slide
   * and reposition the progress bar
   */
  C.prototype.updateProgressBar = function () {
    const oldProgressElement = $('.h5p-image-slider-current-progress-element', this.$container).removeClass('h5p-image-slider-current-progress-element');
    const newProgressElement = $('.h5p-image-slider-progress-element', this.$container).eq(this.currentSlideId).addClass('h5p-image-slider-current-progress-element');

    if (oldProgressElement.children('.h5p-image-slider-progress-button').is(':focus')) {
      newProgressElement.children('.h5p-image-slider-progress-button').focus();
    }

    oldProgressElement.children('.h5p-image-slider-progress-button').attr('aria-current', 'false');
    newProgressElement.children('.h5p-image-slider-progress-button').attr('aria-current', 'true');

    var heightInPercent = this.$currentSlide.height() / this.$slides.height() * 100;
    $('.h5p-image-slider-progress', this.$container).css('top', heightInPercent + '%');
  };

  /**
   * Make a slide draggable
   */
  C.prototype.initDragging = function () {
    var self = this;
    this.$slidesHolder.on('touchstart', function(event) {
      self.dragging = true;
      self.dragStartX = event.originalEvent.touches[0].pageX;
      self.$currentSlide.addClass('h5p-image-slider-dragging');
      if (self.isButton(event.target)) {
        event.preventDefault();
        event.stopPropagation();
        var d = new Date();
        self.dragStartTime = d.getTime();
      }
    });

    this.$slidesHolder.on('touchmove', function(event) {
      event.preventDefault();
      self.dragActionUpdate(event.originalEvent.touches[0].pageX);
    });

    this.$slidesHolder.on('touchend', function(event) {
      self.finishDragAction();
      if (self.dragStartTime !== false && self.isButton(event.target)) {
        // This was possibly a click
        var d = new Date();
        if (d.getTime() - self.dragStartTime < 300) {
          if (self.isRightButton(event.target)) {
            self.gotoSlide(self.currentSlideId + 1);
          }
          else {
            self.gotoSlide(self.currentSlideId - 1);
          }
        }
      }
      self.dragStartTime = false;
    });

    this.$slidesHolder.on('touchcancel', function() {
      self.finishDragAction();
      self.dragStartTime = false;
    });
  };

  /**
   * Initialize key press events.
   *
   * @returns {undefined} Nothing.
   */
  C.prototype.initKeyEvents = function () {
    if (this.keydown !== undefined) {
      return;
    }

    var self = this;

    this.keydown = function (event) {
      // Left
      if (event.which === 37) {
        self.gotoSlide(self.currentSlideId - 1);
      }

      // Right
      else if (event.which === 39) {
        self.gotoSlide(self.currentSlideId + 1);
      }
    };
    H5P.jQuery('body').keydown(this.keydown);
  };

  /**
   * Is the domElement a button?
   *
   * @param {DOMElement} domElement the element to be checked
   * @return {Boolean} whether or not the element is a button
   */
  C.prototype.isButton = function (domElement) {
    var $target = $(domElement);
    return $target.hasClass('h5p-image-slider-button-background')
      || $target.hasClass('h5p-image-slider-button-text')
      || $target.hasClass('h5p-image-slider-button');
  };

  /**
   * Is the element the right/next button?
   *
   * @param {DOMElement} domElement the DOM element to be checked
   * @return {Boolean} Whether or not the element is the right button
   */
  C.prototype.isRightButton = function (domElement) {
    var $target = $(domElement);
    return $target.hasClass('h5p-image-slider-right-button')
      || $target.parent().hasClass('h5p-image-slider-right-button');
  };

  /**
   * Update the current and next slide in response to a drag action
   */
  C.prototype.dragActionUpdate = function(x) {
    this.dragXMovement = x - this.dragStartX;
    this.$currentSlide.css('transform', 'translateX(' + this.dragXMovement + 'px)');
    if (this.currentSlideId > 0) {
      var $prevSlide = this.imageSlideHolders[this.currentSlideId - 1].addClass('h5p-image-slider-dragging');
      if (this.dragXMovement < 0) {
        $prevSlide.css('transform', 'translateX(-100.001%)');
      }
      else {
        $prevSlide.css('transform', 'translateX(' + (this.dragXMovement - $prevSlide.width()) + 'px)');
      }
    }
    if (this.currentSlideId < this.imageSlideHolders.length - 1) {
      var $nextSlide = this.imageSlideHolders[this.currentSlideId + 1].addClass('h5p-image-slider-dragging');
      if (this.dragXMovement > 0) {
        $nextSlide.css('transform', 'translateX(100.001%)');
      }
      else {
        $nextSlide.css('transform', 'translateX(' +(this.dragXMovement + $nextSlide.width()) + 'px)');
      }
    }
  };

  /**
   * Actions to be done when a drag action is finished
   *
   * Will either go back to the current slide or finish the transition to the next slide
   */
  C.prototype.finishDragAction = function() {
    $('.h5p-image-slider-dragging', this.$container).removeClass('h5p-image-slider-dragging').each(function() {
      this.style.removeProperty('transform');
    });
    this.dragStartX = undefined;
    var xInPercent = this.dragXMovement / this.$currentSlide.width();
    if (xInPercent < -0.3) {
      if (this.currentSlideId < this.imageSlideHolders.length - 1) {
        this.gotoSlide(this.currentSlideId + 1);
      }
      else {
        this.$currentSlide.css('transform', 'translateX(0%)');
      }
    }
    else if (xInPercent > 0.3) {
      if (this.currentSlideId > 0) {
        this.gotoSlide(this.currentSlideId - 1);
      }
      else {
        this.$currentSlide.css('transform', 'translateX(0%)');
      }
    }
    this.dragging = false;
    this.dragXMovement = 0;
  };

  /**
   * Make a non-button element behave as a button. I.e handle enter and space
   * keydowns as click
   *
   * @param  {H5P.jQuery} $element The "button" element
   * @param  {Function} callback
   */
  C.handleButtonClick = function ($element, callback) {
    $element.click(function (event) {
      callback.call(this, event);
    });
    $element.keydown(function (event) {
      // 32 - space, 13 - enter
      if ([32, 13].indexOf(event.which) !== -1) {
        event.preventDefault();
        callback.call(this, event);
      }
    });
  };

  return C;
})(H5P.jQuery);
;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 e={2:(e,t,n)=>{"use strict";function r(e,t){const n=Object.create(null),r=e.split(",");for(let e=0;e<r.length;e++)n[r[e]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}n.d(t,{A:()=>ts});const o=r("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function i(e){return!!e||""===e}function s(e){if(A(e)){const t={};for(let n=0;n<e.length;n++){const r=e[n],o=k(r)?l(r):s(r);if(o)for(const e in o)t[e]=o[e]}return t}return k(e)||P(e)?e:void 0}const a=/;(?![^(]*\))/g,c=/:(.+)/;function l(e){const t={};return e.split(a).forEach((e=>{if(e){const n=e.split(c);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function u(e){let t="";if(k(e))t=e;else if(A(e))for(let n=0;n<e.length;n++){const r=u(e[n]);r&&(t+=r+" ")}else if(P(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const p=e=>k(e)?e:null==e?"":A(e)||P(e)&&(e.toString===N||!C(e.toString))?JSON.stringify(e,f,2):String(e),f=(e,t)=>t&&t.__v_isRef?f(e,t.value):E(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:x(t)?{[`Set(${t.size})`]:[...t.values()]}:!P(t)||A(t)||I(t)?t:String(t),d={},h=[],y=()=>{},m=()=>!1,g=/^on[^a-z]/,v=e=>g.test(e),b=e=>e.startsWith("onUpdate:"),_=Object.assign,w=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},S=Object.prototype.hasOwnProperty,O=(e,t)=>S.call(e,t),A=Array.isArray,E=e=>"[object Map]"===T(e),x=e=>"[object Set]"===T(e),C=e=>"function"==typeof e,k=e=>"string"==typeof e,j=e=>"symbol"==typeof e,P=e=>null!==e&&"object"==typeof e,M=e=>P(e)&&C(e.then)&&C(e.catch),N=Object.prototype.toString,T=e=>N.call(e),L=e=>T(e).slice(8,-1),I=e=>"[object Object]"===T(e),D=e=>k(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,R=r(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),U=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},F=/-(\w)/g,B=U((e=>e.replace(F,((e,t)=>t?t.toUpperCase():"")))),z=/\B([A-Z])/g,V=U((e=>e.replace(z,"-$1").toLowerCase())),G=U((e=>e.charAt(0).toUpperCase()+e.slice(1))),W=U((e=>e?`on${G(e)}`:"")),$=(e,t)=>!Object.is(e,t),H=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},X=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},q=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let K;const Z=()=>K||(K="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{});let J;class Q{constructor(e=!1){this.active=!0,this.effects=[],this.cleanups=[],!e&&J&&(this.parent=J,this.index=(J.scopes||(J.scopes=[])).push(this)-1)}run(e){if(this.active){const t=J;try{return J=this,e()}finally{J=t}}}on(){J=this}off(){J=this.parent}stop(e){if(this.active){let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);if(this.parent&&!e){const e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.active=!1}}}const Y=e=>{const t=new Set(e);return t.w=0,t.n=0,t},ee=e=>(e.w&oe)>0,te=e=>(e.n&oe)>0,ne=new WeakMap;let re=0,oe=1;const ie=30;let se;const ae=Symbol(""),ce=Symbol("");class le{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,function(e,t=J){t&&t.active&&t.effects.push(e)}(this,n)}run(){if(!this.active)return this.fn();let e=se,t=pe;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=se,se=this,pe=!0,oe=1<<++re,re<=ie?(({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=oe})(this):ue(this),this.fn()}finally{re<=ie&&(e=>{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r<t.length;r++){const o=t[r];ee(o)&&!te(o)?o.delete(e):t[n++]=o,o.w&=~oe,o.n&=~oe}t.length=n}})(this),oe=1<<--re,se=this.parent,pe=t,this.parent=void 0,this.deferStop&&this.stop()}}stop(){se===this?this.deferStop=!0:this.active&&(ue(this),this.onStop&&this.onStop(),this.active=!1)}}function ue(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let pe=!0;const fe=[];function de(){fe.push(pe),pe=!1}function he(){const e=fe.pop();pe=void 0===e||e}function ye(e,t,n){if(pe&&se){let t=ne.get(e);t||ne.set(e,t=new Map);let r=t.get(n);r||t.set(n,r=Y()),me(r)}}function me(e,t){let n=!1;re<=ie?te(e)||(e.n|=oe,n=!ee(e)):n=!e.has(se),n&&(e.add(se),se.deps.push(e))}function ge(e,t,n,r,o,i){const s=ne.get(e);if(!s)return;let a=[];if("clear"===t)a=[...s.values()];else if("length"===n&&A(e))s.forEach(((e,t)=>{("length"===t||t>=r)&&a.push(e)}));else switch(void 0!==n&&a.push(s.get(n)),t){case"add":A(e)?D(n)&&a.push(s.get("length")):(a.push(s.get(ae)),E(e)&&a.push(s.get(ce)));break;case"delete":A(e)||(a.push(s.get(ae)),E(e)&&a.push(s.get(ce)));break;case"set":E(e)&&a.push(s.get(ae))}if(1===a.length)a[0]&&ve(a[0]);else{const e=[];for(const t of a)t&&e.push(...t);ve(Y(e))}}function ve(e,t){const n=A(e)?e:[...e];for(const e of n)e.computed&&be(e);for(const e of n)e.computed||be(e)}function be(e,t){(e!==se||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const _e=r("__proto__,__v_isRef,__isVue"),we=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(j)),Se=Ce(),Oe=Ce(!1,!0),Ae=Ce(!0),Ee=xe();function xe(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=ut(this);for(let e=0,t=this.length;e<t;e++)ye(n,0,e+"");const r=n[t](...e);return-1===r||!1===r?n[t](...e.map(ut)):r}})),["push","pop","shift","unshift","splice"].forEach((t=>{e[t]=function(...e){de();const n=ut(this)[t].apply(this,e);return he(),n}})),e}function Ce(e=!1,t=!1){return function(n,r,o){if("__v_isReactive"===r)return!e;if("__v_isReadonly"===r)return e;if("__v_isShallow"===r)return t;if("__v_raw"===r&&o===(e?t?nt:tt:t?et:Ye).get(n))return n;const i=A(n);if(!e&&i&&O(Ee,r))return Reflect.get(Ee,r,o);const s=Reflect.get(n,r,o);return(j(r)?we.has(r):_e(r))?s:(e||ye(n,0,r),t?s:ht(s)?i&&D(r)?s:s.value:P(s)?e?ot(s):rt(s):s)}}function ke(e=!1){return function(t,n,r,o){let i=t[n];if(at(i)&&ht(i)&&!ht(r))return!1;if(!e&&!at(r)&&(ct(r)||(r=ut(r),i=ut(i)),!A(t)&&ht(i)&&!ht(r)))return i.value=r,!0;const s=A(t)&&D(n)?Number(n)<t.length:O(t,n),a=Reflect.set(t,n,r,o);return t===ut(o)&&(s?$(r,i)&&ge(t,"set",n,r):ge(t,"add",n,r)),a}}const je={get:Se,set:ke(),deleteProperty:function(e,t){const n=O(e,t),r=(e[t],Reflect.deleteProperty(e,t));return r&&n&&ge(e,"delete",t,void 0),r},has:function(e,t){const n=Reflect.has(e,t);return j(t)&&we.has(t)||ye(e,0,t),n},ownKeys:function(e){return ye(e,0,A(e)?"length":ae),Reflect.ownKeys(e)}},Pe={get:Ae,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},Me=_({},je,{get:Oe,set:ke(!0)}),Ne=e=>e,Te=e=>Reflect.getPrototypeOf(e);function Le(e,t,n=!1,r=!1){const o=ut(e=e.__v_raw),i=ut(t);n||(t!==i&&ye(o,0,t),ye(o,0,i));const{has:s}=Te(o),a=r?Ne:n?dt:ft;return s.call(o,t)?a(e.get(t)):s.call(o,i)?a(e.get(i)):void(e!==o&&e.get(t))}function Ie(e,t=!1){const n=this.__v_raw,r=ut(n),o=ut(e);return t||(e!==o&&ye(r,0,e),ye(r,0,o)),e===o?n.has(e):n.has(e)||n.has(o)}function De(e,t=!1){return e=e.__v_raw,!t&&ye(ut(e),0,ae),Reflect.get(e,"size",e)}function Re(e){e=ut(e);const t=ut(this);return Te(t).has.call(t,e)||(t.add(e),ge(t,"add",e,e)),this}function Ue(e,t){t=ut(t);const n=ut(this),{has:r,get:o}=Te(n);let i=r.call(n,e);i||(e=ut(e),i=r.call(n,e));const s=o.call(n,e);return n.set(e,t),i?$(t,s)&&ge(n,"set",e,t):ge(n,"add",e,t),this}function Fe(e){const t=ut(this),{has:n,get:r}=Te(t);let o=n.call(t,e);o||(e=ut(e),o=n.call(t,e)),r&&r.call(t,e);const i=t.delete(e);return o&&ge(t,"delete",e,void 0),i}function Be(){const e=ut(this),t=0!==e.size,n=e.clear();return t&&ge(e,"clear",void 0,void 0),n}function ze(e,t){return function(n,r){const o=this,i=o.__v_raw,s=ut(i),a=t?Ne:e?dt:ft;return!e&&ye(s,0,ae),i.forEach(((e,t)=>n.call(r,a(e),a(t),o)))}}function Ve(e,t,n){return function(...r){const o=this.__v_raw,i=ut(o),s=E(i),a="entries"===e||e===Symbol.iterator&&s,c="keys"===e&&s,l=o[e](...r),u=n?Ne:t?dt:ft;return!t&&ye(i,0,c?ce:ae),{next(){const{value:e,done:t}=l.next();return t?{value:e,done:t}:{value:a?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}function Ge(e){return function(...t){return"delete"!==e&&this}}function We(){const e={get(e){return Le(this,e)},get size(){return De(this)},has:Ie,add:Re,set:Ue,delete:Fe,clear:Be,forEach:ze(!1,!1)},t={get(e){return Le(this,e,!1,!0)},get size(){return De(this)},has:Ie,add:Re,set:Ue,delete:Fe,clear:Be,forEach:ze(!1,!0)},n={get(e){return Le(this,e,!0)},get size(){return De(this,!0)},has(e){return Ie.call(this,e,!0)},add:Ge("add"),set:Ge("set"),delete:Ge("delete"),clear:Ge("clear"),forEach:ze(!0,!1)},r={get(e){return Le(this,e,!0,!0)},get size(){return De(this,!0)},has(e){return Ie.call(this,e,!0)},add:Ge("add"),set:Ge("set"),delete:Ge("delete"),clear:Ge("clear"),forEach:ze(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((o=>{e[o]=Ve(o,!1,!1),n[o]=Ve(o,!0,!1),t[o]=Ve(o,!1,!0),r[o]=Ve(o,!0,!0)})),[e,n,t,r]}const[$e,He,Xe,qe]=We();function Ke(e,t){const n=t?e?qe:Xe:e?He:$e;return(t,r,o)=>"__v_isReactive"===r?!e:"__v_isReadonly"===r?e:"__v_raw"===r?t:Reflect.get(O(n,r)&&r in t?n:t,r,o)}const Ze={get:Ke(!1,!1)},Je={get:Ke(!1,!0)},Qe={get:Ke(!0,!1)},Ye=new WeakMap,et=new WeakMap,tt=new WeakMap,nt=new WeakMap;function rt(e){return at(e)?e:it(e,!1,je,Ze,Ye)}function ot(e){return it(e,!0,Pe,Qe,tt)}function it(e,t,n,r,o){if(!P(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const i=o.get(e);if(i)return i;const s=(a=e).__v_skip||!Object.isExtensible(a)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}(L(a));var a;if(0===s)return e;const c=new Proxy(e,2===s?r:n);return o.set(e,c),c}function st(e){return at(e)?st(e.__v_raw):!(!e||!e.__v_isReactive)}function at(e){return!(!e||!e.__v_isReadonly)}function ct(e){return!(!e||!e.__v_isShallow)}function lt(e){return st(e)||at(e)}function ut(e){const t=e&&e.__v_raw;return t?ut(t):e}function pt(e){return X(e,"__v_skip",!0),e}const ft=e=>P(e)?rt(e):e,dt=e=>P(e)?ot(e):e;function ht(e){return!(!e||!0!==e.__v_isRef)}const yt={get:(e,t,n)=>{return ht(r=Reflect.get(e,t,n))?r.value:r;var r},set:(e,t,n,r)=>{const o=e[t];return ht(o)&&!ht(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function mt(e){return st(e)?e:new Proxy(e,yt)}class gt{constructor(e,t,n,r){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new le(e,(()=>{var e;this._dirty||(this._dirty=!0,(e=ut(e=this)).dep&&ve(e.dep))})),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=n}get value(){const e=ut(this);return t=e,pe&&se&&me((t=ut(t)).dep||(t.dep=Y())),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value;var t}set value(e){this._setter(e)}}function vt(e,t,n,r){let o;try{o=r?e(...r):e()}catch(e){_t(e,t,n)}return o}function bt(e,t,n,r){if(C(e)){const o=vt(e,t,n,r);return o&&M(o)&&o.catch((e=>{_t(e,t,n)})),o}const o=[];for(let i=0;i<e.length;i++)o.push(bt(e[i],t,n,r));return o}function _t(e,t,n,r=!0){if(t&&t.vnode,t){let r=t.parent;const o=t.proxy,i=n;for(;r;){const t=r.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,o,i))return;r=r.parent}const s=t.appContext.config.errorHandler;if(s)return void vt(s,null,10,[e,o,i])}!function(e){console.error(e)}(e)}let wt=!1,St=!1;const Ot=[];let At=0;const Et=[];let xt=null,Ct=0;const kt=[];let jt=null,Pt=0;const Mt=Promise.resolve();let Nt=null,Tt=null;function Lt(e){const t=Nt||Mt;return e?t.then(this?e.bind(this):e):t}function It(e){Ot.length&&Ot.includes(e,wt&&e.allowRecurse?At+1:At)||e===Tt||(null==e.id?Ot.push(e):Ot.splice(function(e){let t=At+1,n=Ot.length;for(;t<n;){const r=t+n>>>1;Bt(Ot[r])<e?t=r+1:n=r}return t}(e.id),0,e),Dt())}function Dt(){wt||St||(St=!0,Nt=Mt.then(zt))}function Rt(e,t,n,r){A(e)?n.push(...e):t&&t.includes(e,e.allowRecurse?r+1:r)||n.push(e),Dt()}function Ut(e,t=null){if(Et.length){for(Tt=t,xt=[...new Set(Et)],Et.length=0,Ct=0;Ct<xt.length;Ct++)xt[Ct]();xt=null,Ct=0,Tt=null,Ut(e,t)}}function Ft(e){if(Ut(),kt.length){const e=[...new Set(kt)];if(kt.length=0,jt)return void jt.push(...e);for(jt=e,jt.sort(((e,t)=>Bt(e)-Bt(t))),Pt=0;Pt<jt.length;Pt++)jt[Pt]();jt=null,Pt=0}}const Bt=e=>null==e.id?1/0:e.id;function zt(e){St=!1,wt=!0,Ut(e),Ot.sort(((e,t)=>Bt(e)-Bt(t)));try{for(At=0;At<Ot.length;At++){const e=Ot[At];e&&!1!==e.active&&vt(e,null,14)}}finally{At=0,Ot.length=0,Ft(),wt=!1,Nt=null,(Ot.length||Et.length||kt.length)&&zt(e)}}new Set,new Map;let Vt,Gt=[],Wt=!1;function $t(e,...t){Vt?Vt.emit(e,...t):Wt||Gt.push({event:e,args:t})}function Ht(e,t){var n,r;Vt=e,Vt?(Vt.enabled=!0,Gt.forEach((({event:e,args:t})=>Vt.emit(e,...t))),Gt=[]):"undefined"!=typeof window&&window.HTMLElement&&!(null===(r=null===(n=window.navigator)||void 0===n?void 0:n.userAgent)||void 0===r?void 0:r.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push((e=>{Ht(e,t)})),setTimeout((()=>{Vt||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Wt=!0,Gt=[])}),3e3)):(Wt=!0,Gt=[])}const Xt=Zt("component:added"),qt=Zt("component:updated"),Kt=Zt("component:removed");function Zt(e){return t=>{$t(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}function Jt(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||d;let o=n;const i=t.startsWith("update:"),s=i&&t.slice(7);if(s&&s in r){const e=`${"modelValue"===s?"model":s}Modifiers`,{number:t,trim:i}=r[e]||d;i&&(o=n.map((e=>e.trim()))),t&&(o=n.map(q))}let a;__VUE_PROD_DEVTOOLS__&&function(e,t,n){$t("component:emit",e.appContext.app,e,t,n)}(e,t,o);let c=r[a=W(t)]||r[a=W(B(t))];!c&&i&&(c=r[a=W(V(t))]),c&&bt(c,e,6,o);const l=r[a+"Once"];if(l){if(e.emitted){if(e.emitted[a])return}else e.emitted={};e.emitted[a]=!0,bt(l,e,6,o)}}function Qt(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(void 0!==o)return o;const i=e.emits;let s={},a=!1;if(__VUE_OPTIONS_API__&&!C(e)){const r=e=>{const n=Qt(e,t,!0);n&&(a=!0,_(s,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return i||a?(A(i)?i.forEach((e=>s[e]=null)):_(s,i),r.set(e,s),s):(r.set(e,null),null)}function Yt(e,t){return!(!e||!v(t))&&(t=t.slice(2).replace(/Once$/,""),O(e,t[0].toLowerCase()+t.slice(1))||O(e,V(t))||O(e,t))}let en=null,tn=null;function nn(e){const t=en;return en=e,tn=e&&e.type.__scopeId||null,t}function rn(e){const{type:t,vnode:n,proxy:r,withProxy:o,props:i,propsOptions:[s],slots:a,attrs:c,emit:l,render:u,renderCache:p,data:f,setupState:d,ctx:h,inheritAttrs:y}=e;let m,g;const v=nn(e);try{if(4&n.shapeFlag){const e=o||r;m=Kr(u.call(e,e,p,i,d,f,h)),g=c}else{const e=t;m=Kr(e.length>1?e(i,{attrs:c,slots:a,emit:l}):e(i,null)),g=t.props?c:on(c)}}catch(t){Mr.length=0,_t(t,e,1),m=$r(jr)}let _=m;if(g&&!1!==y){const e=Object.keys(g),{shapeFlag:t}=_;e.length&&7&t&&(s&&e.some(b)&&(g=sn(g,s)),_=Hr(_,g))}return n.dirs&&(_=Hr(_),_.dirs=_.dirs?_.dirs.concat(n.dirs):n.dirs),n.transition&&(_.transition=n.transition),m=_,nn(v),m}const on=e=>{let t;for(const n in e)("class"===n||"style"===n||v(n))&&((t||(t={}))[n]=e[n]);return t},sn=(e,t)=>{const n={};for(const r in e)b(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function an(e,t,n){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let o=0;o<r.length;o++){const i=r[o];if(t[i]!==e[i]&&!Yt(n,i))return!0}return!1}function cn(e,t,n=!1){const r=to||en;if(r){const o=null==r.parent?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return n&&C(t)?t.call(r.proxy):t}}const ln={};function un(e,t,n){return pn(e,t,n)}function pn(e,t,{immediate:n,deep:r,flush:o,onTrack:i,onTrigger:s}=d){const a=to;let c,l,u=!1,p=!1;if(ht(e)?(c=()=>e.value,u=ct(e)):st(e)?(c=()=>e,r=!0):A(e)?(p=!0,u=e.some((e=>st(e)||ct(e))),c=()=>e.map((e=>ht(e)?e.value:st(e)?hn(e):C(e)?vt(e,a,2):void 0))):c=C(e)?t?()=>vt(e,a,2):()=>{if(!a||!a.isUnmounted)return l&&l(),bt(e,a,3,[f])}:y,t&&r){const e=c;c=()=>hn(e())}let f=e=>{l=v.onStop=()=>{vt(e,a,4)}};if(co)return f=y,t?n&&bt(t,a,3,[c(),p?[]:void 0,f]):c(),y;let h=p?[]:ln;const m=()=>{if(v.active)if(t){const e=v.run();(r||u||(p?e.some(((e,t)=>$(e,h[t]))):$(e,h)))&&(l&&l(),bt(t,a,3,[e,h===ln?void 0:h,f]),h=e)}else v.run()};let g;m.allowRecurse=!!t,g="sync"===o?m:"post"===o?()=>Or(m,a&&a.suspense):()=>function(e){Rt(e,xt,Et,Ct)}(m);const v=new le(c,g);return t?n?m():h=v.run():"post"===o?Or(v.run.bind(v),a&&a.suspense):v.run(),()=>{v.stop(),a&&a.scope&&w(a.scope.effects,v)}}function fn(e,t,n){const r=this.proxy,o=k(e)?e.includes(".")?dn(r,e):()=>r[e]:e.bind(r,r);let i;C(t)?i=t:(i=t.handler,n=t);const s=to;ro(this);const a=pn(o,i.bind(r),n);return s?ro(s):oo(),a}function dn(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}function hn(e,t){if(!P(e)||e.__v_skip)return e;if((t=t||new Set).has(e))return e;if(t.add(e),ht(e))hn(e.value,t);else if(A(e))for(let n=0;n<e.length;n++)hn(e[n],t);else if(x(e)||E(e))e.forEach((e=>{hn(e,t)}));else if(I(e))for(const n in e)hn(e[n],t);return e}const yn=[Function,Array],mn={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:yn,onEnter:yn,onAfterEnter:yn,onEnterCancelled:yn,onBeforeLeave:yn,onLeave:yn,onAfterLeave:yn,onLeaveCancelled:yn,onBeforeAppear:yn,onAppear:yn,onAfterAppear:yn,onAppearCancelled:yn},setup(e,{slots:t}){const n=no(),r=function(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Nn((()=>{e.isMounted=!0})),In((()=>{e.isUnmounting=!0})),e}();let o;return()=>{const i=t.default&&Sn(t.default(),!0);if(!i||!i.length)return;let s=i[0];if(i.length>1){let e=!1;for(const t of i)if(t.type!==jr){s=t,e=!0;break}}const a=ut(e),{mode:c}=a;if(r.isLeaving)return bn(s);const l=_n(s);if(!l)return bn(s);const u=vn(l,a,r,n);wn(l,u);const p=n.subTree,f=p&&_n(p);let d=!1;const{getTransitionKey:h}=l.type;if(h){const e=h();void 0===o?o=e:e!==o&&(o=e,d=!0)}if(f&&f.type!==jr&&(!Br(l,f)||d)){const e=vn(f,a,r,n);if(wn(f,e),"out-in"===c)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.update()},bn(s);"in-out"===c&&l.type!==jr&&(e.delayLeave=(e,t,n)=>{gn(r,f)[String(f.key)]=f,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=n})}return s}}};function gn(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function vn(e,t,n,r){const{appear:o,mode:i,persisted:s=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:l,onEnterCancelled:u,onBeforeLeave:p,onLeave:f,onAfterLeave:d,onLeaveCancelled:h,onBeforeAppear:y,onAppear:m,onAfterAppear:g,onAppearCancelled:v}=t,b=String(e.key),_=gn(n,e),w=(e,t)=>{e&&bt(e,r,9,t)},S=(e,t)=>{const n=t[1];w(e,t),A(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},O={mode:i,persisted:s,beforeEnter(t){let r=a;if(!n.isMounted){if(!o)return;r=y||a}t._leaveCb&&t._leaveCb(!0);const i=_[b];i&&Br(e,i)&&i.el._leaveCb&&i.el._leaveCb(),w(r,[t])},enter(e){let t=c,r=l,i=u;if(!n.isMounted){if(!o)return;t=m||c,r=g||l,i=v||u}let s=!1;const a=e._enterCb=t=>{s||(s=!0,w(t?i:r,[e]),O.delayedLeave&&O.delayedLeave(),e._enterCb=void 0)};t?S(t,[e,a]):a()},leave(t,r){const o=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return r();w(p,[t]);let i=!1;const s=t._leaveCb=n=>{i||(i=!0,r(),w(n?h:d,[t]),t._leaveCb=void 0,_[o]===e&&delete _[o])};_[o]=e,f?S(f,[t,s]):s()},clone:e=>vn(e,t,n,r)};return O}function bn(e){if(An(e))return(e=Hr(e)).children=null,e}function _n(e){return An(e)?e.children?e.children[0]:void 0:e}function wn(e,t){6&e.shapeFlag&&e.component?wn(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Sn(e,t=!1,n){let r=[],o=0;for(let i=0;i<e.length;i++){let s=e[i];const a=null==n?s.key:String(n)+String(null!=s.key?s.key:i);s.type===Cr?(128&s.patchFlag&&o++,r=r.concat(Sn(s.children,t,a))):(t||s.type!==jr)&&r.push(null!=a?Hr(s,{key:a}):s)}if(o>1)for(let e=0;e<r.length;e++)r[e].patchFlag=-2;return r}const On=e=>!!e.type.__asyncLoader,An=e=>e.type.__isKeepAlive;function En(e,t){Cn(e,"a",t)}function xn(e,t){Cn(e,"da",t)}function Cn(e,t,n=to){const r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(jn(t,r,n),n){let e=n.parent;for(;e&&e.parent;)An(e.parent.vnode)&&kn(r,t,n,e),e=e.parent}}function kn(e,t,n,r){const o=jn(t,e,r,!0);Dn((()=>{w(r[t],o)}),n)}function jn(e,t,n=to,r=!1){if(n){const o=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...r)=>{if(n.isUnmounted)return;de(),ro(n);const o=bt(t,n,e,r);return oo(),he(),o});return r?o.unshift(i):o.push(i),i}}RegExp,RegExp;const Pn=e=>(t,n=to)=>(!co||"sp"===e)&&jn(e,t,n),Mn=Pn("bm"),Nn=Pn("m"),Tn=Pn("bu"),Ln=Pn("u"),In=Pn("bum"),Dn=Pn("um"),Rn=Pn("sp"),Un=Pn("rtg"),Fn=Pn("rtc");function Bn(e,t=to){jn("ec",e,t)}function zn(e,t,n,r){const o=e.dirs,i=t&&t.dirs;for(let s=0;s<o.length;s++){const a=o[s];i&&(a.oldValue=i[s].value);let c=a.dir[r];c&&(de(),bt(c,n,8,[e.el,a,e,t]),he())}}const Vn="components";function Gn(e,t){return function(e,t,n=!0,r=!1){const o=en||to;if(o){const n=o.type;if(e===Vn){const e=function(e,t=!0){return C(e)?e.displayName||e.name:e.name||t&&e.__name}(n,!1);if(e&&(e===t||e===B(t)||e===G(B(t))))return n}const i=$n(o[e]||n[e],t)||$n(o.appContext[e],t);return!i&&r?n:i}}(Vn,e,!0,t)||e}const Wn=Symbol();function $n(e,t){return e&&(e[t]||e[B(t)]||e[G(B(t))])}const Hn=e=>e?io(e)?po(e)||e.proxy:Hn(e.parent):null,Xn=_(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Hn(e.parent),$root:e=>Hn(e.root),$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?Qn(e):e.type,$forceUpdate:e=>e.f||(e.f=()=>It(e.update)),$nextTick:e=>e.n||(e.n=Lt.bind(e.proxy)),$watch:e=>__VUE_OPTIONS_API__?fn.bind(e):y}),qn={get({_:e},t){const{ctx:n,setupState:r,data:o,props:i,accessCache:s,type:a,appContext:c}=e;let l;if("$"!==t[0]){const a=s[t];if(void 0!==a)switch(a){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return i[t]}else{if(r!==d&&O(r,t))return s[t]=1,r[t];if(o!==d&&O(o,t))return s[t]=2,o[t];if((l=e.propsOptions[0])&&O(l,t))return s[t]=3,i[t];if(n!==d&&O(n,t))return s[t]=4,n[t];__VUE_OPTIONS_API__&&!Kn||(s[t]=0)}}const u=Xn[t];let p,f;return u?("$attrs"===t&&ye(e,0,t),u(e)):(p=a.__cssModules)&&(p=p[t])?p:n!==d&&O(n,t)?(s[t]=4,n[t]):(f=c.config.globalProperties,O(f,t)?f[t]:void 0)},set({_:e},t,n){const{data:r,setupState:o,ctx:i}=e;return o!==d&&O(o,t)?(o[t]=n,!0):r!==d&&O(r,t)?(r[t]=n,!0):!(O(e.props,t)||"$"===t[0]&&t.slice(1)in e||(i[t]=n,0))},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:i}},s){let a;return!!n[s]||e!==d&&O(e,s)||t!==d&&O(t,s)||(a=i[0])&&O(a,s)||O(r,s)||O(Xn,s)||O(o.config.globalProperties,s)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:O(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let Kn=!0;function Zn(e,t,n){bt(A(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function Jn(e,t,n,r){const o=r.includes(".")?dn(n,r):()=>n[r];if(k(e)){const n=t[e];C(n)&&un(o,n)}else if(C(e))un(o,e.bind(n));else if(P(e))if(A(e))e.forEach((e=>Jn(e,t,n,r)));else{const r=C(e.handler)?e.handler.bind(n):t[e.handler];C(r)&&un(o,r,e)}}function Qn(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:i,config:{optionMergeStrategies:s}}=e.appContext,a=i.get(t);let c;return a?c=a:o.length||n||r?(c={},o.length&&o.forEach((e=>Yn(c,e,s,!0))),Yn(c,t,s)):c=t,i.set(t,c),c}function Yn(e,t,n,r=!1){const{mixins:o,extends:i}=t;i&&Yn(e,i,n,!0),o&&o.forEach((t=>Yn(e,t,n,!0)));for(const o in t)if(r&&"expose"===o);else{const r=er[o]||n&&n[o];e[o]=r?r(e[o],t[o]):t[o]}return e}const er={data:tr,props:or,emits:or,methods:or,computed:or,beforeCreate:rr,created:rr,beforeMount:rr,mounted:rr,beforeUpdate:rr,updated:rr,beforeDestroy:rr,beforeUnmount:rr,destroyed:rr,unmounted:rr,activated:rr,deactivated:rr,errorCaptured:rr,serverPrefetch:rr,components:or,directives:or,watch:function(e,t){if(!e)return t;if(!t)return e;const n=_(Object.create(null),e);for(const r in t)n[r]=rr(e[r],t[r]);return n},provide:tr,inject:function(e,t){return or(nr(e),nr(t))}};function tr(e,t){return t?e?function(){return _(C(e)?e.call(this,this):e,C(t)?t.call(this,this):t)}:t:e}function nr(e){if(A(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function rr(e,t){return e?[...new Set([].concat(e,t))]:t}function or(e,t){return e?_(_(Object.create(null),e),t):t}function ir(e,t,n,r){const[o,i]=e.propsOptions;let s,a=!1;if(t)for(let c in t){if(R(c))continue;const l=t[c];let u;o&&O(o,u=B(c))?i&&i.includes(u)?(s||(s={}))[u]=l:n[u]=l:Yt(e.emitsOptions,c)||c in r&&l===r[c]||(r[c]=l,a=!0)}if(i){const t=ut(n),r=s||d;for(let s=0;s<i.length;s++){const a=i[s];n[a]=sr(o,t,a,r[a],e,!O(r,a))}}return a}function sr(e,t,n,r,o,i){const s=e[n];if(null!=s){const e=O(s,"default");if(e&&void 0===r){const e=s.default;if(s.type!==Function&&C(e)){const{propsDefaults:i}=o;n in i?r=i[n]:(ro(o),r=i[n]=e.call(null,t),oo())}else r=e}s[0]&&(i&&!e?r=!1:!s[1]||""!==r&&r!==V(n)||(r=!0))}return r}function ar(e,t,n=!1){const r=t.propsCache,o=r.get(e);if(o)return o;const i=e.props,s={},a=[];let c=!1;if(__VUE_OPTIONS_API__&&!C(e)){const r=e=>{c=!0;const[n,r]=ar(e,t,!0);_(s,n),r&&a.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!i&&!c)return r.set(e,h),h;if(A(i))for(let e=0;e<i.length;e++){const t=B(i[e]);cr(t)&&(s[t]=d)}else if(i)for(const e in i){const t=B(e);if(cr(t)){const n=i[e],r=s[t]=A(n)||C(n)?{type:n}:n;if(r){const e=pr(Boolean,r.type),n=pr(String,r.type);r[0]=e>-1,r[1]=n<0||e<n,(e>-1||O(r,"default"))&&a.push(t)}}}const l=[s,a];return r.set(e,l),l}function cr(e){return"$"!==e[0]}function lr(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:null===e?"null":""}function ur(e,t){return lr(e)===lr(t)}function pr(e,t){return A(t)?t.findIndex((t=>ur(t,e))):C(t)&&ur(t,e)?0:-1}const fr=e=>"_"===e[0]||"$stable"===e,dr=e=>A(e)?e.map(Kr):[Kr(e)],hr=(e,t,n)=>{if(t._n)return t;const r=function(e,t=en){if(!t)return e;if(e._n)return e;const n=(...r)=>{n._d&&Ir(-1);const o=nn(t),i=e(...r);return nn(o),n._d&&Ir(1),__VUE_PROD_DEVTOOLS__&&qt(t),i};return n._n=!0,n._c=!0,n._d=!0,n}(((...e)=>dr(t(...e))),n);return r._c=!1,r},yr=(e,t,n)=>{const r=e._ctx;for(const n in e){if(fr(n))continue;const o=e[n];if(C(o))t[n]=hr(0,o,r);else if(null!=o){const e=dr(o);t[n]=()=>e}}},mr=(e,t)=>{const n=dr(t);e.slots.default=()=>n},gr=(e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=ut(t),X(t,"_",n)):yr(t,e.slots={})}else e.slots={},t&&mr(e,t);X(e.slots,zr,1)},vr=(e,t,n)=>{const{vnode:r,slots:o}=e;let i=!0,s=d;if(32&r.shapeFlag){const e=t._;e?n&&1===e?i=!1:(_(o,t),n||1!==e||delete o._):(i=!t.$stable,yr(t,o)),s=t}else t&&(mr(e,t),s={default:1});if(i)for(const e in o)fr(e)||e in s||delete o[e]};function br(){return{app:null,config:{isNativeTag:m,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let _r=0;function wr(e,t){return function(n,r=null){C(n)||(n=Object.assign({},n)),null==r||P(r)||(r=null);const o=br(),i=new Set;let s=!1;const a=o.app={_uid:_r++,_component:n,_props:r,_container:null,_context:o,_instance:null,version:ho,get config(){return o.config},set config(e){},use:(e,...t)=>(i.has(e)||(e&&C(e.install)?(i.add(e),e.install(a,...t)):C(e)&&(i.add(e),e(a,...t))),a),mixin:e=>(__VUE_OPTIONS_API__&&(o.mixins.includes(e)||o.mixins.push(e)),a),component:(e,t)=>t?(o.components[e]=t,a):o.components[e],directive:(e,t)=>t?(o.directives[e]=t,a):o.directives[e],mount(i,c,l){if(!s){const u=$r(n,r);return u.appContext=o,c&&t?t(u,i):e(u,i,l),s=!0,a._container=i,i.__vue_app__=a,__VUE_PROD_DEVTOOLS__&&(a._instance=u.component,function(e,t){$t("app:init",e,t,{Fragment:Cr,Text:kr,Comment:jr,Static:Pr})}(a,ho)),po(u.component)||u.component.proxy}},unmount(){s&&(e(null,a._container),__VUE_PROD_DEVTOOLS__&&(a._instance=null,function(e){$t("app:unmount",e)}(a)),delete a._container.__vue_app__)},provide:(e,t)=>(o.provides[e]=t,a)};return a}}function Sr(e,t,n,r,o=!1){if(A(e))return void e.forEach(((e,i)=>Sr(e,t&&(A(t)?t[i]:t),n,r,o)));if(On(r)&&!o)return;const i=4&r.shapeFlag?po(r.component)||r.component.proxy:r.el,s=o?null:i,{i:a,r:c}=e,l=t&&t.r,u=a.refs===d?a.refs={}:a.refs,p=a.setupState;if(null!=l&&l!==c&&(k(l)?(u[l]=null,O(p,l)&&(p[l]=null)):ht(l)&&(l.value=null)),C(c))vt(c,a,12,[s,u]);else{const t=k(c),r=ht(c);if(t||r){const a=()=>{if(e.f){const n=t?u[c]:c.value;o?A(n)&&w(n,i):A(n)?n.includes(i)||n.push(i):t?(u[c]=[i],O(p,c)&&(p[c]=u[c])):(c.value=[i],e.k&&(u[e.k]=c.value))}else t?(u[c]=s,O(p,c)&&(p[c]=s)):r&&(c.value=s,e.k&&(u[e.k]=s))};s?(a.id=-1,Or(a,n)):a()}}}const Or=function(e,t){t&&t.pendingBranch?A(e)?t.effects.push(...e):t.effects.push(e):Rt(e,jt,kt,Pt)};function Ar(e,t){"boolean"!=typeof __VUE_OPTIONS_API__&&(Z().__VUE_OPTIONS_API__=!0),"boolean"!=typeof __VUE_PROD_DEVTOOLS__&&(Z().__VUE_PROD_DEVTOOLS__=!1);const n=Z();n.__VUE__=!0,__VUE_PROD_DEVTOOLS__&&Ht(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n);const{insert:r,remove:o,patchProp:i,createElement:s,createText:a,createComment:c,setText:l,setElementText:u,parentNode:p,nextSibling:f,setScopeId:m=y,cloneNode:g,insertStaticContent:v}=e,b=(e,t,n,r=null,o=null,i=null,s=!1,a=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Br(e,t)&&(r=ee(e),$(e,o,i,!0),e=null),-2===t.patchFlag&&(c=!1,t.dynamicChildren=null);const{type:l,ref:u,shapeFlag:p}=t;switch(l){case kr:_(e,t,n,r);break;case jr:w(e,t,n,r);break;case Pr:null==e&&S(t,n,r,s);break;case Cr:N(e,t,n,r,o,i,s,a,c);break;default:1&p?A(e,t,n,r,o,i,s,a,c):6&p?T(e,t,n,r,o,i,s,a,c):(64&p||128&p)&&l.process(e,t,n,r,o,i,s,a,c,ne)}null!=u&&o&&Sr(u,e&&e.ref,i,t||e,!t)},_=(e,t,n,o)=>{if(null==e)r(t.el=a(t.children),n,o);else{const n=t.el=e.el;t.children!==e.children&&l(n,t.children)}},w=(e,t,n,o)=>{null==e?r(t.el=c(t.children||""),n,o):t.el=e.el},S=(e,t,n,r)=>{[e.el,e.anchor]=v(e.children,t,n,r,e.el,e.anchor)},A=(e,t,n,r,o,i,s,a,c)=>{s=s||"svg"===t.type,null==e?E(t,n,r,o,i,s,a,c):k(e,t,o,i,s,a,c)},E=(e,t,n,o,a,c,l,p)=>{let f,d;const{type:h,props:y,shapeFlag:m,transition:v,patchFlag:b,dirs:_}=e;if(e.el&&void 0!==g&&-1===b)f=e.el=g(e.el);else{if(f=e.el=s(e.type,c,y&&y.is,y),8&m?u(f,e.children):16&m&&C(e.children,f,null,o,a,c&&"foreignObject"!==h,l,p),_&&zn(e,null,o,"created"),y){for(const t in y)"value"===t||R(t)||i(f,t,null,y[t],c,e.children,o,a,Y);"value"in y&&i(f,"value",null,y.value),(d=y.onVnodeBeforeMount)&&Qr(d,o,e)}x(f,e,e.scopeId,l,o)}__VUE_PROD_DEVTOOLS__&&(Object.defineProperty(f,"__vnode",{value:e,enumerable:!1}),Object.defineProperty(f,"__vueParentComponent",{value:o,enumerable:!1})),_&&zn(e,null,o,"beforeMount");const w=(!a||a&&!a.pendingBranch)&&v&&!v.persisted;w&&v.beforeEnter(f),r(f,t,n),((d=y&&y.onVnodeMounted)||w||_)&&Or((()=>{d&&Qr(d,o,e),w&&v.enter(f),_&&zn(e,null,o,"mounted")}),a)},x=(e,t,n,r,o)=>{if(n&&m(e,n),r)for(let t=0;t<r.length;t++)m(e,r[t]);if(o&&t===o.subTree){const t=o.vnode;x(e,t,t.scopeId,t.slotScopeIds,o.parent)}},C=(e,t,n,r,o,i,s,a,c=0)=>{for(let l=c;l<e.length;l++){const c=e[l]=a?Zr(e[l]):Kr(e[l]);b(null,c,t,n,r,o,i,s,a)}},k=(e,t,n,r,o,s,a)=>{const c=t.el=e.el;let{patchFlag:l,dynamicChildren:p,dirs:f}=t;l|=16&e.patchFlag;const h=e.props||d,y=t.props||d;let m;n&&Er(n,!1),(m=y.onVnodeBeforeUpdate)&&Qr(m,n,t,e),f&&zn(t,e,n,"beforeUpdate"),n&&Er(n,!0);const g=o&&"foreignObject"!==t.type;if(p?j(e.dynamicChildren,p,c,n,r,g,s):a||F(e,t,c,null,n,r,g,s,!1),l>0){if(16&l)P(c,t,h,y,n,r,o);else if(2&l&&h.class!==y.class&&i(c,"class",null,y.class,o),4&l&&i(c,"style",h.style,y.style,o),8&l){const s=t.dynamicProps;for(let t=0;t<s.length;t++){const a=s[t],l=h[a],u=y[a];u===l&&"value"!==a||i(c,a,l,u,o,e.children,n,r,Y)}}1&l&&e.children!==t.children&&u(c,t.children)}else a||null!=p||P(c,t,h,y,n,r,o);((m=y.onVnodeUpdated)||f)&&Or((()=>{m&&Qr(m,n,t,e),f&&zn(t,e,n,"updated")}),r)},j=(e,t,n,r,o,i,s)=>{for(let a=0;a<t.length;a++){const c=e[a],l=t[a],u=c.el&&(c.type===Cr||!Br(c,l)||70&c.shapeFlag)?p(c.el):n;b(c,l,u,null,r,o,i,s,!0)}},P=(e,t,n,r,o,s,a)=>{if(n!==r){for(const c in r){if(R(c))continue;const l=r[c],u=n[c];l!==u&&"value"!==c&&i(e,c,u,l,a,t.children,o,s,Y)}if(n!==d)for(const c in n)R(c)||c in r||i(e,c,n[c],null,a,t.children,o,s,Y);"value"in r&&i(e,"value",n.value,r.value)}},N=(e,t,n,o,i,s,c,l,u)=>{const p=t.el=e?e.el:a(""),f=t.anchor=e?e.anchor:a("");let{patchFlag:d,dynamicChildren:h,slotScopeIds:y}=t;y&&(l=l?l.concat(y):y),null==e?(r(p,n,o),r(f,n,o),C(t.children,n,f,i,s,c,l,u)):d>0&&64&d&&h&&e.dynamicChildren?(j(e.dynamicChildren,h,n,i,s,c,l),(null!=t.key||i&&t===i.subTree)&&xr(e,t,!0)):F(e,t,n,f,i,s,c,l,u)},T=(e,t,n,r,o,i,s,a,c)=>{t.slotScopeIds=a,null==e?512&t.shapeFlag?o.ctx.activate(t,n,r,s,c):L(t,n,r,o,i,s,c):I(e,t,c)},L=(e,t,n,r,o,i,s)=>{const a=e.component=function(e,t,n){const r=e.type,o=(t?t.appContext:e.appContext)||Yr,i={uid:eo++,vnode:e,type:r,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,scope:new Q(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:ar(r,o),emitsOptions:Qt(r,o),emit:null,emitted:null,propsDefaults:d,inheritAttrs:r.inheritAttrs,ctx:d,data:d,props:d,attrs:d,slots:d,refs:d,setupState:d,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=Jt.bind(null,i),e.ce&&e.ce(i),i}(e,r,o);if(An(e)&&(a.ctx.renderer=ne),function(e,t=!1){co=t;const{props:n,children:r}=e.vnode,o=io(e);(function(e,t,n,r=!1){const o={},i={};X(i,zr,1),e.propsDefaults=Object.create(null),ir(e,t,o,i);for(const t in e.propsOptions[0])t in o||(o[t]=void 0);n?e.props=r?o:it(o,!1,Me,Je,et):e.type.props?e.props=o:e.props=i,e.attrs=i})(e,n,o,t),gr(e,r);const i=o?function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=pt(new Proxy(e.ctx,qn));const{setup:r}=n;if(r){const n=e.setupContext=r.length>1?function(e){const t=t=>{e.exposed=t||{}};let n;return{get attrs(){return n||(n=function(e){return new Proxy(e.attrs,{get:(t,n)=>(ye(e,0,"$attrs"),t[n])})}(e))},slots:e.slots,emit:e.emit,expose:t}}(e):null;ro(e),de();const o=vt(r,e,0,[e.props,n]);if(he(),oo(),M(o)){if(o.then(oo,oo),t)return o.then((n=>{lo(e,n,t)})).catch((t=>{_t(t,e,0)}));e.asyncDep=o}else lo(e,o,t)}else uo(e,t)}(e,t):void 0;co=!1}(a),a.asyncDep){if(o&&o.registerDep(a,D),!e.el){const e=a.subTree=$r(jr);w(null,e,t,n)}}else D(a,e,t,n,o,i,s)},I=(e,t,n)=>{const r=t.component=e.component;if(function(e,t,n){const{props:r,children:o,component:i}=e,{props:s,children:a,patchFlag:c}=t,l=i.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&c>=0))return!(!o&&!a||a&&a.$stable)||r!==s&&(r?!s||an(r,s,l):!!s);if(1024&c)return!0;if(16&c)return r?an(r,s,l):!!s;if(8&c){const e=t.dynamicProps;for(let t=0;t<e.length;t++){const n=e[t];if(s[n]!==r[n]&&!Yt(l,n))return!0}}return!1}(e,t,n)){if(r.asyncDep&&!r.asyncResolved)return void U(r,t,n);r.next=t,function(e){const t=Ot.indexOf(e);t>At&&Ot.splice(t,1)}(r.update),r.update()}else t.el=e.el,r.vnode=t},D=(e,t,n,r,o,i,s)=>{const a=e.effect=new le((()=>{if(e.isMounted){let t,{next:n,bu:r,u:a,parent:c,vnode:l}=e,u=n;Er(e,!1),n?(n.el=l.el,U(e,n,s)):n=l,r&&H(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&Qr(t,c,n,l),Er(e,!0);const f=rn(e),d=e.subTree;e.subTree=f,b(d,f,p(d.el),ee(d),e,o,i),n.el=f.el,null===u&&function({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}(e,f.el),a&&Or(a,o),(t=n.props&&n.props.onVnodeUpdated)&&Or((()=>Qr(t,c,n,l)),o),__VUE_PROD_DEVTOOLS__&&qt(e)}else{let s;const{el:a,props:c}=t,{bm:l,m:u,parent:p}=e,f=On(t);if(Er(e,!1),l&&H(l),!f&&(s=c&&c.onVnodeBeforeMount)&&Qr(s,p,t),Er(e,!0),a&&oe){const n=()=>{e.subTree=rn(e),oe(a,e.subTree,e,o,null)};f?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{const s=e.subTree=rn(e);b(null,s,n,r,e,o,i),t.el=s.el}if(u&&Or(u,o),!f&&(s=c&&c.onVnodeMounted)){const e=t;Or((()=>Qr(s,p,e)),o)}(256&t.shapeFlag||p&&On(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&Or(e.a,o),e.isMounted=!0,__VUE_PROD_DEVTOOLS__&&Xt(e),t=n=r=null}}),(()=>It(c)),e.scope),c=e.update=()=>a.run();c.id=e.uid,Er(e,!0),c()},U=(e,t,n)=>{t.component=e;const r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){const{props:o,attrs:i,vnode:{patchFlag:s}}=e,a=ut(o),[c]=e.propsOptions;let l=!1;if(!(r||s>0)||16&s){let r;ir(e,t,o,i)&&(l=!0);for(const i in a)t&&(O(t,i)||(r=V(i))!==i&&O(t,r))||(c?!n||void 0===n[i]&&void 0===n[r]||(o[i]=sr(c,a,i,void 0,e,!0)):delete o[i]);if(i!==a)for(const e in i)t&&O(t,e)||(delete i[e],l=!0)}else if(8&s){const n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let s=n[r];if(Yt(e.emitsOptions,s))continue;const u=t[s];if(c)if(O(i,s))u!==i[s]&&(i[s]=u,l=!0);else{const t=B(s);o[t]=sr(c,a,t,u,e,!1)}else u!==i[s]&&(i[s]=u,l=!0)}}l&&ge(e,"set","$attrs")}(e,t.props,r,n),vr(e,t.children,n),de(),Ut(void 0,e.update),he()},F=(e,t,n,r,o,i,s,a,c=!1)=>{const l=e&&e.children,p=e?e.shapeFlag:0,f=t.children,{patchFlag:d,shapeFlag:h}=t;if(d>0){if(128&d)return void G(l,f,n,r,o,i,s,a,c);if(256&d)return void z(l,f,n,r,o,i,s,a,c)}8&h?(16&p&&Y(l,o,i),f!==l&&u(n,f)):16&p?16&h?G(l,f,n,r,o,i,s,a,c):Y(l,o,i,!0):(8&p&&u(n,""),16&h&&C(f,n,r,o,i,s,a,c))},z=(e,t,n,r,o,i,s,a,c)=>{t=t||h;const l=(e=e||h).length,u=t.length,p=Math.min(l,u);let f;for(f=0;f<p;f++){const r=t[f]=c?Zr(t[f]):Kr(t[f]);b(e[f],r,n,null,o,i,s,a,c)}l>u?Y(e,o,i,!0,!1,p):C(t,n,r,o,i,s,a,c,p)},G=(e,t,n,r,o,i,s,a,c)=>{let l=0;const u=t.length;let p=e.length-1,f=u-1;for(;l<=p&&l<=f;){const r=e[l],u=t[l]=c?Zr(t[l]):Kr(t[l]);if(!Br(r,u))break;b(r,u,n,null,o,i,s,a,c),l++}for(;l<=p&&l<=f;){const r=e[p],l=t[f]=c?Zr(t[f]):Kr(t[f]);if(!Br(r,l))break;b(r,l,n,null,o,i,s,a,c),p--,f--}if(l>p){if(l<=f){const e=f+1,p=e<u?t[e].el:r;for(;l<=f;)b(null,t[l]=c?Zr(t[l]):Kr(t[l]),n,p,o,i,s,a,c),l++}}else if(l>f)for(;l<=p;)$(e[l],o,i,!0),l++;else{const d=l,y=l,m=new Map;for(l=y;l<=f;l++){const e=t[l]=c?Zr(t[l]):Kr(t[l]);null!=e.key&&m.set(e.key,l)}let g,v=0;const _=f-y+1;let w=!1,S=0;const O=new Array(_);for(l=0;l<_;l++)O[l]=0;for(l=d;l<=p;l++){const r=e[l];if(v>=_){$(r,o,i,!0);continue}let u;if(null!=r.key)u=m.get(r.key);else for(g=y;g<=f;g++)if(0===O[g-y]&&Br(r,t[g])){u=g;break}void 0===u?$(r,o,i,!0):(O[u-y]=l+1,u>=S?S=u:w=!0,b(r,t[u],n,null,o,i,s,a,c),v++)}const A=w?function(e){const t=e.slice(),n=[0];let r,o,i,s,a;const c=e.length;for(r=0;r<c;r++){const c=e[r];if(0!==c){if(o=n[n.length-1],e[o]<c){t[r]=o,n.push(r);continue}for(i=0,s=n.length-1;i<s;)a=i+s>>1,e[n[a]]<c?i=a+1:s=a;c<e[n[i]]&&(i>0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,s=n[i-1];i-- >0;)n[i]=s,s=t[s];return n}(O):h;for(g=A.length-1,l=_-1;l>=0;l--){const e=y+l,p=t[e],f=e+1<u?t[e+1].el:r;0===O[l]?b(null,p,n,f,o,i,s,a,c):w&&(g<0||l!==A[g]?W(p,n,f,2):g--)}}},W=(e,t,n,o,i=null)=>{const{el:s,type:a,transition:c,children:l,shapeFlag:u}=e;if(6&u)W(e.component.subTree,t,n,o);else if(128&u)e.suspense.move(t,n,o);else if(64&u)a.move(e,t,n,ne);else if(a!==Cr)if(a!==Pr)if(2!==o&&1&u&&c)if(0===o)c.beforeEnter(s),r(s,t,n),Or((()=>c.enter(s)),i);else{const{leave:e,delayLeave:o,afterLeave:i}=c,a=()=>r(s,t,n),l=()=>{e(s,(()=>{a(),i&&i()}))};o?o(s,a,l):l()}else r(s,t,n);else(({el:e,anchor:t},n,o)=>{let i;for(;e&&e!==t;)i=f(e),r(e,n,o),e=i;r(t,n,o)})(e,t,n);else{r(s,t,n);for(let e=0;e<l.length;e++)W(l[e],t,n,o);r(e.anchor,t,n)}},$=(e,t,n,r=!1,o=!1)=>{const{type:i,props:s,ref:a,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:p,dirs:f}=e;if(null!=a&&Sr(a,null,n,e,!0),256&u)return void t.ctx.deactivate(e);const d=1&u&&f,h=!On(e);let y;if(h&&(y=s&&s.onVnodeBeforeUnmount)&&Qr(y,t,e),6&u)J(e.component,n,r);else{if(128&u)return void e.suspense.unmount(n,r);d&&zn(e,null,t,"beforeUnmount"),64&u?e.type.remove(e,t,n,o,ne,r):l&&(i!==Cr||p>0&&64&p)?Y(l,t,n,!1,!0):(i===Cr&&384&p||!o&&16&u)&&Y(c,t,n),r&&q(e)}(h&&(y=s&&s.onVnodeUnmounted)||d)&&Or((()=>{y&&Qr(y,t,e),d&&zn(e,null,t,"unmounted")}),n)},q=e=>{const{type:t,el:n,anchor:r,transition:i}=e;if(t===Cr)return void K(n,r);if(t===Pr)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=f(e),o(e),e=n;o(t)})(e);const s=()=>{o(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){const{leave:t,delayLeave:r}=i,o=()=>t(n,s);r?r(e.el,s,o):o()}else s()},K=(e,t)=>{let n;for(;e!==t;)n=f(e),o(e),e=n;o(t)},J=(e,t,n)=>{const{bum:r,scope:o,update:i,subTree:s,um:a}=e;r&&H(r),o.stop(),i&&(i.active=!1,$(s,e,t,n)),a&&Or(a,t),Or((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve()),__VUE_PROD_DEVTOOLS__&&Kt(e)},Y=(e,t,n,r=!1,o=!1,i=0)=>{for(let s=i;s<e.length;s++)$(e[s],t,n,r,o)},ee=e=>6&e.shapeFlag?ee(e.component.subTree):128&e.shapeFlag?e.suspense.next():f(e.anchor||e.el),te=(e,t,n)=>{null==e?t._vnode&&$(t._vnode,null,null,!0):b(t._vnode||null,e,t,null,null,null,n),Ft(),t._vnode=e},ne={p:b,um:$,m:W,r:q,mt:L,mc:C,pc:F,pbc:j,n:ee,o:e};let re,oe;return t&&([re,oe]=t(ne)),{render:te,hydrate:re,createApp:wr(te,re)}}function Er({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function xr(e,t,n=!1){const r=e.children,o=t.children;if(A(r)&&A(o))for(let e=0;e<r.length;e++){const t=r[e];let i=o[e];1&i.shapeFlag&&!i.dynamicChildren&&((i.patchFlag<=0||32===i.patchFlag)&&(i=o[e]=Zr(o[e]),i.el=t.el),n||xr(t,i))}}const Cr=Symbol(void 0),kr=Symbol(void 0),jr=Symbol(void 0),Pr=Symbol(void 0),Mr=[];let Nr=null;function Tr(e=!1){Mr.push(Nr=e?null:[])}let Lr=1;function Ir(e){Lr+=e}function Dr(e){return e.dynamicChildren=Lr>0?Nr||h:null,Mr.pop(),Nr=Mr[Mr.length-1]||null,Lr>0&&Nr&&Nr.push(e),e}function Rr(e,t,n,r,o,i){return Dr(Wr(e,t,n,r,o,i,!0))}function Ur(e,t,n,r,o){return Dr($r(e,t,n,r,o,!0))}function Fr(e){return!!e&&!0===e.__v_isVNode}function Br(e,t){return e.type===t.type&&e.key===t.key}const zr="__vInternal",Vr=({key:e})=>null!=e?e:null,Gr=({ref:e,ref_key:t,ref_for:n})=>null!=e?k(e)||ht(e)||C(e)?{i:en,r:e,k:t,f:!!n}:e:null;function Wr(e,t=null,n=null,r=0,o=null,i=(e===Cr?0:1),s=!1,a=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Vr(t),ref:t&&Gr(t),scopeId:tn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null};return a?(Jr(c,n),128&i&&e.normalize(c)):n&&(c.shapeFlag|=k(n)?8:16),Lr>0&&!s&&Nr&&(c.patchFlag>0||6&i)&&32!==c.patchFlag&&Nr.push(c),c}const $r=function(e,t=null,n=null,r=0,o=null,i=!1){if(e&&e!==Wn||(e=jr),Fr(e)){const r=Hr(e,t,!0);return n&&Jr(r,n),Lr>0&&!i&&Nr&&(6&r.shapeFlag?Nr[Nr.indexOf(e)]=r:Nr.push(r)),r.patchFlag|=-2,r}if(a=e,C(a)&&"__vccOpts"in a&&(e=e.__vccOpts),t){t=function(e){return e?lt(e)||zr in e?_({},e):e:null}(t);let{class:e,style:n}=t;e&&!k(e)&&(t.class=u(e)),P(n)&&(lt(n)&&!A(n)&&(n=_({},n)),t.style=s(n))}var a;return Wr(e,t,n,r,o,k(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:P(e)?4:C(e)?2:0,i,!0)};function Hr(e,t,n=!1){const{props:r,ref:o,patchFlag:i,children:a}=e,c=t?function(...e){const t={};for(let n=0;n<e.length;n++){const r=e[n];for(const e in r)if("class"===e)t.class!==r.class&&(t.class=u([t.class,r.class]));else if("style"===e)t.style=s([t.style,r.style]);else if(v(e)){const n=t[e],o=r[e];!o||n===o||A(n)&&n.includes(o)||(t[e]=n?[].concat(n,o):o)}else""!==e&&(t[e]=r[e])}return t}(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Vr(c),ref:t&&t.ref?n&&o?A(o)?o.concat(Gr(t)):[o,Gr(t)]:Gr(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Cr?-1===i?16:16|i:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Hr(e.ssContent),ssFallback:e.ssFallback&&Hr(e.ssFallback),el:e.el,anchor:e.anchor}}function Xr(e=" ",t=0){return $r(kr,null,e,t)}function qr(e="",t=!1){return t?(Tr(),Ur(jr,null,e)):$r(jr,null,e)}function Kr(e){return null==e||"boolean"==typeof e?$r(jr):A(e)?$r(Cr,null,e.slice()):"object"==typeof e?Zr(e):$r(kr,null,String(e))}function Zr(e){return null===e.el||e.memo?e:Hr(e)}function Jr(e,t){let n=0;const{shapeFlag:r}=e;if(null==t)t=null;else if(A(t))n=16;else if("object"==typeof t){if(65&r){const n=t.default;return void(n&&(n._c&&(n._d=!1),Jr(e,n()),n._c&&(n._d=!0)))}{n=32;const r=t._;r||zr in t?3===r&&en&&(1===en.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=en}}else C(t)?(t={default:t,_ctx:en},n=32):(t=String(t),64&r?(n=16,t=[Xr(t)]):n=8);e.children=t,e.shapeFlag|=n}function Qr(e,t,n,r=null){bt(e,t,7,[n,r])}const Yr=br();let eo=0;let to=null;const no=()=>to||en,ro=e=>{to=e,e.scope.on()},oo=()=>{to&&to.scope.off(),to=null};function io(e){return 4&e.vnode.shapeFlag}let so,ao,co=!1;function lo(e,t,n){C(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:P(t)&&(__VUE_PROD_DEVTOOLS__&&(e.devtoolsRawSetupState=t),e.setupState=mt(t)),uo(e,n)}function uo(e,t,n){const r=e.type;if(!e.render){if(!t&&so&&!r.render){const t=r.template;if(t){const{isCustomElement:n,compilerOptions:o}=e.appContext.config,{delimiters:i,compilerOptions:s}=r,a=_(_({isCustomElement:n,delimiters:i},o),s);r.render=so(t,a)}}e.render=r.render||y,ao&&ao(e)}__VUE_OPTIONS_API__&&(ro(e),de(),function(e){const t=Qn(e),n=e.proxy,r=e.ctx;Kn=!1,t.beforeCreate&&Zn(t.beforeCreate,e,"bc");const{data:o,computed:i,methods:s,watch:a,provide:c,inject:l,created:u,beforeMount:p,mounted:f,beforeUpdate:d,updated:h,activated:m,deactivated:g,beforeDestroy:v,beforeUnmount:b,destroyed:_,unmounted:w,render:S,renderTracked:O,renderTriggered:E,errorCaptured:x,serverPrefetch:k,expose:j,inheritAttrs:M,components:N,directives:T,filters:L}=t;if(l&&function(e,t,n=y,r=!1){A(e)&&(e=nr(e));for(const n in e){const o=e[n];let i;i=P(o)?"default"in o?cn(o.from||n,o.default,!0):cn(o.from||n):cn(o),ht(i)&&r?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}(l,r,null,e.appContext.config.unwrapInjectedRef),s)for(const e in s){const t=s[e];C(t)&&(r[e]=t.bind(n))}if(o){const t=o.call(n,n);P(t)&&(e.data=rt(t))}if(Kn=!0,i)for(const e in i){const t=i[e],o=C(t)?t.bind(n,n):C(t.get)?t.get.bind(n,n):y,s=!C(t)&&C(t.set)?t.set.bind(n):y,a=fo({get:o,set:s});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e})}if(a)for(const e in a)Jn(a[e],r,n,e);if(c){const e=C(c)?c.call(n):c;Reflect.ownKeys(e).forEach((t=>{!function(e,t){if(to){let n=to.provides;const r=to.parent&&to.parent.provides;r===n&&(n=to.provides=Object.create(r)),n[e]=t}}(t,e[t])}))}function I(e,t){A(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(u&&Zn(u,e,"c"),I(Mn,p),I(Nn,f),I(Tn,d),I(Ln,h),I(En,m),I(xn,g),I(Bn,x),I(Fn,O),I(Un,E),I(In,b),I(Dn,w),I(Rn,k),A(j))if(j.length){const t=e.exposed||(e.exposed={});j.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});S&&e.render===y&&(e.render=S),null!=M&&(e.inheritAttrs=M),N&&(e.components=N),T&&(e.directives=T)}(e),he(),oo())}function po(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(mt(pt(e.exposed)),{get:(t,n)=>n in t?t[n]:n in Xn?Xn[n](e):void 0}))}const fo=(e,t)=>function(e,t,n=!1){let r,o;const i=C(e);return i?(r=e,o=y):(r=e.get,o=e.set),new gt(r,o,i||!o,n)}(e,0,co);Symbol("");const ho="3.2.37",yo="undefined"!=typeof document?document:null,mo=yo&&yo.createElement("template"),go={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t?yo.createElementNS("http://www.w3.org/2000/svg",e):yo.createElement(e,n?{is:n}:void 0);return"select"===e&&r&&null!=r.multiple&&o.setAttribute("multiple",r.multiple),o},createText:e=>yo.createTextNode(e),createComment:e=>yo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>yo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,r,o,i){const s=n?n.previousSibling:t.lastChild;if(o&&(o===i||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),o!==i&&(o=o.nextSibling););else{mo.innerHTML=r?`<svg>${e}</svg>`:e;const o=mo.content;if(r){const e=o.firstChild;for(;e.firstChild;)o.appendChild(e.firstChild);o.removeChild(e)}t.insertBefore(o,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},vo=/\s*!important$/;function bo(e,t,n){if(A(n))n.forEach((n=>bo(e,t,n)));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=function(e,t){const n=wo[t];if(n)return n;let r=B(t);if("filter"!==r&&r in e)return wo[t]=r;r=G(r);for(let n=0;n<_o.length;n++){const o=_o[n]+r;if(o in e)return wo[t]=o}return t}(e,t);vo.test(n)?e.setProperty(V(r),n.replace(vo,""),"important"):e[r]=n}}const _o=["Webkit","Moz","ms"],wo={},So="http://www.w3.org/1999/xlink",[Oo,Ao]=(()=>{let e=Date.now,t=!1;if("undefined"!=typeof window){Date.now()>document.createEvent("Event").timeStamp&&(e=performance.now.bind(performance));const n=navigator.userAgent.match(/firefox\/(\d+)/i);t=!!(n&&Number(n[1])<=53)}return[e,t]})();let Eo=0;const xo=Promise.resolve(),Co=()=>{Eo=0};function ko(e,t,n,r,o=null){const i=e._vei||(e._vei={}),s=i[t];if(r&&s)s.value=r;else{const[n,a]=function(e){let t;if(jo.test(e)){let n;for(t={};n=e.match(jo);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[V(e.slice(2)),t]}(t);if(r){const s=i[t]=function(e,t){const n=e=>{const r=e.timeStamp||Oo();(Ao||r>=n.attached-1)&&bt(function(e,t){if(A(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=Eo||(xo.then(Co),Eo=Oo()),n}(r,o);!function(e,t,n,r){e.addEventListener(t,n,r)}(e,n,s,a)}else s&&(function(e,t,n,r){e.removeEventListener(t,n,r)}(e,n,s,a),i[t]=void 0)}}const jo=/(?:Once|Passive|Capture)$/,Po=/^on[a-z]/;"undefined"!=typeof HTMLElement&&HTMLElement;const Mo="transition",No="animation",To=(e,{slots:t})=>function(e,t,n){const r=arguments.length;return 2===r?P(t)&&!A(t)?Fr(t)?$r(e,null,[t]):$r(e,t):$r(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&Fr(n)&&(n=[n]),$r(e,t,n))}(mn,function(e){const t={};for(const n in e)n in Lo||(t[n]=e[n]);if(!1===e.css)return t;const{name:n="v",type:r,duration:o,enterFromClass:i=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:l=s,appearToClass:u=a,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;if(P(e))return[Ro(e.enter),Ro(e.leave)];{const t=Ro(e);return[t,t]}}(o),y=h&&h[0],m=h&&h[1],{onBeforeEnter:g,onEnter:v,onEnterCancelled:b,onLeave:w,onLeaveCancelled:S,onBeforeAppear:O=g,onAppear:A=v,onAppearCancelled:E=b}=t,x=(e,t,n)=>{Fo(e,t?u:a),Fo(e,t?l:s),n&&n()},C=(e,t)=>{e._isLeaving=!1,Fo(e,p),Fo(e,d),Fo(e,f),t&&t()},k=e=>(t,n)=>{const o=e?A:v,s=()=>x(t,e,n);Io(o,[t,s]),Bo((()=>{Fo(t,e?c:i),Uo(t,e?u:a),Do(o)||Vo(t,r,y,s)}))};return _(t,{onBeforeEnter(e){Io(g,[e]),Uo(e,i),Uo(e,s)},onBeforeAppear(e){Io(O,[e]),Uo(e,c),Uo(e,l)},onEnter:k(!1),onAppear:k(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>C(e,t);Uo(e,p),document.body.offsetHeight,Uo(e,f),Bo((()=>{e._isLeaving&&(Fo(e,p),Uo(e,d),Do(w)||Vo(e,r,m,n))})),Io(w,[e,n])},onEnterCancelled(e){x(e,!1),Io(b,[e])},onAppearCancelled(e){x(e,!0),Io(E,[e])},onLeaveCancelled(e){C(e),Io(S,[e])}})}(e),t);To.displayName="Transition";const Lo={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Io=(To.props=_({},mn.props,Lo),(e,t=[])=>{A(e)?e.forEach((e=>e(...t))):e&&e(...t)}),Do=e=>!!e&&(A(e)?e.some((e=>e.length>1)):e.length>1);function Ro(e){return q(e)}function Uo(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e._vtc||(e._vtc=new Set)).add(t)}function Fo(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Bo(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let zo=0;function Vo(e,t,n,r){const o=e._endId=++zo,i=()=>{o===e._endId&&r()};if(n)return setTimeout(i,n);const{type:s,timeout:a,propCount:c}=function(e,t){const n=window.getComputedStyle(e),r=e=>(n[e]||"").split(", "),o=r(Mo+"Delay"),i=r(Mo+"Duration"),s=Go(o,i),a=r(No+"Delay"),c=r(No+"Duration"),l=Go(a,c);let u=null,p=0,f=0;return t===Mo?s>0&&(u=Mo,p=s,f=i.length):t===No?l>0&&(u=No,p=l,f=c.length):(p=Math.max(s,l),u=p>0?s>l?Mo:No:null,f=u?u===Mo?i.length:c.length:0),{type:u,timeout:p,propCount:f,hasTransform:u===Mo&&/\b(transform|all)(,|$)/.test(n[Mo+"Property"])}}(e,t);if(!s)return r();const l=s+"end";let u=0;const p=()=>{e.removeEventListener(l,f),i()},f=t=>{t.target===e&&++u>=c&&p()};setTimeout((()=>{u<c&&p()}),a+1),e.addEventListener(l,f)}function Go(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map(((t,n)=>Wo(t)+Wo(e[n]))))}function Wo(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}new WeakMap,new WeakMap;const $o=_({patchProp:(e,t,n,r,s=!1,a,c,l,u)=>{"class"===t?function(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,r,s):"style"===t?function(e,t,n){const r=e.style,o=k(n);if(n&&!o){for(const e in n)bo(r,e,n[e]);if(t&&!k(t))for(const e in t)null==n[e]&&bo(r,e,"")}else{const i=r.display;o?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=i)}}(e,n,r):v(t)?b(t)||ko(e,t,0,r,c):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,r){return r?"innerHTML"===t||"textContent"===t||!!(t in e&&Po.test(t)&&C(n)):"spellcheck"!==t&&"draggable"!==t&&"translate"!==t&&("form"!==t&&(("list"!==t||"INPUT"!==e.tagName)&&(("type"!==t||"TEXTAREA"!==e.tagName)&&((!Po.test(t)||!k(n))&&t in e))))}(e,t,r,s))?function(e,t,n,r,o,s,a){if("innerHTML"===t||"textContent"===t)return r&&a(r,o,s),void(e[t]=null==n?"":n);if("value"===t&&"PROGRESS"!==e.tagName&&!e.tagName.includes("-")){e._value=n;const r=null==n?"":n;return e.value===r&&"OPTION"!==e.tagName||(e.value=r),void(null==n&&e.removeAttribute(t))}let c=!1;if(""===n||null==n){const r=typeof e[t];"boolean"===r?n=i(n):null==n&&"string"===r?(n="",c=!0):"number"===r&&(n=0,c=!0)}try{e[t]=n}catch(e){}c&&e.removeAttribute(t)}(e,t,r,a,c,l,u):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),function(e,t,n,r){if(r&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(So,t.slice(6,t.length)):e.setAttributeNS(So,t,n);else{const r=o(t);null==n||r&&!i(n)?e.removeAttribute(t):e.setAttribute(t,r?"":n)}}(e,t,r,s))}},go);let Ho;var Xo={class:"h5p-audio-recorder-view"},qo=["innerHTML"],Ko=["innerHTML"],Zo={key:1,class:"h5p-audio-recorder-player"},Jo={controls:"controls"},Qo=Xr(" Your browser does not support the "),Yo=Wr("code",null,"audio",-1),ei=Xr(" element. "),ti=["src"],ni={key:3,class:"h5p-audio-recorder-download"},ri={class:"button-row"},oi={class:"button-row-double"},ii=Wr("span",{class:"fa-circle"},null,-1),si=Wr("span",{class:"fa-undo"},null,-1),ai={class:"label"},ci=Wr("span",{class:"fa-pause"},null,-1),li={class:"label"},ui=Wr("span",{class:"fa-circle"},null,-1),pi={class:"label"},fi=Wr("span",{class:"fa-play-circle"},null,-1),di={class:"label"},hi={class:"button-row-left"},yi=["href","download"],mi=Wr("span",{class:"icon-download"},null,-1),gi={class:"button-row-right"},vi=Wr("span",{class:"fa-undo"},null,-1),bi={class:"label"};const _i="unsupported",wi="blocked",Si="ready",Oi="recording",Ai="paused",Ei="done",xi="insecure-not-allowed",Ci="cant-create-audio-file";var ki={};ki[Si]="button-record",ki[Oi]="button-pause",ki[Ai]="button-continue",ki[Ei]="button-download";const ji={methods:{resize:function(){this.$el&&(this.viewState=this.$el.offsetWidth<=576?"small":"large")},record:function(){this.$emit(Oi)},pause:function(){this.state=Ai,this.$emit(this.state)},done:function(){this.state=Ei,this.$emit(Ei)},retry:function(){var e=this.$el;this.isSubcontent&&(e=function e(t){return t?-1!==t.className.indexOf("h5p-content")?t:e(t.parentNode):null}(this.$el)||this.$el);var t=new H5P.ConfirmationDialog({headerText:this.l10n.retryDialogHeaderText,dialogText:this.l10n.retryDialogBodyText,cancelText:this.l10n.retryDialogCancelText,confirmText:this.l10n.retryDialogConfirmText});t.appendTo(e),t.show();var n=this;t.on("confirmed",(function(){n.state=Si,n.$refs.timer&&n.$refs.timer.reset(),n.$emit("retry")}))}},computed:{unEscape:function(){return this.statusMessages[this.state].replace(/&#039;/g,"'")}},watch:{state:function(e){var t=this;ki[e]&&this.$nextTick((function(){return t.$refs[ki[e]].focus()})),this.$emit("resize")}}};n(668);var Pi=n(890);const Mi=(0,Pi.A)(ji,[["render",function(e,t,n,r,o,i){var s=Gn("vuMeter"),a=Gn("timer");return Tr(),Rr("div",Xo,[$r(s,{avgMicFrequency:e.avgMicFrequency,enablePulse:"recording"===e.state},null,8,["avgMicFrequency","enablePulse"]),"done"!==e.state&&e.title?(Tr(),Rr("div",{key:0,class:"title",innerHTML:e.title},null,8,qo)):qr("v-if",!0),Wr("div",{role:"status",class:u(e.state),innerHTML:e.statusMessages[e.state]},null,10,Ko),"done"===e.state&&""!==e.audioSrc?(Tr(),Rr("div",Zo,[Wr("audio",Jo,[Qo,Yo,ei,Wr("source",{src:e.audioSrc},null,8,ti)])])):qr("v-if",!0),"unsupported"!==e.state&&"done"!==e.state&&"insecure-not-allowed"!==e.state?(Tr(),Ur(a,{key:2,ref:"timer",stopped:"recording"!==e.state},null,8,["stopped"])):qr("v-if",!0),"blocked"!==e.state&&"unsupported"!==e.state&&"done"===e.state?(Tr(),Rr("div",ni,p(e.l10n.downloadRecording),1)):qr("v-if",!0),Wr("div",ri,[Wr("div",oi,["ready"===e.state||"blocked"===e.state?(Tr(),Rr("button",{key:0,class:"button record",ref:"button-record",onClick:t[0]||(t[0]=function(){return i.record&&i.record.apply(i,arguments)})},[ii,Xr(" "+p(e.l10n.recordAnswer),1)],512)):qr("v-if",!0),"recording"===e.state||"paused"===e.state?(Tr(),Rr("button",{key:1,class:u(["button retry small",{"small-screen":"small"===this.viewState}]),onClick:t[1]||(t[1]=function(){return i.retry&&i.retry.apply(i,arguments)})},[si,Wr("span",ai,p(e.l10n.retry),1)],2)):qr("v-if",!0),"recording"===e.state?(Tr(),Rr("button",{key:2,class:u(["button pause",{"small-screen":"small"===this.viewState}]),ref:"button-pause",onClick:t[2]||(t[2]=function(){return i.pause&&i.pause.apply(i,arguments)})},[ci,Wr("span",li,p(e.l10n.pause),1)],2)):qr("v-if",!0),"paused"===e.state?(Tr(),Rr("button",{key:3,class:u(["button record",{"small-screen":"small"===this.viewState}]),ref:"button-continue",onClick:t[3]||(t[3]=function(){return i.record&&i.record.apply(i,arguments)})},[ui,Wr("span",pi,p(e.l10n.continue),1)],2)):qr("v-if",!0),"recording"===e.state||"paused"===e.state?(Tr(),Rr("button",{key:4,class:u(["button done small",{"small-screen":"small"===this.viewState}]),onClick:t[4]||(t[4]=function(){return i.done&&i.done.apply(i,arguments)})},[fi,Wr("span",di,p(e.l10n.done),1)],2)):qr("v-if",!0)]),Wr("span",hi,["done"===e.state?(Tr(),Rr("a",{key:0,class:"button download",ref:"button-download",href:e.audioSrc,download:e.audioFilename},[mi,Xr(" "+p(e.l10n.download),1)],8,yi)):qr("v-if",!0)]),Wr("span",gi,["done"===e.state||"cant-create-audio-file"===e.state?(Tr(),Rr("button",{key:0,class:"button retry",onClick:t[5]||(t[5]=function(){return i.retry&&i.retry.apply(i,arguments)})},[vi,Wr("span",bi,p(e.l10n.retry),1)])):qr("v-if",!0)])])])}]]);var Ni={class:"recording-indicator-wrapper"},Ti=Wr("div",{class:"fa-microphone"},null,-1);const Li={props:["avgMicFrequency","enablePulse"],computed:{pulseScale:function(){return function(e){e>30?e=30:e<4&&(e=4);var t=(e-4)/30*(1.3-.7)+.7;return.005*Math.round(t/.005)}(this.avgMicFrequency)}}};n(447);const Ii=(0,Pi.A)(Li,[["render",function(e,t,n,r,o,i){return Tr(),Rr("div",Ni,[Wr("div",{style:s({transform:"scale(".concat(i.pulseScale,")")}),class:u([[{hidden:!n.enablePulse}],"h5p-audio-recorder-vu-meter"])},null,6),Ti])}]]);var Di={role:"timer",class:"audio-recorder-timer"},Ri=n(887);const Ui={props:["stopped"],mounted:function(){var e=this;setInterval((function(){e.secondsPassed=e.timer.time()/1e3}),200)},data:function(){return{timer:new Ri,secondsPassed:0}},methods:{reset:function(){this.secondsPassed=0,this.timer=new Ri}},computed:{formatTime:function(){var e=function(e){return e<10?"0".concat(e):"".concat(e)},t=parseInt(this.secondsPassed,10),n=e(Math.floor(t/60)),r=e(t-60*n);return"".concat(n,":").concat(r)}},watch:{stopped:function(e){this.timer[e?"stop":"start"]()}}};n(813);const Fi=(0,Pi.A)(Ui,[["render",function(e,t,n,r,o,i){return Tr(),Rr("div",Di,p(i.formatTime),1)}]]);function Bi(e){return Bi="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},Bi(e)}function zi(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Vi(e,t){return Vi=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Vi(e,t)}function Gi(e){return Gi=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Gi(e)}var Wi="inactive",$i="recording",Hi=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Vi(e,t)}(i,H5P.EventDispatcher);var e,t,n,r,o=(n=i,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=Gi(n);if(r){var o=Gi(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===Bi(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,e)});function i(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(e=o.call(this)).config={bufferLength:4096,numChannels:1},e.state=Wi;var t=new Blob(["/**\n * This is a web worker responsible for recording/buffering the sound and\n * encoding it as wav.\n */\n\nvar recLength = 0;\nvar recBuffers = [];\nvar sampleRate;\nvar numChannels;\n\n// Listen to incoming messages\nthis.onmessage = function(e) {\n  switch(e.data.command){\n    case 'init':\n      init(e.data.config);\n      break;\n    case 'record':\n      record(e.data.buffer);\n      break;\n    case 'export-wav':\n      exportWAV();\n      break;\n    case 'clear':\n      clear();\n      break;\n  }\n};\n\n/**\n * Initialization\n *\n * @param  {Object} config\n */\nfunction init(config) {\n  sampleRate = config.sampleRate;\n  numChannels = config.numChannels;\n  initBuffers();\n}\n\n/**\n * Storing the data buffer\n *\n * @param  {Float32Array} inputBuffer\n */\nfunction record(inputBuffer) {\n  for (var channel = 0; channel < numChannels; channel++){\n    recBuffers[channel].push(inputBuffer[channel]);\n  }\n  recLength += inputBuffer[0].length;\n}\n\n/**\n * Export buffered data as a wav encoded blob\n */\nfunction exportWAV() {\n  var buffers = [];\n  for (var channel = 0; channel < numChannels; channel++){\n    buffers.push(mergeBuffers(recBuffers[channel], recLength));\n  }\n  if (numChannels === 2){\n      var interleaved = interleave(buffers[0], buffers[1]);\n  } else {\n      var interleaved = buffers[0];\n  }\n  var dataview = encodeWAV(interleaved);\n  var audioBlob = new Blob([dataview], { type: 'audio/wav' });\n\n  this.postMessage({\n    command: 'wav-delivered',\n    blob: audioBlob\n  });\n}\n\n/**\n * Clear the buffers\n */\nfunction clear() {\n  recLength = 0;\n  recBuffers = [];\n  initBuffers();\n}\n\n/**\n * Initialize the buffers\n */\nfunction initBuffers() {\n  for (var channel = 0; channel < numChannels; channel++){\n    recBuffers[channel] = [];\n  }\n}\n\n/**\n * Merge buffers\n *\n * @param {Array} recBuffers\n * @param {[type]} recLength\n * @return {Float32Array}\n */\nfunction mergeBuffers(recBuffers, recLength){\n  var result = new Float32Array(recLength);\n  var offset = 0;\n  for (var i = 0; i < recBuffers.length; i++){\n    result.set(recBuffers[i], offset);\n    offset += recBuffers[i].length;\n  }\n  return result;\n}\n\n/**\n * Interleave two channels\n *\n * @param {Array} inputL\n * @param {Array} inputR\n * @return {Float32Array}\n */\nfunction interleave(inputL, inputR){\n  var length = inputL.length + inputR.length;\n  var result = new Float32Array(length);\n\n  var index = 0,\n    inputIndex = 0;\n\n  while (index < length){\n    result[index++] = inputL[inputIndex];\n    result[index++] = inputR[inputIndex];\n    inputIndex++;\n  }\n  return result;\n}\n\n/**\n * Convert floats to 16 bit PCMs\n *\n * @param {DataView} output\n * @param {number} offset\n * @param {Array} input\n */\nfunction floatTo16BitPCM(output, offset, input) {\n  for (var i = 0; i < input.length; i++, offset+=2){\n    var s = Math.max(-1, Math.min(1, input[i]));\n    output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7FFF, true);\n  }\n}\n\n/**\n * Write string to wav header\n *\n * @param {DataView} view\n * @param {number} offset\n * @param {string} string\n */\nfunction writeString(view, offset, string) {\n  for (var i = 0; i < string.length; i++){\n    view.setUint8(offset + i, string.charCodeAt(i));\n  }\n}\n\n/**\n * Encode as wav\n *\n * @param {Array} samples\n * @return {DataView}\n */\nfunction encodeWAV(samples) {\n  var buffer = new ArrayBuffer(44 + samples.length * 2);\n  var view = new DataView(buffer);\n\n  /* RIFF identifier */\n  writeString(view, 0, 'RIFF');\n  /* RIFF chunk length */\n  view.setUint32(4, 36 + samples.length * 2, true);\n  /* RIFF type */\n  writeString(view, 8, 'WAVE');\n  /* format chunk identifier */\n  writeString(view, 12, 'fmt ');\n  /* format chunk length */\n  view.setUint32(16, 16, true);\n  /* sample format (raw) */\n  view.setUint16(20, 1, true);\n  /* channel count */\n  view.setUint16(22, numChannels, true);\n  /* sample rate */\n  view.setUint32(24, sampleRate, true);\n  /* byte rate (sample rate * block align) */\n  view.setUint32(28, sampleRate * 2 * numChannels, true);\n  /* block align (channel count * bytes per sample) */\n  view.setUint16(32, numChannels * 2, true);\n  /* bits per sample */\n  view.setUint16(34, 16, true);\n  /* data chunk identifier */\n  writeString(view, 36, 'data');\n  /* data chunk length */\n  view.setUint32(40, samples.length * 2, true);\n\n  floatTo16BitPCM(view, 44, samples);\n\n  return view;\n}\n"],{type:"text/javascript"});return e.worker=new Worker(URL.createObjectURL(t)),e.worker.onmessage=function(t){e.trigger(t.data.command,t.data.blob)},e.worker.onerror=function(t){e.trigger("worker-error",t)},e}return e=i,t=[{key:"getWavURL",value:function(){var e=this;this.stop();var t=new Promise((function(t,n){e.once("wav-delivered",(function(e){t(URL.createObjectURL(e.data))})),e.once("worker-error",(function(e){n(e)}))}));return this.worker.postMessage({command:"export-wav"}),t}},{key:"_setupAudioProcessing",value:function(e){var t=this;this.stream=e;var n=window.AudioContext||window.webkitAudioContext;this.audioContext=new n,this.scriptProcessorNode=this.audioContext.createScriptProcessor(this.config.bufferLength,this.config.numChannels,this.config.numChannels),this.scriptProcessorNode.onaudioprocess=function(e){t.state===$i&&t.worker.postMessage({command:"record",buffer:[e.inputBuffer.getChannelData(0)]})};var r=this.audioContext.createAnalyser();r.minDecibels=-90,r.maxDecibels=-10,r.smoothingTimeConstant=.85,r.fftSize=256,this.freqBufferLength=r.frequencyBinCount,this.freqDataArray=new Uint8Array(this.freqBufferLength),this.freqAnalyser=r,this.sourceNode=this.audioContext.createMediaStreamSource(e),this.sourceNode.connect(this.freqAnalyser),this.freqAnalyser.connect(this.scriptProcessorNode),this.scriptProcessorNode.connect(this.audioContext.destination)}},{key:"getAverageMicFrequency",value:function(){return this.freqAnalyser.getByteFrequencyData(this.freqDataArray),this.freqDataArray.reduce((function(e,t){return e+t}),0)/this.freqBufferLength}},{key:"grabMic",value:function(){var e=this;return this.supported()?(void 0===this.userMedia&&(this.userMedia=navigator.mediaDevices.getUserMedia({audio:!0}).then((function(t){e._setupAudioProcessing(t),e.worker.postMessage({command:"init",config:{sampleRate:e.sourceNode.context.sampleRate,numChannels:e.config.numChannels}})})).catch((function(t){var n="blocked";return t.name&&-1!==["NotSupportedError","NotSupportedError","NotAllowedError"].indexOf(t.name)&&(n="insecure-not-allowed"),delete e.userMedia,Promise.reject(n)}))),this.userMedia):Promise.reject()}},{key:"start",value:function(){var e=this;this.grabMic().then((function(){e._setState($i)})).catch((function(t){e.trigger(t)}))}},{key:"stop",value:function(){this._setState(Wi)}},{key:"supported",value:function(){return(void 0!==window.AudioContext||void 0!==window.webkitAudioContext)&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}},{key:"releaseMic",value:function(){this._setState(Wi),this.worker.postMessage({command:"clear"}),this.stream.getAudioTracks().forEach((function(e){return e.stop()})),this.sourceNode.disconnect(),this.scriptProcessorNode.disconnect(),"closed"!==this.audioContext.state&&this.audioContext.close(),delete this.userMedia}},{key:"_setState",value:function(e){this.state=e,this.trigger(this.state)}}],t&&zi(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),i}();function Xi(e){return Xi="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},Xi(e)}function qi(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}const Ki=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n;return t=e,n=[{key:"extend",value:function(){for(var e=1;e<arguments.length;e++)for(var t in arguments[e])arguments[e].hasOwnProperty(t)&&("object"===Xi(arguments[0][t])&&"object"===Xi(arguments[e][t])?this.extend(arguments[0][t],arguments[e][t]):arguments[0][t]=arguments[e][t]);return arguments[0]}}],null&&qi(t.prototype,null),n&&qi(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();function Zi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ji(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zi(Object(n),!0).forEach((function(t){Qi(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zi(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Qi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Yi(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function es(e,t,n){return t&&Yi(e.prototype,t),n&&Yi(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var ts=es((function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),H5P.EventDispatcher.call(this),t=Ki.extend({l10n:{recordAnswer:"Record",pause:"Pause",continue:"Continue",download:"Download",done:"Done",retry:"Retry",microphoneNotSupported:"Microphone not supported. Make sure you are using a browser that allows microphone recording.",microphoneInaccessible:"Microphone is not accessible. Make sure that the browser microphone is enabled.",insecureNotAllowed:"Access to microphone is not allowed in your browser since this page is not served using HTTPS. Please contact the author, and ask him to make this available using HTTPS",statusReadyToRecord:"Press a button below to record your answer.",statusRecording:"Recording...",statusPaused:"Recording paused. Press a button to continue recording.",statusFinishedRecording:"You have successfully recorded your answer! Listen to the recording below.",downloadRecording:"Download this recording or retry.",retryDialogHeaderText:"Retry recording?",retryDialogBodyText:'By pressing "Retry" you will lose your current recording.',retryDialogConfirmText:"Retry",retryDialogCancelText:"Cancel",statusCantCreateTheAudioFile:"Can't create the audio file."}},t);var o=document.createElement("div");o.classList.add("h5p-audio-recorder");var i,s=this.recorder=new Hi,a={};a[_i]=t.l10n.microphoneNotSupported,a[wi]=t.l10n.microphoneInaccessible,a[Si]=t.l10n.statusReadyToRecord,a[Oi]=t.l10n.statusRecording,a[Ai]=t.l10n.statusPaused,a[Ei]=t.l10n.statusFinishedRecording,a[xi]=t.l10n.insecureNotAllowed,a[Ci]=t.l10n.statusCantCreateTheAudioFile;var c=this;Mi.data=function(){return{title:t.title,state:s.supported()?Si:_i,statusMessages:a,l10n:t.l10n,audioSrc:"",audioFilename:"",avgMicFrequency:0,isSubcontent:!c.hasOwnProperty("isRoot")||!c.isRoot()}};var l=((...e)=>{const t=(Ho||(Ho=Ar($o))).createApp(...e),{mount:n}=t;return t.mount=e=>{const r=function(e){return k(e)?document.querySelector(e):e}(e);if(!r)return;const o=t._component;C(o)||o.render||o.template||(o.template=r.innerHTML),r.innerHTML="";const i=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t})(Ji(Ji({},Mi),{},{components:{timer:Fi,vuMeter:Ii}}),{onRecording:function(){s.start()},onDone:function(){s.stop(),s.getWavURL().then((function(e){if(s.releaseMic(),i.$data.audioSrc=e,t.title&&t.title.length>0){var n=t.title.substr(0,20);i.$data.audioFilename=n.toLowerCase().replace(/ /g,"-")+".wav"}c.trigger("resize")})).catch((function(e){i.$data.state=Ci,console.error(t.l10n.statusCantCreateTheAudioFile,e)}))},onRetry:function(){s.releaseMic(),i.$data.audioSrc=""},onPaused:function(){s.stop()},onResize:function(){c.trigger("resize")}});this.on("resize",(function(){i.resize()})),s.on("recording",(function(){i.$data.state=Oi,r.updateMicFrequency()})),s.on("blocked",(function(){i.$data.state=wi})),s.on("insecure-not-allowed",(function(){i.$data.state=xi})),this.updateMicFrequency=function(){var e=this;i.$data.state===Oi?(i.$data.avgMicFrequency=s.getAverageMicFrequency(),setTimeout((function(){e.animateVUMeter=window.requestAnimationFrame((function(){e.updateMicFrequency()}))}),10)):window.cancelAnimationFrame(this.animateVUMeter)},this.attach=function(e){e.get(0).appendChild(o),i=l.mount(o)}}))},343:(e,t,n)=>{"use strict";var r=n(897),o=n(179),i=o(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"==typeof n&&i(e,".prototype.")>-1?o(n):n}},179:(e,t,n)=>{"use strict";var r=n(499),o=n(897),i=o("%Function.prototype.apply%"),s=o("%Function.prototype.call%"),a=o("%Reflect.apply%",!0)||r.call(s,i),c=o("%Object.getOwnPropertyDescriptor%",!0),l=o("%Object.defineProperty%",!0),u=o("%Math.max%");if(l)try{l({},"a",{value:1})}catch(e){l=null}e.exports=function(e){var t=a(r,s,arguments);return c&&l&&c(t,"length").configurable&&l(t,"length",{value:1+u(0,e.length-(arguments.length-1))}),t};var p=function(){return a(r,i,arguments)};l?l(e.exports,"apply",{value:p}):e.exports.apply=p},903:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(645),o=n.n(r),i=n(278),s=n.n(i)()(o());s.push([e.id,'.h5p-content:not(.using-mouse) .h5p-audio-recorder-view .button:focus{outline:0;box-shadow:.06em 0 .6em .1em #7bc1f9}.h5p-audio-recorder-view{font-size:1em;padding:.9em;text-align:center;font-family:Arial,"Open Sans",sans-serif}.h5p-audio-recorder-view [class^=fa-]{font-family:"H5PFontAwesome4"}.h5p-audio-recorder-view .fa-microphone{width:60%;height:60%;left:50%;top:50%;transform:translate(-50%, -50%);position:absolute;font-size:2.5em;border-radius:50%;background-color:#fff;line-height:2.5em}.h5p-audio-recorder-view .h5p-audio-recorder-player{box-sizing:border-box;margin:1.25em 1em 0 1em}.h5p-audio-recorder-view .h5p-audio-recorder-player audio{width:100%}.h5p-audio-recorder-view .title{color:#000;font-size:1.25em;margin-bottom:1em;line-height:1.5em}.h5p-audio-recorder-view .icon-download:before{font-family:"H5PFontIcons";content:""}.h5p-audio-recorder-view [role=status]{background-color:#f8f8f8;color:#777;padding:.6em}.h5p-audio-recorder-view [role=status].recording{background-color:#f9e5e6;color:#da5254}.h5p-audio-recorder-view [role=status].done{background-color:#e0f9e3;color:#20603d}.h5p-audio-recorder-view [role=status].blocked,.h5p-audio-recorder-view [role=status].unsupported,.h5p-audio-recorder-view [role=status].insecure-not-allowed,.h5p-audio-recorder-view [role=status].cant-create-audio-file{background-color:#db8b8b;color:#000}.h5p-audio-recorder-view .h5p-audio-recorder-download{font-size:1.2em;padding:2em}.h5p-audio-recorder-view .h5p-confirmation-dialog-popup{top:5em;width:35em;max-width:100%;min-width:0}.h5p-audio-recorder-view .button-row{margin-bottom:1em}.h5p-audio-recorder-view .button-row .button-row-double{width:100%}.h5p-audio-recorder-view .button-row .button-row-left{text-align:right;flex:1}.h5p-audio-recorder-view .button-row .button-row-right{text-align:left;flex:1}.h5p-audio-recorder-view .button{font-size:1.042em;font-family:"Open Sans",sans-serif;padding:.708em 1.25em;border-radius:2em;margin:0 .5em;border:0;display:inline-block;cursor:pointer;text-decoration:none;font-weight:600;white-space:nowrap}.h5p-audio-recorder-view .button [class^=fa-]{font-weight:400}.h5p-audio-recorder-view .button.small{font-size:.85em}.h5p-audio-recorder-view .button.done{background-color:#fff;color:#1f824c;border:2px solid #1f824c;box-sizing:border-box}.h5p-audio-recorder-view .button.done:hover{color:#29ab64;border-color:#29ab64}.h5p-audio-recorder-view .button.done:active{color:#155934;border-color:#155934}.h5p-audio-recorder-view .button.done[disabled],.h5p-audio-recorder-view .button.done[aria-disabled]{color:#8ae3b2;border-color:#8ae3b2}.h5p-audio-recorder-view .button.retry{background-color:#5e5e5e;color:#fff;border-color:#5e5e5e;border:2px solid #5e5e5e;box-sizing:border-box}.h5p-audio-recorder-view .button.retry:hover{background-color:#515151;border-color:#515151}.h5p-audio-recorder-view .button.retry:active{background-color:#454545;border-color:#454545}.h5p-audio-recorder-view .button.retry[disabled]{background-color:#c4c4c4;border-color:#c4c4c4}.h5p-audio-recorder-view .button.record{background-color:#d95354;color:#fff;border-color:#d95354;border:2px solid #d95354;box-sizing:border-box}.h5p-audio-recorder-view .button.record:hover{background-color:#d43e3f;border-color:#d43e3f}.h5p-audio-recorder-view .button.record:active{background-color:#cc2d2e;border-color:#cc2d2e}.h5p-audio-recorder-view .button.record[disabled]{background-color:#fefafa;border-color:#fefafa}.h5p-audio-recorder-view .button.download{background-color:#1f824c;color:#fff;border-color:#1f824c;border:2px solid #1f824c;box-sizing:border-box}.h5p-audio-recorder-view .button.download:hover{background-color:#1a6d40;border-color:#1a6d40}.h5p-audio-recorder-view .button.download:active{background-color:#155934;border-color:#155934}.h5p-audio-recorder-view .button.download[disabled]{background-color:#8ae3b2;border-color:#8ae3b2}.h5p-audio-recorder-view .button.pause{background-color:#fff;color:#d95354;border:2px solid #d95354;box-sizing:border-box}.h5p-audio-recorder-view .button.pause:hover{color:#e27d7e;border-color:#e27d7e}.h5p-audio-recorder-view .button.pause:active{color:#cc2d2e;border-color:#cc2d2e}.h5p-audio-recorder-view .button.pause[disabled],.h5p-audio-recorder-view .button.pause[aria-disabled]{color:#fefafa;border-color:#fefafa}.h5p-audio-recorder-view .button.small-screen .label{display:none}.h5p-audio-recorder-view .button:not(.small-screen) [class^=fa-]{margin-right:.4em}.h5p-audio-recorder-view .button:not(.small-screen).record,.h5p-audio-recorder-view .button:not(.small-screen).pause{min-width:8.2em}',""]);const a=s},822:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(645),o=n.n(r),i=n(278),s=n.n(i)()(o());s.push([e.id,'.audio-recorder-timer{font-family:"Open Sans",sans-serif;font-size:2.5em;font-weight:600;color:#8f8f8f;margin:1em 0}',""]);const a=s},68:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n(645),o=n.n(r),i=n(278),s=n.n(i),a=n(21),c=n.n(a),l=new URL(n(790),n.b),u=s()(o()),p=c()(l);u.push([e.id,".recording-indicator-wrapper{height:9.375em;width:9.375em;margin-left:auto;margin-right:auto;line-height:9.375em;color:#8e8e8e;position:relative;margin-bottom:1em}.h5p-audio-recorder-vu-meter{height:100%;width:100%;background-image:url("+p+");position:absolute;transform:scale(0.8)}.h5p-audio-recorder-vu-meter.hidden{display:none}",""]);const f=u},278:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(r)for(var a=0;a<this.length;a++){var c=this[a][0];null!=c&&(s[c]=!0)}for(var l=0;l<e.length;l++){var u=[].concat(e[l]);r&&s[u[0]]||(void 0!==i&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},21:e=>{"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},645:e=>{"use strict";e.exports=function(e){return e[1]}},827:e=>{"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function i(){i.init.call(this)}e.exports=i,e.exports.once=function(e,t){return new Promise((function(n,r){function o(n){e.removeListener(t,i),r(n)}function i(){"function"==typeof e.removeListener&&e.removeListener("error",o),n([].slice.call(arguments))}y(e,t,i,{once:!0}),"error"!==t&&function(e,t){"function"==typeof e.on&&y(e,"error",t,{once:!0})}(e,o)}))},i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var s=10;function a(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function l(e,t,n,r){var o,i,s,l;if(a(n),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),s=i[t]),void 0===s)s=i[t]=n,++e._eventsCount;else if("function"==typeof s?s=i[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),(o=c(e))>0&&s.length>o&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=s.length,l=u,console&&console.warn&&console.warn(l)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=u.bind(r);return o.listener=n,r.wrapFn=o,o}function f(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(o):h(o,o.length)}function d(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function y(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function o(i){r.once&&e.removeEventListener(t,o),n(i)}))}}Object.defineProperty(i,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");s=e}}),i.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},i.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},i.prototype.getMaxListeners=function(){return c(this)},i.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var o="error"===e,i=this._events;if(void 0!==i)o=o&&void 0===i.error;else if(!o)return!1;if(o){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)r(c,this,t);else{var l=c.length,u=h(c,l);for(n=0;n<l;++n)r(u[n],this,t)}return!0},i.prototype.addListener=function(e,t){return l(this,e,t,!1)},i.prototype.on=i.prototype.addListener,i.prototype.prependListener=function(e,t){return l(this,e,t,!0)},i.prototype.once=function(e,t){return a(t),this.on(e,p(this,e,t)),this},i.prototype.prependOnceListener=function(e,t){return a(t),this.prependListener(e,p(this,e,t)),this},i.prototype.removeListener=function(e,t){var n,r,o,i,s;if(a(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(o=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){s=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,o),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,s||t)}return this},i.prototype.off=i.prototype.removeListener,i.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var o,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(o=i[r])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},i.prototype.listeners=function(e){return f(this,e,!0)},i.prototype.rawListeners=function(e){return f(this,e,!1)},i.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):d.call(e,t)},i.prototype.listenerCount=d,i.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},270:(e,t,n)=>{"use strict";var r=n(916),o=Object.prototype.toString,i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){if(!r(t))throw new TypeError("iterator must be a function");var s;arguments.length>=3&&(s=n),"[object Array]"===o.call(e)?function(e,t,n){for(var r=0,o=e.length;r<o;r++)i.call(e,r)&&(null==n?t(e[r],r,e):t.call(n,e[r],r,e))}(e,t,s):"string"==typeof e?function(e,t,n){for(var r=0,o=e.length;r<o;r++)null==n?t(e.charAt(r),r,e):t.call(n,e.charAt(r),r,e)}(e,t,s):function(e,t,n){for(var r in e)i.call(e,r)&&(null==n?t(e[r],r,e):t.call(n,e[r],r,e))}(e,t,s)}},845:e=>{"use strict";var t=Array.prototype.slice,n=Object.prototype.toString;e.exports=function(e){var r=this;if("function"!=typeof r||"[object Function]"!==n.call(r))throw new TypeError("Function.prototype.bind called on incompatible "+r);for(var o,i=t.call(arguments,1),s=Math.max(0,r.length-i.length),a=[],c=0;c<s;c++)a.push("$"+c);if(o=Function("binder","return function ("+a.join(",")+"){ return binder.apply(this,arguments); }")((function(){if(this instanceof o){var n=r.apply(this,i.concat(t.call(arguments)));return Object(n)===n?n:this}return r.apply(e,i.concat(t.call(arguments)))})),r.prototype){var l=function(){};l.prototype=r.prototype,o.prototype=new l,l.prototype=null}return o}},499:(e,t,n)=>{"use strict";var r=n(845);e.exports=Function.prototype.bind||r},897:(e,t,n)=>{"use strict";var r,o=SyntaxError,i=Function,s=TypeError,a=function(e){try{return i('"use strict"; return ('+e+").constructor;")()}catch(e){}},c=Object.getOwnPropertyDescriptor;if(c)try{c({},"")}catch(e){c=null}var l=function(){throw new s},u=c?function(){try{return l}catch(e){try{return c(arguments,"callee").get}catch(e){return l}}}():l,p=n(923)(),f=Object.getPrototypeOf||function(e){return e.__proto__},d={},h="undefined"==typeof Uint8Array?r:f(Uint8Array),y={"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":p?f([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":d,"%AsyncGenerator%":d,"%AsyncGeneratorFunction%":d,"%AsyncIteratorPrototype%":d,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":d,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":p?f(f([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&p?f((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&p?f((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":p?f(""[Symbol.iterator]()):r,"%Symbol%":p?Symbol:r,"%SyntaxError%":o,"%ThrowTypeError%":u,"%TypedArray%":h,"%TypeError%":s,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet},m=function e(t){var n;if("%AsyncFunction%"===t)n=a("async function () {}");else if("%GeneratorFunction%"===t)n=a("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=a("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&(n=f(o.prototype))}return y[t]=n,n},g={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},v=n(499),b=n(66),_=v.call(Function.call,Array.prototype.concat),w=v.call(Function.apply,Array.prototype.splice),S=v.call(Function.call,String.prototype.replace),O=v.call(Function.call,String.prototype.slice),A=v.call(Function.call,RegExp.prototype.exec),E=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,x=/\\(\\)?/g,C=function(e,t){var n,r=e;if(b(g,r)&&(r="%"+(n=g[r])[0]+"%"),b(y,r)){var i=y[r];if(i===d&&(i=m(r)),void 0===i&&!t)throw new s("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new o("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new s("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new s('"allowMissing" argument must be a boolean');if(null===A(/^%?[^%]*%?$/g,e))throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=O(e,0,1),n=O(e,-1);if("%"===t&&"%"!==n)throw new o("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new o("invalid intrinsic syntax, expected opening `%`");var r=[];return S(e,E,(function(e,t,n,o){r[r.length]=n?S(o,x,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",i=C("%"+r+"%",t),a=i.name,l=i.value,u=!1,p=i.alias;p&&(r=p[0],w(n,_([0,1],p)));for(var f=1,d=!0;f<n.length;f+=1){var h=n[f],m=O(h,0,1),g=O(h,-1);if(('"'===m||"'"===m||"`"===m||'"'===g||"'"===g||"`"===g)&&m!==g)throw new o("property names with quotes must have matching quotes");if("constructor"!==h&&d||(u=!0),b(y,a="%"+(r+="."+h)+"%"))l=y[a];else if(null!=l){if(!(h in l)){if(!t)throw new s("base intrinsic for "+e+" exists, but the property is not available.");return}if(c&&f+1>=n.length){var v=c(l,h);l=(d=!!v)&&"get"in v&&!("originalValue"in v.get)?v.get:l[h]}else d=b(l,h),l=l[h];d&&!u&&(y[a]=l)}}return l}},923:(e,t,n)=>{"use strict";var r="undefined"!=typeof Symbol&&Symbol,o=n(361);e.exports=function(){return"function"==typeof r&&"function"==typeof Symbol&&"symbol"==typeof r("foo")&&"symbol"==typeof Symbol("bar")&&o()}},361:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(e,t);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},432:(e,t,n)=>{"use strict";var r=n(361);e.exports=function(){return r()&&!!Symbol.toStringTag}},66:(e,t,n)=>{"use strict";var r=n(499);e.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},198:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},456:(e,t,n)=>{"use strict";var r=n(432)(),o=n(343)("Object.prototype.toString"),i=function(e){return!(r&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===o(e)},s=function(e){return!!i(e)||null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==o(e)&&"[object Function]"===o(e.callee)},a=function(){return i(arguments)}();i.isLegacyArguments=s,e.exports=a?i:s},916:e=>{"use strict";var t,n,r=Function.prototype.toString,o="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof o&&"function"==typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw n}}),n={},o((function(){throw 42}),null,t)}catch(e){e!==n&&(o=null)}else o=null;var i=/^\s*class\b/,s=function(e){try{var t=r.call(e);return i.test(t)}catch(e){return!1}},a=Object.prototype.toString,c="function"==typeof Symbol&&!!Symbol.toStringTag,l="object"==typeof document&&void 0===document.all&&void 0!==document.all?document.all:{};e.exports=o?function(e){if(e===l)return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if("function"==typeof e&&!e.prototype)return!0;try{o(e,null,t)}catch(e){if(e!==n)return!1}return!s(e)}:function(e){if(e===l)return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if("function"==typeof e&&!e.prototype)return!0;if(c)return function(e){try{return!s(e)&&(r.call(e),!0)}catch(e){return!1}}(e);if(s(e))return!1;var t=a.call(e);return"[object Function]"===t||"[object GeneratorFunction]"===t}},940:(e,t,n)=>{"use strict";var r,o=Object.prototype.toString,i=Function.prototype.toString,s=/^\s*(?:function)?\*/,a=n(432)(),c=Object.getPrototypeOf;e.exports=function(e){if("function"!=typeof e)return!1;if(s.test(i.call(e)))return!0;if(!a)return"[object GeneratorFunction]"===o.call(e);if(!c)return!1;if(void 0===r){var t=function(){if(!a)return!1;try{return Function("return function*() {}")()}catch(e){}}();r=!!t&&c(t)}return c(e)===r}},116:(e,t,n)=>{"use strict";var r=n(270),o=n(847),i=n(343),s=i("Object.prototype.toString"),a=n(432)(),c="undefined"==typeof globalThis?n.g:globalThis,l=o(),u=i("Array.prototype.indexOf",!0)||function(e,t){for(var n=0;n<e.length;n+=1)if(e[n]===t)return n;return-1},p=i("String.prototype.slice"),f={},d=n(560),h=Object.getPrototypeOf;a&&d&&h&&r(l,(function(e){var t=new c[e];if(Symbol.toStringTag in t){var n=h(t),r=d(n,Symbol.toStringTag);if(!r){var o=h(n);r=d(o,Symbol.toStringTag)}f[e]=r.get}})),e.exports=function(e){if(!e||"object"!=typeof e)return!1;if(!a||!(Symbol.toStringTag in e)){var t=p(s(e),8,-1);return u(l,t)>-1}return!!d&&function(e){var t=!1;return r(f,(function(n,r){if(!t)try{t=n.call(e)===r}catch(e){}})),t}(e)}},887:(e,t,n)=>{var r=n(827).EventEmitter,o=n(877).inherits;e.exports=s;var i={};function s(e){r.call(this),this._total=0,this._start=null,this._startCount=0,e&&this.start()}function a(){return(new Date).getTime()}o(s,r),s.get=function(e){return i[e]||(i[e]=new s),i[e]},s.destroy=function(e){return!!i[e]&&delete i[e]},s.prototype.time=function(){return this._total+this.timeFromStart()},s.prototype.emitTime=function(){var e=this.time();return this.emit("time",e),e},s.prototype.timeFromStart=function(){return this.isStarted()?a()-this._start:0},s.prototype.isStarted=function(){return!this.isStopped()},s.prototype.isStopped=function(){return null===this._start},s.prototype.start=function(){return++this._startCount,!!this.isStopped()&&(this._start=a(),this.emit("start"),!0)},s.prototype.stop=function(){return!!this.isStarted()&&(this._total+=this.timeFromStart(),this._start=null,this._stopCount=0,this.emit("stop"),!0)},s.prototype.stopParallel=function(){return!(!this.isStarted()||(--this._startCount,0!==this._startCount))&&this.stop()},s.prototype.toggle=function(){return this.start()||this.stop()},s.prototype.toString=function(){return this.time()+"ms"},s.prototype.valueOf=function(){return this.time()}},171:e=>{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},28:(e,t,n)=>{"use strict";var r=n(456),o=n(940),i=n(59),s=n(116);function a(e){return e.call.bind(e)}var c="undefined"!=typeof BigInt,l="undefined"!=typeof Symbol,u=a(Object.prototype.toString),p=a(Number.prototype.valueOf),f=a(String.prototype.valueOf),d=a(Boolean.prototype.valueOf);if(c)var h=a(BigInt.prototype.valueOf);if(l)var y=a(Symbol.prototype.valueOf);function m(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function g(e){return"[object Map]"===u(e)}function v(e){return"[object Set]"===u(e)}function b(e){return"[object WeakMap]"===u(e)}function _(e){return"[object WeakSet]"===u(e)}function w(e){return"[object ArrayBuffer]"===u(e)}function S(e){return"undefined"!=typeof ArrayBuffer&&(w.working?w(e):e instanceof ArrayBuffer)}function O(e){return"[object DataView]"===u(e)}function A(e){return"undefined"!=typeof DataView&&(O.working?O(e):e instanceof DataView)}t.isArgumentsObject=r,t.isGeneratorFunction=o,t.isTypedArray=s,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):s(e)||A(e)},t.isUint8Array=function(e){return"Uint8Array"===i(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===i(e)},t.isUint16Array=function(e){return"Uint16Array"===i(e)},t.isUint32Array=function(e){return"Uint32Array"===i(e)},t.isInt8Array=function(e){return"Int8Array"===i(e)},t.isInt16Array=function(e){return"Int16Array"===i(e)},t.isInt32Array=function(e){return"Int32Array"===i(e)},t.isFloat32Array=function(e){return"Float32Array"===i(e)},t.isFloat64Array=function(e){return"Float64Array"===i(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===i(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===i(e)},g.working="undefined"!=typeof Map&&g(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(g.working?g(e):e instanceof Map)},v.working="undefined"!=typeof Set&&v(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(v.working?v(e):e instanceof Set)},b.working="undefined"!=typeof WeakMap&&b(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(b.working?b(e):e instanceof WeakMap)},_.working="undefined"!=typeof WeakSet&&_(new WeakSet),t.isWeakSet=function(e){return _(e)},w.working="undefined"!=typeof ArrayBuffer&&w(new ArrayBuffer),t.isArrayBuffer=S,O.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&O(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=A;var E="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function x(e){return"[object SharedArrayBuffer]"===u(e)}function C(e){return void 0!==E&&(void 0===x.working&&(x.working=x(new E)),x.working?x(e):e instanceof E)}function k(e){return m(e,p)}function j(e){return m(e,f)}function P(e){return m(e,d)}function M(e){return c&&m(e,h)}function N(e){return l&&m(e,y)}t.isSharedArrayBuffer=C,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===u(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===u(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===u(e)},t.isGeneratorObject=function(e){return"[object Generator]"===u(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===u(e)},t.isNumberObject=k,t.isStringObject=j,t.isBooleanObject=P,t.isBigIntObject=M,t.isSymbolObject=N,t.isBoxedPrimitive=function(e){return k(e)||j(e)||P(e)||M(e)||N(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(S(e)||C(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},877:(e,t,n)=>{var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++)n[t[r]]=Object.getOwnPropertyDescriptor(e,t[r]);return n},o=/%[sdj%]/g;t.format=function(e){if(!v(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(c(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,s=String(e).replace(o,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),a=r[n];n<i;a=r[++n])m(a)||!w(a)?s+=" "+a:s+=" "+c(a);return s},t.deprecate=function(e,n){if("undefined"!=typeof process&&!0===process.noDeprecation)return e;if("undefined"==typeof process)return function(){return t.deprecate(e,n).apply(this,arguments)};var r=!1;return function(){if(!r){if(process.throwDeprecation)throw new Error(n);process.traceDeprecation?console.trace(n):console.error(n),r=!0}return e.apply(this,arguments)}};var i={},s=/^$/;if({LESSOPEN:"| /usr/bin/lesspipe %s",USER:"fnoks",LC_TIME:"nb_NO.UTF-8",npm_config_user_agent:"npm/9.6.7 node/v18.17.1 linux x64 workspaces/false",SSH_AGENT_PID:"154431",XDG_SESSION_TYPE:"x11",npm_node_execpath:"/home/fnoks/.nvm/versions/node/v18.17.1/bin/node",SHLVL:"2",npm_config_noproxy:"",HOME:"/home/fnoks",OLDPWD:"/home/fnoks/h5p-libs/h5p-editor-branching-scenario",DESKTOP_SESSION:"ubuntu",NVM_BIN:"/home/fnoks/.nvm/versions/node/v18.17.1/bin",npm_package_json:"/home/fnoks/projects/libs/h5p-audio-recorder/package.json",NVM_INC:"/home/fnoks/.nvm/versions/node/v18.17.1/include/node",GNOME_SHELL_SESSION_MODE:"ubuntu",GTK_MODULES:"gail:atk-bridge",ZENDESK_EMAIL:"pal.jorgensen@h5p.group",LC_MONETARY:"nb_NO.UTF-8",npm_config_userconfig:"/home/fnoks/.npmrc",npm_config_local_prefix:"/home/fnoks/projects/libs/h5p-audio-recorder",SYSTEMD_EXEC_PID:"10063",ZENDESK_SUBDOMAIN:"h5p",DBUS_SESSION_BUS_ADDRESS:"unix:path=/run/user/1000/bus",COLORTERM:"truecolor",COLOR:"1",NVM_DIR:"/home/fnoks/.nvm",npm_config_metrics_registry:"https://registry.npmjs.org/",GTK_IM_MODULE:"ibus",ZIPOPT:"-D",LOGNAME:"fnoks",_:"/home/fnoks/.nvm/versions/node/v18.17.1/bin/npm",npm_config_prefix:"/home/fnoks/.nvm/versions/node/v18.17.1",XDG_SESSION_CLASS:"user",USERNAME:"fnoks",TERM:"xterm-256color",npm_config_cache:"/home/fnoks/.npm",GNOME_DESKTOP_SESSION_ID:"this-is-deprecated",WINDOWPATH:"2",npm_config_node_gyp:"/home/fnoks/.nvm/versions/node/v18.17.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",PATH:"/home/fnoks/projects/libs/h5p-audio-recorder/node_modules/.bin:/home/fnoks/projects/libs/node_modules/.bin:/home/fnoks/projects/node_modules/.bin:/home/fnoks/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/fnoks/.nvm/versions/node/v18.17.1/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/fnoks/.nvm/versions/node/v18.17.1/bin:/home/fnoks/.local/bin:/home/fnoks/projects/scripts:/home/fnoks/projects/h5pcom/h5pcom-tools:/usr/local/bin:/home/fnoks/.ebcli-virtual-env/executables:/home/fnoks/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin",SESSION_MANAGER:"local/fnoks-XPS-15-9520:@/tmp/.ICE-unix/3977,unix/fnoks-XPS-15-9520:/tmp/.ICE-unix/3977",NODE:"/home/fnoks/.nvm/versions/node/v18.17.1/bin/node",npm_package_name:"h5p-audio-recorder",XDG_MENU_PREFIX:"gnome-",LC_ADDRESS:"nb_NO.UTF-8",GNOME_TERMINAL_SCREEN:"/org/gnome/Terminal/screen/a2fe03f9_717f_4559_b315_bfa81a9f6c81",XDG_RUNTIME_DIR:"/run/user/1000",DISPLAY:":1",LANG:"en_US.UTF-8",XDG_CURRENT_DESKTOP:"ubuntu:GNOME",LC_TELEPHONE:"nb_NO.UTF-8",XMODIFIERS:"@im=ibus",XDG_SESSION_DESKTOP:"ubuntu",XAUTHORITY:"/run/user/1000/gdm/Xauthority",LS_COLORS:"rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:",GNOME_TERMINAL_SERVICE:":1.180",npm_lifecycle_script:"webpack --mode=production",SSH_AGENT_LAUNCHER:"gnome-keyring",SSH_AUTH_SOCK:"/tmp/ssh-XXXXXXnUlj1m/agent.154430",SHELL:"/bin/bash",LC_NAME:"nb_NO.UTF-8",npm_package_version:"1.0.0",npm_lifecycle_event:"build",QT_ACCESSIBILITY:"1",AWS_USERNAME:"pal.jorgensen",GDMSESSION:"ubuntu",LESSCLOSE:"/usr/bin/lesspipe %s %s",LC_MEASUREMENT:"nb_NO.UTF-8",GPG_AGENT_INFO:"/run/user/1000/gnupg/S.gpg-agent:0:1",LC_IDENTIFICATION:"nb_NO.UTF-8",QT_IM_MODULE:"ibus",npm_config_globalconfig:"/home/fnoks/.nvm/versions/node/v18.17.1/etc/npmrc",npm_config_init_module:"/home/fnoks/.npm-init.js",PWD:"/home/fnoks/h5p-libs/h5p-audio-recorder",npm_execpath:"/home/fnoks/.nvm/versions/node/v18.17.1/lib/node_modules/npm/bin/npm-cli.js",XDG_CONFIG_DIRS:"/etc/xdg/xdg-ubuntu:/etc/xdg",NVM_CD_FLAGS:"",XDG_DATA_DIRS:"/usr/share/ubuntu:/usr/share/gnome:/home/fnoks/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop",npm_config_global_prefix:"/home/fnoks/.nvm/versions/node/v18.17.1",ZENDESK_API_TOKEN:"3maeHcp7Bh5hZIWqqcIrNSryhuO7oSbaK4xcemQ4",LC_NUMERIC:"nb_NO.UTF-8",npm_command:"run-script",LC_PAPER:"nb_NO.UTF-8",VTE_VERSION:"6800",INIT_CWD:"/home/fnoks/projects/libs/h5p-audio-recorder",EDITOR:"vi"}.NODE_DEBUG){var a={LESSOPEN:"| /usr/bin/lesspipe %s",USER:"fnoks",LC_TIME:"nb_NO.UTF-8",npm_config_user_agent:"npm/9.6.7 node/v18.17.1 linux x64 workspaces/false",SSH_AGENT_PID:"154431",XDG_SESSION_TYPE:"x11",npm_node_execpath:"/home/fnoks/.nvm/versions/node/v18.17.1/bin/node",SHLVL:"2",npm_config_noproxy:"",HOME:"/home/fnoks",OLDPWD:"/home/fnoks/h5p-libs/h5p-editor-branching-scenario",DESKTOP_SESSION:"ubuntu",NVM_BIN:"/home/fnoks/.nvm/versions/node/v18.17.1/bin",npm_package_json:"/home/fnoks/projects/libs/h5p-audio-recorder/package.json",NVM_INC:"/home/fnoks/.nvm/versions/node/v18.17.1/include/node",GNOME_SHELL_SESSION_MODE:"ubuntu",GTK_MODULES:"gail:atk-bridge",ZENDESK_EMAIL:"pal.jorgensen@h5p.group",LC_MONETARY:"nb_NO.UTF-8",npm_config_userconfig:"/home/fnoks/.npmrc",npm_config_local_prefix:"/home/fnoks/projects/libs/h5p-audio-recorder",SYSTEMD_EXEC_PID:"10063",ZENDESK_SUBDOMAIN:"h5p",DBUS_SESSION_BUS_ADDRESS:"unix:path=/run/user/1000/bus",COLORTERM:"truecolor",COLOR:"1",NVM_DIR:"/home/fnoks/.nvm",npm_config_metrics_registry:"https://registry.npmjs.org/",GTK_IM_MODULE:"ibus",ZIPOPT:"-D",LOGNAME:"fnoks",_:"/home/fnoks/.nvm/versions/node/v18.17.1/bin/npm",npm_config_prefix:"/home/fnoks/.nvm/versions/node/v18.17.1",XDG_SESSION_CLASS:"user",USERNAME:"fnoks",TERM:"xterm-256color",npm_config_cache:"/home/fnoks/.npm",GNOME_DESKTOP_SESSION_ID:"this-is-deprecated",WINDOWPATH:"2",npm_config_node_gyp:"/home/fnoks/.nvm/versions/node/v18.17.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",PATH:"/home/fnoks/projects/libs/h5p-audio-recorder/node_modules/.bin:/home/fnoks/projects/libs/node_modules/.bin:/home/fnoks/projects/node_modules/.bin:/home/fnoks/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/fnoks/.nvm/versions/node/v18.17.1/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/fnoks/.nvm/versions/node/v18.17.1/bin:/home/fnoks/.local/bin:/home/fnoks/projects/scripts:/home/fnoks/projects/h5pcom/h5pcom-tools:/usr/local/bin:/home/fnoks/.ebcli-virtual-env/executables:/home/fnoks/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin",SESSION_MANAGER:"local/fnoks-XPS-15-9520:@/tmp/.ICE-unix/3977,unix/fnoks-XPS-15-9520:/tmp/.ICE-unix/3977",NODE:"/home/fnoks/.nvm/versions/node/v18.17.1/bin/node",npm_package_name:"h5p-audio-recorder",XDG_MENU_PREFIX:"gnome-",LC_ADDRESS:"nb_NO.UTF-8",GNOME_TERMINAL_SCREEN:"/org/gnome/Terminal/screen/a2fe03f9_717f_4559_b315_bfa81a9f6c81",XDG_RUNTIME_DIR:"/run/user/1000",DISPLAY:":1",LANG:"en_US.UTF-8",XDG_CURRENT_DESKTOP:"ubuntu:GNOME",LC_TELEPHONE:"nb_NO.UTF-8",XMODIFIERS:"@im=ibus",XDG_SESSION_DESKTOP:"ubuntu",XAUTHORITY:"/run/user/1000/gdm/Xauthority",LS_COLORS:"rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:",GNOME_TERMINAL_SERVICE:":1.180",npm_lifecycle_script:"webpack --mode=production",SSH_AGENT_LAUNCHER:"gnome-keyring",SSH_AUTH_SOCK:"/tmp/ssh-XXXXXXnUlj1m/agent.154430",SHELL:"/bin/bash",LC_NAME:"nb_NO.UTF-8",npm_package_version:"1.0.0",npm_lifecycle_event:"build",QT_ACCESSIBILITY:"1",AWS_USERNAME:"pal.jorgensen",GDMSESSION:"ubuntu",LESSCLOSE:"/usr/bin/lesspipe %s %s",LC_MEASUREMENT:"nb_NO.UTF-8",GPG_AGENT_INFO:"/run/user/1000/gnupg/S.gpg-agent:0:1",LC_IDENTIFICATION:"nb_NO.UTF-8",QT_IM_MODULE:"ibus",npm_config_globalconfig:"/home/fnoks/.nvm/versions/node/v18.17.1/etc/npmrc",npm_config_init_module:"/home/fnoks/.npm-init.js",PWD:"/home/fnoks/h5p-libs/h5p-audio-recorder",npm_execpath:"/home/fnoks/.nvm/versions/node/v18.17.1/lib/node_modules/npm/bin/npm-cli.js",XDG_CONFIG_DIRS:"/etc/xdg/xdg-ubuntu:/etc/xdg",NVM_CD_FLAGS:"",XDG_DATA_DIRS:"/usr/share/ubuntu:/usr/share/gnome:/home/fnoks/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop",npm_config_global_prefix:"/home/fnoks/.nvm/versions/node/v18.17.1",ZENDESK_API_TOKEN:"3maeHcp7Bh5hZIWqqcIrNSryhuO7oSbaK4xcemQ4",LC_NUMERIC:"nb_NO.UTF-8",npm_command:"run-script",LC_PAPER:"nb_NO.UTF-8",VTE_VERSION:"6800",INIT_CWD:"/home/fnoks/projects/libs/h5p-audio-recorder",EDITOR:"vi"}.NODE_DEBUG;a=a.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),s=new RegExp("^"+a+"$","i")}function c(e,n){var r={seen:[],stylize:u};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),y(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=l),p(r,e,r.depth)}function l(e,t){var n=c.styles[t];return n?"["+c.colors[n][0]+"m"+e+"["+c.colors[n][1]+"m":e}function u(e,t){return e}function p(e,n,r){if(e.customInspect&&n&&A(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=p(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return g(t)?e.stylize(""+t,"number"):y(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}(e,n);if(i)return i;var s=Object.keys(n),a=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(n)),O(n)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return f(n);if(0===s.length){if(A(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(_(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(S(n))return e.stylize(Date.prototype.toString.call(n),"date");if(O(n))return f(n)}var l,u="",w=!1,E=["{","}"];return h(n)&&(w=!0,E=["[","]"]),A(n)&&(u=" [Function"+(n.name?": "+n.name:"")+"]"),_(n)&&(u=" "+RegExp.prototype.toString.call(n)),S(n)&&(u=" "+Date.prototype.toUTCString.call(n)),O(n)&&(u=" "+f(n)),0!==s.length||w&&0!=n.length?r<0?_(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),l=w?function(e,t,n,r,o){for(var i=[],s=0,a=t.length;s<a;++s)k(t,String(s))?i.push(d(e,t,n,r,String(s),!0)):i.push("");return o.forEach((function(o){o.match(/^\d+$/)||i.push(d(e,t,n,r,o,!0))})),i}(e,n,r,a,s):s.map((function(t){return d(e,n,r,a,t,w)})),e.seen.pop(),function(e,t,n){return e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n  ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(l,u,E)):E[0]+u+E[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,n,r,o,i){var s,a,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?a=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(a=e.stylize("[Setter]","special")),k(r,o)||(s="["+o+"]"),a||(e.seen.indexOf(c.value)<0?(a=m(n)?p(e,c.value,null):p(e,c.value,n-1)).indexOf("\n")>-1&&(a=i?a.split("\n").map((function(e){return"  "+e})).join("\n").substr(2):"\n"+a.split("\n").map((function(e){return"   "+e})).join("\n")):a=e.stylize("[Circular]","special")),b(s)){if(i&&o.match(/^\d+$/))return a;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+a}function h(e){return Array.isArray(e)}function y(e){return"boolean"==typeof e}function m(e){return null===e}function g(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function _(e){return w(e)&&"[object RegExp]"===E(e)}function w(e){return"object"==typeof e&&null!==e}function S(e){return w(e)&&"[object Date]"===E(e)}function O(e){return w(e)&&("[object Error]"===E(e)||e instanceof Error)}function A(e){return"function"==typeof e}function E(e){return Object.prototype.toString.call(e)}function x(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!i[e])if(s.test(e)){var n=process.pid;i[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,n,r)}}else i[e]=function(){};return i[e]},t.inspect=c,c.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},c.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=n(28),t.isArray=h,t.isBoolean=y,t.isNull=m,t.isNullOrUndefined=function(e){return null==e},t.isNumber=g,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=_,t.types.isRegExp=_,t.isObject=w,t.isDate=S,t.types.isDate=S,t.isError=O,t.types.isNativeError=O,t.isFunction=A,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(171);var C=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function k(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,n;console.log("%s - %s",(n=[x((e=new Date).getHours()),x(e.getMinutes()),x(e.getSeconds())].join(":"),[e.getDate(),C[e.getMonth()],n].join(" ")),t.format.apply(t,arguments))},t.inherits=n(198),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var j="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function P(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(j&&e[j]){var t;if("function"!=typeof(t=e[j]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,j,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i<arguments.length;i++)o.push(arguments[i]);o.push((function(e,r){e?n(e):t(r)}));try{e.apply(this,o)}catch(e){n(e)}return r}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),j&&Object.defineProperty(t,j,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,r(e))},t.promisify.custom=j,t.callbackify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');function t(){for(var t=[],n=0;n<arguments.length;n++)t.push(arguments[n]);var r=t.pop();if("function"!=typeof r)throw new TypeError("The last argument must be of type Function");var o=this,i=function(){return r.apply(o,arguments)};e.apply(this,t).then((function(e){process.nextTick(i.bind(null,null,e))}),(function(e){process.nextTick(P.bind(null,e,i))}))}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,r(e)),t}},890:(e,t)=>{"use strict";t.A=(e,t)=>{const n=e.__vccOpts||e;for(const[e,r]of t)n[e]=r;return n}},668:(e,t,n)=>{var r=n(903);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals),(0,n(642).A)("5dcc9be9",r,!1,{})},813:(e,t,n)=>{var r=n(822);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals),(0,n(642).A)("28c669e3",r,!1,{})},447:(e,t,n)=>{var r=n(68);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals),(0,n(642).A)("4ca8745e",r,!1,{})},642:(e,t,n)=>{"use strict";function r(e,t){for(var n=[],r={},o=0;o<t.length;o++){var i=t[o],s=i[0],a={id:e+":"+o,css:i[1],media:i[2],sourceMap:i[3]};r[s]?r[s].parts.push(a):n.push(r[s]={id:s,parts:[a]})}return n}n.d(t,{A:()=>h});var o="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!o)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var i={},s=o&&(document.head||document.getElementsByTagName("head")[0]),a=null,c=0,l=!1,u=function(){},p=null,f="data-vue-ssr-id",d="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function h(e,t,n,o){l=n,p=o||{};var s=r(e,t);return y(s),function(t){for(var n=[],o=0;o<s.length;o++){var a=s[o];(c=i[a.id]).refs--,n.push(c)}for(t?y(s=r(e,t)):s=[],o=0;o<n.length;o++){var c;if(0===(c=n[o]).refs){for(var l=0;l<c.parts.length;l++)c.parts[l]();delete i[c.id]}}}}function y(e){for(var t=0;t<e.length;t++){var n=e[t],r=i[n.id];if(r){r.refs++;for(var o=0;o<r.parts.length;o++)r.parts[o](n.parts[o]);for(;o<n.parts.length;o++)r.parts.push(g(n.parts[o]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{var s=[];for(o=0;o<n.parts.length;o++)s.push(g(n.parts[o]));i[n.id]={id:n.id,refs:1,parts:s}}}}function m(){var e=document.createElement("style");return e.type="text/css",s.appendChild(e),e}function g(e){var t,n,r=document.querySelector("style["+f+'~="'+e.id+'"]');if(r){if(l)return u;r.parentNode.removeChild(r)}if(d){var o=c++;r=a||(a=m()),t=_.bind(null,r,o,!1),n=_.bind(null,r,o,!0)}else r=m(),t=w.bind(null,r),n=function(){r.parentNode.removeChild(r)};return t(e),function(r){if(r){if(r.css===e.css&&r.media===e.media&&r.sourceMap===e.sourceMap)return;t(e=r)}else n()}}var v,b=(v=[],function(e,t){return v[e]=t,v.filter(Boolean).join("\n")});function _(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=b(t,o);else{var i=document.createTextNode(o),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(i,s[t]):e.appendChild(i)}}function w(e,t){var n=t.css,r=t.media,o=t.sourceMap;if(r&&e.setAttribute("media",r),p.ssrId&&e.setAttribute(f,t.id),o&&(n+="\n/*# sourceURL="+o.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}},59:(e,t,n)=>{"use strict";var r=n(270),o=n(847),i=n(343),s=i("Object.prototype.toString"),a=n(432)(),c="undefined"==typeof globalThis?n.g:globalThis,l=o(),u=i("String.prototype.slice"),p={},f=n(560),d=Object.getPrototypeOf;a&&f&&d&&r(l,(function(e){if("function"==typeof c[e]){var t=new c[e];if(Symbol.toStringTag in t){var n=d(t),r=f(n,Symbol.toStringTag);if(!r){var o=d(n);r=f(o,Symbol.toStringTag)}p[e]=r.get}}}));var h=n(116);e.exports=function(e){return!!h(e)&&(a&&Symbol.toStringTag in e?function(e){var t=!1;return r(p,(function(n,r){if(!t)try{var o=n.call(e);o===r&&(t=o)}catch(e){}})),t}(e):u(s(e),8,-1))}},790:e=>{"use strict";e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMC4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxMDUuNCAxMDUuNCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTA1LjQgMTA1LjQ7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiNFREFCQjA7fQ0KPC9zdHlsZT4NCjx0aXRsZT5BcnRib2FyZCAxPC90aXRsZT4NCjxnPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik01Mi43LDBDMjMuNiwwLDAsMjMuNiwwLDUyLjdzMjMuNiw1Mi43LDUyLjcsNTIuN2MyOS4xLDAsNTIuNy0yMy42LDUyLjctNTIuN0MxMDUuNCwyMy42LDgxLjgsMCw1Mi43LDB6DQoJCSBNNTIuNywxMDUuMmMtMjksMC01Mi41LTIzLjUtNTIuNS01Mi41UzIzLjcsMC4yLDUyLjcsMC4yczUyLjUsMjMuNSw1Mi41LDUyLjVDMTA1LjIsODEuNyw4MS43LDEwNS4yLDUyLjcsMTA1LjJ6Ii8+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTUyLjcsMTUuMkMzMiwxNS4yLDE1LjIsMzIsMTUuMiw1Mi43UzMyLDkwLjIsNTIuNyw5MC4yczM3LjUtMTYuOCwzNy41LTM3LjVjMCwwLDAsMCwwLDANCgkJQzkwLjEsMzIsNzMuNCwxNS4yLDUyLjcsMTUuMnoiLz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTIuNyw3LjhDMjcuOSw3LjgsNy44LDI3LjksNy44LDUyLjdzMjAuMSw0NC45LDQ0LjksNDQuOWMyNC44LDAsNDQuOS0yMC4xLDQ0LjktNDQuOQ0KCQlDOTcuNiwyNy45LDc3LjUsNy44LDUyLjcsNy44eiBNNTIuNyw5Ni42Yy0yNC4yLDAtNDMuOS0xOS43LTQzLjktNDMuOWMwLTI0LjIsMTkuNy00My45LDQzLjktNDMuOWMyNC4yLDAsNDMuOSwxOS42LDQzLjksNDMuOQ0KCQlDOTYuNiw3Ni45LDc2LjksOTYuNiw1Mi43LDk2LjZ6Ii8+DQo8L2c+DQo8L3N2Zz4NCg=="},847:(e,t,n)=>{"use strict";var r=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],o="undefined"==typeof globalThis?n.g:globalThis;e.exports=function(){for(var e=[],t=0;t<r.length;t++)"function"==typeof o[r[t]]&&(e[e.length]=r[t]);return e}},560:(e,t,n)=>{"use strict";var r=n(897)("%Object.getOwnPropertyDescriptor%",!0);if(r)try{r([],"length")}catch(e){r=null}e.exports=r}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={id:r,exports:{}};return e[r](i,i.exports,n),i.exports}n.m=e,n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.b=document.baseURI||self.location.href,H5P=H5P||{},H5P.AudioRecorder=n(2).A})();;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);
;/*! For license information please see h5p-interactive-book.js.LICENSE.txt */
(()=>{var t={880:t=>{"use strict";t.exports={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]}},250:(t,e,s)=>{var a=s(880),r=s(852),i=Object.hasOwnProperty,n=Object.create(null);for(var o in a)i.call(a,o)&&(n[a[o]]=o);var c=t.exports={to:{},get:{}};function h(t,e,s){return Math.min(Math.max(e,t),s)}function l(t){var e=Math.round(t).toString(16).toUpperCase();return e.length<2?"0"+e:e}c.get=function(t){var e,s;switch(t.substring(0,3).toLowerCase()){case"hsl":e=c.get.hsl(t),s="hsl";break;case"hwb":e=c.get.hwb(t),s="hwb";break;default:e=c.get.rgb(t),s="rgb"}return e?{model:s,value:e}:null},c.get.rgb=function(t){if(!t)return null;var e,s,r,n=[0,0,0,1];if(e=t.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(r=e[2],e=e[1],s=0;s<3;s++){var o=2*s;n[s]=parseInt(e.slice(o,o+2),16)}r&&(n[3]=parseInt(r,16)/255)}else if(e=t.match(/^#([a-f0-9]{3,4})$/i)){for(r=(e=e[1])[3],s=0;s<3;s++)n[s]=parseInt(e[s]+e[s],16);r&&(n[3]=parseInt(r+r,16)/255)}else if(e=t.match(/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)){for(s=0;s<3;s++)n[s]=parseInt(e[s+1],0);e[4]&&(e[5]?n[3]=.01*parseFloat(e[4]):n[3]=parseFloat(e[4]))}else{if(!(e=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)))return(e=t.match(/^(\w+)$/))?"transparent"===e[1]?[0,0,0,0]:i.call(a,e[1])?((n=a[e[1]])[3]=1,n):null:null;for(s=0;s<3;s++)n[s]=Math.round(2.55*parseFloat(e[s+1]));e[4]&&(e[5]?n[3]=.01*parseFloat(e[4]):n[3]=parseFloat(e[4]))}for(s=0;s<3;s++)n[s]=h(n[s],0,255);return n[3]=h(n[3],0,1),n},c.get.hsl=function(t){if(!t)return null;var e=t.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(e){var s=parseFloat(e[4]);return[(parseFloat(e[1])%360+360)%360,h(parseFloat(e[2]),0,100),h(parseFloat(e[3]),0,100),h(isNaN(s)?1:s,0,1)]}return null},c.get.hwb=function(t){if(!t)return null;var e=t.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(e){var s=parseFloat(e[4]);return[(parseFloat(e[1])%360+360)%360,h(parseFloat(e[2]),0,100),h(parseFloat(e[3]),0,100),h(isNaN(s)?1:s,0,1)]}return null},c.to.hex=function(){var t=r(arguments);return"#"+l(t[0])+l(t[1])+l(t[2])+(t[3]<1?l(Math.round(255*t[3])):"")},c.to.rgb=function(){var t=r(arguments);return t.length<4||1===t[3]?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"},c.to.rgb.percent=function(){var t=r(arguments),e=Math.round(t[0]/255*100),s=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return t.length<4||1===t[3]?"rgb("+e+"%, "+s+"%, "+a+"%)":"rgba("+e+"%, "+s+"%, "+a+"%, "+t[3]+")"},c.to.hsl=function(){var t=r(arguments);return t.length<4||1===t[3]?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"},c.to.hwb=function(){var t=r(arguments),e="";return t.length>=4&&1!==t[3]&&(e=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+e+")"},c.to.keyword=function(t){return n[t.slice(0,3)]}},308:(t,e,s)=>{const a=s(250),r=s(349),i=["keyword","gray","hex"],n={};for(const t of Object.keys(r))n[[...r[t].labels].sort().join("")]=t;const o={};function c(t,e){if(!(this instanceof c))return new c(t,e);if(e&&e in i&&(e=null),e&&!(e in r))throw new Error("Unknown model: "+e);let s,h;if(null==t)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof c)this.model=t.model,this.color=[...t.color],this.valpha=t.valpha;else if("string"==typeof t){const e=a.get(t);if(null===e)throw new Error("Unable to parse color from string: "+t);this.model=e.model,h=r[this.model].channels,this.color=e.value.slice(0,h),this.valpha="number"==typeof e.value[h]?e.value[h]:1}else if(t.length>0){this.model=e||"rgb",h=r[this.model].channels;const s=Array.prototype.slice.call(t,0,h);this.color=d(s,h),this.valpha="number"==typeof t[h]?t[h]:1}else if("number"==typeof t)this.model="rgb",this.color=[t>>16&255,t>>8&255,255&t],this.valpha=1;else{this.valpha=1;const e=Object.keys(t);"alpha"in t&&(e.splice(e.indexOf("alpha"),1),this.valpha="number"==typeof t.alpha?t.alpha:0);const a=e.sort().join("");if(!(a in n))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=n[a];const{labels:i}=r[this.model],o=[];for(s=0;s<i.length;s++)o.push(t[i[s]]);this.color=d(o)}if(o[this.model])for(h=r[this.model].channels,s=0;s<h;s++){const t=o[this.model][s];t&&(this.color[s]=t(this.color[s]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}c.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(t){let e=this.model in a.to?this:this.rgb();e=e.round("number"==typeof t?t:1);const s=1===e.valpha?e.color:[...e.color,this.valpha];return a.to[e.model](s)},percentString(t){const e=this.rgb().round("number"==typeof t?t:1),s=1===e.valpha?e.color:[...e.color,this.valpha];return a.to.rgb.percent(s)},array(){return 1===this.valpha?[...this.color]:[...this.color,this.valpha]},object(){const t={},{channels:e}=r[this.model],{labels:s}=r[this.model];for(let a=0;a<e;a++)t[s[a]]=this.color[a];return 1!==this.valpha&&(t.alpha=this.valpha),t},unitArray(){const t=this.rgb().color;return t[0]/=255,t[1]/=255,t[2]/=255,1!==this.valpha&&t.push(this.valpha),t},unitObject(){const t=this.rgb().object();return t.r/=255,t.g/=255,t.b/=255,1!==this.valpha&&(t.alpha=this.valpha),t},round(t){return t=Math.max(t||0,0),new c([...this.color.map(h(t)),this.valpha],this.model)},alpha(t){return void 0!==t?new c([...this.color,Math.max(0,Math.min(1,t))],this.model):this.valpha},red:l("rgb",0,p(255)),green:l("rgb",1,p(255)),blue:l("rgb",2,p(255)),hue:l(["hsl","hsv","hsl","hwb","hcg"],0,(t=>(t%360+360)%360)),saturationl:l("hsl",1,p(100)),lightness:l("hsl",2,p(100)),saturationv:l("hsv",1,p(100)),value:l("hsv",2,p(100)),chroma:l("hcg",1,p(100)),gray:l("hcg",2,p(100)),white:l("hwb",1,p(100)),wblack:l("hwb",2,p(100)),cyan:l("cmyk",0,p(100)),magenta:l("cmyk",1,p(100)),yellow:l("cmyk",2,p(100)),black:l("cmyk",3,p(100)),x:l("xyz",0,p(95.047)),y:l("xyz",1,p(100)),z:l("xyz",2,p(108.833)),l:l("lab",0,p(100)),a:l("lab",1),b:l("lab",2),keyword(t){return void 0!==t?new c(t):r[this.model].keyword(this.color)},hex(t){return void 0!==t?new c(t):a.to.hex(this.rgb().round().color)},hexa(t){if(void 0!==t)return new c(t);const e=this.rgb().round().color;let s=Math.round(255*this.valpha).toString(16).toUpperCase();return 1===s.length&&(s="0"+s),a.to.hex(e)+s},rgbNumber(){const t=this.rgb().color;return(255&t[0])<<16|(255&t[1])<<8|255&t[2]},luminosity(){const t=this.rgb().color,e=[];for(const[s,a]of t.entries()){const t=a/255;e[s]=t<=.04045?t/12.92:((t+.055)/1.055)**2.4}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast(t){const e=this.luminosity(),s=t.luminosity();return e>s?(e+.05)/(s+.05):(s+.05)/(e+.05)},level(t){const e=this.contrast(t);return e>=7?"AAA":e>=4.5?"AA":""},isDark(){const t=this.rgb().color;return(2126*t[0]+7152*t[1]+722*t[2])/1e4<128},isLight(){return!this.isDark()},negate(){const t=this.rgb();for(let e=0;e<3;e++)t.color[e]=255-t.color[e];return t},lighten(t){const e=this.hsl();return e.color[2]+=e.color[2]*t,e},darken(t){const e=this.hsl();return e.color[2]-=e.color[2]*t,e},saturate(t){const e=this.hsl();return e.color[1]+=e.color[1]*t,e},desaturate(t){const e=this.hsl();return e.color[1]-=e.color[1]*t,e},whiten(t){const e=this.hwb();return e.color[1]+=e.color[1]*t,e},blacken(t){const e=this.hwb();return e.color[2]+=e.color[2]*t,e},grayscale(){const t=this.rgb().color,e=.3*t[0]+.59*t[1]+.11*t[2];return c.rgb(e,e,e)},fade(t){return this.alpha(this.valpha-this.valpha*t)},opaquer(t){return this.alpha(this.valpha+this.valpha*t)},rotate(t){const e=this.hsl();let s=e.color[0];return s=(s+t)%360,s=s<0?360+s:s,e.color[0]=s,e},mix(t,e){if(!t||!t.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof t);const s=t.rgb(),a=this.rgb(),r=void 0===e?.5:e,i=2*r-1,n=s.alpha()-a.alpha(),o=((i*n==-1?i:(i+n)/(1+i*n))+1)/2,h=1-o;return c.rgb(o*s.red()+h*a.red(),o*s.green()+h*a.green(),o*s.blue()+h*a.blue(),s.alpha()*r+a.alpha()*(1-r))}};for(const t of Object.keys(r)){if(i.includes(t))continue;const{channels:e}=r[t];c.prototype[t]=function(...e){return this.model===t?new c(this):e.length>0?new c(e,t):new c([...(s=r[this.model][t].raw(this.color),Array.isArray(s)?s:[s]),this.valpha],t);var s},c[t]=function(...s){let a=s[0];return"number"==typeof a&&(a=d(s,e)),new c(a,t)}}function h(t){return function(e){return function(t,e){return Number(t.toFixed(e))}(e,t)}}function l(t,e,s){t=Array.isArray(t)?t:[t];for(const a of t)(o[a]||(o[a]=[]))[e]=s;return t=t[0],function(a){let r;return void 0!==a?(s&&(a=s(a)),r=this[t](),r.color[e]=a,r):(r=this[t]().color[e],s&&(r=s(r)),r)}}function p(t){return function(e){return Math.max(0,Math.min(t,e))}}function d(t,e){for(let s=0;s<e;s++)"number"!=typeof t[s]&&(t[s]=0);return t}t.exports=c},252:(t,e,s)=>{const a=s(37),r={};for(const t of Object.keys(a))r[a[t]]=t;const i={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"]}};t.exports=i;for(const t of Object.keys(i)){if(!("channels"in i[t]))throw new Error("missing channels property: "+t);if(!("labels"in i[t]))throw new Error("missing channel labels property: "+t);if(i[t].labels.length!==i[t].channels)throw new Error("channel and label counts mismatch: "+t);const{channels:e,labels:s}=i[t];delete i[t].channels,delete i[t].labels,Object.defineProperty(i[t],"channels",{value:e}),Object.defineProperty(i[t],"labels",{value:s})}i.rgb.hsl=function(t){const e=t[0]/255,s=t[1]/255,a=t[2]/255,r=Math.min(e,s,a),i=Math.max(e,s,a),n=i-r;let o,c;i===r?o=0:e===i?o=(s-a)/n:s===i?o=2+(a-e)/n:a===i&&(o=4+(e-s)/n),o=Math.min(60*o,360),o<0&&(o+=360);const h=(r+i)/2;return c=i===r?0:h<=.5?n/(i+r):n/(2-i-r),[o,100*c,100*h]},i.rgb.hsv=function(t){let e,s,a,r,i;const n=t[0]/255,o=t[1]/255,c=t[2]/255,h=Math.max(n,o,c),l=h-Math.min(n,o,c),p=function(t){return(h-t)/6/l+.5};return 0===l?(r=0,i=0):(i=l/h,e=p(n),s=p(o),a=p(c),n===h?r=a-s:o===h?r=1/3+e-a:c===h&&(r=2/3+s-e),r<0?r+=1:r>1&&(r-=1)),[360*r,100*i,100*h]},i.rgb.hwb=function(t){const e=t[0],s=t[1];let a=t[2];const r=i.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(s,a));return a=1-1/255*Math.max(e,Math.max(s,a)),[r,100*n,100*a]},i.rgb.cmyk=function(t){const e=t[0]/255,s=t[1]/255,a=t[2]/255,r=Math.min(1-e,1-s,1-a);return[100*((1-e-r)/(1-r)||0),100*((1-s-r)/(1-r)||0),100*((1-a-r)/(1-r)||0),100*r]},i.rgb.keyword=function(t){const e=r[t];if(e)return e;let s,i=1/0;for(const e of Object.keys(a)){const r=a[e],c=(o=r,((n=t)[0]-o[0])**2+(n[1]-o[1])**2+(n[2]-o[2])**2);c<i&&(i=c,s=e)}var n,o;return s},i.keyword.rgb=function(t){return a[t]},i.rgb.xyz=function(t){let e=t[0]/255,s=t[1]/255,a=t[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/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*(.4124*e+.3576*s+.1805*a),100*(.2126*e+.7152*s+.0722*a),100*(.0193*e+.1192*s+.9505*a)]},i.rgb.lab=function(t){const e=i.rgb.xyz(t);let s=e[0],a=e[1],r=e[2];s/=95.047,a/=100,r/=108.883,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;return[116*a-16,500*(s-a),200*(a-r)]},i.hsl.rgb=function(t){const e=t[0]/360,s=t[1]/100,a=t[2]/100;let r,i,n;if(0===s)return n=255*a,[n,n,n];r=a<.5?a*(1+s):a+s-a*s;const o=2*a-r,c=[0,0,0];for(let t=0;t<3;t++)i=e+1/3*-(t-1),i<0&&i++,i>1&&i--,n=6*i<1?o+6*(r-o)*i:2*i<1?r:3*i<2?o+(r-o)*(2/3-i)*6:o,c[t]=255*n;return c},i.hsl.hsv=function(t){const e=t[0];let s=t[1]/100,a=t[2]/100,r=s;const i=Math.max(a,.01);a*=2,s*=a<=1?a:2-a,r*=i<=1?i:2-i;return[e,100*(0===a?2*r/(i+r):2*s/(a+s)),100*((a+s)/2)]},i.hsv.rgb=function(t){const e=t[0]/60,s=t[1]/100;let a=t[2]/100;const r=Math.floor(e)%6,i=e-Math.floor(e),n=255*a*(1-s),o=255*a*(1-s*i),c=255*a*(1-s*(1-i));switch(a*=255,r){case 0:return[a,c,n];case 1:return[o,a,n];case 2:return[n,a,c];case 3:return[n,o,a];case 4:return[c,n,a];case 5:return[a,n,o]}},i.hsv.hsl=function(t){const e=t[0],s=t[1]/100,a=t[2]/100,r=Math.max(a,.01);let i,n;n=(2-s)*a;const o=(2-s)*r;return i=s*r,i/=o<=1?o:2-o,i=i||0,n/=2,[e,100*i,100*n]},i.hwb.rgb=function(t){const e=t[0]/360;let s=t[1]/100,a=t[2]/100;const r=s+a;let i;r>1&&(s/=r,a/=r);const n=Math.floor(6*e),o=1-a;i=6*e-n,1&n&&(i=1-i);const c=s+i*(o-s);let h,l,p;switch(n){default:case 6:case 0:h=o,l=c,p=s;break;case 1:h=c,l=o,p=s;break;case 2:h=s,l=o,p=c;break;case 3:h=s,l=c,p=o;break;case 4:h=c,l=s,p=o;break;case 5:h=o,l=s,p=c}return[255*h,255*l,255*p]},i.cmyk.rgb=function(t){const e=t[0]/100,s=t[1]/100,a=t[2]/100,r=t[3]/100;return[255*(1-Math.min(1,e*(1-r)+r)),255*(1-Math.min(1,s*(1-r)+r)),255*(1-Math.min(1,a*(1-r)+r))]},i.xyz.rgb=function(t){const e=t[0]/100,s=t[1]/100,a=t[2]/100;let r,i,n;return r=3.2406*e+-1.5372*s+-.4986*a,i=-.9689*e+1.8758*s+.0415*a,n=.0557*e+-.204*s+1.057*a,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,n=n>.0031308?1.055*n**(1/2.4)-.055:12.92*n,r=Math.min(Math.max(0,r),1),i=Math.min(Math.max(0,i),1),n=Math.min(Math.max(0,n),1),[255*r,255*i,255*n]},i.xyz.lab=function(t){let e=t[0],s=t[1],a=t[2];e/=95.047,s/=100,a/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;return[116*s-16,500*(e-s),200*(s-a)]},i.lab.xyz=function(t){let e,s,a;s=(t[0]+16)/116,e=t[1]/500+s,a=s-t[2]/200;const r=s**3,i=e**3,n=a**3;return s=r>.008856?r:(s-16/116)/7.787,e=i>.008856?i:(e-16/116)/7.787,a=n>.008856?n:(a-16/116)/7.787,e*=95.047,s*=100,a*=108.883,[e,s,a]},i.lab.lch=function(t){const e=t[0],s=t[1],a=t[2];let r;r=360*Math.atan2(a,s)/2/Math.PI,r<0&&(r+=360);return[e,Math.sqrt(s*s+a*a),r]},i.lch.lab=function(t){const e=t[0],s=t[1],a=t[2]/360*2*Math.PI;return[e,s*Math.cos(a),s*Math.sin(a)]},i.rgb.ansi16=function(t,e=null){const[s,a,r]=t;let n=null===e?i.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),0===n)return 30;let o=30+(Math.round(r/255)<<2|Math.round(a/255)<<1|Math.round(s/255));return 2===n&&(o+=60),o},i.hsv.ansi16=function(t){return i.rgb.ansi16(i.hsv.rgb(t),t[2])},i.rgb.ansi256=function(t){const e=t[0],s=t[1],a=t[2];if(e===s&&s===a)return e<8?16:e>248?231:Math.round((e-8)/247*24)+232;return 16+36*Math.round(e/255*5)+6*Math.round(s/255*5)+Math.round(a/255*5)},i.ansi16.rgb=function(t){let e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];const s=.5*(1+~~(t>50));return[(1&e)*s*255,(e>>1&1)*s*255,(e>>2&1)*s*255]},i.ansi256.rgb=function(t){if(t>=232){const e=10*(t-232)+8;return[e,e,e]}let e;t-=16;return[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},i.rgb.hex=function(t){const e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},i.hex.rgb=function(t){const e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let s=e[0];3===e[0].length&&(s=s.split("").map((t=>t+t)).join(""));const a=parseInt(s,16);return[a>>16&255,a>>8&255,255&a]},i.rgb.hcg=function(t){const e=t[0]/255,s=t[1]/255,a=t[2]/255,r=Math.max(Math.max(e,s),a),i=Math.min(Math.min(e,s),a),n=r-i;let o,c;return o=n<1?i/(1-n):0,c=n<=0?0:r===e?(s-a)/n%6:r===s?2+(a-e)/n:4+(e-s)/n,c/=6,c%=1,[360*c,100*n,100*o]},i.hsl.hcg=function(t){const e=t[1]/100,s=t[2]/100,a=s<.5?2*e*s:2*e*(1-s);let r=0;return a<1&&(r=(s-.5*a)/(1-a)),[t[0],100*a,100*r]},i.hsv.hcg=function(t){const e=t[1]/100,s=t[2]/100,a=e*s;let r=0;return a<1&&(r=(s-a)/(1-a)),[t[0],100*a,100*r]},i.hcg.rgb=function(t){const e=t[0]/360,s=t[1]/100,a=t[2]/100;if(0===s)return[255*a,255*a,255*a];const r=[0,0,0],i=e%1*6,n=i%1,o=1-n;let c=0;switch(Math.floor(i)){case 0:r[0]=1,r[1]=n,r[2]=0;break;case 1:r[0]=o,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=n;break;case 3:r[0]=0,r[1]=o,r[2]=1;break;case 4:r[0]=n,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=o}return c=(1-s)*a,[255*(s*r[0]+c),255*(s*r[1]+c),255*(s*r[2]+c)]},i.hcg.hsv=function(t){const e=t[1]/100,s=e+t[2]/100*(1-e);let a=0;return s>0&&(a=e/s),[t[0],100*a,100*s]},i.hcg.hsl=function(t){const e=t[1]/100,s=t[2]/100*(1-e)+.5*e;let a=0;return s>0&&s<.5?a=e/(2*s):s>=.5&&s<1&&(a=e/(2*(1-s))),[t[0],100*a,100*s]},i.hcg.hwb=function(t){const e=t[1]/100,s=e+t[2]/100*(1-e);return[t[0],100*(s-e),100*(1-s)]},i.hwb.hcg=function(t){const e=t[1]/100,s=1-t[2]/100,a=s-e;let r=0;return a<1&&(r=(s-a)/(1-a)),[t[0],100*a,100*r]},i.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},i.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},i.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},i.gray.hsl=function(t){return[0,0,t[0]]},i.gray.hsv=i.gray.hsl,i.gray.hwb=function(t){return[0,100,t[0]]},i.gray.cmyk=function(t){return[0,0,0,t[0]]},i.gray.lab=function(t){return[t[0],0,0]},i.gray.hex=function(t){const e=255&Math.round(t[0]/100*255),s=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(s.length)+s},i.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}},349:(t,e,s)=>{const a=s(252),r=s(196),i={};Object.keys(a).forEach((t=>{i[t]={},Object.defineProperty(i[t],"channels",{value:a[t].channels}),Object.defineProperty(i[t],"labels",{value:a[t].labels});const e=r(t);Object.keys(e).forEach((s=>{const a=e[s];i[t][s]=function(t){const e=function(...e){const s=e[0];if(null==s)return s;s.length>1&&(e=s);const a=t(e);if("object"==typeof a)for(let t=a.length,e=0;e<t;e++)a[e]=Math.round(a[e]);return a};return"conversion"in t&&(e.conversion=t.conversion),e}(a),i[t][s].raw=function(t){const e=function(...e){const s=e[0];return null==s?s:(s.length>1&&(e=s),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(a)}))})),t.exports=i},196:(t,e,s)=>{const a=s(252);function r(t){const e=function(){const t={},e=Object.keys(a);for(let s=e.length,a=0;a<s;a++)t[e[a]]={distance:-1,parent:null};return t}(),s=[t];for(e[t].distance=0;s.length;){const t=s.pop(),r=Object.keys(a[t]);for(let a=r.length,i=0;i<a;i++){const a=r[i],n=e[a];-1===n.distance&&(n.distance=e[t].distance+1,n.parent=t,s.unshift(a))}}return e}function i(t,e){return function(s){return e(t(s))}}function n(t,e){const s=[e[t].parent,t];let r=a[e[t].parent][t],n=e[t].parent;for(;e[n].parent;)s.unshift(e[n].parent),r=i(a[e[n].parent][n],r),n=e[n].parent;return r.conversion=s,r}t.exports=function(t){const e=r(t),s={},a=Object.keys(e);for(let t=a.length,r=0;r<t;r++){const t=a[r];null!==e[t].parent&&(s[t]=n(t,e))}return s}},37:t=>{"use strict";t.exports={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]}},199:t=>{t.exports=function(t){return!(!t||"string"==typeof t)&&(t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&"String"!==t.constructor.name))}},683:(t,e,s)=>{var a,r,i;r=[s(648)],void 0===(i="function"==typeof(a=function(t){function e(t){this.init(t)}e.prototype={value:0,size:100,startAngle:-Math.PI,thickness:"auto",fill:{gradient:["#3aeabb","#fdd250"]},emptyFill:"rgba(0, 0, 0, .1)",animation:{duration:1200,easing:"circleProgressEasing"},animationStartValue:0,reverse:!1,lineCap:"butt",insertMode:"prepend",constructor:e,el:null,canvas:null,ctx:null,radius:0,arcFill:null,lastFrameValue:0,init:function(e){t.extend(this,e),this.radius=this.size/2,this.initWidget(),this.initFill(),this.draw(),this.el.trigger("circle-inited")},initWidget:function(){this.canvas||(this.canvas=t("<canvas>")["prepend"==this.insertMode?"prependTo":"appendTo"](this.el)[0]);var e=this.canvas;if(e.width=this.size,e.height=this.size,this.ctx=e.getContext("2d"),window.devicePixelRatio>1){var s=window.devicePixelRatio;e.style.width=e.style.height=this.size+"px",e.width=e.height=this.size*s,this.ctx.scale(s,s)}},initFill:function(){var e,s=this,a=this.fill,r=this.ctx,i=this.size;if(!a)throw Error("The fill is not specified!");if("string"==typeof a&&(a={color:a}),a.color&&(this.arcFill=a.color),a.gradient){var n=a.gradient;if(1==n.length)this.arcFill=n[0];else if(n.length>1){for(var o=a.gradientAngle||0,c=a.gradientDirection||[i/2*(1-Math.cos(o)),i/2*(1+Math.sin(o)),i/2*(1+Math.cos(o)),i/2*(1-Math.sin(o))],h=r.createLinearGradient.apply(r,c),l=0;l<n.length;l++){var p=n[l],d=l/(n.length-1);t.isArray(p)&&(d=p[1],p=p[0]),h.addColorStop(d,p)}this.arcFill=h}}function u(){var a=t("<canvas>")[0];a.width=s.size,a.height=s.size,a.getContext("2d").drawImage(e,0,0,i,i),s.arcFill=s.ctx.createPattern(a,"no-repeat"),s.drawFrame(s.lastFrameValue)}a.image&&(a.image instanceof Image?e=a.image:(e=new Image).src=a.image,e.complete?u():e.onload=u)},draw:function(){this.animation?this.drawAnimated(this.value):this.drawFrame(this.value)},drawFrame:function(t){this.lastFrameValue=t,this.ctx.clearRect(0,0,this.size,this.size),this.drawEmptyArc(t),this.drawArc(t)},drawArc:function(t){if(0!==t){var e=this.ctx,s=this.radius,a=this.getThickness(),r=this.startAngle;e.save(),e.beginPath(),this.reverse?e.arc(s,s,s-a/2,r-2*Math.PI*t,r):e.arc(s,s,s-a/2,r,r+2*Math.PI*t),e.lineWidth=a,e.lineCap=this.lineCap,e.strokeStyle=this.arcFill,e.stroke(),e.restore()}},drawEmptyArc:function(t){var e=this.ctx,s=this.radius,a=this.getThickness(),r=this.startAngle;t<1&&(e.save(),e.beginPath(),t<=0?e.arc(s,s,s-a/2,0,2*Math.PI):this.reverse?e.arc(s,s,s-a/2,r,r-2*Math.PI*t):e.arc(s,s,s-a/2,r+2*Math.PI*t,r),e.lineWidth=a,e.strokeStyle=this.emptyFill,e.stroke(),e.restore())},drawAnimated:function(e){var s=this,a=this.el,r=t(this.canvas);r.stop(!0,!1),a.trigger("circle-animation-start"),r.css({animationProgress:0}).animate({animationProgress:1},t.extend({},this.animation,{step:function(t){var r=s.animationStartValue*(1-t)+e*t;s.drawFrame(r),a.trigger("circle-animation-progress",[t,r])}})).promise().always((function(){a.trigger("circle-animation-end")}))},getThickness:function(){return t.isNumeric(this.thickness)?this.thickness:this.size/14},getValue:function(){return this.value},setValue:function(t){this.animation&&(this.animationStartValue=this.lastFrameValue),this.value=t,this.draw()}},t.circleProgress={defaults:e.prototype},t.easing.circleProgressEasing=function(t){return t<.5?.5*(t*=2)*t*t:1-.5*(t=2-2*t)*t*t},t.fn.circleProgress=function(s,a){var r="circle-progress",i=this.data(r);if("widget"==s){if(!i)throw Error('Calling "widget" method on not initialized instance is forbidden');return i.canvas}if("value"==s){if(!i)throw Error('Calling "value" method on not initialized instance is forbidden');if(void 0===a)return i.getValue();var n=arguments[1];return this.each((function(){t(this).data(r).setValue(n)}))}return this.each((function(){var a=t(this),i=a.data(r),n=t.isPlainObject(s)?s:{};if(i)i.init(n);else{var o=t.extend({},a.data());"string"==typeof o.fill&&(o.fill=JSON.parse(o.fill)),"string"==typeof o.animation&&(o.animation=JSON.parse(o.animation)),(n=t.extend(o,n)).el=a,i=new e(n),a.data(r,i)}}))}})?a.apply(e,r):a)||(t.exports=i)},852:(t,e,s)=>{"use strict";var a=s(199),r=Array.prototype.concat,i=Array.prototype.slice,n=t.exports=function(t){for(var e=[],s=0,n=t.length;s<n;s++){var o=t[s];a(o)?e=r.call(e,i.call(o)):e.push(o)}return e};n.wrap=function(t){return function(){return t(n(arguments))}}},648:t=>{"use strict";t.exports=H5P.jQuery}},e={};function s(a){var r=e[a];if(void 0!==r)return r.exports;var i=e[a]={exports:{}};return t[a](i,i.exports,s),i.exports}s.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{for(var a in e)s.o(e,a)&&!s.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";const t=class{static extractFragmentsFromURL(t,e){if(!e.location.hash)return{};const s={};return e.location.hash.replace("#","").split("&").forEach((t=>{if(-1===t.indexOf("="))return;const e=t.split("=");s[e[0]]=e[1]})),"function"!=typeof t||t(s)?s:{}}static createFragmentsString(t){let e=[];for(const s in t)e.push(`${s}=${t[s]}`);return`#${e.join("&")}`}static areFragmentsEqual(t,e,s=[]){for(const a in t)if(t.hasOwnProperty(a)){if(s.length>0&&-1===s.indexOf(a))continue;if(!e[a]||t[a].toString()!==e[a].toString())return!1}return!0}};class e extends H5P.EventDispatcher{constructor(t,e,s,a,r){super(),this.id=e,this.parent=a,this.behaviour=t.behaviour,this.content=document.createElement("ul"),this.content.classList.add("navigation-list"),this.container=this.addSideBar(),this.l10n=t.l10n,this.chapters=this.findAllChapters(r),this.chapterNodes=this.getChapterNodes(),s&&(this.titleElem=this.addMainTitle(s),this.container.appendChild(this.titleElem)),this.chapterNodes.forEach((t=>{this.content.appendChild(t)})),this.chapters.length>20&&this.content.classList.add("large-navigation-list"),this.container.appendChild(this.content),this.addTransformListener(),this.initializeNavigationControls()}initializeNavigationControls(){const t=Object.freeze({UP:38,DOWN:40});this.chapterNodes.forEach(((e,s)=>{e.querySelector(".h5p-interactive-book-navigation-chapter-button").addEventListener("keydown",(e=>{switch(e.keyCode){case t.UP:this.setFocusToChapterItem(s,-1),e.preventDefault();break;case t.DOWN:this.setFocusToChapterItem(s,1),e.preventDefault()}}));const a=e.querySelectorAll(".h5p-interactive-book-navigation-section");for(let e=0;e<a.length;e++){a[e].querySelector(".section-button").addEventListener("keydown",(a=>{switch(a.keyCode){case t.UP:this.setFocusToSectionItem(s,e,-1),a.preventDefault();break;case t.DOWN:this.setFocusToSectionItem(s,e,1),a.preventDefault()}}))}}))}focus(){this.content.querySelector("button").focus()}setFocusToChapterItem(t,e=0){let s=t+e;if(s<0?s=this.chapterNodes.length-1:s>this.chapterNodes.length-1&&(s=0),e){const a=e>0?t:s,r=this.chapterNodes[a];if(!r.classList.contains("h5p-interactive-book-navigation-closed")){const t=r.querySelectorAll(".h5p-interactive-book-navigation-section");if(t.length){const s=e>0?0:t.length-1;return void this.setFocusToSectionItem(a,s)}}}const a=this.chapterNodes[s].querySelector(".h5p-interactive-book-navigation-chapter-button");this.setFocusToItem(a,s)}setFocusToSectionItem(t,e,s=0){const a=this.chapterNodes[t].querySelectorAll(".h5p-interactive-book-navigation-section"),r=e+s;if(r>a.length-1)return void this.setFocusToChapterItem(t+1);if(r<0)return void this.setFocusToChapterItem(t);const i=a[r].querySelector(".section-button");this.setFocusToItem(i,t)}setFocusToItem(t,e,s=!1){this.chapterNodes.forEach(((t,s)=>{const a=t.querySelector(".h5p-interactive-book-navigation-chapter-button");s===e?a.classList.add("h5p-interactive-book-navigation-current"):a.classList.remove("h5p-interactive-book-navigation-current"),a.setAttribute("tabindex","-1");const r=t.querySelectorAll(".h5p-interactive-book-navigation-section");for(let t=0;t<r.length;t++){r[t].querySelector(".section-button").setAttribute("tabindex","-1")}})),t.setAttribute("tabindex","0"),this.focusedChapter=e,s||t.focus()}addSideBar(){const t=document.createElement("div");return t.id="h5p-interactive-book-navigation-menu",t.classList.add("h5p-interactive-book-navigation"),t}addMainTitle(t){const e=document.createElement("h2");e.classList.add("navigation-title"),e.innerHTML=t,e.setAttribute("title",t);const s=document.createElement("div");return s.classList.add("h5p-interactive-book-navigation-maintitle"),s.appendChild(e),s}findSectionsInChapter(t){const e=[],s=t.sections;for(let t=0;t<s.length;t++){const a=s[t].content;let r="";if("H5P.Link"===a.library.split(" ")[0])r=a.params.title?a.params.title:"New link";else r=a.metadata.title;e.push({...s[t],title:r,id:a.subContentId?`h5p-interactive-book-section-${a.subContentId}`:void 0})}return e}findAllChapters(t){const e=[];for(let s=0;s<t.length;s++)e.push({...t[s],id:t[s].isSummary?"h5p-interactive-book-chapter-summary":`h5p-interactive-book-chapter-${t[s].instance.subContentId}`,sections:this.findSectionsInChapter(t[s])});return e}toggleChapter(t,e){e=void 0!==e?e:!t.classList.contains("h5p-interactive-book-navigation-closed");const s=t.querySelector(".h5p-interactive-book-navigation-sectionlist"),a=t.getElementsByClassName("h5p-interactive-book-navigation-chapter-accordion")[0];t.querySelector(".h5p-interactive-book-navigation-chapter-button").setAttribute("aria-expanded",(!e).toString()),!0===e?(t.classList.add("h5p-interactive-book-navigation-closed"),a&&(a.classList.remove("icon-expanded"),a.classList.add("icon-collapsed"),s&&(s.setAttribute("aria-hidden",!0),s.setAttribute("tabindex","-1")))):(t.classList.remove("h5p-interactive-book-navigation-closed"),a&&(a.classList.remove("icon-collapsed"),a.classList.add("icon-expanded"),s&&(s.removeAttribute("aria-hidden"),s.removeAttribute("tabindex"))))}redirectHandler(t){if(this.chapterNodes.forEach(((e,s)=>{this.toggleChapter(e,s!==t)})),this.parent.trigger("resize"),t!==this.focusedChapter){const e=this.chapterNodes[t].querySelector(".h5p-interactive-book-navigation-chapter-button");this.setFocusToItem(e,t,!0)}}resetIndicators(){this.chapterNodes.forEach(((t,e)=>{this.updateChapterProgressIndicator(e,"BLANK");const s=t.getElementsByClassName("h5p-interactive-book-navigation-section");for(let t of s){const e=t.querySelector(".h5p-interactive-book-navigation-section-icon");e&&(e.classList.remove("icon-question-answered"),e.classList.add("icon-chapter-blank"))}}))}updateChapterProgressIndicator(t,e){if(!this.behaviour.progressIndicators)return;if(this.chapters[t].isSummary)return;const s=this.chapterNodes[t].getElementsByClassName("h5p-interactive-book-navigation-chapter-progress")[0];"BLANK"===e?(s.classList.remove("icon-chapter-started"),s.classList.remove("icon-chapter-done"),s.classList.add("icon-chapter-blank")):"DONE"===e?(s.classList.remove("icon-chapter-blank"),s.classList.remove("icon-chapter-started"),s.classList.add("icon-chapter-done")):"STARTED"===e&&(s.classList.remove("icon-chapter-blank"),s.classList.remove("icon-chapter-done"),s.classList.add("icon-chapter-started"))}setSectionMarker(t,e){const s=this.chapterNodes[t].querySelector(".h5p-interactive-book-navigation-section-"+e+" .h5p-interactive-book-navigation-section-icon");s&&(s.classList.remove("icon-chapter-blank"),s.classList.add("icon-question-answered"))}getNodesFromChapter(t,e){const s=document.createElement("li"),a="h5p-interactive-book-sectionlist-"+e;if(s.classList.add("h5p-interactive-book-navigation-chapter"),t.isSummary){s.classList.add("h5p-interactive-book-navigation-summary-button");const t=this.parent.chapters[e].instance.summaryMenuButton;return t.classList.add("h5p-interactive-book-navigation-chapter-button"),s.appendChild(t),s}const r=document.createElement("div");r.classList.add("h5p-interactive-book-navigation-chapter-accordion");const i=document.createElement("div");i.classList.add("h5p-interactive-book-navigation-chapter-title-text"),i.innerHTML=t.title,i.setAttribute("title",t.title);const n=document.createElement("div");this.behaviour.progressIndicators&&(n.classList.add("icon-chapter-blank"),n.classList.add("h5p-interactive-book-navigation-chapter-progress"));const o=document.createElement("button");o.setAttribute("tabindex",0===e?"0":"-1"),o.classList.add("h5p-interactive-book-navigation-chapter-button"),this.parent.activeChapter!==e?(r.classList.add("icon-collapsed"),o.setAttribute("aria-expanded","false")):(r.classList.add("icon-expanded"),o.setAttribute("aria-expanded","true")),o.setAttribute("aria-controls",a),o.onclick=t=>{const s=!t.currentTarget.querySelector(".h5p-interactive-book-navigation-chapter-accordion").classList.contains("hidden"),a="true"===t.currentTarget.getAttribute("aria-expanded");if(this.isOpenOnMobile()&&this.parent.trigger("toggleMenu"),this.isOpenOnMobile()||!s||!a){const t={h5pbookid:this.parent.contentId,chapter:this.chapters[e].id,section:0};this.parent.trigger("newChapter",t)}s&&(this.toggleChapter(t.currentTarget.parentElement),this.parent.trigger("resize"))},o.appendChild(r),o.appendChild(i),o.appendChild(n),s.appendChild(o),this.parent.activeChapter===e?s.querySelector(".h5p-interactive-book-navigation-chapter-button").classList.add("h5p-interactive-book-navigation-current"):this.toggleChapter(s,!0);const c=document.createElement("ul");c.classList.add("h5p-interactive-book-navigation-sectionlist"),c.id=a;const h=[];for(let t=0;t<this.chapters[e].sections.length;t++)if(this.parent.chapters[e].sections[t].isTask){const s=this.createSectionLink(e,t);h.push(s),c.appendChild(s)}else{const s=this.chapters[e].sections[t].content;if("H5P.AdvancedText"===s.library.split(" ")[0]){const a=document.createElement("div");a.innerHTML=s.params.text;const r=a.querySelectorAll("h2, h3");for(let s=0;s<r.length;s++){const a=r[s],i=this.createSectionLink(e,t,a.textContent,s);h.push(i),c.appendChild(i)}}}if(t.tasksLeft&&(t.maxTasks=t.tasksLeft),0===h.length){const t=s.querySelector(".h5p-interactive-book-navigation-chapter-accordion");t&&t.classList.add("hidden")}return s.appendChild(c),s}createSectionLink(t,e,s=null,a=null){const r=this.chapters[t].sections[e],i=document.createElement("div");i.innerHTML=s||r.title,i.setAttribute("title",s||r.title),i.classList.add("h5p-interactive-book-navigation-section-title");const n=document.createElement("div");n.classList.add("h5p-interactive-book-navigation-section-icon"),n.classList.add("icon-chapter-blank"),this.parent.chapters[t].sections[e].isTask&&n.classList.add("h5p-interactive-book-navigation-section-task");const o=document.createElement("button");o.classList.add("section-button"),o.setAttribute("tabindex","-1"),o.onclick=e=>{const s={h5pbookid:this.parent.contentId,chapter:this.chapters[t].id,section:r.id};null!==a&&(s.headerNumber=a),this.parent.trigger("newChapter",s),this.isOpenOnMobile()&&this.parent.trigger("toggleMenu"),e.preventDefault()},o.appendChild(n),o.appendChild(i);const c=document.createElement("li");return c.classList.add("h5p-interactive-book-navigation-section"),c.classList.add("h5p-interactive-book-navigation-section-"+e),c.appendChild(o),c}getChapterNodes(){return this.chapters.map(((t,e)=>this.getNodesFromChapter(t,e)))}isOpenOnMobile(){return this.parent.isMenuOpen()&&this.parent.isSmallSurface()}addTransformListener(){this.container.addEventListener("transitionend",(t=>{"flex-basis"===t.propertyName&&this.parent.trigger("resize")}))}}const a=e;class r extends H5P.EventDispatcher{constructor(t,e,s,a,r){super(),this.id=t,this.parent=s,this.params=a||{},this.preventScrollToTop=a.preventScrollToTop,this.params.l10n=a.l10n,this.params.a11y=Object.assign({progress:"Page @page of @total",menu:"Toggle navigation menu"},this.params.a11y||{}),this.totalChapters=e,this.arrows=this.addArrows(),this.progressBar=this.createProgressBar(),this.progressIndicator=this.createProgressIndicator(),this.chapterTitle=this.createChapterTitle(),this.menuToggleButton=this.createMenuToggleButton();const i=document.createElement("div");i.classList.add("h5p-interactive-book-status"),this.params.displayToTopButton&&i.appendChild(this.createToTopButton()),this.params.displayFullScreenButton&&H5P.fullscreenSupported&&i.appendChild(this.createFullScreenButton()),i.appendChild(this.arrows.buttonWrapperNext),i.appendChild(this.arrows.buttonWrapperPrevious),this.params.displayMenuToggleButton&&i.appendChild(this.menuToggleButton),i.appendChild(this.progressIndicator.wrapper),i.appendChild(this.chapterTitle.wrapper),this.wrapper=document.createElement("div"),this.wrapper.classList.add(r),this.wrapper.setAttribute("tabindex","-1"),this.wrapper.appendChild(this.progressBar.wrapper),this.wrapper.appendChild(i),this.on("updateStatusBar",this.updateStatusBar),this.on("seqChapter",(t=>{const e={h5pbookid:this.parent.contentId};t.data.toTop&&(e.section="top"),"next"===t.data.direction?this.parent.activeChapter+1<this.parent.chapters.length?e.chapter=`h5p-interactive-book-chapter-${this.parent.chapters[this.parent.activeChapter+1].instance.subContentId}`:this.parent.hasSummary()&&this.parent.activeChapter+1===this.parent.chapters.length&&this.parent.trigger("viewSummary",e):"prev"===t.data.direction&&this.parent.activeChapter>0&&(e.chapter=`h5p-interactive-book-chapter-${this.parent.chapters[this.parent.activeChapter-1].instance.subContentId}`),this.preventScrollToTop&&(e.preventScrollToTop=!0),e.chapter&&this.parent.trigger("newChapter",e)}))}updateProgressBar(t){const e=t/this.totalChapters*100+"%";this.progressBar.progress.style.width=e;const s=this.params.a11y.progress.replace("@page",t).replace("@total",this.totalChapters);this.progressBar.progress.title=s}updateA11yProgress(t){this.progressIndicator.hiddenButRead.innerHTML=this.params.a11y.progress.replace("@page",t).replace("@total",this.totalChapters)}updateStatusBar(){const t=this.parent.getActiveChapter()+1,e=this.parent.chapters[t-1].title;this.progressIndicator.current.innerHTML=t,this.updateA11yProgress(t),this.updateProgressBar(t),this.chapterTitle.text.innerHTML=e,this.chapterTitle.text.setAttribute("title",e),this.parent.activeChapter<=0?this.setButtonStatus("Previous",!0):this.setButtonStatus("Previous",!1),this.parent.activeChapter+1>=this.totalChapters?this.setButtonStatus("Next",!0):this.setButtonStatus("Next",!1)}addArrows(){const t={};return t.buttonPrevious=document.createElement("div"),t.buttonPrevious.classList.add("navigation-button","icon-previous"),t.buttonPrevious.setAttribute("title",this.params.l10n.previousPage),t.buttonWrapperPrevious=document.createElement("button"),t.buttonWrapperPrevious.classList.add("h5p-interactive-book-status-arrow","h5p-interactive-book-status-button","previous"),t.buttonWrapperPrevious.setAttribute("aria-label",this.params.l10n.previousPage),t.buttonWrapperPrevious.onclick=()=>{this.trigger("seqChapter",{direction:"prev",toTop:!0})},t.buttonWrapperPrevious.appendChild(t.buttonPrevious),t.buttonNext=document.createElement("div"),t.buttonNext.classList.add("navigation-button","icon-next"),t.buttonNext.setAttribute("title",this.params.l10n.nextPage),t.buttonWrapperNext=document.createElement("button"),t.buttonWrapperNext.classList.add("h5p-interactive-book-status-arrow","h5p-interactive-book-status-button","next"),t.buttonWrapperNext.setAttribute("aria-label",this.params.l10n.nextPage),t.buttonWrapperNext.onclick=()=>{this.trigger("seqChapter",{direction:"next",toTop:!0})},t.buttonWrapperNext.appendChild(t.buttonNext),t}createMenuToggleButton(){const t=document.createElement("a");t.classList.add("icon-menu");const e=document.createElement("button");return e.classList.add("h5p-interactive-book-status-menu"),e.classList.add("h5p-interactive-book-status-button"),e.setAttribute("aria-label",this.params.a11y.menu),e.setAttribute("aria-expanded","false"),e.setAttribute("aria-controls","h5p-interactive-book-navigation-menu"),e.onclick=()=>{this.parent.trigger("toggleMenu")},e.appendChild(t),e}isMenuOpen(){return this.menuToggleButton.classList.contains("h5p-interactive-book-status-menu-active")}createProgressBar(){const t=document.createElement("div");t.classList.add("h5p-interactive-book-status-progressbar-front"),t.setAttribute("tabindex","-1");const e=document.createElement("div");return e.classList.add("h5p-interactive-book-status-progressbar-back"),e.appendChild(t),{wrapper:e,progress:t}}createChapterTitle(){const t=document.createElement("h1");t.classList.add("title");const e=document.createElement("div");return e.classList.add("h5p-interactive-book-status-chapter"),e.appendChild(t),{wrapper:e,text:t}}createToTopButton(){const t=document.createElement("div");t.classList.add("icon-up"),t.classList.add("navigation-button");const e=document.createElement("button");return e.classList.add("h5p-interactive-book-status-to-top"),e.classList.add("h5p-interactive-book-status-button"),e.classList.add("h5p-interactive-book-status-arrow"),e.setAttribute("aria-label",this.params.l10n.navigateToTop),e.addEventListener("click",(()=>{this.parent.trigger("scrollToTop"),document.querySelector(".h5p-interactive-book-status-menu").focus()})),e.appendChild(t),e}setVisibility(t){t?this.wrapper.classList.add("footer-hidden"):this.wrapper.classList.remove("footer-hidden")}createProgressIndicator(){const t=document.createElement("span");t.classList.add("h5p-interactive-book-status-progress-number"),t.setAttribute("aria-hidden","true");const e=document.createElement("span");e.classList.add("h5p-interactive-book-status-progress-divider"),e.innerHTML=" / ",e.setAttribute("aria-hidden","true");const s=document.createElement("span");s.classList.add("h5p-interactive-book-status-progress-number"),s.innerHTML=this.totalChapters,s.setAttribute("aria-hidden","true");const a=document.createElement("p");a.classList.add("hidden-but-read");const r=document.createElement("p");r.classList.add("h5p-interactive-book-status-progress"),r.appendChild(t),r.appendChild(e),r.appendChild(s),r.appendChild(a);const i=document.createElement("div");return i.classList.add("h5p-interactive-book-status-progress-wrapper"),i.appendChild(r),{wrapper:i,current:t,total:s,divider:e,progressText:r,hiddenButRead:a}}setButtonStatus(t,e){e?(this.arrows["buttonWrapper"+t].setAttribute("disabled","disabled"),this.arrows["button"+t].classList.add("disabled")):(this.arrows["buttonWrapper"+t].removeAttribute("disabled"),this.arrows["button"+t].classList.remove("disabled"))}createFullScreenButton(){const t=()=>{!0===H5P.isFullscreen?H5P.exitFullScreen():H5P.fullScreen(this.parent.mainWrapper,this.parent)},e=document.createElement("button");return e.classList.add("h5p-interactive-book-status-fullscreen"),e.classList.add("h5p-interactive-book-status-button"),e.classList.add("h5p-interactive-book-enter-fullscreen"),e.setAttribute("title",this.params.l10n.fullscreen),e.setAttribute("aria-label",this.params.l10n.fullscreen),e.addEventListener("click",t),e.addEventListener("keyPress",(e=>{13!==e.which&&32!==e.which||(t(),e.preventDefault())})),this.parent.on("enterFullScreen",(()=>{this.parent.isFullscreen=!0,e.classList.remove("h5p-interactive-book-enter-fullscreen"),e.classList.add("h5p-interactive-book-exit-fullscreen"),e.setAttribute("title",this.params.l10n.exitFullscreen),e.setAttribute("aria-label",this.params.l10n.exitFullScreen),this.parent.pageContent.updateFooter()})),this.parent.on("exitFullScreen",(()=>{this.parent.isFullscreen=!1,e.classList.remove("h5p-interactive-book-exit-fullscreen"),e.classList.add("h5p-interactive-book-enter-fullscreen"),e.setAttribute("title",this.params.l10n.fullscreen),e.setAttribute("aria-label",this.params.l10n.fullscreen),this.parent.pageContent.updateFooter()})),e}}const i=r;class n extends H5P.EventDispatcher{constructor(t,e,s,a,r){super(),this.parent=r,this.params=t,this.contentId=a,this.container=this.createContainer(),t.coverMedium?(this.visuals=this.createVisualsElement(t.coverMedium),this.visuals&&this.container.appendChild(this.visuals)):this.container.classList.add("h5p-cover-nographics"),this.container.appendChild(this.createTitleElement(e)),t.coverDescription&&this.container.appendChild(this.createDescriptionElement(t.coverDescription)),this.container.appendChild(this.createReadButton(s))}createContainer(){const t=document.createElement("div");return t.classList.add("h5p-interactive-book-cover"),t}createVisualsElement(t){if(!t||!t.params)return null;const e=document.createElement("div");return e.classList.add("h5p-interactive-book-cover-graphics"),e}initMedia(){if(!this.visuals||!this.params.coverMedium)return;const t=this.params.coverMedium;"H5P.Video"===(t.library||"").split(" ")[0]&&(t.params.visuals.fit=!1);const e=H5P.newRunnable(t,this.contentId,H5P.jQuery(this.visuals),!1,{metadata:t.medatata});if(this.bubbleUp(e,"resize",this.parent),this.bubbleDown(this.parent,"resize",[e]),"H5P.Image"===(t.library||"").split(" ")[0]){const t=this.visuals.querySelector("img")||this.visuals.querySelector(".h5p-placeholder");t.style.height="auto",t.style.width="auto"}this.visuals.appendChild(this.createCoverBar())}bubbleUp(t,e,s){t.on(e,(t=>{s.bubblingUpwards=!0,s.trigger(e,t),s.bubblingUpwards=!1}))}bubbleDown(t,e,s){t.on(e,(a=>{t.bubblingUpwards||s.forEach((t=>{t.trigger(e,a)}))}))}createImage(t,e,s){const a=document.createElement("img");return a.classList.add("h5p-interactive-book-cover-image"),a.src=H5P.getPath(t,e),a.setAttribute("draggable","false"),s&&(a.alt=s),a}createCoverBar(){const t=document.createElement("div");return t.classList.add("h5p-interactive-book-cover-bar"),t}createTitleElement(t){const e=document.createElement("p");e.innerHTML=t;const s=document.createElement("div");return s.classList.add("h5p-interactive-book-cover-title"),s.appendChild(e),s}createDescriptionElement(t){if(!t)return null;const e=document.createElement("div");return e.classList.add("h5p-interactive-book-cover-description"),e.innerHTML=t,e}createReadButton(t){const e=document.createElement("button");e.innerHTML=t,e.onclick=()=>{this.removeCover(!0)};const s=document.createElement("div");return s.classList.add("h5p-interactive-book-cover-readbutton"),s.appendChild(e),s}removeCover(t=!1){this.container.parentElement&&(this.container.parentElement.classList.remove("covered"),this.container.parentElement.removeChild(this.container)),this.hidden=!0,this.parent.trigger("coverRemoved",t)}}const o=n;s(683);var c=s(308),h=s.n(c);class l{static setBase(t){t&&(l.colorBase=h()(t),l.colorText=[l.DEFAULT_COLOR_BG,l.computeContrastColor(l.colorBase),l.computeContrastColor(l.colorBase,l.DEFAULT_COLOR_BG)].map((t=>({color:t,contrast:l.colorBase.contrast(t)}))).reduce(((t,e)=>e.contrast>t.contrast?e:t),{contrast:0}).color)}static getColor(t,e={}){if("string"==typeof e.opacity&&/^([0-9]|[1-8][0-9]|9[0-9]|100)(\.\d+)?\s?%$/.test(e.opacity)&&(e.opacity=parseInt(e.opacity)/100),"number"!=typeof e.opacity||e.opacity<0||e.opacity>1)return t;const s=h()("#ffffff").rgb().array();return h().rgb(t.rgb().array().map(((t,a)=>e.opacity*t+(1-e.opacity)*s[a])))}static isBaseColor(t){return h()(t).hex()===l.colorBase.hex()}static computeContrastColor(t,e){const s=(e=e||t).luminosity();let a;for(let r=0;r<=1;r+=.05){a=h().rgb(t.rgb().array().map((t=>t*(s>.5?1-r:1+r))));if(a.contrast(e)>=l.MINIMUM_ACCEPTABLE_CONTRAST)break}return a}static getContentTypeCSS(t){return l.COLOR_OVERRIDES[t]?l.COLOR_OVERRIDES[t].getCSS():""}static getCSS(){return`:root{\n      --color-base: ${l.colorBase};\n      --color-base-5: ${l.getColor(l.colorBase,{opacity:.05})};\n      --color-base-10: ${l.getColor(l.colorBase,{opacity:.1})};\n      --color-base-20: ${l.getColor(l.colorBase,{opacity:.2})};\n      --color-base-75: ${l.getColor(l.colorBase,{opacity:.75})};\n      --color-base-80: ${l.getColor(l.colorBase,{opacity:.8})};\n      --color-base-85: ${l.getColor(l.colorBase,{opacity:.85})};\n      --color-base-90: ${l.getColor(l.colorBase,{opacity:.9})};\n      --color-base-95: ${l.getColor(l.colorBase,{opacity:.95})};\n      --color-text: ${l.colorText};\n      --color-contrast: ${l.computeContrastColor(l.colorBase,l.DEFAULT_COLOR_BG)};\n    }`}}l.DEFAULT_COLOR_BASE=h()("#1768c4"),l.DEFAULT_COLOR_BG=h()("#ffffff"),l.MINIMUM_ACCEPTABLE_CONTRAST=4.5,l.colorBase=l.DEFAULT_COLOR_BASE,l.colorText=l.DEFAULT_COLOR_BG;class p extends H5P.EventDispatcher{constructor(t,e,s){super(),this.parent=e,this.behaviour=t.behaviour,this.l10n=t.l10n,this.chapters=s||[],this.subContentId="summary",this.wrapper=null,this.summaryMenuButton=this.createSummaryButton(),this.filterActionAll="all",this.filterActionUnanswered="unanswered",this.bookCompleted=!1,this.tempState=JSON.stringify(this.parent.previousState&&this.parent.previousState.chapters?this.parent.previousState.chapters:this.getChapterStats()),e.on("bookCompleted",(t=>this.setBookComplete(t.data.completed))),e.on("toggleMenu",(()=>{const t=document.querySelector(".h5p-interactive-book-summary-footer");t&&this.bookCompleted&&(this.parent.isMenuOpen()?t.classList.add("menu-open"):t.classList.remove("menu-open"))}))}setBookComplete(t){let e=this.parent.mainWrapper?this.parent.mainWrapper[0].querySelector(".h5p-interactive-book-summary-footer"):null;!e&&this.parent.isSmallSurface()&&(e=document.createElement("div"),e.classList.add("h5p-interactive-book-summary-footer"),e.appendChild(this.createSummaryButton()),this.parent.mainWrapper.append(e)),e&&t&&setTimeout((()=>e.classList.add("show-footer")),0),this.bookCompleted=t,Array.from(document.querySelectorAll(".h5p-interactive-book-summary-menu-button")).forEach((e=>e.setAttribute("data-book-completed",t.toString())))}setChapters(t){this.chapters=Array.isArray(t)?t:[]}setSummaryMenuButtonDisabled(t=!0){this.summaryMenuButton.disabled=t}setFilter(t){const e=this.wrapper.querySelector(".h5p-interactive-book-summary-overview-list"),s=Array.from(e.querySelectorAll(".h5p-interactive-book-summary-overview-section"));s.forEach((t=>{t.classList.remove("h5p-interactive-book-summary-top-section"),t.classList.remove("h5p-interactive-book-summary-bottom-section")}));const a=e.querySelector(".h5p-interactive-book-summary-overview-list-empty");if(a.style.display="none",t===this.filterActionUnanswered){e.classList.add("h5p-interactive-book-summary-overview-list-only-unanswered");const t=s.filter((t=>!t.classList.contains("h5p-interactive-book-summary-no-interactions")));t.length?(t[0].classList.add("h5p-interactive-book-summary-top-section"),t[t.length-1].classList.add("h5p-interactive-book-summary-bottom-section")):a.style.display="block"}else t===this.filterActionAll&&e.classList.remove("h5p-interactive-book-summary-overview-list-only-unanswered");setTimeout((()=>this.trigger("resize")),1)}createSummaryButton(){const t=document.createElement("button");t.classList.add("h5p-interactive-book-summary-menu-button"),t.onclick=()=>{const t={h5pbookid:this.parent.contentId,chapter:"h5p-interactive-book-chapter-summary",section:"top"};this.parent.trigger("newChapter",t),this.parent.isMenuOpen()&&this.parent.isSmallSurface()&&this.parent.trigger("toggleMenu")};const e=document.createElement("span");e.classList.add("h5p-interactive-book-summary-icon"),e.classList.add("icon-paper"),e.setAttribute("aria-hidden","true");const s=document.createElement("span");s.classList.add("h5p-interactive-book-summary-text"),s.innerHTML=this.l10n.summaryAndSubmit;const a=document.createElement("span");return a.classList.add("h5p-interactive-book-summary-menu-button-arrow"),a.classList.add("icon-up"),a.setAttribute("aria-hidden","true"),t.appendChild(e),t.appendChild(s),t.appendChild(a),t}createCircle(t){const e=l.computeContrastColor(l.colorBase,l.DEFAULT_COLOR_BG),s=document.createElement("div");return s.classList.add("h5p-interactive-book-summary-progress-circle"),s.setAttribute("data-value",t),s.setAttribute("data-start-angle",-Math.PI/3),s.setAttribute("data-thickness",13),s.setAttribute("data-empty-fill",`rgba(${e.rgb().array().join(", ")}, .1)`),s.setAttribute("data-fill",JSON.stringify({color:e.hex()})),s}createProgress(t,e,s,a,r=!1,i,n){const o=document.createElement("div"),c=document.createElement("h3");c.innerHTML=t;const h=100*s/a;void 0===i&&(i=s),void 0===n&&(n=a);const l=document.createElement("p");if(l.classList.add("h5p-interactive-book-summary-progressbox-bigtext"),l.innerHTML=Math.round(h)+"%",r){const t=document.createElement("span");t.classList.add("absolute-value"),t.innerHTML=s;const e=document.createElement("span");e.classList.add("separator"),e.innerHTML="/";const r=document.createElement("span");r.classList.add("absolute-value"),r.innerHTML=a,l.innerHTML="",l.appendChild(t),l.appendChild(e),l.appendChild(r)}const p=document.createElement("span");p.classList.add("h5p-interactive-book-summary-progressbox-smalltext"),p.innerHTML=e.replace("@count",i).replace("@total",n),o.appendChild(c),o.appendChild(l),o.appendChild(p);const d=document.createElement("div");return d.appendChild(o),d.appendChild(this.createCircle(s/a)),d}addScoreProgress(){let t=0,e=0;for(const s of this.chapters)t+=s.maxTasks,e+=s.tasksLeft;const s=this.createProgress(this.l10n.totalScoreLabel,this.l10n.interactionsProgressSubtext,this.parent.getScore(),this.parent.getMaxScore(),!0,Math.max(t-e,0),t);s.classList.add("h5p-interactive-book-summary-progress-container"),s.classList.add("h5p-interactive-book-summary-score-progress");const a=s.querySelector(".h5p-interactive-book-summary-progress-circle");return a.setAttribute("data-empty-fill","rgb(198, 220, 212)"),a.setAttribute("data-fill",JSON.stringify({color:"#0e7c57"})),s}addBookProgress(){const t=this.createProgress(this.l10n.bookProgress,this.l10n.bookProgressSubtext,this.chapters.filter((t=>t.completed)).length,this.chapters.length);return t.classList.add("h5p-interactive-book-summary-progress-container"),t.classList.add("h5p-interactive-book-summary-book-progress"),t}addInteractionsProgress(){let t=0,e=0;for(const s of this.chapters)t+=s.maxTasks,e+=s.tasksLeft;const s=this.createProgress(this.l10n.interactionsProgress,this.l10n.interactionsProgressSubtext,Math.max(t-e,0),t);return s.classList.add("h5p-interactive-book-summary-progress-container"),s.classList.add("h5p-interactive-book-summary-interactions-progress"),s}addProgressIndicators(){if(!this.behaviour.progressIndicators)return;const t=document.createElement("div");t.classList.add("h5p-interactive-box-summary-progress"),t.appendChild(this.addScoreProgress()),t.appendChild(this.addBookProgress()),t.appendChild(this.addInteractionsProgress()),setTimeout((()=>H5P.jQuery(".h5p-interactive-book-summary-progress-circle").circleProgress()),100),this.wrapper.appendChild(t)}addActionButtons(){const t=document.createElement("div");if(t.classList.add("h5p-interactive-book-summary-buttons"),this.checkTheAnswerIsUpdated(),this.parent.isSubmitButtonEnabled&&this.parent.isAnswerUpdated){const e=this.addButton("icon-paper-pencil",this.l10n.submitReport);e.classList.add("h5p-interactive-book-summary-submit"),e.onclick=()=>{this.trigger("submitted"),this.parent.triggerXAPIScored(this.parent.getScore(),this.parent.getMaxScore(),"completed"),t.classList.add("submitted");t.querySelector(".answers-submitted").focus(),this.tempState=JSON.stringify(this.getChapterStats()),this.parent.isAnswerUpdated=!1},t.appendChild(e)}this.behaviour.enableRetry&&t.appendChild(this.createRestartButton()),t.appendChild(this.createSubmittedConfirmation()),this.wrapper.appendChild(t)}createRestartButton(){const t=this.addButton("icon-restart",this.l10n.restartLabel);return t.classList.add("h5p-interactive-book-summary-restart"),t.onclick=()=>this.parent.resetTask(),t}createSubmittedConfirmation(){const t=document.createElement("div");t.classList.add("h5p-interactive-book-summary-submitted");const e=document.createElement("span");e.classList.add("icon-chapter-done"),e.classList.add("icon-check-mark"),t.appendChild(e);const s=document.createElement("p");return s.innerHTML=this.l10n.yourAnswersAreSubmittedForReview,s.tabIndex=-1,s.classList.add("answers-submitted"),t.appendChild(s),this.behaviour.enableRetry&&t.appendChild(this.createRestartButton()),t}addButton(t,e){const s=document.createElement("button");s.type="button",s.classList.add("h5p-interactive-book-summary-button"),s.innerHTML=e;const a=document.createElement("span");return a.classList.add(t),a.setAttribute("aria-hidden","true"),s.appendChild(a),s}createSectionList(t,e){let s=[],a=!1;for(const r of t){const t=document.createElement("li");if(t.classList.add("h5p-interactive-book-summary-overview-section-details"),this.behaviour.progressIndicators){const e=document.createElement("span");e.classList.add("h5p-interactive-book-summary-section-icon"),e.classList.add(r.taskDone?"icon-chapter-done":"icon-chapter-blank"),t.appendChild(e)}const i=document.createElement("button");i.type="button",i.classList.add("h5p-interactive-book-summary-section-title"),i.onclick=()=>{const t={h5pbookid:this.parent.contentId,chapter:`h5p-interactive-book-chapter-${e}`,section:`h5p-interactive-book-section-${r.instance.subContentId}`};this.parent.trigger("newChapter",t)};const n=r.instance.contentData&&r.instance.contentData.metadata&&r.instance.contentData.metadata.title,o=r.content&&r.content.metadata&&r.content.metadata.title;i.innerHTML=n||(o||"Untitled");const c=document.createElement("div");c.classList.add("h5p-interactive-book-summary-section-score"),c.innerHTML="-","function"==typeof r.instance.getScore&&(c.innerHTML=this.l10n.scoreText.replace("@score",r.instance.getScore()).replace("@maxscore",r.instance.getMaxScore())),r.taskDone?t.classList.add("h5p-interactive-book-summary-overview-section-details-task-done"):a=!0,t.appendChild(i),t.appendChild(c),s.push(t)}if(s.length){const t=document.createElement("div");t.classList.add("h5p-interactive-book-summary-overview-section-score-header");const e=document.createElement("div");e.innerHTML=this.l10n.score,t.appendChild(e),s.unshift(t)}return{hasUnansweredInteractions:a,sectionElements:s}}createChapterOverview(t){const e=document.createElement("li");e.classList.add("h5p-interactive-book-summary-overview-section");const s=document.createElement("h4");s.onclick=()=>{const e={h5pbookid:this.parent.contentId,chapter:`h5p-interactive-book-chapter-${t.instance.subContentId}`,section:"top"};this.parent.trigger("newChapter",e)};const a=document.createElement("span");if(a.innerHTML=t.title,s.appendChild(a),this.behaviour.progressIndicators){const e=document.createElement("span"),a=this.parent.getChapterStatus(t);e.classList.add(`icon-chapter-${a.toLowerCase()}`),s.appendChild(e)}e.appendChild(s);let{sectionElements:r,hasUnansweredInteractions:i}=this.createSectionList(t.sections.filter((t=>t.isTask)),t.instance.subContentId);!1===i&&e.classList.add("h5p-interactive-book-summary-no-interactions");const n=document.createElement("div");n.classList.add("h5p-interactive-book-summary-chapter-subheader"),t.maxTasks?n.innerHTML=this.l10n.leftOutOfTotalCompleted.replace("@left",Math.max(t.maxTasks-t.tasksLeft,0)).replace("@max",t.maxTasks):n.innerHTML=this.l10n.noInteractions,e.appendChild(n);const o=document.createElement("ul");return r.length&&r.map((t=>o.appendChild(t))),e.appendChild(o),e}createFilterDropdown(){const t=(t,r)=>{const i=document.createElement("li");i.role="menuitem";const n=document.createElement("button");return n.textContent=t,n.type="button",n.onclick=t=>{this.setFilter(r),e.removeAttribute("active"),s.setAttribute("aria-expanded","false"),a.textContent=t.currentTarget.innerHTML},i.appendChild(n),i},e=document.createElement("div");e.classList.add("h5p-interactive-book-summary-dropdown");const s=document.createElement("button");s.setAttribute("aria-haspopup","true"),s.setAttribute("aria-expanded","false"),s.type="button",s.onclick=()=>{e.hasAttribute("active")?(e.removeAttribute("active"),s.setAttribute("aria-expanded","false")):(e.setAttribute("active",""),s.setAttribute("aria-expanded","true"),s.focus())};const a=document.createElement("span");a.textContent=this.l10n.allInteractions,s.appendChild(a);const r=document.createElement("span");r.classList.add("h5p-interactive-book-summary-dropdown-icon"),r.classList.add("icon-expanded"),r.setAttribute("aria-hidden","true"),s.appendChild(r);const i=document.createElement("ul");i.role="menu",i.classList.add("h5p-interactive-book-summary-dropdown-menu");const n=t(this.l10n.allInteractions,this.filterActionAll),o=t(this.l10n.unansweredInteractions,this.filterActionUnanswered);return i.appendChild(n),i.appendChild(o),e.appendChild(s),e.appendChild(i),e}addSummaryOverview(){const t=document.createElement("ul");t.classList.add("h5p-interactive-book-summary-list");const e=document.createElement("li");e.classList.add("h5p-interactive-book-summary-overview-header");const s=document.createElement("h3");s.innerHTML=this.l10n.summaryHeader,e.appendChild(s),e.appendChild(this.createFilterDropdown()),t.appendChild(e);const a=document.createElement("ol");a.classList.add("h5p-interactive-book-summary-overview-list");for(const t of this.chapters)a.appendChild(this.createChapterOverview(t));const r=document.createElement("p");r.classList.add("h5p-interactive-book-summary-overview-list-empty"),r.classList.add("h5p-interactive-book-summary-top-section"),r.classList.add("h5p-interactive-book-summary-bottom-section"),r.innerHTML=this.l10n.noInteractions,a.appendChild(r),t.appendChild(a),this.wrapper.appendChild(t)}addScoreBar(){const t=document.createElement("div");t.classList.add("h5p-interactive-book-summary-score-bar");const e=H5P.JoubelUI.createScoreBar(this.parent.getMaxScore());e.setScore(this.parent.getScore()),e.appendTo(t),this.wrapper.appendChild(t)}noChapterInteractions(){const t=document.createElement("div");t.classList.add("h5p-interactive-book-summary-no-chapter-interactions");const e=document.createElement("p");e.innerHTML=this.l10n.noChapterInteractionBoldText;const s=document.createElement("p");s.classList.add("h5p-interactive-book-summary-no-initialized-chapters"),s.innerHTML=this.l10n.noChapterInteractionText,t.appendChild(e),t.appendChild(s),this.wrapper.appendChild(t)}addSummaryPage(t){if(this.wrapper=document.createElement("div"),this.wrapper.classList.add("h5p-interactive-book-summary-page"),this.chapters.filter((t=>t.isInitialized)).length>0||this.chapters.some((t=>t.sections.some((t=>t.taskDone))))){if(this.parent.pageContent&&this.parent.chapters[this.parent.getChapterId(this.parent.pageContent.targetPage.chapter)].isSummary||0===this.parent.chapters.length){if(this.parent.chapters.length>0)for(const t in this.chapters)this.parent.pageContent.initializeChapter(t);this.addProgressIndicators(),this.addActionButtons(),this.addSummaryOverview(),this.addScoreBar()}}else this.noChapterInteractions();return Array.from(document.querySelectorAll(".h5p-interactive-book-summary-footer")).forEach((t=>t.remove())),t.append(this.wrapper),t}checkTheAnswerIsUpdated(){const t=this.getChapterStats(),e=JSON.parse(this.tempState);for(const s of t.keys()){let a=e[s].state.instances,r=t[s].state.instances,i=t[s].sections;for(const t of a.keys())null!==a[t]&&void 0!==a[t]&&(Array.isArray(a[t])&&!this.compareStates(a[t],r[t])&&i[t].taskDone&&(this.parent.isAnswerUpdated=!0),"object"==typeof a[t]&&!Array.isArray(a[t])&&JSON.stringify(a[t])!==JSON.stringify(r[t])&&i[t].taskDone&&(this.parent.isAnswerUpdated=!0));if(this.parent.isAnswerUpdated)break}}getChapterStats(){return this.chapters.filter((t=>!t.isSummary)).map((t=>({sections:t.sections.map((t=>({taskDone:t.taskDone}))),state:t.instance.getCurrentState()})))}compareStates(t,e){return Array.isArray(t)&&Array.isArray(e)&&t.length===e.length&&t.every(((t,s)=>t===e[s]||""===e[s]))}}const d=p;class u extends H5P.EventDispatcher{constructor(t,e,s,a,r){if(super(),this.parent=a,this.behaviour=t.behaviour,this.params=r,this.targetPage={},this.targetPage.redirectFromComponent=!1,this.columnNodes=[],this.chapters=[],this.l10n=t.l10n,this.sidebarIsOpen=!1,this.previousState=s.previousState&&Object.keys(s.previousState).length>0?s.previousState:null,a.hasValidChapters()){const a=this.createColumns(t,e,s);this.preloadChapter(a)}this.content=this.createPageContent(),this.container=document.createElement("div"),this.container.classList.add("h5p-interactive-book-main","h5p-interactive-book-navigation-hidden"),this.container.appendChild(this.content)}getChapters(t=!0){return this.chapters.filter((e=>!e.isSummary||e.isSummary&&!!t))}resetChapters(){this.behaviour.progressIndicators&&!this.behaviour.progressAuto&&this.columnNodes.forEach((t=>{Array.from(t.querySelectorAll(".h5p-interactive-book-status-progress-marker > input[type=checkbox]")).forEach((t=>t.checked=!1))}))}createPageContent(){const t=document.createElement("div");return t.classList.add("h5p-interactive-book-content"),this.columnNodes.forEach((e=>{t.appendChild(e)})),this.setChapterOrder(this.parent.getActiveChapter()),t}setChapterOrder(t){t<0||t>this.columnNodes.length-1||this.columnNodes.forEach(((e,s)=>{e.classList.remove("h5p-interactive-book-previous"),e.classList.remove("h5p-interactive-book-current"),e.classList.remove("h5p-interactive-book-next"),s===t-1||s===t&&e.classList.add("h5p-interactive-book-current")}))}createChapterReadCheckbox(t){const e=document.createElement("input");e.setAttribute("type","checkbox"),e.checked=t,e.onclick=t=>{this.parent.setChapterRead(void 0,t.target.checked)};const s=document.createElement("p");s.innerHTML=this.params.l10n.markAsFinished;const a=document.createElement("label");return a.classList.add("h5p-interactive-book-status-progress-marker"),a.appendChild(e),a.appendChild(s),a}injectSectionId(t,e){const s=e.getElementsByClassName("h5p-column-content");for(let e=0;e<t.length;e++)s[e].id=`h5p-interactive-book-section-${t[e].instance.subContentId}`}preloadChapter(t){this.initializeChapter(t),this.initializeChapter(t+1)}initializeChapter(t){if(t<0||t>this.chapters.length-1)return;const e=this.chapters[t];if(e.isSummary){const s=this.columnNodes[t];return e.isInitialized&&(e.instance.setChapters(this.getChapters(!1)),s.innerHTML=""),e.instance.addSummaryPage(H5P.jQuery(s)),void(e.isInitialized=!0)}if(!e.isInitialized){const s=this.columnNodes[t];e.instance.attach(H5P.jQuery(s)),this.injectSectionId(e.sections,s),this.behaviour.progressIndicators&&!this.behaviour.progressAuto&&s.appendChild(this.createChapterReadCheckbox(!!this.previousState?.chapters?.[t].completed)),e.isInitialized=!0}}createColumns(e,s,a){const r=(a=Object.assign({},a)).previousState&&Object.keys(a.previousState).length>0?a.previousState:null;let i=t.extractFragmentsFromURL(this.parent.validateFragments,this.parent.hashWindow);0===Object.keys(i).length&&a&&r&&r.urlFragments&&(i=r.urlFragments);const n=[];this.chapters=n;for(let t=0;t<e.chapters.length;t++){const a=document.createElement("div"),i={parent:self,previousState:r?r.chapters[t].state:{}},o=H5P.newRunnable(e.chapters[t],s,void 0,void 0,i);this.parent.bubbleUp(o,"resize",this.parent);const c=[],h=(t,e)=>{t.getInstances().forEach(((s,a)=>{if("H5P.Row"===s.libraryInfo.machineName){const t=e[a].content.params.columns;s.getInstances().forEach(((e,s)=>{h(e,t[s].content.params.content)}))}else{let r=e[a].content;"H5P.RowColumn"===t.libraryInfo.machineName&&(r=e[a]),c.push({content:r,instance:s,isTask:!1})}}))};h(o,e.chapters[t].params.content);const l={isInitialized:!1,instance:o,title:e.chapters[t].metadata.title,completed:!!r&&r.chapters[t].completed,tasksLeft:r?r.chapters[t].tasksLeft:0,isSummary:!1,sections:c};a.classList.add("h5p-interactive-book-chapter"),a.id=`h5p-interactive-book-chapter-${o.subContentId}`,l.maxTasks=0,l.tasksLeft=0,l.sections.forEach(((e,s)=>{H5P.Column.isTask(e.instance)&&(e.isTask=!0,l.maxTasks++,l.tasksLeft++,this.behaviour.progressIndicators&&(e.taskDone=!!r&&r.chapters[t].sections[s].taskDone,e.taskDone&&l.tasksLeft--))})),n.push(l),this.columnNodes.push(a)}if(this.parent.hasSummary(n)){const t=document.createElement("div"),s=new d({...e},this.parent,this.getChapters(!1));this.parent.bubbleUp(s,"resize",this.parent);const a={isInitialized:!1,instance:s,title:this.l10n.summaryHeader,isSummary:!0,sections:[]};t.classList.add("h5p-interactive-book-chapter"),t.id="h5p-interactive-book-chapter-summary",a.maxTasks=a.tasksLeft,n.push(a),this.columnNodes.push(t)}if(i.chapter&&i.h5pbookid==this.parent.contentId){const t=this.findChapterIndex(i.chapter);if(-1===t)return 0;if(this.parent.setActiveChapter(t),i.section){const t=i.headerNumber;window.requestAnimationFrame((()=>{this.redirectSection(i.section,t),this.parent.hasCover()&&this.parent.cover.removeCover()}))}return t}return 0}redirectSection(t,e=null){if("top"===t)this.parent.trigger("scrollToTop");else{let s=document.getElementById(t);if(s){if(null!==e){const t=s.querySelectorAll("h2, h3");t[e]&&(s=t[e])}const t=document.createElement("div");t.setAttribute("tabindex","-1"),s.parentNode.insertBefore(t,s),t.focus(),t.addEventListener("blur",(()=>{t.parentNode.removeChild(t)})),this.targetPage.redirectFromComponent=!1,setTimeout((()=>{s.scrollIntoView(!0)}),100)}}}findChapterIndex(t){let e=-1;return this.columnNodes.forEach(((s,a)=>{-1===e&&s.id===t&&(e=a)})),e}changeChapter(t,e){if(this.columnNodes[this.parent.getActiveChapter()].classList.contains("h5p-interactive-book-animate"))return;this.targetPage=e;const s=this.parent.getActiveChapter(),a=this.parent.getChapterId(this.targetPage.chapter),r=s!==a;if(t||this.parent.updateChapterProgress(s,r),this.preloadChapter(a),a<this.columnNodes.length){const e=this.columnNodes[s],i=this.columnNodes[a];if(r&&!t){this.parent.setActiveChapter(a);const t=s<a?"next":"previous";i.classList.add(`h5p-interactive-book-${t}`),i.classList.add("h5p-interactive-book-animate"),e.classList.add("h5p-interactive-book-animate"),setTimeout((()=>{"previous"===t?e.classList.add("h5p-interactive-book-next"):(e.classList.remove("h5p-interactive-book-current"),e.classList.add("h5p-interactive-book-previous")),i.classList.remove(`h5p-interactive-book-${t}`)}),1),setTimeout((()=>{e.classList.remove("h5p-interactive-book-next"),e.classList.remove("h5p-interactive-book-previous"),e.classList.remove("h5p-interactive-book-current"),i.classList.add("h5p-interactive-book-current"),i.classList.remove("h5p-interactive-book-animate"),e.classList.remove("h5p-interactive-book-animate"),this.redirectSection(this.targetPage.section,this.targetPage.headerNumber),this.parent.trigger("resize")}),250)}else this.parent.cover&&!this.parent.cover.hidden?this.parent.on("coverRemoved",(()=>{this.redirectSection(this.targetPage.section,this.targetPage.headerNumber)})):this.redirectSection(this.targetPage.section,this.targetPage.headerNumber);this.parent.sideBar.redirectHandler(a)}}updateFooter(){if(0===this.chapters.length)return;const t=this.parent.getActiveChapter(),e=this.columnNodes[t],s=this.parent.shouldFooterBeHidden(e.clientHeight),a=this.parent.statusBarFooter.wrapper.parentNode;s?a!==this.content&&this.content.appendChild(this.parent.statusBarFooter.wrapper):a!==this.parent.$wrapper&&this.parent.$wrapper.append(this.parent.statusBarFooter.wrapper)}toggleNavigationMenu(){const t=this;this.sidebarIsOpen?(H5P.Transition.onTransitionEnd(H5P.jQuery(this.container),(function(){t.container.classList.add("h5p-interactive-book-navigation-hidden")}),500),this.container.classList.remove("h5p-interactive-book-navigation-open")):(this.container.classList.remove("h5p-interactive-book-navigation-hidden"),setTimeout((function(){t.container.classList.add("h5p-interactive-book-navigation-open")}),1)),this.sidebarIsOpen=!this.sidebarIsOpen}}const m=u;class g extends H5P.EventDispatcher{constructor(e,s,r={}){super();const n=this;if(this.contentId=s,this.previousState=r.previousState,e&&e.behaviour&&e.behaviour.baseColor&&!l.isBaseColor(e.behaviour.baseColor)){l.setBase(e.behaviour.baseColor);const t=document.createElement("style");t.styleSheet?t.styleSheet.cssText=l.getCSS():t.appendChild(document.createTextNode(l.getCSS())),document.head.appendChild(t)}this.activeChapter=0,this.newHandler={},this.completed=!1,this.params=g.sanitizeConfig(e),this.l10n=this.params.l10n,this.params.behaviour=this.params.behaviour||{},this.mainWrapper=null,this.currentRatio=null,this.smallSurface="h5p-interactive-book-small",this.mediumSurface="h5p-interactive-book-medium",this.largeSurface="h5p-interactive-book-large",this.chapters=[],this.isSubmitButtonEnabled=!1,this.isAnswerUpdated=!0,void 0!==r.isScoringEnabled||void 0!==r.isReportingEnabled?this.isSubmitButtonEnabled=r.isScoringEnabled||r.isReportingEnabled:void 0!==H5PIntegration.reportingIsEnabled&&(this.isSubmitButtonEnabled=H5PIntegration.reportingIsEnabled),this.params.behaviour.enableSolutionsButton=!1,this.params.behaviour.enableRetry=this.params.behaviour.enableRetry??!0,this.getAnswerGiven=()=>this.chapters.reduce(((t,e)=>"function"==typeof e.instance.getAnswerGiven?t&&e.instance.getAnswerGiven():t),!0),this.getScore=()=>this.chapters.length>0?this.chapters.reduce(((t,e)=>"function"==typeof e.instance.getScore?t+e.instance.getScore():t),0):this.previousState&&this.previousState.score||0,this.getMaxScore=()=>this.chapters.length>0?this.chapters.reduce(((t,e)=>"function"==typeof e.instance.getMaxScore?t+e.instance.getMaxScore():t),0):this.previousState&&this.previousState.maxScore||0,this.showSolutions=()=>{this.chapters.forEach((t=>{"function"==typeof t.instance.toggleReadSpeaker&&t.instance.toggleReadSpeaker(!0),"function"==typeof t.instance.showSolutions&&t.instance.showSolutions(),"function"==typeof t.instance.toggleReadSpeaker&&t.instance.toggleReadSpeaker(!1)}))},this.resetTask=()=>{if(this.hasValidChapters()){this.chapters.forEach(((t,e)=>{"function"==typeof t.instance.resetTask&&t.instance.resetTask(),t.completed=!1,t.tasksLeft=t.maxTasks,t.sections.forEach((t=>t.taskDone=!1)),this.setChapterRead(e,!1)}));for(const t in this.previousState)delete this.previousState[t];this.hashWindow.location.hash="";const t=this.getActiveChapter();this.redirectChapter({h5pbookid:this.contentId,chapter:this.pageContent.columnNodes[0].id,section:"top"}),this.chapters[t].completed=!1,this.hasCover()&&this.displayCover(this.mainWrapper),this.isAnswerUpdated=!1,this.setActivityStarted(!0),this.pageContent.resetChapters(),this.sideBar.resetIndicators()}},this.getXAPIData=()=>{const t=this.createXAPIEventTemplate("answered");return this.addQuestionToXAPI(t),t.setScoredResult(this.getScore(),this.getMaxScore(),this,!0,this.getScore()===this.getMaxScore()),{statement:t.data.statement,children:this.getXAPIDataFromChildren(this.chapters.map((t=>t.instance)))}},this.getXAPIDataFromChildren=t=>t.map((t=>{if("function"==typeof t.getXAPIData)return t.getXAPIData()})).filter((t=>!!t)),this.addQuestionToXAPI=t=>{const e=t.getVerifiedStatementValue(["object","definition"]);Object.assign(e,this.getxAPIDefinition())},this.getxAPIDefinition=()=>({interactionType:"compound",type:"http://adlnet.gov/expapi/activities/cmi.interaction",description:{"en-US":""}}),this.getCurrentState=()=>{const e=this.chapters.filter((t=>!t.isSummary)).map((t=>({completed:t.completed||null,sections:t.sections.map((t=>({taskDone:t.taskDone||null}))),state:t.instance.getCurrentState()||null}))),s={urlFragments:!this.hashWindow.location.hash&&this.previousState?.urlFragments?this.previousState.urlFragments:t.extractFragmentsFromURL(this.validateFragments,this.hashWindow),chapters:e};return this.activeChapter>0&&(s.score=this.getScore(),s.maxScore=this.getMaxScore()),s},this.getContext=()=>this.cover&&!this.cover.hidden?{}:{type:"page",value:this.activeChapter+1},this.hasCover=()=>this.cover&&this.cover.container,this.hasSummary=(t=this.chapters)=>this.hasChaptersTasks(t)&&this.params.behaviour.displaySummary&&!0===this.params.behaviour.displaySummary,this.hasChaptersTasks=t=>t.filter((t=>t.sections.filter((t=>!0===t.isTask)).length>0)).length>0,this.hasValidChapters=()=>this.params.chapters.length>0,this.getActiveChapter=(t=!1)=>t?this.chapters[this.activeChapter]:this.activeChapter,this.setActiveChapter=t=>{t=parseInt(t),isNaN(t)||(this.activeChapter=t)},this.validateFragments=t=>void 0!==t.chapter&&String(t.h5pbookid)===String(n.contentId),this.bubbleUp=(t,e,s)=>{t.on(e,(function(t){s.bubblingUpwards=!0,s.trigger(e,t),s.bubblingUpwards=!1}))},this.isMenuOpen=()=>this.statusBarHeader.isMenuOpen(),this.isSmallSurface=()=>this.mainWrapper&&this.mainWrapper.hasClass(this.smallSurface),this.getRatio=()=>this.mainWrapper.width()/parseFloat(this.mainWrapper.css("font-size")),this.setWrapperClassFromRatio=(t,e=this.getRatio())=>{e!==this.currentRatio&&(this.breakpoints().forEach((t=>{t.shouldAdd(e)?this.mainWrapper.addClass(t.className):this.mainWrapper.removeClass(t.className)})),this.currentRatio=e)},this.resize=()=>{if(this.isBubblingUpToCore||this.isBubblingUpToCoreNo2)return;if(!this.pageContent||!this.hasValidChapters()||!this.mainWrapper)return;window.requestAnimationFrame((()=>{this.setWrapperClassFromRatio(this.mainWrapper)}));const t=this.getActiveChapter(),e=this.pageContent.columnNodes[t];null!==e.offsetParent&&(this.bubblingUpwards||this.pageContent.chapters[t].instance.trigger("resize"),this.pageContent.content.style.height===`${e.offsetHeight}px`||e.classList.contains("h5p-interactive-book-animate")||(this.pageContent.content.style.height=`${e.offsetHeight}px`,this.pageContent.updateFooter(),setTimeout((()=>{this.isBubblingUpToCore=!0,this.trigger("resize"),this.isBubblingUpToCore=!1}),10),window.clearTimeout(this.extraResizeTimeout),this.extraResizeTimeout=window.setTimeout((()=>{this.isBubblingUpToCoreNo2=!0,this.trigger("resize"),this.isBubblingUpToCoreNo2=!1}),200)))},this.on("resize",this.resize,this),this.on("toggleMenu",(t=>{this.sideBar.container.addEventListener("transitionend",(()=>{this.trigger("resize")}));const e=!t.data?.shouldNotFocusNav;this.pageContent.toggleNavigationMenu(),this.statusBarHeader.menuToggleButton.setAttribute("aria-expanded",this.statusBarHeader.menuToggleButton.classList.toggle("h5p-interactive-book-status-menu-active")?"true":"false"),this.pageContent.sidebarIsOpen&&e&&this.sideBar.focus()})),this.on("scrollToTop",(t=>{if(!0===H5P.isFullscreen){const t=this.pageContent.container;t.scrollBy(0,-t.scrollHeight)}else{if(t?.data?.preventScrollToTop)return;!1!==t?.data?.focus&&this.statusBarHeader.wrapper.scrollIntoView({block:"nearest"})}})),this.on("newChapter",(e=>{if(!this.pageContent.columnNodes[this.getActiveChapter()].classList.contains("h5p-interactive-book-animate")){if(this.newHandler=e.data,e.data.newHash=t.createFragmentsString(this.newHandler),this.newHandler.redirectFromComponent=!0,this.getChapterId(e.data.chapter)===this.activeChapter){if(t.areFragmentsEqual(e.data,t.extractFragmentsFromURL(this.validateFragments,this.hashWindow),["h5pbookid","chapter","section","headerNumber"]))return void this.pageContent.changeChapter(!1,e.data)}if(this.params.behaviour.progressAuto){const t=this.getChapterId(this.newHandler.chapter);this.isFinalChapterWithoutTask(t)&&this.setChapterRead(t)}H5P.trigger(this,"changeHash",e.data),H5P.trigger(this,"scrollToTop",e.data)}})),this.isCurrentChapterRead=()=>this.isChapterRead(this.chapters[this.activeChapter],this.params.behaviour.progressAuto),this.isChapterRead=(t,e=this.params.behaviour.progressAuto)=>t.completed||e&&0===t.tasksLeft,this.isFinalChapterWithoutTask=t=>0===this.chapters[t].maxTasks&&this.chapters.slice(0,t).concat(this.chapters.slice(t+1)).every((t=>0===t.tasksLeft)),this.setChapterRead=(t=this.activeChapter,e=!0)=>{this.handleChapterCompletion(t,e),this.sideBar.updateChapterProgressIndicator(t,e?"DONE":this.hasChapterStartedTasks(this.chapters[t])?"STARTED":"BLANK")},this.hasChapterStartedTasks=t=>t.sections.filter((t=>t.taskDone)).length>0,this.getChapterStatus=(t,e=this.params.behaviour.progressAuto)=>{let s="BLANK";return this.isChapterRead(t,e)?s="DONE":this.hasChapterStartedTasks(t)&&(s="STARTED"),s},this.updateChapterProgress=(t,e=!1)=>{if(!this.params.behaviour.progressIndicators)return;const s=this.chapters[t];let a;a=s.maxTasks?this.getChapterStatus(s):this.isChapterRead(s)&&e?"DONE":"BLANK","DONE"===a&&this.handleChapterCompletion(t),this.sideBar.updateChapterProgressIndicator(t,a)},this.getChapterId=t=>{t=t.replace("h5p-interactive-book-chapter-","");const e=this.chapters.map((t=>t.instance.subContentId)).indexOf(t);return-1===e?0:e},this.handleChapterCompletion=(t,e=!0)=>{const s=this.chapters[t];if(!0!==s.isSummary){if(!e)return s.completed=!1,this.completed=!1,void this.trigger("bookCompleted",{completed:this.completed});s.completed||(s.completed=!0,s.instance.triggerXAPIScored(s.instance.getScore(),s.instance.getMaxScore(),"completed")),!this.completed&&this.chapters.filter((t=>!t.isSummary)).every((t=>t.completed))&&(this.completed=!0,this.trigger("bookCompleted",{completed:this.completed}))}},this.shouldFooterBeHidden=()=>this.isFullscreen,this.getContainerWidth=()=>this.pageContent&&this.pageContent.container?this.pageContent.container.offsetWidth:0,this.changeChapter=t=>{this.pageContent.changeChapter(t,this.newHandler),this.statusBarHeader.updateStatusBar(),this.statusBarFooter.updateStatusBar(),this.newHandler.redirectFromComponent=!1},this.breakpoints=()=>[{className:this.smallSurface,shouldAdd:t=>t<43},{className:this.mediumSurface,shouldAdd:t=>t>=43&&t<60},{className:this.largeSurface,shouldAdd:t=>t>=60}],H5P.on(this,"respondChangeHash",(()=>{const e=t.extractFragmentsFromURL(n.validateFragments,this.hashWindow);e.h5pbookid&&String(e.h5pbookid)===String(n.contentId)&&this.redirectChapter(e)})),H5P.on(this,"changeHash",(t=>{String(t.data.h5pbookid)===String(this.contentId)&&(this.hashWindow.location.hash=t.data.newHash)})),H5P.externalDispatcher.on("xAPI",(function(t){const e=["answered","completed","interacted","attempted"].indexOf(t.getVerb())>-1,s=n.chapters.length;if(n!==this&&e&&s){const t=this.subContentId||this.contentData?.subContentId;if(!t)return;n.setSectionStatusByID(t,n.activeChapter)}})),this.redirectChapter=t=>{this.newHandler.redirectFromComponent||(t.h5pbookid&&String(t.h5pbookid)===String(n.contentId)?n.newHandler=t:n.newHandler={chapter:`h5p-interactive-book-chapter-${n.chapters[0].instance.subContentId}`,h5pbookid:n.h5pbookid}),n.changeChapter(!1)},this.setSectionStatusByID=(t,e)=>{this.chapters[e].sections.forEach(((s,a)=>{const r=s.instance;r.subContentId!==t||s.taskDone||(s.taskDone=!r.getAnswerGiven||r.getAnswerGiven(),this.sideBar.setSectionMarker(e,a),s.taskDone&&(this.chapters[e].tasksLeft-=1),this.updateChapterProgress(e))}))},this.addHashListener=t=>{t.addEventListener("hashchange",(t=>{H5P.trigger(this,"respondChangeHash",t)})),this.hashWindow=t};try{this.addHashListener(top)}catch(t){if(!(t instanceof DOMException))throw t;this.addHashListener(window)}this.displayCover=t=>{this.hideAllElements(!0),t.append(this.cover.container),t.addClass("covered"),this.cover.initMedia()},this.attach=t=>{this.mainWrapper=t,t.addClass("h5p-interactive-book h5p-scrollable-fullscreen"),this.isEdge18orEarlier()&&t.addClass("edge-18"),this.setWrapperClassFromRatio(this.mainWrapper),this.cover&&this.shouldShowCover&&this.displayCover(t),t.append(this.statusBarHeader.wrapper);const e=this.pageContent.container.firstChild;e&&this.pageContent.container.insertBefore(this.sideBar.container,e),t.append(this.pageContent.container),t.append(this.statusBarFooter.wrapper),this.$wrapper=t,this.params.behaviour.defaultTableOfContents&&!this.isSmallSurface()&&this.trigger("toggleMenu",{shouldNotFocusNav:!0}),this.pageContent.updateFooter()},this.isEdge18orEarlier=function(){const t=window.navigator.userAgent,e=t.indexOf("Edge/");if(e<0)return!1;const s=t.substring(e+5,t.indexOf(".",e));return parseInt(s)<=18},this.hideAllElements=function(t){const e=[this.statusBarHeader.wrapper,this.statusBarFooter.wrapper,this.pageContent.container];t?e.forEach((t=>{t.classList.add("h5p-content-hidden"),t.classList.add("h5p-interactive-book-cover-present")})):e.forEach((t=>{t.classList.remove("h5p-content-hidden"),t.classList.remove("h5p-interactive-book-cover-present")}))};const c=t.extractFragmentsFromURL(this.validateFragments,this.hashWindow);this.shouldShowCover=this.params.showCoverPage&&!(c.chapter||r.previousState?.urlFragments?.chapter),this.params.showCoverPage&&(this.cover=new o(this.params.bookCover,r.metadata.title,this.l10n.read,s,this));const h={...r,parent:this};this.pageContent=new m(this.params,s,h,this,{l10n:{markAsFinished:this.l10n.markAsFinished},behaviour:this.params.behaviour}),this.chapters=this.pageContent.getChapters(),this.sideBar=new a(this.params,s,r.metadata.title,this,this.chapters),this.chapters.forEach(((t,e)=>{this.setChapterRead(e,t.completed)})),this.statusBarHeader=new i(s,this.chapters.length,this,{l10n:this.l10n,a11y:this.params.a11y,behaviour:this.params.behaviour,displayFullScreenButton:!0,displayMenuToggleButton:!0,preventScrollToTop:!0},"h5p-interactive-book-status-header"),this.statusBarFooter=new i(s,this.chapters.length,this,{l10n:this.l10n,a11y:this.params.a11y,behaviour:this.params.behaviour,displayToTopButton:!0},"h5p-interactive-book-status-footer"),this.hasCover()?(this.hideAllElements(!0),this.on("coverRemoved",(t=>{this.hideAllElements(!1),this.params.chapters[this.activeChapter]?.subContentId&&this.trigger("newChapter",{h5pbookid:this.contentId,chapter:`h5p-interactive-book-chapter-${this.params.chapters[this.activeChapter].subContentId}`,section:0,focus:t.data}),this.trigger("resize"),this.setActivityStarted(),t.data&&this.statusBarHeader.progressBar.progress.focus()}))):this.setActivityStarted(),this.hasValidChapters()&&(this.statusBarHeader.updateStatusBar(),this.statusBarFooter.updateStatusBar())}static sanitizeConfig(t){const{read:e="Read",displayTOC:s="Display &#039;Table of contents&#039;",hideTOC:a="Hide &#039;Table of contents&#039;",nextPage:r="Next page",previousPage:i="Previous page",chapterCompleted:n="Page completed!",partCompleted:o="@pages of @total completed",incompleteChapter:c="Incomplete page",navigateToTop:h="Navigate to the top",markAsFinished:l="I have finished this page",fullscreen:p="Fullscreen",exitFullscreen:d="Exit fullscreen",bookProgressSubtext:u="@count of @total pages",interactionsProgressSubtext:m="@count of @total interactions",submitReport:g="Submit Report",restartLabel:b="Restart",summaryHeader:v="Summary",allInteractions:f="All interactions",unansweredInteractions:k="Unanswered interactions",scoreText:y="@score / @maxscore",leftOutOfTotalCompleted:C="@left of @max interactinos completed",noInteractions:w="No interactions",score:S="Score",summaryAndSubmit:L="Summary & submit",noChapterInteractionBoldText:x="You have not interacted with any pages.",noChapterInteractionText:E="You have to interact with at least one page before you can see the summary.",yourAnswersAreSubmittedForReview:A="Your answers are submitted for review!",bookProgress:T="Book progress",interactionsProgress:M="Interactions progress",totalScoreLabel:I="Total score",...P}=t;return P.chapters=P.chapters.map((t=>(t.params.content=t.params.content?.filter((t=>t.content)),t))).filter((t=>t.params.content&&t.params.content.length>0)),P.behaviour.displaySummary=void 0===P.behaviour.displaySummary||P.behaviour.displaySummary,P.l10n={read:e,displayTOC:s,hideTOC:a,nextPage:r,previousPage:i,chapterCompleted:n,partCompleted:o,incompleteChapter:c,navigateToTop:h,markAsFinished:l,fullscreen:p,exitFullscreen:d,bookProgressSubtext:u,interactionsProgressSubtext:m,submitReport:g,restartLabel:b,summaryHeader:v,allInteractions:f,unansweredInteractions:k,scoreText:y,leftOutOfTotalCompleted:C,noInteractions:w,score:S,summaryAndSubmit:L,noChapterInteractionBoldText:x,noChapterInteractionText:E,yourAnswersAreSubmittedForReview:A,bookProgress:T,interactionsProgress:M,totalScoreLabel:I},P}}H5P=H5P||{},H5P.InteractiveBook=g})()})();;		(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.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.Column-1.18\/library.json":["application\/json","{\"machineName\":\"H5P.Column\",\"title\":\"Page\",\"description\":\"Content holder displaying content in a column.\",\"contentType\":\"instructional\",\"license\":\"MIT\",\"author\":\"Joubel\",\"majorVersion\":1,\"minorVersion\":18,\"patchVersion\":8,\"runnable\":1,\"fullscreen\":0,\"embedTypes\":[\"iframe\"],\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"preloadedJs\":[{\"path\":\"scripts\\\/h5p-column.js\"}],\"preloadedCss\":[{\"path\":\"styles\\\/h5p-column.css\"}]}"],"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\/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.ImageSlide-1.1\/library.json":["application\/json","{\"title\":\"Image Slide\",\"description\":\"Image Slide, helper library for images used in image sliders and similar. Can render images with sizing options\",\"majorVersion\":1,\"minorVersion\":1,\"patchVersion\":4,\"runnable\":0,\"author\":\"Falcon\",\"license\":\"MIT\",\"machineName\":\"H5P.ImageSlide\",\"preloadedJs\":[{\"path\":\"image-slide.js\"}],\"preloadedCss\":[{\"path\":\"image-slide.css\"}]}"],"libraries\/H5P.ImageSlider-1.1\/library.json":["application\/json","{\"title\":\"Image Slider\",\"description\":\"Image Slider\",\"majorVersion\":1,\"minorVersion\":1,\"patchVersion\":9,\"runnable\":1,\"author\":\"Falcon\",\"license\":\"MIT\",\"fullscreen\":1,\"embedTypes\":[\"iframe\"],\"machineName\":\"H5P.ImageSlider\",\"preloadedJs\":[{\"path\":\"image-slider.js\"}],\"preloadedCss\":[{\"path\":\"image-slider.css\"}],\"editorDependencies\":[{\"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\/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.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.InteractiveBook-1.11\/library.json":["application\/json","{\"title\":\"Interactive Book\",\"description\":\"An interactive book which displays content in pages and sections\",\"majorVersion\":1,\"minorVersion\":11,\"patchVersion\":11,\"runnable\":1,\"fullscreen\":1,\"coreApi\":{\"majorVersion\":1,\"minorVersion\":27},\"author\":\"Joubel\",\"license\":\"MIT\",\"machineName\":\"H5P.InteractiveBook\",\"embedTypes\":[\"iframe\"],\"preloadedJs\":[{\"path\":\"dist\\\/h5p-interactive-book.js\"}],\"preloadedCss\":[{\"path\":\"dist\\\/h5p-interactive-book.css\"}],\"preloadedDependencies\":[{\"machineName\":\"FontAwesome\",\"majorVersion\":4,\"minorVersion\":5},{\"machineName\":\"H5P.JoubelUI\",\"majorVersion\":1,\"minorVersion\":3}],\"editorDependencies\":[{\"machineName\":\"H5PEditor.VerticalTabs\",\"majorVersion\":1,\"minorVersion\":3},{\"machineName\":\"H5PEditor.ShowWhen\",\"majorVersion\":1,\"minorVersion\":0},{\"machineName\":\"H5PEditor.ColorSelector\",\"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\/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.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\"}]}"]});		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":"Abbrechen","confirmLabel":"Best\u00e4tigen","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-39416_v1.0":{"displayOptions":{"copy":false,"copyright":false,"embed":false,"export":false,"frame":false,"icon":false},"embedCode":"","exportUrl":false,"fullScreen":false,"contentUserData":[],"metadata":{"title":"\u0394\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 \u03a0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2 \u039b\u03cc\u03b3\u03bf\u03c5 (\u0399\u03b5\u03c1\u03ac\u03c1\u03c7\u03b7\u03c3\u03b7)","license":null},"library":"H5P.InteractiveBook 1.11","jsonContent":"{\"showCoverPage\":false,\"bookCover\":{\"coverDescription\":\"<p style=\\\"text-align: center;\\\"><\\\/p>\"},\"chapters\":[{\"params\":{\"content\":[{\"content\":{\"params\":{\"text\":\"<p style=\\\";\\\"><span style=\\\";\\\"><span style=\\\";\\\"><span style=\\\";\\\">\\u039f\\u03b9 \\u03b5\\u03b9\\u03ba\\u03cc\\u03bd\\u03b5\\u03c2 \\u03c0\\u03bf\\u03c5 \\u03c0\\u03b1\\u03c1\\u03bf\\u03c5\\u03c3\\u03b9\\u03ac\\u03b6\\u03bf\\u03bd\\u03c4\\u03b1\\u03b9 \\u03c0\\u03b1\\u03c1\\u03b1\\u03ba\\u03ac\\u03c4\\u03c9 \\u03b4\\u03b5\\u03af\\u03c7\\u03bd\\u03bf\\u03c5\\u03bd \\u03bf\\u03c1\\u03b9\\u03c3\\u03bc\\u03ad\\u03bd\\u03b1 \\u03c0\\u03c1\\u03cc\\u03c4\\u03c5\\u03c0\\u03b1 \\u03b5\\u03c0\\u03b9\\u03c4\\u03c5\\u03c7\\u03af\\u03b1\\u03c2 \\u03c0\\u03bf\\u03c5 \\u03c0\\u03c1\\u03bf\\u03b2\\u03ac\\u03bb\\u03bb\\u03bf\\u03bd\\u03c4\\u03b1\\u03b9 \\u03c3\\u03ae\\u03bc\\u03b5\\u03c1\\u03b1. \\u0391\\u03be\\u03b9\\u03bf\\u03c0\\u03bf\\u03b9\\u03ce\\u03bd\\u03c4\\u03b1\\u03c2 \\u03c4\\u03b9\\u03c2 \\u03b5\\u03b9\\u03ba\\u03cc\\u03bd\\u03b5\\u03c2 \\u03b1\\u03c5\\u03c4\\u03ad\\u03c2 \\u03ba\\u03b1\\u03b9 \\u03c4\\u03b9\\u03c2 \\u03b3\\u03bd\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c3\\u03b1\\u03c2, \\u03b4\\u03b7\\u03bc\\u03b9\\u03bf\\u03c5\\u03c1\\u03b3\\u03ae\\u03c3\\u03c4\\u03b5 \\u03c3\\u03b7\\u03bc\\u03b5\\u03b9\\u03ce\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c0\\u03bf\\u03c5 \\u03c0\\u03b1\\u03c1\\u03bf\\u03c5\\u03c3\\u03b9\\u03ac\\u03b6\\u03bf\\u03c5\\u03bd \\u03c4\\u03b1 \\u03c0\\u03c1\\u03cc\\u03c4\\u03c5\\u03c0\\u03b1 \\u03c0\\u03bf\\u03c5 \\u03c0\\u03c1\\u03bf\\u03b2\\u03ac\\u03bb\\u03bb\\u03bf\\u03bd\\u03c4\\u03b1\\u03b9 (\\\"\\u03c0\\u03c1\\u03b1\\u03b3\\u03bc\\u03b1\\u03c4\\u03b9\\u03ba\\u03cc\\\") \\u03ba\\u03b1\\u03b9 \\u03c4\\u03b1 \\u03c0\\u03c1\\u03cc\\u03c4\\u03c5\\u03c0\\u03b1 \\u03c0\\u03bf\\u03c5 \\u03b8\\u03b5\\u03c9\\u03c1\\u03b5\\u03af\\u03c4\\u03b5 \\u03b5\\u03c3\\u03b5\\u03af\\u03c2 \\u03c0\\u03c9\\u03c2 \\u03b8\\u03b1 \\u03ae\\u03c4\\u03b1\\u03bd \\u03ba\\u03b1\\u03bb\\u03cd\\u03c4\\u03b5\\u03c1\\u03bf \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03b2\\u03ac\\u03bb\\u03bb\\u03bf\\u03bd\\u03c4\\u03b1\\u03b9 (\\\"\\u03c5\\u03c0\\u03bf\\u03b8\\u03b5\\u03c4\\u03b9\\u03ba\\u03cc\\\"). \\u039f\\u03c1\\u03b3\\u03b1\\u03bd\\u03ce\\u03c3\\u03c4\\u03b5 \\u03c4\\u03b9\\u03c2 \\u03b9\\u03b4\\u03ad\\u03b5\\u03c2 \\u03c3\\u03b5 \\u03ba\\u03ac\\u03b8\\u03b5 \\u03ba\\u03b1\\u03c4\\u03b7\\u03b3\\u03bf\\u03c1\\u03af\\u03b1 \\u03bc\\u03b5 \\u03ba\\u03ac\\u03c0\\u03bf\\u03b9\\u03b1 \\u03bb\\u03bf\\u03b3\\u03b9\\u03ba\\u03ae \\u03c3\\u03b5\\u03b9\\u03c1\\u03ac (\\u03c0.\\u03c7. \\u03b1\\u03c0\\u03cc \\u03c4\\u03b7 \\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03c4\\u03b9\\u03ba\\u03cc\\u03c4\\u03b5\\u03c1\\u03b7 \\u03c3\\u03c4\\u03b7 \\u03bb\\u03b9\\u03b3\\u03cc\\u03c4\\u03b5\\u03c1\\u03bf \\u03c3\\u03b7\\u03bc\\u03b1\\u03bd\\u03c4\\u03b9\\u03ba\\u03ae \\u03ae \\u03c4\\u03bf \\u03b1\\u03bd\\u03c4\\u03af\\u03c3\\u03c4\\u03c1\\u03bf\\u03c6\\u03bf).<\\\/span><\\\/span><\\\/span><\\\/p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Untitled Text\"},\"subContentId\":\"d4a4aa29-da27-4929-80a8-301317b36092\"},\"useSeparator\":\"auto\"}]},\"library\":\"H5P.Column 1.18\",\"subContentId\":\"f79f0def-7d97-4ed5-a314-6aa245a7518a\",\"metadata\":{\"contentType\":\"Page\",\"license\":\"U\",\"title\":\"\\u0395\\u03ba\\u03c6\\u03ce\\u03bd\\u03b7\\u03c3\\u03b7\"}},{\"params\":{\"content\":[{\"content\":{\"params\":{\"imageSlides\":[{\"params\":{\"image\":{\"params\":{\"decorative\":true,\"contentName\":\"\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1\",\"expandImage\":\"Expand Image\",\"minimizeImage\":\"Minimize Image\",\"file\":{\"path\":\"images\\\/file-68d5524f95397.png\",\"mime\":\"image\\\/png\",\"copyright\":{\"license\":\"U\"},\"width\":625,\"height\":626}},\"library\":\"H5P.Image 1.1\",\"subContentId\":\"0dceb98d-fff3-472a-852c-69ca3d1c60be\",\"metadata\":{\"contentType\":\"Image\",\"license\":\"U\",\"title\":\"Untitled Image\"}}},\"library\":\"H5P.ImageSlide 1.1\",\"subContentId\":\"aa1cb6f7-c4b2-4ce5-8790-0afa988b084a\",\"metadata\":{\"contentType\":\"Image Slide\",\"license\":\"U\",\"title\":\"Untitled Image Slide\"}},{\"params\":{\"image\":{\"params\":{\"decorative\":true,\"contentName\":\"\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1\",\"expandImage\":\"Expand Image\",\"minimizeImage\":\"Minimize Image\",\"file\":{\"path\":\"images\\\/file-68d5525809932.jpg\",\"mime\":\"image\\\/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":201,\"height\":302}},\"library\":\"H5P.Image 1.1\",\"subContentId\":\"6a8c5887-b373-4922-b8e8-e2dc08c6c7c6\",\"metadata\":{\"contentType\":\"Image\",\"license\":\"U\",\"title\":\"Untitled Image\"}}},\"library\":\"H5P.ImageSlide 1.1\",\"subContentId\":\"04633c5d-5fe3-4fbb-a3b3-b995fcf42226\",\"metadata\":{\"contentType\":\"Image Slide\",\"license\":\"U\",\"title\":\"Untitled Image Slide\"}},{\"params\":{\"image\":{\"params\":{\"decorative\":true,\"contentName\":\"\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1\",\"expandImage\":\"Expand Image\",\"minimizeImage\":\"Minimize Image\",\"file\":{\"path\":\"images\\\/file-68d5525f7bbbc.jpg\",\"mime\":\"image\\\/jpeg\",\"copyright\":{\"license\":\"U\"},\"width\":615,\"height\":409}},\"library\":\"H5P.Image 1.1\",\"subContentId\":\"7d21ee82-598d-4122-b4ca-88531a1c642c\",\"metadata\":{\"contentType\":\"Image\",\"license\":\"U\",\"title\":\"Untitled Image\"}}},\"library\":\"H5P.ImageSlide 1.1\",\"subContentId\":\"3fc0e862-1d30-4e44-a1f0-3eeb33471dd9\",\"metadata\":{\"contentType\":\"Image Slide\",\"license\":\"U\",\"title\":\"Untitled Image Slide\"}}],\"aspectRatioMode\":\"auto\",\"aspectRatio\":{\"aspectWidth\":4,\"aspectHeight\":3},\"a11y\":{\"nextSlide\":\"\\u0395\\u03c0\\u03cc\\u03bc\\u03b5\\u03bd\\u03b7 \\u03b5\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1\",\"prevSlide\":\"\\u03a0\\u03c1\\u03bf\\u03b7\\u03b3\\u03bf\\u03cd\\u03bc\\u03b5\\u03bd\\u03b7 \\u03b5\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1\",\"gotoSlide\":\"\\u039c\\u03b5\\u03c4\\u03ac\\u03b2\\u03b1\\u03c3\\u03b7 \\u03c3\\u03c4\\u03b7\\u03bd \\u03b5\\u03b9\\u03ba\\u03cc\\u03bd\\u03b1 %slide\"}},\"library\":\"H5P.ImageSlider 1.1\",\"metadata\":{\"contentType\":\"Image Slider\",\"license\":\"U\",\"title\":\"Untitled Image Slider\"},\"subContentId\":\"f625f1db-484e-4615-86b9-321bd262f102\"},\"useSeparator\":\"auto\"}]},\"library\":\"H5P.Column 1.18\",\"subContentId\":\"5c879b4b-14cc-4fd3-a021-91203fe5f8d7\",\"metadata\":{\"contentType\":\"Page\",\"license\":\"U\",\"title\":\"\\u0395\\u03b9\\u03ba\\u03cc\\u03bd\\u03b5\\u03c2\"}},{\"params\":{\"content\":[{\"content\":{\"params\":{\"l10n\":{\"recordAnswer\":\"\\u0397\\u03c7\\u03bf\\u03b3\\u03c1\\u03ac\\u03c6\\u03b7\\u03c3\\u03b7\",\"pause\":\"\\u03a0\\u03b1\\u03cd\\u03c3\\u03b7\",\"continue\":\"\\u03a3\\u03c5\\u03bd\\u03ad\\u03c7\\u03b5\\u03b9\\u03b1\",\"download\":\"\\u039b\\u03ae\\u03c8\\u03b7\",\"done\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03ae\\u03c1\\u03c9\\u03c3\\u03b7\",\"retry\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"microphoneNotSupported\":\"\\u03a4\\u03bf \\u03bc\\u03b9\\u03ba\\u03c1\\u03cc\\u03c6\\u03c9\\u03bd\\u03bf \\u03b4\\u03b5\\u03bd \\u03c5\\u03c0\\u03bf\\u03c3\\u03c4\\u03b7\\u03c1\\u03af\\u03b6\\u03b5\\u03c4\\u03b1\\u03b9. \\u0392\\u03b5\\u03b2\\u03b1\\u03b9\\u03c9\\u03b8\\u03b5\\u03af\\u03c4\\u03b5 \\u03cc\\u03c4\\u03b9 \\u03c7\\u03c1\\u03b7\\u03c3\\u03b9\\u03bc\\u03bf\\u03c0\\u03bf\\u03b9\\u03b5\\u03af\\u03c4\\u03b5 \\u03ad\\u03bd\\u03b1 \\u03c0\\u03c1\\u03cc\\u03b3\\u03c1\\u03b1\\u03bc\\u03bc\\u03b1 \\u03c0\\u03b5\\u03c1\\u03b9\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\\u03c2 \\u03c0\\u03bf\\u03c5 \\u03b5\\u03c0\\u03b9\\u03c4\\u03c1\\u03ad\\u03c0\\u03b5\\u03b9 \\u03c4\\u03b7\\u03bd \\u03ba\\u03b1\\u03c4\\u03b1\\u03b3\\u03c1\\u03b1\\u03c6\\u03ae \\u03ae\\u03c7\\u03bf\\u03c5 \\u03b1\\u03c0\\u03cc \\u03bc\\u03b9\\u03ba\\u03c1\\u03cc\\u03c6\\u03c9\\u03bd\\u03bf.\",\"microphoneInaccessible\":\"\\u03a4\\u03bf \\u03bc\\u03b9\\u03ba\\u03c1\\u03cc\\u03c6\\u03c9\\u03bd\\u03bf \\u03b4\\u03b5\\u03bd \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03c0\\u03c1\\u03bf\\u03c3\\u03b2\\u03ac\\u03c3\\u03b9\\u03bc\\u03bf. \\u0392\\u03b5\\u03b2\\u03b1\\u03b9\\u03c9\\u03b8\\u03b5\\u03af\\u03c4\\u03b5 \\u03cc\\u03c4\\u03b9 \\u03c4\\u03bf \\u03bc\\u03b9\\u03ba\\u03c1\\u03cc\\u03c6\\u03c9\\u03bd\\u03bf \\u03c4\\u03bf\\u03c5 \\u03c6\\u03c5\\u03bb\\u03bb\\u03bf\\u03bc\\u03b5\\u03c4\\u03c1\\u03b7\\u03c4\\u03ae \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03b5\\u03bd\\u03b5\\u03c1\\u03b3\\u03bf\\u03c0\\u03bf\\u03b9\\u03b7\\u03bc\\u03ad\\u03bd\\u03bf.\",\"insecureNotAllowed\":\"\\u0397 \\u03c0\\u03c1\\u03cc\\u03c3\\u03b2\\u03b1\\u03c3\\u03b7 \\u03c3\\u03c4\\u03bf \\u03bc\\u03b9\\u03ba\\u03c1\\u03cc\\u03c6\\u03c9\\u03bd\\u03bf \\u03b4\\u03b5\\u03bd \\u03b5\\u03c0\\u03b9\\u03c4\\u03c1\\u03ad\\u03c0\\u03b5\\u03c4\\u03b1\\u03b9 \\u03c3\\u03c4\\u03bf\\u03bd \\u03c6\\u03c5\\u03bb\\u03bb\\u03bf\\u03bc\\u03b5\\u03c4\\u03c1\\u03b7\\u03c4\\u03ae \\u03c3\\u03b1\\u03c2, \\u03ba\\u03b1\\u03b8\\u03ce\\u03c2 \\u03b1\\u03c5\\u03c4\\u03ae \\u03b7 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1 \\u03b4\\u03b5\\u03bd \\u03b5\\u03bc\\u03c6\\u03b1\\u03bd\\u03af\\u03b6\\u03b5\\u03c4\\u03b1\\u03b9 \\u03bc\\u03b5 HTTPS. \\u0395\\u03c0\\u03b9\\u03ba\\u03bf\\u03b9\\u03bd\\u03c9\\u03bd\\u03ae\\u03c3\\u03c4\\u03b5 \\u03bc\\u03b5 \\u03c4\\u03bf\\u03bd \\u03b4\\u03b7\\u03bc\\u03b9\\u03bf\\u03c5\\u03c1\\u03b3\\u03cc \\u03ba\\u03b1\\u03b9 \\u03b6\\u03b7\\u03c4\\u03ae\\u03c3\\u03c4\\u03b5 \\u03c4\\u03bf\\u03c5 \\u03bd\\u03b1 \\u03ba\\u03ac\\u03bd\\u03b5\\u03b9 \\u03b4\\u03b9\\u03b1\\u03b8\\u03ad\\u03c3\\u03b9\\u03bc\\u03bf \\u03c4\\u03bf \\u03c0\\u03b5\\u03c1\\u03b9\\u03b5\\u03c7\\u03cc\\u03bc\\u03b5\\u03bd\\u03bf \\u03c7\\u03c1\\u03b7\\u03c3\\u03b9\\u03bc\\u03bf\\u03c0\\u03bf\\u03b9\\u03ce\\u03bd\\u03c4\\u03b1\\u03c2 HTTPS\",\"statusReadyToRecord\":\"\\u03a0\\u03b1\\u03c4\\u03ae\\u03c3\\u03c4\\u03b5 \\u03c4\\u03bf \\u03c0\\u03b1\\u03c1\\u03b1\\u03ba\\u03ac\\u03c4\\u03c9 \\u03ba\\u03bf\\u03c5\\u03bc\\u03c0\\u03af \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03b7\\u03c7\\u03bf\\u03b3\\u03c1\\u03b1\\u03c6\\u03ae\\u03c3\\u03b5\\u03c4\\u03b5 \\u03c4\\u03b7\\u03bd \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03ae \\u03c3\\u03b1\\u03c2.\",\"statusRecording\":\"\\u0397\\u03c7\\u03bf\\u03b3\\u03c1\\u03ac\\u03c6\\u03b7\\u03c3\\u03b7...\",\"statusPaused\":\"\\u0397 \\u03b7\\u03c7\\u03bf\\u03b3\\u03c1\\u03ac\\u03c6\\u03b7\\u03c3\\u03b7 \\u03ad\\u03c7\\u03b5\\u03b9 \\u03c3\\u03c4\\u03b1\\u03bc\\u03b1\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9. \\u03a0\\u03b1\\u03c4\\u03ae\\u03c3\\u03c4\\u03b5 \\u03c4\\u03bf \\u03ba\\u03bf\\u03c5\\u03bc\\u03c0\\u03af \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03c4\\u03b7 \\u03c3\\u03c5\\u03bd\\u03b5\\u03c7\\u03af\\u03c3\\u03b5\\u03c4\\u03b5.\",\"statusFinishedRecording\":\"\\u0388\\u03c7\\u03b5\\u03c4\\u03b5 \\u03b7\\u03c7\\u03bf\\u03b3\\u03c1\\u03b1\\u03c6\\u03ae\\u03c3\\u03b5\\u03b9 \\u03b5\\u03c0\\u03b9\\u03c4\\u03c5\\u03c7\\u03ce\\u03c2 \\u03c4\\u03b7\\u03bd \\u03b1\\u03c0\\u03ac\\u03bd\\u03c4\\u03b7\\u03c3\\u03ae \\u03c3\\u03b1\\u03c2! \\u0391\\u03ba\\u03bf\\u03cd\\u03c3\\u03c4\\u03b5 \\u03c0\\u03b1\\u03c1\\u03b1\\u03ba\\u03ac\\u03c4\\u03c9 \\u03c4\\u03b7\\u03bd \\u03b7\\u03c7\\u03bf\\u03b3\\u03c1\\u03ac\\u03c6\\u03b7\\u03c3\\u03ae \\u03c3\\u03b1\\u03c2.\",\"downloadRecording\":\"\\u039a\\u03b1\\u03c4\\u03b5\\u03b2\\u03ac\\u03c3\\u03c4\\u03b5 \\u03c4\\u03b7\\u03bd \\u03b7\\u03c7\\u03bf\\u03b3\\u03c1\\u03ac\\u03c6\\u03b7\\u03c3\\u03b7 \\u03ae \\u03c0\\u03c1\\u03bf\\u03c3\\u03c0\\u03b1\\u03b8\\u03ae\\u03c3\\u03c4\\u03b5 \\u03be\\u03b1\\u03bd\\u03ac.\",\"retryDialogHeaderText\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7 \\u03b7\\u03c7\\u03bf\\u03b3\\u03c1\\u03ac\\u03c6\\u03b7\\u03c3\\u03b7\\u03c2;\",\"retryDialogBodyText\":\"\\u0395\\u03c0\\u03b9\\u03bb\\u03ad\\u03b3\\u03bf\\u03bd\\u03c4\\u03b1\\u03c2 &quot;\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7&quot; \\u03b7 \\u03c4\\u03c1\\u03ad\\u03c7\\u03bf\\u03c5\\u03c3\\u03b1 \\u03b7\\u03c7\\u03bf\\u03b3\\u03c1\\u03ac\\u03c6\\u03b7\\u03c3\\u03ae \\u03c3\\u03b1\\u03c2 \\u03b8\\u03b1 \\u03c7\\u03b1\\u03b8\\u03b5\\u03af.\",\"retryDialogConfirmText\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03ac\\u03bb\\u03b7\\u03c8\\u03b7\",\"retryDialogCancelText\":\"\\u0391\\u03ba\\u03cd\\u03c1\\u03c9\\u03c3\\u03b7\",\"statusCantCreateTheAudioFile\":\"\\u0394\\u03b5\\u03bd \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03b4\\u03c5\\u03bd\\u03b1\\u03c4\\u03ae \\u03b7 \\u03b4\\u03b7\\u03bc\\u03b9\\u03bf\\u03c5\\u03c1\\u03b3\\u03af\\u03b1 \\u03c4\\u03bf\\u03c5 \\u03b1\\u03c1\\u03c7\\u03b5\\u03af\\u03bf\\u03c5 \\u03ae\\u03c7\\u03bf\\u03c5.\"}},\"library\":\"H5P.AudioRecorder 1.0\",\"metadata\":{\"contentType\":\"Audio Recorder\",\"license\":\"U\",\"title\":\"Untitled Audio Recorder\"},\"subContentId\":\"815661d4-eddf-4f2b-a162-fa5de586629d\"},\"useSeparator\":\"auto\"}]},\"library\":\"H5P.Column 1.18\",\"subContentId\":\"911e2cd0-f0df-4c2f-bde0-62a419eb4b94\",\"metadata\":{\"contentType\":\"Page\",\"license\":\"U\",\"title\":\"\\u0397\\u03c7\\u03bf\\u03b3\\u03c1\\u03ac\\u03c6\\u03b7\\u03c3\\u03b7\"}},{\"params\":{\"content\":[{\"content\":{\"params\":{\"text\":\"<p style=\\\";\\\"><span style=\\\";\\\"><span style=\\\";\\\"><span style=\\\";\\\">1. \\u03a4\\u03b9 \\u03cd\\u03c6\\u03bf\\u03c2 \\u03b5\\u03c0\\u03b9\\u03bb\\u03ad\\u03be\\u03b1\\u03c4\\u03b5 \\u03b3\\u03b9\\u03b1 \\u03c4\\u03b7 \\u03b4\\u03c1\\u03b1\\u03c3\\u03c4\\u03b7\\u03c1\\u03b9\\u03cc\\u03c4\\u03b7\\u03c4\\u03b1 \\u03b1\\u03c5\\u03c4\\u03ae; \\u0393\\u03b9\\u03b1\\u03c4\\u03af, \\u03ba\\u03b1\\u03c4\\u03ac \\u03c4\\u03b7 \\u03b3\\u03bd\\u03ce\\u03bc\\u03b7 \\u03c3\\u03b1\\u03c2, \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03c4\\u03bf \\u03c0\\u03b9\\u03bf \\u03ba\\u03b1\\u03c4\\u03ac\\u03bb\\u03bb\\u03b7\\u03bb\\u03bf;&nbsp;<\\\/span><\\\/span><\\\/span><\\\/p>\\n\\n<p style=\\\";\\\"><span style=\\\";\\\"><span style=\\\";\\\"><span style=\\\";\\\">2. \\u039c\\u03b5 \\u03c0\\u03bf\\u03b9\\u03b5\\u03c2 \\u03bb\\u03ad\\u03be\\u03b5\\u03b9\\u03c2 \\\/ \\u03c6\\u03c1\\u03ac\\u03c3\\u03b5\\u03b9\\u03c2 \\u03bc\\u03ad\\u03c3\\u03b1 \\u03c3\\u03c4\\u03bf \\u03ba\\u03b5\\u03af\\u03bc\\u03b5\\u03bd\\u03bf \\u03b2\\u03bf\\u03b7\\u03b8\\u03ac\\u03c4\\u03b5 \\u03c4\\u03bf\\u03c5\\u03c2 \\u03b1\\u03c0\\u03bf\\u03b4\\u03ad\\u03ba\\u03c4\\u03b5\\u03c2 \\\/ \\u03c4\\u03b9\\u03c2 \\u03b1\\u03c0\\u03bf\\u03b4\\u03ad\\u03ba\\u03c4\\u03c1\\u03b9\\u03b5\\u03c2 \\u03bd\\u03b1 \\u03ba\\u03b1\\u03c4\\u03b1\\u03bb\\u03ac\\u03b2\\u03bf\\u03c5\\u03bd \\u03c0\\u03ce\\u03c2 \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03bf\\u03c1\\u03b3\\u03b1\\u03bd\\u03c9\\u03bc\\u03ad\\u03bd\\u03b7 \\u03b7 \\u03c3\\u03ba\\u03ad\\u03c8\\u03b7 \\u03c0\\u03bf\\u03c5 \\u03c0\\u03b1\\u03c1\\u03bf\\u03c5\\u03c3\\u03b9\\u03ac\\u03b6\\u03b5\\u03c4\\u03b5;<\\\/span><\\\/span><\\\/span><\\\/p>\\n\\n<p style=\\\";\\\"><span style=\\\";\\\"><span style=\\\";\\\"><span style=\\\";\\\">3. \\u039c\\u03b5 \\u03c0\\u03bf\\u03b9\\u03b1 \\u03c3\\u03b5\\u03b9\\u03c1\\u03ac \\u03c0\\u03b1\\u03c1\\u03bf\\u03c5\\u03c3\\u03b9\\u03ac\\u03c3\\u03b1\\u03c4\\u03b5 \\u03c4\\u03b9\\u03c2 \\u03b9\\u03b4\\u03ad\\u03b5\\u03c2 \\u03c3\\u03b1\\u03c2; \\u0393\\u03b9\\u03b1\\u03c4\\u03af \\u03b8\\u03b5\\u03c9\\u03c1\\u03b5\\u03af\\u03c4\\u03b5 \\u03c0\\u03c9\\u03c2 \\u03b5\\u03af\\u03bd\\u03b1\\u03b9 \\u03c0\\u03b9\\u03bf \\u03b1\\u03c0\\u03bf\\u03c4\\u03b5\\u03bb\\u03b5\\u03c3\\u03bc\\u03b1\\u03c4\\u03b9\\u03ba\\u03ae;<\\\/span><\\\/span><\\\/span><\\\/p>\\n\\n<p style=\\\";\\\">&nbsp;<\\\/p>\\n\"},\"library\":\"H5P.AdvancedText 1.1\",\"metadata\":{\"contentType\":\"Text\",\"license\":\"U\",\"title\":\"Untitled Text\"},\"subContentId\":\"9628aeca-25e5-4922-ba55-193c1a13a934\"},\"useSeparator\":\"auto\"}]},\"library\":\"H5P.Column 1.18\",\"subContentId\":\"e040111a-554c-44d3-bbc7-bda0f362060e\",\"metadata\":{\"contentType\":\"Page\",\"license\":\"U\",\"title\":\"\\u0391\\u03c5\\u03c4\\u03bf\\u03b1\\u03be\\u03b9\\u03bf\\u03bb\\u03cc\\u03b3\\u03b7\\u03c3\\u03b7\"}}],\"behaviour\":{\"baseColor\":\"#1768c4\",\"defaultTableOfContents\":true,\"progressIndicators\":true,\"progressAuto\":true,\"displaySummary\":true,\"enableRetry\":true},\"read\":\"\\u0391\\u03bd\\u03ac\\u03b3\\u03bd\\u03c9\\u03c3\\u03b7\",\"displayTOC\":\"\\u03a0\\u03c1\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae &#039;\\u03a0\\u03af\\u03bd\\u03b1\\u03ba\\u03b1 \\u03a0\\u03b5\\u03c1\\u03b9\\u03b5\\u03c7\\u03bf\\u03bc\\u03ad\\u03bd\\u03c9\\u03bd&#039;\",\"hideTOC\":\"\\u0391\\u03c0\\u03cc\\u03ba\\u03c1\\u03c5\\u03c8\\u03b7 &#039;\\u03a0\\u03af\\u03bd\\u03b1\\u03ba\\u03b1 \\u03a0\\u03b5\\u03c1\\u03b9\\u03b5\\u03c7\\u03bf\\u03bc\\u03ad\\u03bd\\u03c9\\u03bd&#039;\",\"nextPage\":\"\\u0395\\u03c0\\u03cc\\u03bc\\u03b5\\u03bd\\u03b7 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1\",\"previousPage\":\"\\u03a0\\u03c1\\u03bf\\u03b7\\u03b3\\u03bf\\u03cd\\u03bc\\u03b5\\u03bd\\u03b7 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1\",\"chapterCompleted\":\"\\u039f\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03bc\\u03ad\\u03bd\\u03b7 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1!\",\"partCompleted\":\"@pages \\u03b1\\u03c0\\u03cc @total \\u03ad\\u03c7\\u03bf\\u03c5\\u03bd \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03b8\\u03b5\\u03af\",\"incompleteChapter\":\"\\u039c\\u03b7 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03bc\\u03ad\\u03bd\\u03b7 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1\",\"navigateToTop\":\"\\u039c\\u03b5\\u03c4\\u03ac\\u03b2\\u03b1\\u03c3\\u03b7 \\u03c3\\u03c4\\u03b7\\u03bd \\u03ba\\u03bf\\u03c1\\u03c5\\u03c6\\u03ae\",\"markAsFinished\":\"\\u0388\\u03c7\\u03c9 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9 \\u03b1\\u03c5\\u03c4\\u03ae\\u03bd \\u03c4\\u03b7 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1\",\"fullscreen\":\"\\u03a0\\u03bb\\u03ae\\u03c1\\u03b7\\u03c2 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\",\"exitFullscreen\":\"\\u0388\\u03be\\u03bf\\u03b4\\u03bf\\u03c2 \\u03b1\\u03c0\\u03cc \\u03c0\\u03c1\\u03cc\\u03b2\\u03bf\\u03bb\\u03ae \\u03c0\\u03bb\\u03ae\\u03c1\\u03bf\\u03c5\\u03c2 \\u03bf\\u03b8\\u03cc\\u03bd\\u03b7\\u03c2\",\"bookProgressSubtext\":\"@count \\u03b1\\u03c0\\u03cc @total \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b5\\u03c2\",\"interactionsProgressSubtext\":\"@count \\u03b1\\u03c0\\u03cc @total \\u03b4\\u03c1\\u03b1\\u03c3\\u03c4\\u03b7\\u03c1\\u03b9\\u03bf\\u03c4\\u03ae\\u03c4\\u03c9\\u03bd\",\"submitReport\":\"\\u03a5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae \\u0391\\u03bd\\u03b1\\u03c6\\u03bf\\u03c1\\u03ac\\u03c2\",\"restartLabel\":\"\\u0395\\u03c0\\u03b1\\u03bd\\u03b5\\u03ba\\u03ba\\u03af\\u03bd\\u03b7\\u03c3\\u03b7\",\"summaryHeader\":\"\\u03a0\\u03b5\\u03c1\\u03af\\u03bb\\u03b7\\u03c8\\u03b7\",\"allInteractions\":\"\\u038c\\u03bb\\u03b5\\u03c2 \\u03bf\\u03b9 \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03ac\\u03c3\\u03b5\\u03b9\\u03c2\",\"unansweredInteractions\":\"\\u0394\\u03b9\\u03b1\\u03b4\\u03c1\\u03ac\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c0\\u03bf\\u03c5 \\u03b4\\u03b5\\u03bd \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03b8\\u03b7\\u03ba\\u03b1\\u03bd\",\"scoreText\":\"@score \\\/ @maxscore\",\"leftOutOfTotalCompleted\":\"@left \\u03b1\\u03c0\\u03cc @max \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03ac\\u03c3\\u03b5\\u03b9\\u03c2 \\u03ad\\u03c7\\u03bf\\u03c5\\u03bd \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03c9\\u03b8\\u03b5\\u03af\",\"noInteractions\":\"\\u0394\\u03b5\\u03bd \\u03c5\\u03c0\\u03ac\\u03c1\\u03c7\\u03bf\\u03c5\\u03bd \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03ac\\u03c3\\u03b5\\u03b9\\u03c2\",\"score\":\"\\u0392\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1\",\"summaryAndSubmit\":\"\\u03a0\\u03b5\\u03c1\\u03af\\u03bb\\u03b7\\u03c8\\u03b7 &amp; \\u03c5\\u03c0\\u03bf\\u03b2\\u03bf\\u03bb\\u03ae\",\"noChapterInteractionBoldText\":\"\\u0394\\u03b5\\u03bd \\u03ad\\u03c7\\u03b5\\u03c4\\u03b5 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9 \\u03ba\\u03b1\\u03bc\\u03af\\u03b1 \\u03b4\\u03b9\\u03ac\\u03b4\\u03c1\\u03b1\\u03c3\\u03b7 \\u03c3\\u03b5 \\u03ba\\u03b1\\u03bc\\u03af\\u03b1 \\u03b1\\u03c0\\u03cc \\u03c4\\u03b9\\u03c2 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b5\\u03c2.\",\"noChapterInteractionText\":\"\\u03a0\\u03c1\\u03ad\\u03c0\\u03b5\\u03b9 \\u03bd\\u03b1 \\u03ad\\u03c7\\u03b5\\u03c4\\u03b5 \\u03bf\\u03bb\\u03bf\\u03ba\\u03bb\\u03b7\\u03c1\\u03ce\\u03c3\\u03b5\\u03b9 \\u03c4\\u03bf\\u03c5\\u03bb\\u03ac\\u03c7\\u03b9\\u03c3\\u03c4\\u03bf\\u03bd \\u03bc\\u03b9\\u03b1 \\u03b4\\u03b9\\u03ac\\u03b4\\u03c1\\u03b1\\u03c3\\u03b7 \\u03c3\\u03b5 \\u03c4\\u03bf\\u03c5\\u03bb\\u03ac\\u03c7\\u03b9\\u03c3\\u03c4\\u03bf\\u03bd \\u03bc\\u03b9\\u03b1 \\u03c3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1 \\u03b3\\u03b9\\u03b1 \\u03bd\\u03b1 \\u03bc\\u03c0\\u03bf\\u03c1\\u03ad\\u03c3\\u03b5\\u03c4\\u03b5 \\u03bd\\u03b1 \\u03c0\\u03c1\\u03bf\\u03b2\\u03ac\\u03bb\\u03b5\\u03c4\\u03b5 \\u03c4\\u03b7\\u03bd \\u03c0\\u03b5\\u03c1\\u03af\\u03bb\\u03b7\\u03c8\\u03b7.\",\"yourAnswersAreSubmittedForReview\":\"\\u039f\\u03b9 \\u03b1\\u03c0\\u03b1\\u03bd\\u03c4\\u03ae\\u03c3\\u03b5\\u03b9\\u03c2 \\u03c3\\u03b1\\u03c2 \\u03ad\\u03c7\\u03bf\\u03c5\\u03bd \\u03c5\\u03c0\\u03bf\\u03b2\\u03bb\\u03b7\\u03b8\\u03b5\\u03af \\u03b3\\u03b9\\u03b1 \\u03ad\\u03bb\\u03b5\\u03b3\\u03c7\\u03bf!\",\"bookProgress\":\"\\u03a0\\u03c1\\u03cc\\u03bf\\u03b4\\u03bf\\u03c2 \\u03c3\\u03c4\\u03bf \\u03b2\\u03b9\\u03b2\\u03bb\\u03af\\u03bf\",\"interactionsProgress\":\"\\u03a0\\u03c1\\u03cc\\u03bf\\u03b4\\u03bf\\u03c2 \\u03b4\\u03b9\\u03b1\\u03b4\\u03c1\\u03ac\\u03c3\\u03b5\\u03c9\\u03bd\",\"totalScoreLabel\":\"\\u03a3\\u03c5\\u03bd\\u03bf\\u03bb\\u03b9\\u03ba\\u03ae \\u03b2\\u03b1\\u03b8\\u03bc\\u03bf\\u03bb\\u03bf\\u03b3\\u03af\\u03b1\",\"a11y\":{\"progress\":\"\\u03a3\\u03b5\\u03bb\\u03af\\u03b4\\u03b1 @page \\u03b1\\u03c0\\u03cc @total.\",\"menu\":\"\\u0395\\u03bd\\u03b1\\u03bb\\u03bb\\u03b1\\u03b3\\u03ae \\u03bc\\u03b5\\u03bd\\u03bf\\u03cd \\u03c0\\u03bb\\u03bf\\u03ae\\u03b3\\u03b7\\u03c3\\u03b7\\u03c2\"}}"}}});