Plugin Directory

Changeset 2296505


Ignore:
Timestamp:
05/02/2020 07:24:58 AM (6 years ago)
Author:
mmuhsin
Message:

the actual fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • testimonials-slider-block/trunk/dist/blocks.build.js

    r2296496 r2296505  
    373373/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/babel-runtime/core-js/object/assign.js (<- Module is not an ECMAScript module) */
    374374/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/babel-runtime/helpers/extends.js (<- Module is not an ECMAScript module) */
    375 /*! ModuleConcatenation bailout: Cannot concat with ./node_modules/babel-runtime/helpers/toConsumableArray.js (<- Module is not an ECMAScript module) */function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/extends.js\nvar helpers_extends = __webpack_require__(31);\nvar extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);\n\n// EXTERNAL MODULE: ./src/block/style.scss\nvar style = __webpack_require__(62);\n\n// EXTERNAL MODULE: ./src/block/editor.scss\nvar editor = __webpack_require__(63);\n\n// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/toConsumableArray.js\nvar toConsumableArray = __webpack_require__(2);\nvar toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);\n\n// EXTERNAL MODULE: ./node_modules/babel-runtime/core-js/object/assign.js\nvar object_assign = __webpack_require__(1);\nvar assign_default = /*#__PURE__*/__webpack_require__.n(object_assign);\n\n// CONCATENATED MODULE: ./src/block/current-slider.js\n\n\nvar _wp$editor = wp.editor,\n    MediaUpload = _wp$editor.MediaUpload,\n    PlainText = _wp$editor.PlainText;\n\n\n/* harmony default export */ var current_slider = ({\n  attributes: {\n    id: {\n      source: "attribute",\n      selector: ".carousel.slide",\n      attribute: "id"\n    },\n    testimonials: {\n      source: "query",\n      default: [],\n      selector: "blockquote.testimonial",\n      query: {\n        image: {\n          source: "attribute",\n          selector: "img",\n          attribute: "src"\n        },\n        index: {\n          source: "text",\n          selector: "span.testimonial-index"\n        },\n        content: {\n          source: "text",\n          selector: "span.testimonial-text"\n        },\n        author: {\n          source: "text",\n          selector: "span.testimonial-author span"\n        },\n        link: {\n          source: "text",\n          selector: ".testimonial-author-link"\n        }\n      }\n    }\n  },\n\n  /**\n   * The edit function describes the structure of your block in the context of the editor.\n   * This represents what the editor will render when the block is used.\n   *\n   * The "edit" property must be a valid function.\n   *\n   * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/\n   */\n\n  // The "edit" property must be a valid function.\n  edit: function edit(props) {\n    var testimonials = props.attributes.testimonials;\n\n\n    if (!props.attributes.id) {\n      var id = "testimonial" + Math.floor(Math.random() * 100);\n      props.setAttributes({\n        id: id\n      });\n    }\n\n    var testimonialsList = testimonials.sort(function (a, b) {\n      return a.index - b.index;\n    }).map(function (testimonial) {\n      return wp.element.createElement(\n        "div",\n        { className: "gts-testimonial-block" },\n        wp.element.createElement(\n          "p",\n          null,\n          wp.element.createElement(\n            "span",\n            null,\n            "Insert Testmonial ",\n            Number(testimonial.index) + 1,\n            " Here:"\n          ),\n          wp.element.createElement(\n            "span",\n            {\n              className: "remove-testimonial",\n              onClick: function onClick() {\n                var newTestimonials = testimonials.filter(function (item) {\n                  return item.index != testimonial.index;\n                }).map(function (t) {\n                  if (t.index > testimonial.index) {\n                    t.index -= 1;\n                  }\n\n                  return t;\n                });\n\n                props.setAttributes({\n                  testimonials: newTestimonials\n                });\n              }\n            },\n            wp.element.createElement("i", { className: "fa fa-times" })\n          )\n        ),\n        wp.element.createElement(\n          "blockquote",\n          { className: "wp-block-quote" },\n          wp.element.createElement(PlainText, {\n            className: "content-plain-text",\n            style: { height: 58 },\n            placeholder: "Testimonial Text",\n            value: testimonial.content,\n            autoFocus: true,\n            onChange: function onChange(content) {\n              var newObject = assign_default()({}, testimonial, {\n                content: content\n              });\n              props.setAttributes({\n                testimonials: [].concat(toConsumableArray_default()(testimonials.filter(function (item) {\n                  return item.index != testimonial.index;\n                })), [newObject])\n              });\n            }\n          }),\n          wp.element.createElement(\n            "div",\n            { className: "row" },\n            wp.element.createElement(\n              "div",\n              { className: "gts__picture col-3" },\n              wp.element.createElement(MediaUpload, {\n                onSelect: function onSelect(media) {\n                  var image = media.sizes.medium ? media.sizes.medium.url : media.url;\n                  var newObject = assign_default()({}, testimonial, {\n                    image: image\n                  });\n                  props.setAttributes({\n                    testimonials: [].concat(toConsumableArray_default()(testimonials.filter(function (item) {\n                      return item.index != testimonial.index;\n                    })), [newObject])\n                  });\n                },\n                type: "image",\n                value: testimonial.image,\n                render: function render(_ref) {\n                  var open = _ref.open;\n                  return !!testimonial.image ? wp.element.createElement(\n                    "div",\n                    null,\n                    props.isSelected && wp.element.createElement(\n                      "div",\n                      { className: "gts__picture__actions" },\n                      wp.element.createElement(\n                        "a",\n                        {\n                          href: "#",\n                          onClick: function onClick() {\n                            var newObject = assign_default()({}, testimonial, {\n                              image: null\n                            });\n                            props.setAttributes({\n                              testimonials: [].concat(toConsumableArray_default()(testimonials.filter(function (item) {\n                                return item.index != testimonial.index;\n                              })), [newObject])\n                            });\n                          }\n                        },\n                        "\\xD7 Remove"\n                      )\n                    ),\n                    wp.element.createElement("div", {\n                      className: "gts__picture__image",\n                      style: {\n                        backgroundImage: "url(" + testimonial.image + ")"\n                      },\n                      onClick: open\n                    })\n                  ) : wp.element.createElement(\n                    "a",\n                    {\n                      href: "#",\n                      className: "gts__picture__image",\n                      onClick: open\n                    },\n                    "Select Image"\n                  );\n                }\n              })\n            ),\n            wp.element.createElement(\n              "div",\n              { className: "col-9 mt-3" },\n              wp.element.createElement(PlainText, {\n                className: "author-plain-text",\n                placeholder: "Author",\n                value: testimonial.author,\n                onChange: function onChange(author) {\n                  var newObject = assign_default()({}, testimonial, {\n                    author: author\n                  });\n                  props.setAttributes({\n                    testimonials: [].concat(toConsumableArray_default()(testimonials.filter(function (item) {\n                      return item.index != testimonial.index;\n                    })), [newObject])\n                  });\n                }\n              }),\n              wp.element.createElement(PlainText, {\n                className: "link-plain-text",\n                placeholder: "Link to Author Profile",\n                value: testimonial.link,\n                onChange: function onChange(link) {\n                  var newObject = assign_default()({}, testimonial, {\n                    link: link\n                  });\n                  props.setAttributes({\n                    testimonials: [].concat(toConsumableArray_default()(testimonials.filter(function (item) {\n                      return item.index != testimonial.index;\n                    })), [newObject])\n                  });\n                }\n              })\n            )\n          )\n        )\n      );\n    });\n    return wp.element.createElement(\n      "div",\n      { className: props.className },\n      testimonialsList,\n      wp.element.createElement(\n        "button",\n        {\n          className: "add-more-testimonial",\n          onClick: function onClick(content) {\n            return props.setAttributes({\n              testimonials: [].concat(toConsumableArray_default()(props.attributes.testimonials), [{\n                index: props.attributes.testimonials.length,\n                content: "",\n                author: "",\n                link: ""\n              }])\n            });\n          }\n        },\n        "+"\n      )\n    );\n  },\n\n  /**\n   * The save function defines the way in which the different attributes should be combined\n   * into the final markup, which is then serialized by Gutenberg into post_content.\n   *\n   * The "save" property must be specified and must be a valid function.\n   *\n   * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/\n   */\n  save: function save(props) {\n    var _props$attributes = props.attributes,\n        id = _props$attributes.id,\n        testimonials = _props$attributes.testimonials;\n\n    var carouselIndicators = testimonials.map(function (testimonial, index) {\n      return wp.element.createElement("li", {\n        "data-target": "#" + id,\n        "data-slide-to": index,\n        className: testimonial.index == 0 ? "active" : ""\n      });\n    });\n    var testimonialsList = testimonials.map(function (testimonial) {\n      var carouselClass = testimonial.index == 0 ? "carousel-item active" : "carousel-item";\n      return wp.element.createElement(\n        "div",\n        { className: carouselClass, key: testimonial.index },\n        wp.element.createElement(\n          "blockquote",\n          { className: "testimonial" },\n          wp.element.createElement(\n            "span",\n            { className: "testimonial-index", style: { display: "none" } },\n            testimonial.index\n          ),\n          testimonial.content && wp.element.createElement(\n            "p",\n            { className: "testimonial-text-container" },\n            wp.element.createElement("i", { className: "fa fa-quote-left pull-left", "aria-hidden": "true" }),\n            wp.element.createElement(\n              "span",\n              { className: "testimonial-text" },\n              testimonial.content\n            ),\n            wp.element.createElement("i", { "class": "fa fa-quote-right pull-right", "aria-hidden": "true" })\n          ),\n          wp.element.createElement(\n            "div",\n            { className: "row" },\n            testimonial.image && wp.element.createElement(\n              "div",\n              { className: "gts__picture col-3" },\n              wp.element.createElement("img", { src: testimonial.image, style: { display: "none" } }),\n              wp.element.createElement("div", {\n                className: "gts__picture__image",\n                style: {\n                  backgroundImage: "url(" + testimonial.image + ")"\n                }\n              })\n            ),\n            wp.element.createElement(\n              "div",\n              { className: "testimonial-author-container mt-3 col-9" },\n              testimonial.author && wp.element.createElement(\n                "p",\n                { className: "testimonial-author-name" },\n                wp.element.createElement(\n                  "span",\n                  { className: "testimonial-author" },\n                  "\\u2014 ",\n                  wp.element.createElement(\n                    "span",\n                    null,\n                    testimonial.author\n                  )\n                )\n              ),\n              testimonial.link && wp.element.createElement(\n                "p",\n                { className: "testimonial-author-container" },\n                wp.element.createElement(\n                  "a",\n                  {\n                    target: "_blank",\n                    rel: "noopener noreferrer",\n                    href: testimonial.link\n                  },\n                  wp.element.createElement("i", { className: "fas fa-user" }),\n                  wp.element.createElement(\n                    "span",\n                    { className: "testimonial-author-link" },\n                    testimonial.link\n                  )\n                )\n              )\n            )\n          )\n        )\n      );\n    });\n    if (testimonials.length > 0) {\n      return wp.element.createElement(\n        "div",\n        { className: "testimonial-slider" },\n        wp.element.createElement(\n          "div",\n          { className: "carousel slide", "data-ride": "carousel", id: id },\n          wp.element.createElement(\n            "ol",\n            { className: "carousel-indicators" },\n            carouselIndicators\n          ),\n          wp.element.createElement(\n            "div",\n            { className: "carousel-inner w-75 mx-auto" },\n            testimonialsList\n          ),\n          wp.element.createElement(\n            "a",\n            {\n              "class": "carousel-control-prev",\n              href: "#" + id,\n              role: "button",\n              "data-slide": "prev"\n            },\n            wp.element.createElement(\n              "span",\n              { "class": "carousel-control-prev-icon", "aria-hidden": "true" },\n              wp.element.createElement("i", { className: "fa fa-chevron-left" })\n            ),\n            wp.element.createElement(\n              "span",\n              { "class": "sr-only" },\n              "Previous"\n            )\n          ),\n          wp.element.createElement(\n            "a",\n            {\n              "class": "carousel-control-next",\n              href: "#" + id,\n              role: "button",\n              "data-slide": "next"\n            },\n            wp.element.createElement(\n              "span",\n              { "class": "carousel-control-next-icon", "aria-hidden": "true" },\n              wp.element.createElement("i", { className: "fa fa-chevron-right" })\n            ),\n            wp.element.createElement(\n              "span",\n              { "class": "sr-only" },\n              "Next"\n            )\n          )\n        )\n      );\n    } else return null;\n  }\n});\n// CONCATENATED MODULE: ./src/block/slider.js\n\n/**\n * BLOCK: my-block\n *\n * Registering a basic block with Gutenberg.\n * Simple block, renders and saves the same content without any interactivity.\n */\n\n//  Import CSS.\n\n\n\nvar __ = wp.i18n.__; // The __() for internationalization.\nvar registerBlockType = wp.blocks.registerBlockType; // The registerBlockType() to register blocks.\n\n\n/**\n * Register: a Gutenberg Block.\n *\n * Registers a new block provided a unique name and an object defining its\n * behavior. Once registered, the block is made editor as an option to any\n * editor interface where blocks are implemented.\n *\n * @link https://wordpress.org/gutenberg/handbook/block-api/\n * @param  {string}   name     Block name.\n * @param  {Object}   settings Block settings.\n * @return {?WPBlock}          The block, if it has been successfully\n *                             registered; otherwise `undefined`.\n */\nregisterBlockType("gts/testimonials-slider-block", extends_default()({\n  // Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block.\n  title: __("Testimonials Slider"), // Block title.\n  icon: "format-quote", // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/.\n  category: "common", // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed.\n  keywords: [__("Testimonials Slider"), __("gts")]\n\n}, current_slider));\n// CONCATENATED MODULE: ./src/index.js\n/**\n * Import blocks\n */\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYmxvY2svY3VycmVudC1zbGlkZXIuanM/NTdhNiIsIndlYnBhY2s6Ly8vLi9zcmMvYmxvY2svc2xpZGVyLmpzP2NlOWEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2luZGV4LmpzPzM3MDAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tIFwiYmFiZWwtcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5XCI7XG5pbXBvcnQgX09iamVjdCRhc3NpZ24gZnJvbSBcImJhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvYXNzaWduXCI7XG52YXIgX3dwJGVkaXRvciA9IHdwLmVkaXRvcixcbiAgICBNZWRpYVVwbG9hZCA9IF93cCRlZGl0b3IuTWVkaWFVcGxvYWQsXG4gICAgUGxhaW5UZXh0ID0gX3dwJGVkaXRvci5QbGFpblRleHQ7XG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBhdHRyaWJ1dGVzOiB7XG4gICAgaWQ6IHtcbiAgICAgIHNvdXJjZTogXCJhdHRyaWJ1dGVcIixcbiAgICAgIHNlbGVjdG9yOiBcIi5jYXJvdXNlbC5zbGlkZVwiLFxuICAgICAgYXR0cmlidXRlOiBcImlkXCJcbiAgICB9LFxuICAgIHRlc3RpbW9uaWFsczoge1xuICAgICAgc291cmNlOiBcInF1ZXJ5XCIsXG4gICAgICBkZWZhdWx0OiBbXSxcbiAgICAgIHNlbGVjdG9yOiBcImJsb2NrcXVvdGUudGVzdGltb25pYWxcIixcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgc291cmNlOiBcImF0dHJpYnV0ZVwiLFxuICAgICAgICAgIHNlbGVjdG9yOiBcImltZ1wiLFxuICAgICAgICAgIGF0dHJpYnV0ZTogXCJzcmNcIlxuICAgICAgICB9LFxuICAgICAgICBpbmRleDoge1xuICAgICAgICAgIHNvdXJjZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgc2VsZWN0b3I6IFwic3Bhbi50ZXN0aW1vbmlhbC1pbmRleFwiXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBzb3VyY2U6IFwidGV4dFwiLFxuICAgICAgICAgIHNlbGVjdG9yOiBcInNwYW4udGVzdGltb25pYWwtdGV4dFwiXG4gICAgICAgIH0sXG4gICAgICAgIGF1dGhvcjoge1xuICAgICAgICAgIHNvdXJjZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgc2VsZWN0b3I6IFwic3Bhbi50ZXN0aW1vbmlhbC1hdXRob3Igc3BhblwiXG4gICAgICAgIH0sXG4gICAgICAgIGxpbms6IHtcbiAgICAgICAgICBzb3VyY2U6IFwidGV4dFwiLFxuICAgICAgICAgIHNlbGVjdG9yOiBcIi50ZXN0aW1vbmlhbC1hdXRob3ItbGlua1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFRoZSBlZGl0IGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgc3RydWN0dXJlIG9mIHlvdXIgYmxvY2sgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGVkaXRvci5cbiAgICogVGhpcyByZXByZXNlbnRzIHdoYXQgdGhlIGVkaXRvciB3aWxsIHJlbmRlciB3aGVuIHRoZSBibG9jayBpcyB1c2VkLlxuICAgKlxuICAgKiBUaGUgXCJlZGl0XCIgcHJvcGVydHkgbXVzdCBiZSBhIHZhbGlkIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAbGluayBodHRwczovL3dvcmRwcmVzcy5vcmcvZ3V0ZW5iZXJnL2hhbmRib29rL2Jsb2NrLWFwaS9ibG9jay1lZGl0LXNhdmUvXG4gICAqL1xuXG4gIC8vIFRoZSBcImVkaXRcIiBwcm9wZXJ0eSBtdXN0IGJlIGEgdmFsaWQgZnVuY3Rpb24uXG4gIGVkaXQ6IGZ1bmN0aW9uIGVkaXQocHJvcHMpIHtcbiAgICB2YXIgdGVzdGltb25pYWxzID0gcHJvcHMuYXR0cmlidXRlcy50ZXN0aW1vbmlhbHM7XG5cblxuICAgIGlmICghcHJvcHMuYXR0cmlidXRlcy5pZCkge1xuICAgICAgdmFyIGlkID0gXCJ0ZXN0aW1vbmlhbFwiICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKTtcbiAgICAgIHByb3BzLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICBpZDogaWRcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhciB0ZXN0aW1vbmlhbHNMaXN0ID0gdGVzdGltb25pYWxzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBhLmluZGV4IC0gYi5pbmRleDtcbiAgICB9KS5tYXAoZnVuY3Rpb24gKHRlc3RpbW9uaWFsKSB7XG4gICAgICByZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IGNsYXNzTmFtZTogXCJndHMtdGVzdGltb25pYWwtYmxvY2tcIiB9LFxuICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgXCJwXCIsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBcIkluc2VydCBUZXN0bW9uaWFsIFwiLFxuICAgICAgICAgICAgTnVtYmVyKHRlc3RpbW9uaWFsLmluZGV4KSArIDEsXG4gICAgICAgICAgICBcIiBIZXJlOlwiXG4gICAgICAgICAgKSxcbiAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcInJlbW92ZS10ZXN0aW1vbmlhbFwiLFxuICAgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXdUZXN0aW1vbmlhbHMgPSB0ZXN0aW1vbmlhbHMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5pbmRleCAhPSB0ZXN0aW1vbmlhbC5pbmRleDtcbiAgICAgICAgICAgICAgICB9KS5tYXAoZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0LmluZGV4ID4gdGVzdGltb25pYWwuaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgdC5pbmRleCAtPSAxO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gdDtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHByb3BzLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgICAgICAgICAgdGVzdGltb25pYWxzOiBuZXdUZXN0aW1vbmlhbHNcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcImlcIiwgeyBjbGFzc05hbWU6IFwiZmEgZmEtdGltZXNcIiB9KVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgIFwiYmxvY2txdW90ZVwiLFxuICAgICAgICAgIHsgY2xhc3NOYW1lOiBcIndwLWJsb2NrLXF1b3RlXCIgfSxcbiAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoUGxhaW5UZXh0LCB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IFwiY29udGVudC1wbGFpbi10ZXh0XCIsXG4gICAgICAgICAgICBzdHlsZTogeyBoZWlnaHQ6IDU4IH0sXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJUZXN0aW1vbmlhbCBUZXh0XCIsXG4gICAgICAgICAgICB2YWx1ZTogdGVzdGltb25pYWwuY29udGVudCxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogdHJ1ZSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZShjb250ZW50KSB7XG4gICAgICAgICAgICAgIHZhciBuZXdPYmplY3QgPSBfT2JqZWN0JGFzc2lnbih7fSwgdGVzdGltb25pYWwsIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb250ZW50XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBwcm9wcy5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgICB0ZXN0aW1vbmlhbHM6IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkodGVzdGltb25pYWxzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaW5kZXggIT0gdGVzdGltb25pYWwuaW5kZXg7XG4gICAgICAgICAgICAgICAgfSkpLCBbbmV3T2JqZWN0XSlcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcInJvd1wiIH0sXG4gICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcImd0c19fcGljdHVyZSBjb2wtM1wiIH0sXG4gICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChNZWRpYVVwbG9hZCwge1xuICAgICAgICAgICAgICAgIG9uU2VsZWN0OiBmdW5jdGlvbiBvblNlbGVjdChtZWRpYSkge1xuICAgICAgICAgICAgICAgICAgdmFyIGltYWdlID0gbWVkaWEuc2l6ZXMubWVkaXVtID8gbWVkaWEuc2l6ZXMubWVkaXVtLnVybCA6IG1lZGlhLnVybDtcbiAgICAgICAgICAgICAgICAgIHZhciBuZXdPYmplY3QgPSBfT2JqZWN0JGFzc2lnbih7fSwgdGVzdGltb25pYWwsIHtcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IGltYWdlXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIHByb3BzLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgICAgICAgICAgICB0ZXN0aW1vbmlhbHM6IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkodGVzdGltb25pYWxzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmluZGV4ICE9IHRlc3RpbW9uaWFsLmluZGV4O1xuICAgICAgICAgICAgICAgICAgICB9KSksIFtuZXdPYmplY3RdKVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0eXBlOiBcImltYWdlXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRlc3RpbW9uaWFsLmltYWdlLFxuICAgICAgICAgICAgICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKF9yZWYpIHtcbiAgICAgICAgICAgICAgICAgIHZhciBvcGVuID0gX3JlZi5vcGVuO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuICEhdGVzdGltb25pYWwuaW1hZ2UgPyB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLmlzU2VsZWN0ZWQgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwiZ3RzX19waWN0dXJlX19hY3Rpb25zXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjogXCIjXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld09iamVjdCA9IF9PYmplY3QkYXNzaWduKHt9LCB0ZXN0aW1vbmlhbCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RpbW9uaWFsczogW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheSh0ZXN0aW1vbmlhbHMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmluZGV4ICE9IHRlc3RpbW9uaWFsLmluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLCBbbmV3T2JqZWN0XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXFx4RDcgUmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImd0c19fcGljdHVyZV9faW1hZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybChcIiArIHRlc3RpbW9uaWFsLmltYWdlICsgXCIpXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG9wZW5cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICkgOiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIFwiYVwiLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgaHJlZjogXCIjXCIsXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImd0c19fcGljdHVyZV9faW1hZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBvcGVuXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU2VsZWN0IEltYWdlXCJcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwiY29sLTkgbXQtM1wiIH0sXG4gICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChQbGFpblRleHQsIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiYXV0aG9yLXBsYWluLXRleHRcIixcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJBdXRob3JcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGVzdGltb25pYWwuYXV0aG9yLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZShhdXRob3IpIHtcbiAgICAgICAgICAgICAgICAgIHZhciBuZXdPYmplY3QgPSBfT2JqZWN0JGFzc2lnbih7fSwgdGVzdGltb25pYWwsIHtcbiAgICAgICAgICAgICAgICAgICAgYXV0aG9yOiBhdXRob3JcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgcHJvcHMuc2V0QXR0cmlidXRlcyh7XG4gICAgICAgICAgICAgICAgICAgIHRlc3RpbW9uaWFsczogW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheSh0ZXN0aW1vbmlhbHMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaW5kZXggIT0gdGVzdGltb25pYWwuaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH0pKSwgW25ld09iamVjdF0pXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoUGxhaW5UZXh0LCB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImxpbmstcGxhaW4tdGV4dFwiLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIkxpbmsgdG8gQXV0aG9yIFByb2ZpbGVcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGVzdGltb25pYWwubGluayxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UobGluaykge1xuICAgICAgICAgICAgICAgICAgdmFyIG5ld09iamVjdCA9IF9PYmplY3QkYXNzaWduKHt9LCB0ZXN0aW1vbmlhbCwge1xuICAgICAgICAgICAgICAgICAgICBsaW5rOiBsaW5rXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIHByb3BzLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgICAgICAgICAgICB0ZXN0aW1vbmlhbHM6IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkodGVzdGltb25pYWxzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmluZGV4ICE9IHRlc3RpbW9uaWFsLmluZGV4O1xuICAgICAgICAgICAgICAgICAgICB9KSksIFtuZXdPYmplY3RdKVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICByZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgXCJkaXZcIixcbiAgICAgIHsgY2xhc3NOYW1lOiBwcm9wcy5jbGFzc05hbWUgfSxcbiAgICAgIHRlc3RpbW9uaWFsc0xpc3QsXG4gICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6IFwiYWRkLW1vcmUtdGVzdGltb25pYWxcIixcbiAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKGNvbnRlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgdGVzdGltb25pYWxzOiBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KHByb3BzLmF0dHJpYnV0ZXMudGVzdGltb25pYWxzKSwgW3tcbiAgICAgICAgICAgICAgICBpbmRleDogcHJvcHMuYXR0cmlidXRlcy50ZXN0aW1vbmlhbHMubGVuZ3RoLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgYXV0aG9yOiBcIlwiLFxuICAgICAgICAgICAgICAgIGxpbms6IFwiXCJcbiAgICAgICAgICAgICAgfV0pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiK1wiXG4gICAgICApXG4gICAgKTtcbiAgfSxcblxuICAvKipcbiAgICogVGhlIHNhdmUgZnVuY3Rpb24gZGVmaW5lcyB0aGUgd2F5IGluIHdoaWNoIHRoZSBkaWZmZXJlbnQgYXR0cmlidXRlcyBzaG91bGQgYmUgY29tYmluZWRcbiAgICogaW50byB0aGUgZmluYWwgbWFya3VwLCB3aGljaCBpcyB0aGVuIHNlcmlhbGl6ZWQgYnkgR3V0ZW5iZXJnIGludG8gcG9zdF9jb250ZW50LlxuICAgKlxuICAgKiBUaGUgXCJzYXZlXCIgcHJvcGVydHkgbXVzdCBiZSBzcGVjaWZpZWQgYW5kIG11c3QgYmUgYSB2YWxpZCBmdW5jdGlvbi5cbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1hcGkvYmxvY2stZWRpdC1zYXZlL1xuICAgKi9cbiAgc2F2ZTogZnVuY3Rpb24gc2F2ZShwcm9wcykge1xuICAgIHZhciBfcHJvcHMkYXR0cmlidXRlcyA9IHByb3BzLmF0dHJpYnV0ZXMsXG4gICAgICAgIGlkID0gX3Byb3BzJGF0dHJpYnV0ZXMuaWQsXG4gICAgICAgIHRlc3RpbW9uaWFscyA9IF9wcm9wcyRhdHRyaWJ1dGVzLnRlc3RpbW9uaWFscztcblxuICAgIHZhciBjYXJvdXNlbEluZGljYXRvcnMgPSB0ZXN0aW1vbmlhbHMubWFwKGZ1bmN0aW9uICh0ZXN0aW1vbmlhbCwgaW5kZXgpIHtcbiAgICAgIHJldHVybiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XG4gICAgICAgIFwiZGF0YS10YXJnZXRcIjogXCIjXCIgKyBpZCxcbiAgICAgICAgXCJkYXRhLXNsaWRlLXRvXCI6IGluZGV4LFxuICAgICAgICBjbGFzc05hbWU6IHRlc3RpbW9uaWFsLmluZGV4ID09IDAgPyBcImFjdGl2ZVwiIDogXCJcIlxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdmFyIHRlc3RpbW9uaWFsc0xpc3QgPSB0ZXN0aW1vbmlhbHMubWFwKGZ1bmN0aW9uICh0ZXN0aW1vbmlhbCkge1xuICAgICAgdmFyIGNhcm91c2VsQ2xhc3MgPSB0ZXN0aW1vbmlhbC5pbmRleCA9PSAwID8gXCJjYXJvdXNlbC1pdGVtIGFjdGl2ZVwiIDogXCJjYXJvdXNlbC1pdGVtXCI7XG4gICAgICByZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IGNsYXNzTmFtZTogY2Fyb3VzZWxDbGFzcywga2V5OiB0ZXN0aW1vbmlhbC5pbmRleCB9LFxuICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgXCJibG9ja3F1b3RlXCIsXG4gICAgICAgICAgeyBjbGFzc05hbWU6IFwidGVzdGltb25pYWxcIiB9LFxuICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwidGVzdGltb25pYWwtaW5kZXhcIiwgc3R5bGU6IHsgZGlzcGxheTogXCJub25lXCIgfSB9LFxuICAgICAgICAgICAgdGVzdGltb25pYWwuaW5kZXhcbiAgICAgICAgICApLFxuICAgICAgICAgIHRlc3RpbW9uaWFsLmNvbnRlbnQgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgXCJwXCIsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJ0ZXN0aW1vbmlhbC10ZXh0LWNvbnRhaW5lclwiIH0sXG4gICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXCJpXCIsIHsgY2xhc3NOYW1lOiBcImZhIGZhLXF1b3RlLWxlZnQgcHVsbC1sZWZ0XCIsIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIgfSksXG4gICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJ0ZXN0aW1vbmlhbC10ZXh0XCIgfSxcbiAgICAgICAgICAgICAgdGVzdGltb25pYWwuY29udGVudFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcImlcIiwgeyBcImNsYXNzXCI6IFwiZmEgZmEtcXVvdGUtcmlnaHQgcHVsbC1yaWdodFwiLCBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiIH0pXG4gICAgICAgICAgKSxcbiAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwicm93XCIgfSxcbiAgICAgICAgICAgIHRlc3RpbW9uaWFsLmltYWdlICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwiZ3RzX19waWN0dXJlIGNvbC0zXCIgfSxcbiAgICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHsgc3JjOiB0ZXN0aW1vbmlhbC5pbWFnZSwgc3R5bGU6IHsgZGlzcGxheTogXCJub25lXCIgfSB9KSxcbiAgICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiZ3RzX19waWN0dXJlX19pbWFnZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IFwidXJsKFwiICsgdGVzdGltb25pYWwuaW1hZ2UgKyBcIilcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcInRlc3RpbW9uaWFsLWF1dGhvci1jb250YWluZXIgbXQtMyBjb2wtOVwiIH0sXG4gICAgICAgICAgICAgIHRlc3RpbW9uaWFsLmF1dGhvciAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgXCJwXCIsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwidGVzdGltb25pYWwtYXV0aG9yLW5hbWVcIiB9LFxuICAgICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwidGVzdGltb25pYWwtYXV0aG9yXCIgfSxcbiAgICAgICAgICAgICAgICAgIFwiXFx1MjAxNCBcIixcbiAgICAgICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHRlc3RpbW9uaWFsLmF1dGhvclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgdGVzdGltb25pYWwubGluayAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgXCJwXCIsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwidGVzdGltb25pYWwtYXV0aG9yLWNvbnRhaW5lclwiIH0sXG4gICAgICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgXCJhXCIsXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogXCJfYmxhbmtcIixcbiAgICAgICAgICAgICAgICAgICAgcmVsOiBcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogdGVzdGltb25pYWwubGlua1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcImlcIiwgeyBjbGFzc05hbWU6IFwiZmFzIGZhLXVzZXJcIiB9KSxcbiAgICAgICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcInRlc3RpbW9uaWFsLWF1dGhvci1saW5rXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdGVzdGltb25pYWwubGlua1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICBpZiAodGVzdGltb25pYWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgY2xhc3NOYW1lOiBcInRlc3RpbW9uaWFsLXNsaWRlclwiIH0sXG4gICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgIHsgY2xhc3NOYW1lOiBcImNhcm91c2VsIHNsaWRlXCIsIFwiZGF0YS1yaWRlXCI6IFwiY2Fyb3VzZWxcIiwgaWQ6IGlkIH0sXG4gICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgXCJvbFwiLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiIH0sXG4gICAgICAgICAgICBjYXJvdXNlbEluZGljYXRvcnNcbiAgICAgICAgICApLFxuICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJjYXJvdXNlbC1pbm5lciB3LTc1IG14LWF1dG9cIiB9LFxuICAgICAgICAgICAgdGVzdGltb25pYWxzTGlzdFxuICAgICAgICAgICksXG4gICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgXCJhXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJjYXJvdXNlbC1jb250cm9sLXByZXZcIixcbiAgICAgICAgICAgICAgaHJlZjogXCIjXCIgKyBpZCxcbiAgICAgICAgICAgICAgcm9sZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgXCJkYXRhLXNsaWRlXCI6IFwicHJldlwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgeyBcImNsYXNzXCI6IFwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb25cIiwgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9LFxuICAgICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXCJpXCIsIHsgY2xhc3NOYW1lOiBcImZhIGZhLWNoZXZyb24tbGVmdFwiIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgeyBcImNsYXNzXCI6IFwic3Itb25seVwiIH0sXG4gICAgICAgICAgICAgIFwiUHJldmlvdXNcIlxuICAgICAgICAgICAgKVxuICAgICAgICAgICksXG4gICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgXCJhXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJjYXJvdXNlbC1jb250cm9sLW5leHRcIixcbiAgICAgICAgICAgICAgaHJlZjogXCIjXCIgKyBpZCxcbiAgICAgICAgICAgICAgcm9sZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgXCJkYXRhLXNsaWRlXCI6IFwibmV4dFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgeyBcImNsYXNzXCI6IFwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb25cIiwgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9LFxuICAgICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXCJpXCIsIHsgY2xhc3NOYW1lOiBcImZhIGZhLWNoZXZyb24tcmlnaHRcIiB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgIHsgXCJjbGFzc1wiOiBcInNyLW9ubHlcIiB9LFxuICAgICAgICAgICAgICBcIk5leHRcIlxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2UgcmV0dXJuIG51bGw7XG4gIH1cbn07IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kc1wiO1xuLyoqXG4gKiBCTE9DSzogbXktYmxvY2tcbiAqXG4gKiBSZWdpc3RlcmluZyBhIGJhc2ljIGJsb2NrIHdpdGggR3V0ZW5iZXJnLlxuICogU2ltcGxlIGJsb2NrLCByZW5kZXJzIGFuZCBzYXZlcyB0aGUgc2FtZSBjb250ZW50IHdpdGhvdXQgYW55IGludGVyYWN0aXZpdHkuXG4gKi9cblxuLy8gIEltcG9ydCBDU1MuXG5pbXBvcnQgXCIuL3N0eWxlLnNjc3NcIjtcbmltcG9ydCBcIi4vZWRpdG9yLnNjc3NcIjtcblxudmFyIF9fID0gd3AuaTE4bi5fXzsgLy8gVGhlIF9fKCkgZm9yIGludGVybmF0aW9uYWxpemF0aW9uLlxudmFyIHJlZ2lzdGVyQmxvY2tUeXBlID0gd3AuYmxvY2tzLnJlZ2lzdGVyQmxvY2tUeXBlOyAvLyBUaGUgcmVnaXN0ZXJCbG9ja1R5cGUoKSB0byByZWdpc3RlciBibG9ja3MuXG5pbXBvcnQgY3VycmVudFNsaWRlciBmcm9tICcuL2N1cnJlbnQtc2xpZGVyJztcblxuLyoqXG4gKiBSZWdpc3RlcjogYSBHdXRlbmJlcmcgQmxvY2suXG4gKlxuICogUmVnaXN0ZXJzIGEgbmV3IGJsb2NrIHByb3ZpZGVkIGEgdW5pcXVlIG5hbWUgYW5kIGFuIG9iamVjdCBkZWZpbmluZyBpdHNcbiAqIGJlaGF2aW9yLiBPbmNlIHJlZ2lzdGVyZWQsIHRoZSBibG9jayBpcyBtYWRlIGVkaXRvciBhcyBhbiBvcHRpb24gdG8gYW55XG4gKiBlZGl0b3IgaW50ZXJmYWNlIHdoZXJlIGJsb2NrcyBhcmUgaW1wbGVtZW50ZWQuXG4gKlxuICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1hcGkvXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgbmFtZSAgICAgQmxvY2sgbmFtZS5cbiAqIEBwYXJhbSAge09iamVjdH0gICBzZXR0aW5ncyBCbG9jayBzZXR0aW5ncy5cbiAqIEByZXR1cm4gez9XUEJsb2NrfSAgICAgICAgICBUaGUgYmxvY2ssIGlmIGl0IGhhcyBiZWVuIHN1Y2Nlc3NmdWxseVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyZWQ7IG90aGVyd2lzZSBgdW5kZWZpbmVkYC5cbiAqL1xucmVnaXN0ZXJCbG9ja1R5cGUoXCJndHMvdGVzdGltb25pYWxzLXNsaWRlci1ibG9ja1wiLCBfZXh0ZW5kcyh7XG4gIC8vIEJsb2NrIG5hbWUuIEJsb2NrIG5hbWVzIG11c3QgYmUgc3RyaW5nIHRoYXQgY29udGFpbnMgYSBuYW1lc3BhY2UgcHJlZml4LiBFeGFtcGxlOiBteS1wbHVnaW4vbXktY3VzdG9tLWJsb2NrLlxuICB0aXRsZTogX18oXCJUZXN0aW1vbmlhbHMgU2xpZGVyXCIpLCAvLyBCbG9jayB0aXRsZS5cbiAgaWNvbjogXCJmb3JtYXQtcXVvdGVcIiwgLy8gQmxvY2sgaWNvbiBmcm9tIERhc2hpY29ucyDihpIgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZXNvdXJjZS9kYXNoaWNvbnMvLlxuICBjYXRlZ29yeTogXCJjb21tb25cIiwgLy8gQmxvY2sgY2F0ZWdvcnkg4oCUIEdyb3VwIGJsb2NrcyB0b2dldGhlciBiYXNlZCBvbiBjb21tb24gdHJhaXRzIEUuZy4gY29tbW9uLCBmb3JtYXR0aW5nLCBsYXlvdXQgd2lkZ2V0cywgZW1iZWQuXG4gIGtleXdvcmRzOiBbX18oXCJUZXN0aW1vbmlhbHMgU2xpZGVyXCIpLCBfXyhcImd0c1wiKV1cblxufSwgY3VycmVudFNsaWRlcikpOyIsIi8qKlxuICogSW1wb3J0IGJsb2Nrc1xuICovXG5pbXBvcnQgJy4vYmxvY2svc2xpZGVyLmpzJzsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4WkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcENBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///61\n')},
     375/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/babel-runtime/helpers/toConsumableArray.js (<- Module is not an ECMAScript module) */function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/extends.js\nvar helpers_extends = __webpack_require__(31);\nvar extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);\n\n// EXTERNAL MODULE: ./src/block/style.scss\nvar style = __webpack_require__(62);\n\n// EXTERNAL MODULE: ./src/block/editor.scss\nvar editor = __webpack_require__(63);\n\n// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/toConsumableArray.js\nvar toConsumableArray = __webpack_require__(2);\nvar toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);\n\n// EXTERNAL MODULE: ./node_modules/babel-runtime/core-js/object/assign.js\nvar object_assign = __webpack_require__(1);\nvar assign_default = /*#__PURE__*/__webpack_require__.n(object_assign);\n\n// CONCATENATED MODULE: ./src/block/current-slider.js\n\n\nvar _wp$editor = wp.editor,\n    MediaUpload = _wp$editor.MediaUpload,\n    PlainText = _wp$editor.PlainText;\n\n\n/* harmony default export */ var current_slider = ({\n  attributes: {\n    id: {\n      source: "attribute",\n      selector: ".carousel.slide",\n      attribute: "id"\n    },\n    testimonials: {\n      source: "query",\n      default: [],\n      selector: "blockquote.testimonial",\n      query: {\n        image: {\n          source: "attribute",\n          selector: "img",\n          attribute: "src"\n        },\n        index: {\n          source: "text",\n          selector: "span.testimonial-index"\n        },\n        content: {\n          source: "text",\n          selector: "span.testimonial-text"\n        },\n        author: {\n          source: "text",\n          selector: "span.testimonial-author span"\n        },\n        link: {\n          source: "text",\n          selector: ".testimonial-author-link"\n        }\n      }\n    }\n  },\n\n  /**\n   * The edit function describes the structure of your block in the context of the editor.\n   * This represents what the editor will render when the block is used.\n   *\n   * The "edit" property must be a valid function.\n   *\n   * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/\n   */\n\n  // The "edit" property must be a valid function.\n  edit: function edit(props) {\n    var testimonials = props.attributes.testimonials;\n\n\n    if (!props.attributes.id) {\n      var id = "testimonial" + Math.floor(Math.random() * 100);\n      props.setAttributes({\n        id: id\n      });\n    }\n\n    var testimonialsList = testimonials.sort(function (a, b) {\n      return a.index - b.index;\n    }).map(function (testimonial) {\n      return wp.element.createElement(\n        "div",\n        { className: "gts-testimonial-block" },\n        wp.element.createElement(\n          "p",\n          null,\n          wp.element.createElement(\n            "span",\n            null,\n            "Insert Testmonial ",\n            Number(testimonial.index) + 1,\n            " Here:"\n          ),\n          wp.element.createElement(\n            "span",\n            {\n              className: "remove-testimonial",\n              onClick: function onClick() {\n                var newTestimonials = testimonials.filter(function (item) {\n                  return item.index != testimonial.index;\n                }).map(function (t) {\n                  if (t.index > testimonial.index) {\n                    t.index -= 1;\n                  }\n\n                  return t;\n                });\n\n                props.setAttributes({\n                  testimonials: newTestimonials\n                });\n              }\n            },\n            wp.element.createElement("i", { className: "fa fa-times" })\n          )\n        ),\n        wp.element.createElement(\n          "blockquote",\n          { className: "wp-block-quote" },\n          wp.element.createElement(PlainText, {\n            className: "content-plain-text",\n            style: { height: 58 },\n            placeholder: "Testimonial Text",\n            value: testimonial.content,\n            autoFocus: true,\n            onChange: function onChange(content) {\n              var newObject = assign_default()({}, testimonial, {\n                content: content\n              });\n              props.setAttributes({\n                testimonials: [].concat(toConsumableArray_default()(testimonials.filter(function (item) {\n                  return item.index != testimonial.index;\n                })), [newObject])\n              });\n            }\n          }),\n          wp.element.createElement(\n            "div",\n            { className: "row" },\n            wp.element.createElement(\n              "div",\n              { className: "gts__picture col-3" },\n              wp.element.createElement(MediaUpload, {\n                onSelect: function onSelect(media) {\n                  var image = media.sizes.medium ? media.sizes.medium.url : media.url;\n                  var newObject = assign_default()({}, testimonial, {\n                    image: image\n                  });\n                  props.setAttributes({\n                    testimonials: [].concat(toConsumableArray_default()(testimonials.filter(function (item) {\n                      return item.index != testimonial.index;\n                    })), [newObject])\n                  });\n                },\n                type: "image",\n                value: testimonial.image,\n                render: function render(_ref) {\n                  var open = _ref.open;\n                  return !!testimonial.image ? wp.element.createElement(\n                    "div",\n                    null,\n                    props.isSelected && wp.element.createElement(\n                      "div",\n                      { className: "gts__picture__actions" },\n                      wp.element.createElement(\n                        "a",\n                        {\n                          href: "#",\n                          onClick: function onClick() {\n                            var newObject = assign_default()({}, testimonial, {\n                              image: null\n                            });\n                            props.setAttributes({\n                              testimonials: [].concat(toConsumableArray_default()(testimonials.filter(function (item) {\n                                return item.index != testimonial.index;\n                              })), [newObject])\n                            });\n                          }\n                        },\n                        "\\xD7 Remove"\n                      )\n                    ),\n                    wp.element.createElement("div", {\n                      className: "gts__picture__image",\n                      style: {\n                        backgroundImage: "url(" + testimonial.image + ")"\n                      },\n                      onClick: open\n                    })\n                  ) : wp.element.createElement(\n                    "a",\n                    {\n                      href: "#",\n                      className: "gts__picture__image",\n                      onClick: open\n                    },\n                    "Select Image"\n                  );\n                }\n              })\n            ),\n            wp.element.createElement(\n              "div",\n              { className: "col-9 mt-3" },\n              wp.element.createElement(PlainText, {\n                className: "author-plain-text",\n                placeholder: "Author",\n                value: testimonial.author,\n                onChange: function onChange(author) {\n                  var newObject = assign_default()({}, testimonial, {\n                    author: author\n                  });\n                  props.setAttributes({\n                    testimonials: [].concat(toConsumableArray_default()(testimonials.filter(function (item) {\n                      return item.index != testimonial.index;\n                    })), [newObject])\n                  });\n                }\n              }),\n              wp.element.createElement(PlainText, {\n                className: "link-plain-text",\n                placeholder: "Link to Author Profile",\n                value: testimonial.link,\n                onChange: function onChange(link) {\n                  var newObject = assign_default()({}, testimonial, {\n                    link: link\n                  });\n                  props.setAttributes({\n                    testimonials: [].concat(toConsumableArray_default()(testimonials.filter(function (item) {\n                      return item.index != testimonial.index;\n                    })), [newObject])\n                  });\n                }\n              })\n            )\n          )\n        )\n      );\n    });\n    return wp.element.createElement(\n      "div",\n      { className: props.className },\n      testimonialsList,\n      wp.element.createElement(\n        "button",\n        {\n          className: "add-more-testimonial",\n          onClick: function onClick(content) {\n            return props.setAttributes({\n              testimonials: [].concat(toConsumableArray_default()(props.attributes.testimonials), [{\n                index: props.attributes.testimonials.length,\n                content: "",\n                author: "",\n                link: ""\n              }])\n            });\n          }\n        },\n        "+"\n      )\n    );\n  },\n\n  /**\n   * The save function defines the way in which the different attributes should be combined\n   * into the final markup, which is then serialized by Gutenberg into post_content.\n   *\n   * The "save" property must be specified and must be a valid function.\n   *\n   * @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/\n   */\n  save: function save(props) {\n    var _props$attributes = props.attributes,\n        id = _props$attributes.id,\n        testimonials = _props$attributes.testimonials;\n\n    var carouselIndicators = testimonials.map(function (testimonial, index) {\n      return wp.element.createElement("li", {\n        "data-target": "#" + id,\n        "data-slide-to": index,\n        className: testimonial.index == 0 ? "active" : ""\n      });\n    });\n    var testimonialsList = testimonials.map(function (testimonial) {\n      var carouselClass = testimonial.index == 0 ? "carousel-item active" : "carousel-item";\n      return wp.element.createElement(\n        "div",\n        { className: carouselClass, key: testimonial.index },\n        wp.element.createElement(\n          "blockquote",\n          { className: "testimonial" },\n          wp.element.createElement(\n            "span",\n            { className: "testimonial-index", style: { display: "none" } },\n            testimonial.index\n          ),\n          testimonial.content && wp.element.createElement(\n            "p",\n            { className: "testimonial-text-container" },\n            wp.element.createElement("i", { className: "fa fa-quote-left pull-left", "aria-hidden": "true" }),\n            wp.element.createElement(\n              "span",\n              { className: "testimonial-text" },\n              testimonial.content\n            ),\n            wp.element.createElement("i", { "class": "fa fa-quote-right pull-right", "aria-hidden": "true" })\n          ),\n          wp.element.createElement(\n            "div",\n            { className: "row" },\n            testimonial.image && wp.element.createElement(\n              "div",\n              { className: "gts__picture col-3" },\n              wp.element.createElement("img", { src: testimonial.image, style: { display: "none" } }),\n              wp.element.createElement("div", {\n                className: "gts__picture__image",\n                style: {\n                  backgroundImage: "url(" + testimonial.image + ")"\n                }\n              })\n            ),\n            wp.element.createElement(\n              "div",\n              { className: "testimonial-author-container mt-3 col-9" },\n              testimonial.author && wp.element.createElement(\n                "p",\n                { className: "testimonial-author-name" },\n                wp.element.createElement(\n                  "span",\n                  { className: "testimonial-author" },\n                  "\\u2014 ",\n                  wp.element.createElement(\n                    "span",\n                    null,\n                    testimonial.author\n                  )\n                )\n              ),\n              testimonial.link && wp.element.createElement(\n                "p",\n                { className: "testimonial-author-container" },\n                wp.element.createElement(\n                  "a",\n                  {\n                    target: "_blank",\n                    rel: "noopener noreferrer",\n                    href: testimonial.link\n                  },\n                  wp.element.createElement("i", { className: "fas fa-user" }),\n                  wp.element.createElement(\n                    "span",\n                    { className: "testimonial-author-link" },\n                    testimonial.link\n                  )\n                )\n              )\n            )\n          )\n        )\n      );\n    });\n    if (testimonials.length > 0) {\n      return wp.element.createElement(\n        "div",\n        { className: "testimonial-slider" },\n        wp.element.createElement(\n          "div",\n          { className: "carousel slide", "data-ride": "carousel", id: id },\n          wp.element.createElement(\n            "ol",\n            { className: "carousel-indicators" },\n            carouselIndicators\n          ),\n          wp.element.createElement(\n            "div",\n            { className: "carousel-inner w-75 mx-auto" },\n            testimonialsList\n          ),\n          wp.element.createElement(\n            "a",\n            {\n              "class": "carousel-control-prev",\n              href: "#" + id,\n              role: "button",\n              "data-slide": "prev"\n            },\n            wp.element.createElement(\n              "span",\n              { "class": "carousel-control-prev-icon", "aria-hidden": "true" },\n              wp.element.createElement("i", { className: "fa fa-chevron-left" })\n            ),\n            wp.element.createElement(\n              "span",\n              { "class": "sr-only" },\n              "Previous"\n            )\n          ),\n          wp.element.createElement(\n            "a",\n            {\n              "class": "carousel-control-next",\n              href: "#" + id,\n              role: "button",\n              "data-slide": "next"\n            },\n            wp.element.createElement(\n              "span",\n              { "class": "carousel-control-next-icon", "aria-hidden": "true" },\n              wp.element.createElement("i", { className: "fa fa-chevron-right" })\n            ),\n            wp.element.createElement(\n              "span",\n              { "class": "sr-only" },\n              "Next"\n            )\n          )\n        )\n      );\n    } else return null;\n  }\n});\n// CONCATENATED MODULE: ./src/block/slider.js\n\n/**\n * BLOCK: my-block\n *\n * Registering a basic block with Gutenberg.\n * Simple block, renders and saves the same content without any interactivity.\n */\n\n//  Import CSS.\n\n\n\nvar __ = wp.i18n.__; // The __() for internationalization.\nvar registerBlockType = wp.blocks.registerBlockType; // The registerBlockType() to register blocks.\n\n\n/**\n * Register: a Gutenberg Block.\n *\n * Registers a new block provided a unique name and an object defining its\n * behavior. Once registered, the block is made editor as an option to any\n * editor interface where blocks are implemented.\n *\n * @link https://wordpress.org/gutenberg/handbook/block-api/\n * @param  {string}   name     Block name.\n * @param  {Object}   settings Block settings.\n * @return {?WPBlock}          The block, if it has been successfully\n *                             registered; otherwise `undefined`.\n */\nregisterBlockType("gts/testimonials-slider-block", extends_default()({\n  // Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block.\n  title: __("Testimonials Slider"), // Block title.\n  icon: "format-quote", // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/.\n  category: "common", // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed.\n  keywords: [__("Testimonials Slider"), __("gts")]\n\n}, current_slider)\n\n// deprecated blocks here\n\n);\n// CONCATENATED MODULE: ./src/index.js\n/**\n * Import blocks\n */\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYmxvY2svY3VycmVudC1zbGlkZXIuanM/NTdhNiIsIndlYnBhY2s6Ly8vLi9zcmMvYmxvY2svc2xpZGVyLmpzP2NlOWEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2luZGV4LmpzPzM3MDAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tIFwiYmFiZWwtcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5XCI7XG5pbXBvcnQgX09iamVjdCRhc3NpZ24gZnJvbSBcImJhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvYXNzaWduXCI7XG52YXIgX3dwJGVkaXRvciA9IHdwLmVkaXRvcixcbiAgICBNZWRpYVVwbG9hZCA9IF93cCRlZGl0b3IuTWVkaWFVcGxvYWQsXG4gICAgUGxhaW5UZXh0ID0gX3dwJGVkaXRvci5QbGFpblRleHQ7XG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBhdHRyaWJ1dGVzOiB7XG4gICAgaWQ6IHtcbiAgICAgIHNvdXJjZTogXCJhdHRyaWJ1dGVcIixcbiAgICAgIHNlbGVjdG9yOiBcIi5jYXJvdXNlbC5zbGlkZVwiLFxuICAgICAgYXR0cmlidXRlOiBcImlkXCJcbiAgICB9LFxuICAgIHRlc3RpbW9uaWFsczoge1xuICAgICAgc291cmNlOiBcInF1ZXJ5XCIsXG4gICAgICBkZWZhdWx0OiBbXSxcbiAgICAgIHNlbGVjdG9yOiBcImJsb2NrcXVvdGUudGVzdGltb25pYWxcIixcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgc291cmNlOiBcImF0dHJpYnV0ZVwiLFxuICAgICAgICAgIHNlbGVjdG9yOiBcImltZ1wiLFxuICAgICAgICAgIGF0dHJpYnV0ZTogXCJzcmNcIlxuICAgICAgICB9LFxuICAgICAgICBpbmRleDoge1xuICAgICAgICAgIHNvdXJjZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgc2VsZWN0b3I6IFwic3Bhbi50ZXN0aW1vbmlhbC1pbmRleFwiXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBzb3VyY2U6IFwidGV4dFwiLFxuICAgICAgICAgIHNlbGVjdG9yOiBcInNwYW4udGVzdGltb25pYWwtdGV4dFwiXG4gICAgICAgIH0sXG4gICAgICAgIGF1dGhvcjoge1xuICAgICAgICAgIHNvdXJjZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgc2VsZWN0b3I6IFwic3Bhbi50ZXN0aW1vbmlhbC1hdXRob3Igc3BhblwiXG4gICAgICAgIH0sXG4gICAgICAgIGxpbms6IHtcbiAgICAgICAgICBzb3VyY2U6IFwidGV4dFwiLFxuICAgICAgICAgIHNlbGVjdG9yOiBcIi50ZXN0aW1vbmlhbC1hdXRob3ItbGlua1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFRoZSBlZGl0IGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgc3RydWN0dXJlIG9mIHlvdXIgYmxvY2sgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGVkaXRvci5cbiAgICogVGhpcyByZXByZXNlbnRzIHdoYXQgdGhlIGVkaXRvciB3aWxsIHJlbmRlciB3aGVuIHRoZSBibG9jayBpcyB1c2VkLlxuICAgKlxuICAgKiBUaGUgXCJlZGl0XCIgcHJvcGVydHkgbXVzdCBiZSBhIHZhbGlkIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAbGluayBodHRwczovL3dvcmRwcmVzcy5vcmcvZ3V0ZW5iZXJnL2hhbmRib29rL2Jsb2NrLWFwaS9ibG9jay1lZGl0LXNhdmUvXG4gICAqL1xuXG4gIC8vIFRoZSBcImVkaXRcIiBwcm9wZXJ0eSBtdXN0IGJlIGEgdmFsaWQgZnVuY3Rpb24uXG4gIGVkaXQ6IGZ1bmN0aW9uIGVkaXQocHJvcHMpIHtcbiAgICB2YXIgdGVzdGltb25pYWxzID0gcHJvcHMuYXR0cmlidXRlcy50ZXN0aW1vbmlhbHM7XG5cblxuICAgIGlmICghcHJvcHMuYXR0cmlidXRlcy5pZCkge1xuICAgICAgdmFyIGlkID0gXCJ0ZXN0aW1vbmlhbFwiICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwKTtcbiAgICAgIHByb3BzLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICBpZDogaWRcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhciB0ZXN0aW1vbmlhbHNMaXN0ID0gdGVzdGltb25pYWxzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBhLmluZGV4IC0gYi5pbmRleDtcbiAgICB9KS5tYXAoZnVuY3Rpb24gKHRlc3RpbW9uaWFsKSB7XG4gICAgICByZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IGNsYXNzTmFtZTogXCJndHMtdGVzdGltb25pYWwtYmxvY2tcIiB9LFxuICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgXCJwXCIsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBcIkluc2VydCBUZXN0bW9uaWFsIFwiLFxuICAgICAgICAgICAgTnVtYmVyKHRlc3RpbW9uaWFsLmluZGV4KSArIDEsXG4gICAgICAgICAgICBcIiBIZXJlOlwiXG4gICAgICAgICAgKSxcbiAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcInJlbW92ZS10ZXN0aW1vbmlhbFwiLFxuICAgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXdUZXN0aW1vbmlhbHMgPSB0ZXN0aW1vbmlhbHMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5pbmRleCAhPSB0ZXN0aW1vbmlhbC5pbmRleDtcbiAgICAgICAgICAgICAgICB9KS5tYXAoZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0LmluZGV4ID4gdGVzdGltb25pYWwuaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgdC5pbmRleCAtPSAxO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gdDtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHByb3BzLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgICAgICAgICAgdGVzdGltb25pYWxzOiBuZXdUZXN0aW1vbmlhbHNcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcImlcIiwgeyBjbGFzc05hbWU6IFwiZmEgZmEtdGltZXNcIiB9KVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgIFwiYmxvY2txdW90ZVwiLFxuICAgICAgICAgIHsgY2xhc3NOYW1lOiBcIndwLWJsb2NrLXF1b3RlXCIgfSxcbiAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoUGxhaW5UZXh0LCB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IFwiY29udGVudC1wbGFpbi10ZXh0XCIsXG4gICAgICAgICAgICBzdHlsZTogeyBoZWlnaHQ6IDU4IH0sXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJUZXN0aW1vbmlhbCBUZXh0XCIsXG4gICAgICAgICAgICB2YWx1ZTogdGVzdGltb25pYWwuY29udGVudCxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogdHJ1ZSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZShjb250ZW50KSB7XG4gICAgICAgICAgICAgIHZhciBuZXdPYmplY3QgPSBfT2JqZWN0JGFzc2lnbih7fSwgdGVzdGltb25pYWwsIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb250ZW50XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBwcm9wcy5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgICB0ZXN0aW1vbmlhbHM6IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkodGVzdGltb25pYWxzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaW5kZXggIT0gdGVzdGltb25pYWwuaW5kZXg7XG4gICAgICAgICAgICAgICAgfSkpLCBbbmV3T2JqZWN0XSlcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcInJvd1wiIH0sXG4gICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcImd0c19fcGljdHVyZSBjb2wtM1wiIH0sXG4gICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChNZWRpYVVwbG9hZCwge1xuICAgICAgICAgICAgICAgIG9uU2VsZWN0OiBmdW5jdGlvbiBvblNlbGVjdChtZWRpYSkge1xuICAgICAgICAgICAgICAgICAgdmFyIGltYWdlID0gbWVkaWEuc2l6ZXMubWVkaXVtID8gbWVkaWEuc2l6ZXMubWVkaXVtLnVybCA6IG1lZGlhLnVybDtcbiAgICAgICAgICAgICAgICAgIHZhciBuZXdPYmplY3QgPSBfT2JqZWN0JGFzc2lnbih7fSwgdGVzdGltb25pYWwsIHtcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IGltYWdlXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIHByb3BzLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgICAgICAgICAgICB0ZXN0aW1vbmlhbHM6IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkodGVzdGltb25pYWxzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmluZGV4ICE9IHRlc3RpbW9uaWFsLmluZGV4O1xuICAgICAgICAgICAgICAgICAgICB9KSksIFtuZXdPYmplY3RdKVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0eXBlOiBcImltYWdlXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRlc3RpbW9uaWFsLmltYWdlLFxuICAgICAgICAgICAgICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKF9yZWYpIHtcbiAgICAgICAgICAgICAgICAgIHZhciBvcGVuID0gX3JlZi5vcGVuO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuICEhdGVzdGltb25pYWwuaW1hZ2UgPyB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLmlzU2VsZWN0ZWQgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwiZ3RzX19waWN0dXJlX19hY3Rpb25zXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjogXCIjXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld09iamVjdCA9IF9PYmplY3QkYXNzaWduKHt9LCB0ZXN0aW1vbmlhbCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RpbW9uaWFsczogW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheSh0ZXN0aW1vbmlhbHMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmluZGV4ICE9IHRlc3RpbW9uaWFsLmluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLCBbbmV3T2JqZWN0XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXFx4RDcgUmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImd0c19fcGljdHVyZV9faW1hZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybChcIiArIHRlc3RpbW9uaWFsLmltYWdlICsgXCIpXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG9wZW5cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICkgOiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIFwiYVwiLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgaHJlZjogXCIjXCIsXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImd0c19fcGljdHVyZV9faW1hZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBvcGVuXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU2VsZWN0IEltYWdlXCJcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwiY29sLTkgbXQtM1wiIH0sXG4gICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChQbGFpblRleHQsIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiYXV0aG9yLXBsYWluLXRleHRcIixcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJBdXRob3JcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGVzdGltb25pYWwuYXV0aG9yLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZShhdXRob3IpIHtcbiAgICAgICAgICAgICAgICAgIHZhciBuZXdPYmplY3QgPSBfT2JqZWN0JGFzc2lnbih7fSwgdGVzdGltb25pYWwsIHtcbiAgICAgICAgICAgICAgICAgICAgYXV0aG9yOiBhdXRob3JcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgcHJvcHMuc2V0QXR0cmlidXRlcyh7XG4gICAgICAgICAgICAgICAgICAgIHRlc3RpbW9uaWFsczogW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheSh0ZXN0aW1vbmlhbHMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaW5kZXggIT0gdGVzdGltb25pYWwuaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH0pKSwgW25ld09iamVjdF0pXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoUGxhaW5UZXh0LCB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImxpbmstcGxhaW4tdGV4dFwiLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIkxpbmsgdG8gQXV0aG9yIFByb2ZpbGVcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGVzdGltb25pYWwubGluayxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UobGluaykge1xuICAgICAgICAgICAgICAgICAgdmFyIG5ld09iamVjdCA9IF9PYmplY3QkYXNzaWduKHt9LCB0ZXN0aW1vbmlhbCwge1xuICAgICAgICAgICAgICAgICAgICBsaW5rOiBsaW5rXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIHByb3BzLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgICAgICAgICAgICB0ZXN0aW1vbmlhbHM6IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkodGVzdGltb25pYWxzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmluZGV4ICE9IHRlc3RpbW9uaWFsLmluZGV4O1xuICAgICAgICAgICAgICAgICAgICB9KSksIFtuZXdPYmplY3RdKVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICByZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgXCJkaXZcIixcbiAgICAgIHsgY2xhc3NOYW1lOiBwcm9wcy5jbGFzc05hbWUgfSxcbiAgICAgIHRlc3RpbW9uaWFsc0xpc3QsXG4gICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6IFwiYWRkLW1vcmUtdGVzdGltb25pYWxcIixcbiAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKGNvbnRlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgdGVzdGltb25pYWxzOiBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KHByb3BzLmF0dHJpYnV0ZXMudGVzdGltb25pYWxzKSwgW3tcbiAgICAgICAgICAgICAgICBpbmRleDogcHJvcHMuYXR0cmlidXRlcy50ZXN0aW1vbmlhbHMubGVuZ3RoLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgYXV0aG9yOiBcIlwiLFxuICAgICAgICAgICAgICAgIGxpbms6IFwiXCJcbiAgICAgICAgICAgICAgfV0pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiK1wiXG4gICAgICApXG4gICAgKTtcbiAgfSxcblxuICAvKipcbiAgICogVGhlIHNhdmUgZnVuY3Rpb24gZGVmaW5lcyB0aGUgd2F5IGluIHdoaWNoIHRoZSBkaWZmZXJlbnQgYXR0cmlidXRlcyBzaG91bGQgYmUgY29tYmluZWRcbiAgICogaW50byB0aGUgZmluYWwgbWFya3VwLCB3aGljaCBpcyB0aGVuIHNlcmlhbGl6ZWQgYnkgR3V0ZW5iZXJnIGludG8gcG9zdF9jb250ZW50LlxuICAgKlxuICAgKiBUaGUgXCJzYXZlXCIgcHJvcGVydHkgbXVzdCBiZSBzcGVjaWZpZWQgYW5kIG11c3QgYmUgYSB2YWxpZCBmdW5jdGlvbi5cbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1hcGkvYmxvY2stZWRpdC1zYXZlL1xuICAgKi9cbiAgc2F2ZTogZnVuY3Rpb24gc2F2ZShwcm9wcykge1xuICAgIHZhciBfcHJvcHMkYXR0cmlidXRlcyA9IHByb3BzLmF0dHJpYnV0ZXMsXG4gICAgICAgIGlkID0gX3Byb3BzJGF0dHJpYnV0ZXMuaWQsXG4gICAgICAgIHRlc3RpbW9uaWFscyA9IF9wcm9wcyRhdHRyaWJ1dGVzLnRlc3RpbW9uaWFscztcblxuICAgIHZhciBjYXJvdXNlbEluZGljYXRvcnMgPSB0ZXN0aW1vbmlhbHMubWFwKGZ1bmN0aW9uICh0ZXN0aW1vbmlhbCwgaW5kZXgpIHtcbiAgICAgIHJldHVybiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XG4gICAgICAgIFwiZGF0YS10YXJnZXRcIjogXCIjXCIgKyBpZCxcbiAgICAgICAgXCJkYXRhLXNsaWRlLXRvXCI6IGluZGV4LFxuICAgICAgICBjbGFzc05hbWU6IHRlc3RpbW9uaWFsLmluZGV4ID09IDAgPyBcImFjdGl2ZVwiIDogXCJcIlxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdmFyIHRlc3RpbW9uaWFsc0xpc3QgPSB0ZXN0aW1vbmlhbHMubWFwKGZ1bmN0aW9uICh0ZXN0aW1vbmlhbCkge1xuICAgICAgdmFyIGNhcm91c2VsQ2xhc3MgPSB0ZXN0aW1vbmlhbC5pbmRleCA9PSAwID8gXCJjYXJvdXNlbC1pdGVtIGFjdGl2ZVwiIDogXCJjYXJvdXNlbC1pdGVtXCI7XG4gICAgICByZXR1cm4gd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IGNsYXNzTmFtZTogY2Fyb3VzZWxDbGFzcywga2V5OiB0ZXN0aW1vbmlhbC5pbmRleCB9LFxuICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgXCJibG9ja3F1b3RlXCIsXG4gICAgICAgICAgeyBjbGFzc05hbWU6IFwidGVzdGltb25pYWxcIiB9LFxuICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwidGVzdGltb25pYWwtaW5kZXhcIiwgc3R5bGU6IHsgZGlzcGxheTogXCJub25lXCIgfSB9LFxuICAgICAgICAgICAgdGVzdGltb25pYWwuaW5kZXhcbiAgICAgICAgICApLFxuICAgICAgICAgIHRlc3RpbW9uaWFsLmNvbnRlbnQgJiYgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgXCJwXCIsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJ0ZXN0aW1vbmlhbC10ZXh0LWNvbnRhaW5lclwiIH0sXG4gICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXCJpXCIsIHsgY2xhc3NOYW1lOiBcImZhIGZhLXF1b3RlLWxlZnQgcHVsbC1sZWZ0XCIsIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIgfSksXG4gICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJ0ZXN0aW1vbmlhbC10ZXh0XCIgfSxcbiAgICAgICAgICAgICAgdGVzdGltb25pYWwuY29udGVudFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcImlcIiwgeyBcImNsYXNzXCI6IFwiZmEgZmEtcXVvdGUtcmlnaHQgcHVsbC1yaWdodFwiLCBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiIH0pXG4gICAgICAgICAgKSxcbiAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwicm93XCIgfSxcbiAgICAgICAgICAgIHRlc3RpbW9uaWFsLmltYWdlICYmIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwiZ3RzX19waWN0dXJlIGNvbC0zXCIgfSxcbiAgICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHsgc3JjOiB0ZXN0aW1vbmlhbC5pbWFnZSwgc3R5bGU6IHsgZGlzcGxheTogXCJub25lXCIgfSB9KSxcbiAgICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiZ3RzX19waWN0dXJlX19pbWFnZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IFwidXJsKFwiICsgdGVzdGltb25pYWwuaW1hZ2UgKyBcIilcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcInRlc3RpbW9uaWFsLWF1dGhvci1jb250YWluZXIgbXQtMyBjb2wtOVwiIH0sXG4gICAgICAgICAgICAgIHRlc3RpbW9uaWFsLmF1dGhvciAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgXCJwXCIsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwidGVzdGltb25pYWwtYXV0aG9yLW5hbWVcIiB9LFxuICAgICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwidGVzdGltb25pYWwtYXV0aG9yXCIgfSxcbiAgICAgICAgICAgICAgICAgIFwiXFx1MjAxNCBcIixcbiAgICAgICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHRlc3RpbW9uaWFsLmF1dGhvclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgdGVzdGltb25pYWwubGluayAmJiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgXCJwXCIsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwidGVzdGltb25pYWwtYXV0aG9yLWNvbnRhaW5lclwiIH0sXG4gICAgICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgXCJhXCIsXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogXCJfYmxhbmtcIixcbiAgICAgICAgICAgICAgICAgICAgcmVsOiBcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixcbiAgICAgICAgICAgICAgICAgICAgaHJlZjogdGVzdGltb25pYWwubGlua1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcImlcIiwgeyBjbGFzc05hbWU6IFwiZmFzIGZhLXVzZXJcIiB9KSxcbiAgICAgICAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcInRlc3RpbW9uaWFsLWF1dGhvci1saW5rXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdGVzdGltb25pYWwubGlua1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICBpZiAodGVzdGltb25pYWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgY2xhc3NOYW1lOiBcInRlc3RpbW9uaWFsLXNsaWRlclwiIH0sXG4gICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgIHsgY2xhc3NOYW1lOiBcImNhcm91c2VsIHNsaWRlXCIsIFwiZGF0YS1yaWRlXCI6IFwiY2Fyb3VzZWxcIiwgaWQ6IGlkIH0sXG4gICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgXCJvbFwiLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiIH0sXG4gICAgICAgICAgICBjYXJvdXNlbEluZGljYXRvcnNcbiAgICAgICAgICApLFxuICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJjYXJvdXNlbC1pbm5lciB3LTc1IG14LWF1dG9cIiB9LFxuICAgICAgICAgICAgdGVzdGltb25pYWxzTGlzdFxuICAgICAgICAgICksXG4gICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgXCJhXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJjYXJvdXNlbC1jb250cm9sLXByZXZcIixcbiAgICAgICAgICAgICAgaHJlZjogXCIjXCIgKyBpZCxcbiAgICAgICAgICAgICAgcm9sZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgXCJkYXRhLXNsaWRlXCI6IFwicHJldlwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgeyBcImNsYXNzXCI6IFwiY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb25cIiwgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9LFxuICAgICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXCJpXCIsIHsgY2xhc3NOYW1lOiBcImZhIGZhLWNoZXZyb24tbGVmdFwiIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgeyBcImNsYXNzXCI6IFwic3Itb25seVwiIH0sXG4gICAgICAgICAgICAgIFwiUHJldmlvdXNcIlxuICAgICAgICAgICAgKVxuICAgICAgICAgICksXG4gICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgXCJhXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJjYXJvdXNlbC1jb250cm9sLW5leHRcIixcbiAgICAgICAgICAgICAgaHJlZjogXCIjXCIgKyBpZCxcbiAgICAgICAgICAgICAgcm9sZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgXCJkYXRhLXNsaWRlXCI6IFwibmV4dFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd3AuZWxlbWVudC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgeyBcImNsYXNzXCI6IFwiY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb25cIiwgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9LFxuICAgICAgICAgICAgICB3cC5lbGVtZW50LmNyZWF0ZUVsZW1lbnQoXCJpXCIsIHsgY2xhc3NOYW1lOiBcImZhIGZhLWNoZXZyb24tcmlnaHRcIiB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdwLmVsZW1lbnQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgIHsgXCJjbGFzc1wiOiBcInNyLW9ubHlcIiB9LFxuICAgICAgICAgICAgICBcIk5leHRcIlxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2UgcmV0dXJuIG51bGw7XG4gIH1cbn07IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kc1wiO1xuLyoqXG4gKiBCTE9DSzogbXktYmxvY2tcbiAqXG4gKiBSZWdpc3RlcmluZyBhIGJhc2ljIGJsb2NrIHdpdGggR3V0ZW5iZXJnLlxuICogU2ltcGxlIGJsb2NrLCByZW5kZXJzIGFuZCBzYXZlcyB0aGUgc2FtZSBjb250ZW50IHdpdGhvdXQgYW55IGludGVyYWN0aXZpdHkuXG4gKi9cblxuLy8gIEltcG9ydCBDU1MuXG5pbXBvcnQgXCIuL3N0eWxlLnNjc3NcIjtcbmltcG9ydCBcIi4vZWRpdG9yLnNjc3NcIjtcblxudmFyIF9fID0gd3AuaTE4bi5fXzsgLy8gVGhlIF9fKCkgZm9yIGludGVybmF0aW9uYWxpemF0aW9uLlxudmFyIHJlZ2lzdGVyQmxvY2tUeXBlID0gd3AuYmxvY2tzLnJlZ2lzdGVyQmxvY2tUeXBlOyAvLyBUaGUgcmVnaXN0ZXJCbG9ja1R5cGUoKSB0byByZWdpc3RlciBibG9ja3MuXG5pbXBvcnQgY3VycmVudFNsaWRlciBmcm9tICcuL2N1cnJlbnQtc2xpZGVyJztcblxuLyoqXG4gKiBSZWdpc3RlcjogYSBHdXRlbmJlcmcgQmxvY2suXG4gKlxuICogUmVnaXN0ZXJzIGEgbmV3IGJsb2NrIHByb3ZpZGVkIGEgdW5pcXVlIG5hbWUgYW5kIGFuIG9iamVjdCBkZWZpbmluZyBpdHNcbiAqIGJlaGF2aW9yLiBPbmNlIHJlZ2lzdGVyZWQsIHRoZSBibG9jayBpcyBtYWRlIGVkaXRvciBhcyBhbiBvcHRpb24gdG8gYW55XG4gKiBlZGl0b3IgaW50ZXJmYWNlIHdoZXJlIGJsb2NrcyBhcmUgaW1wbGVtZW50ZWQuXG4gKlxuICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2d1dGVuYmVyZy9oYW5kYm9vay9ibG9jay1hcGkvXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgbmFtZSAgICAgQmxvY2sgbmFtZS5cbiAqIEBwYXJhbSAge09iamVjdH0gICBzZXR0aW5ncyBCbG9jayBzZXR0aW5ncy5cbiAqIEByZXR1cm4gez9XUEJsb2NrfSAgICAgICAgICBUaGUgYmxvY2ssIGlmIGl0IGhhcyBiZWVuIHN1Y2Nlc3NmdWxseVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyZWQ7IG90aGVyd2lzZSBgdW5kZWZpbmVkYC5cbiAqL1xucmVnaXN0ZXJCbG9ja1R5cGUoXCJndHMvdGVzdGltb25pYWxzLXNsaWRlci1ibG9ja1wiLCBfZXh0ZW5kcyh7XG4gIC8vIEJsb2NrIG5hbWUuIEJsb2NrIG5hbWVzIG11c3QgYmUgc3RyaW5nIHRoYXQgY29udGFpbnMgYSBuYW1lc3BhY2UgcHJlZml4LiBFeGFtcGxlOiBteS1wbHVnaW4vbXktY3VzdG9tLWJsb2NrLlxuICB0aXRsZTogX18oXCJUZXN0aW1vbmlhbHMgU2xpZGVyXCIpLCAvLyBCbG9jayB0aXRsZS5cbiAgaWNvbjogXCJmb3JtYXQtcXVvdGVcIiwgLy8gQmxvY2sgaWNvbiBmcm9tIERhc2hpY29ucyDihpIgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZXNvdXJjZS9kYXNoaWNvbnMvLlxuICBjYXRlZ29yeTogXCJjb21tb25cIiwgLy8gQmxvY2sgY2F0ZWdvcnkg4oCUIEdyb3VwIGJsb2NrcyB0b2dldGhlciBiYXNlZCBvbiBjb21tb24gdHJhaXRzIEUuZy4gY29tbW9uLCBmb3JtYXR0aW5nLCBsYXlvdXQgd2lkZ2V0cywgZW1iZWQuXG4gIGtleXdvcmRzOiBbX18oXCJUZXN0aW1vbmlhbHMgU2xpZGVyXCIpLCBfXyhcImd0c1wiKV1cblxufSwgY3VycmVudFNsaWRlcilcblxuLy8gZGVwcmVjYXRlZCBibG9ja3MgaGVyZVxuXG4pOyIsIi8qKlxuICogSW1wb3J0IGJsb2Nrc1xuICovXG5pbXBvcnQgJy4vYmxvY2svc2xpZGVyLmpzJzsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4WkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4Q0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///61\n')},
    376376/*!******************************!*\
    377377  !*** ./src/block/style.scss ***!
Note: See TracChangeset for help on using the changeset viewer.