/*!
   * Wait for document loaded before starting the execution
   */

/*! @license DOMPurify 2.4.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.3/LICENSE */

/*! Check if previously processed */

/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
