block.editor.js
1032 lines
| 1 | /******/ (() => { // webpackBootstrap |
| 2 | /******/ "use strict"; |
| 3 | /******/ var __webpack_modules__ = ({ |
| 4 | |
| 5 | /***/ "../../../../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js": |
| 6 | /*!*****************************************************************************************!*\ |
| 7 | !*** ../../../../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js ***! |
| 8 | \*****************************************************************************************/ |
| 9 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 10 | |
| 11 | __webpack_require__.r(__webpack_exports__); |
| 12 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 13 | /* harmony export */ "default": () => (/* binding */ isPropValid) |
| 14 | /* harmony export */ }); |
| 15 | /* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/memoize */ "../../../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js"); |
| 16 | |
| 17 | |
| 18 | // eslint-disable-next-line no-undef |
| 19 | var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23 |
| 20 | |
| 21 | var isPropValid = /* #__PURE__ */(0,_emotion_memoize__WEBPACK_IMPORTED_MODULE_0__["default"])(function (prop) { |
| 22 | return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111 |
| 23 | /* o */ |
| 24 | && prop.charCodeAt(1) === 110 |
| 25 | /* n */ |
| 26 | && prop.charCodeAt(2) < 91; |
| 27 | } |
| 28 | /* Z+1 */ |
| 29 | ); |
| 30 | |
| 31 | |
| 32 | |
| 33 | |
| 34 | /***/ }), |
| 35 | |
| 36 | /***/ "../../../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js": |
| 37 | /*!*****************************************************************************!*\ |
| 38 | !*** ../../../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js ***! |
| 39 | \*****************************************************************************/ |
| 40 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 41 | |
| 42 | __webpack_require__.r(__webpack_exports__); |
| 43 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 44 | /* harmony export */ "default": () => (/* binding */ memoize) |
| 45 | /* harmony export */ }); |
| 46 | function memoize(fn) { |
| 47 | var cache = Object.create(null); |
| 48 | return function (arg) { |
| 49 | if (cache[arg] === undefined) cache[arg] = fn(arg); |
| 50 | return cache[arg]; |
| 51 | }; |
| 52 | } |
| 53 | |
| 54 | |
| 55 | |
| 56 | |
| 57 | /***/ }), |
| 58 | |
| 59 | /***/ "../../../../node_modules/@linaria/core/dist/index.mjs": |
| 60 | /*!*************************************************************!*\ |
| 61 | !*** ../../../../node_modules/@linaria/core/dist/index.mjs ***! |
| 62 | \*************************************************************/ |
| 63 | /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { |
| 64 | |
| 65 | __webpack_require__.r(__webpack_exports__); |
| 66 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 67 | /* harmony export */ css: () => (/* binding */ css_default), |
| 68 | /* harmony export */ cx: () => (/* binding */ cx_default) |
| 69 | /* harmony export */ }); |
| 70 | // src/css.ts |
| 71 | var idx = 0; |
| 72 | var css = () => { |
| 73 | if (false) {} |
| 74 | throw new Error( |
| 75 | 'Using the "css" tag in runtime is not supported. Make sure you have set up the Babel plugin correctly.' |
| 76 | ); |
| 77 | }; |
| 78 | var css_default = css; |
| 79 | |
| 80 | // src/cx.ts |
| 81 | var cx = function cx2() { |
| 82 | const presentClassNames = Array.prototype.slice.call(arguments).filter(Boolean); |
| 83 | const atomicClasses = {}; |
| 84 | const nonAtomicClasses = []; |
| 85 | presentClassNames.forEach((arg) => { |
| 86 | const individualClassNames = arg ? arg.split(" ") : []; |
| 87 | individualClassNames.forEach((className) => { |
| 88 | if (className.startsWith("atm_")) { |
| 89 | const [, keyHash] = className.split("_"); |
| 90 | atomicClasses[keyHash] = className; |
| 91 | } else { |
| 92 | nonAtomicClasses.push(className); |
| 93 | } |
| 94 | }); |
| 95 | }); |
| 96 | const result = []; |
| 97 | for (const keyHash in atomicClasses) { |
| 98 | if (Object.prototype.hasOwnProperty.call(atomicClasses, keyHash)) { |
| 99 | result.push(atomicClasses[keyHash]); |
| 100 | } |
| 101 | } |
| 102 | result.push(...nonAtomicClasses); |
| 103 | return result.join(" "); |
| 104 | }; |
| 105 | var cx_default = cx; |
| 106 | |
| 107 | //# sourceMappingURL=index.mjs.map |
| 108 | |
| 109 | /***/ }), |
| 110 | |
| 111 | /***/ "../../../../node_modules/@linaria/react/dist/index.mjs": |
| 112 | /*!**************************************************************!*\ |
| 113 | !*** ../../../../node_modules/@linaria/react/dist/index.mjs ***! |
| 114 | \**************************************************************/ |
| 115 | /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { |
| 116 | |
| 117 | __webpack_require__.r(__webpack_exports__); |
| 118 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 119 | /* harmony export */ styled: () => (/* binding */ styled_default) |
| 120 | /* harmony export */ }); |
| 121 | /* harmony import */ var _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/is-prop-valid */ "../../../../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js"); |
| 122 | /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react"); |
| 123 | /* harmony import */ var _linaria_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @linaria/core */ "../../../../node_modules/@linaria/core/dist/index.mjs"); |
| 124 | // src/styled.ts |
| 125 | |
| 126 | |
| 127 | |
| 128 | var isCapital = (ch) => ch.toUpperCase() === ch; |
| 129 | var filterKey = (keys) => (key) => keys.indexOf(key) === -1; |
| 130 | var omit = (obj, keys) => { |
| 131 | const res = {}; |
| 132 | Object.keys(obj).filter(filterKey(keys)).forEach((key) => { |
| 133 | res[key] = obj[key]; |
| 134 | }); |
| 135 | return res; |
| 136 | }; |
| 137 | function filterProps(asIs, props, omitKeys) { |
| 138 | const filteredProps = omit(props, omitKeys); |
| 139 | if (!asIs) { |
| 140 | const interopValidAttr = typeof _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_0__["default"] === "function" ? { default: _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_0__["default"] } : _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_0__["default"]; |
| 141 | Object.keys(filteredProps).forEach((key) => { |
| 142 | if (!interopValidAttr.default(key)) { |
| 143 | delete filteredProps[key]; |
| 144 | } |
| 145 | }); |
| 146 | } |
| 147 | return filteredProps; |
| 148 | } |
| 149 | var warnIfInvalid = (value, componentName) => { |
| 150 | if (true) { |
| 151 | if (typeof value === "string" || // eslint-disable-next-line no-self-compare,no-restricted-globals |
| 152 | typeof value === "number" && isFinite(value)) { |
| 153 | return; |
| 154 | } |
| 155 | const stringified = typeof value === "object" ? JSON.stringify(value) : String(value); |
| 156 | console.warn( |
| 157 | `An interpolation evaluated to '${stringified}' in the component '${componentName}', which is probably a mistake. You should explicitly cast or transform the value to a string.` |
| 158 | ); |
| 159 | } |
| 160 | }; |
| 161 | var idx = 0; |
| 162 | function styled(tag) { |
| 163 | let mockedClass = ""; |
| 164 | if (false) {} |
| 165 | return (options) => { |
| 166 | if (true) { |
| 167 | if (Array.isArray(options)) { |
| 168 | throw new Error( |
| 169 | 'Using the "styled" tag in runtime is not supported. Make sure you have set up the Babel plugin correctly. See https://github.com/callstack/linaria#setup' |
| 170 | ); |
| 171 | } |
| 172 | } |
| 173 | const render = (props, ref) => { |
| 174 | const { as: component = tag, class: className = mockedClass } = props; |
| 175 | const shouldKeepProps = options.propsAsIs === void 0 ? !(typeof component === "string" && component.indexOf("-") === -1 && !isCapital(component[0])) : options.propsAsIs; |
| 176 | const filteredProps = filterProps(shouldKeepProps, props, [ |
| 177 | "as", |
| 178 | "class" |
| 179 | ]); |
| 180 | filteredProps.ref = ref; |
| 181 | filteredProps.className = options.atomic ? (0,_linaria_core__WEBPACK_IMPORTED_MODULE_2__.cx)(options.class, filteredProps.className || className) : (0,_linaria_core__WEBPACK_IMPORTED_MODULE_2__.cx)(filteredProps.className || className, options.class); |
| 182 | const { vars } = options; |
| 183 | if (vars) { |
| 184 | const style = {}; |
| 185 | for (const name in vars) { |
| 186 | const variable = vars[name]; |
| 187 | const result = variable[0]; |
| 188 | const unit = variable[1] || ""; |
| 189 | const value = typeof result === "function" ? result(props) : result; |
| 190 | warnIfInvalid(value, options.name); |
| 191 | style[`--${name}`] = `${value}${unit}`; |
| 192 | } |
| 193 | const ownStyle = filteredProps.style || {}; |
| 194 | const keys = Object.keys(ownStyle); |
| 195 | if (keys.length > 0) { |
| 196 | keys.forEach((key) => { |
| 197 | style[key] = ownStyle[key]; |
| 198 | }); |
| 199 | } |
| 200 | filteredProps.style = style; |
| 201 | } |
| 202 | if (tag.__wyw_meta && tag !== component) { |
| 203 | filteredProps.as = component; |
| 204 | return react__WEBPACK_IMPORTED_MODULE_1__.createElement(tag, filteredProps); |
| 205 | } |
| 206 | return react__WEBPACK_IMPORTED_MODULE_1__.createElement(component, filteredProps); |
| 207 | }; |
| 208 | const Result = react__WEBPACK_IMPORTED_MODULE_1__.forwardRef ? react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(render) : ( |
| 209 | // React.forwardRef won't available on older React versions and in Preact |
| 210 | // Fallback to a innerRef prop in that case |
| 211 | (props) => { |
| 212 | const rest = omit(props, ["innerRef"]); |
| 213 | return render(rest, props.innerRef); |
| 214 | } |
| 215 | ); |
| 216 | Result.displayName = options.name; |
| 217 | Result.__wyw_meta = { |
| 218 | className: options.class || mockedClass, |
| 219 | extends: tag |
| 220 | }; |
| 221 | return Result; |
| 222 | }; |
| 223 | } |
| 224 | var styled_default = true ? new Proxy(styled, { |
| 225 | get(o, prop) { |
| 226 | return o(prop); |
| 227 | } |
| 228 | }) : 0; |
| 229 | |
| 230 | //# sourceMappingURL=index.mjs.map |
| 231 | |
| 232 | /***/ }), |
| 233 | |
| 234 | /***/ "../../../../node_modules/@wordpress/icons/build-module/library/copy-small.js": |
| 235 | /*!************************************************************************************!*\ |
| 236 | !*** ../../../../node_modules/@wordpress/icons/build-module/library/copy-small.js ***! |
| 237 | \************************************************************************************/ |
| 238 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 239 | |
| 240 | __webpack_require__.r(__webpack_exports__); |
| 241 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 242 | /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) |
| 243 | /* harmony export */ }); |
| 244 | /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); |
| 245 | /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); |
| 246 | /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives"); |
| 247 | /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__); |
| 248 | |
| 249 | /** |
| 250 | * WordPress dependencies |
| 251 | */ |
| 252 | |
| 253 | const copySmall = (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, { |
| 254 | xmlns: "http://www.w3.org/2000/svg", |
| 255 | viewBox: "0 0 24 24" |
| 256 | }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, { |
| 257 | fillRule: "evenodd", |
| 258 | clipRule: "evenodd", |
| 259 | d: "M5.625 5.5h9.75c.069 0 .125.056.125.125v9.75a.125.125 0 0 1-.125.125h-9.75a.125.125 0 0 1-.125-.125v-9.75c0-.069.056-.125.125-.125ZM4 5.625C4 4.728 4.728 4 5.625 4h9.75C16.273 4 17 4.728 17 5.625v9.75c0 .898-.727 1.625-1.625 1.625h-9.75A1.625 1.625 0 0 1 4 15.375v-9.75Zm14.5 11.656v-9H20v9C20 18.8 18.77 20 17.251 20H6.25v-1.5h11.001c.69 0 1.249-.528 1.249-1.219Z" |
| 260 | })); |
| 261 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (copySmall); |
| 262 | //# sourceMappingURL=copy-small.js.map |
| 263 | |
| 264 | /***/ }), |
| 265 | |
| 266 | /***/ "../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!../../../../node_modules/@wyw-in-js/webpack-loader/lib/outputCssLoader.js?cacheProvider=!./blockEditor/shortcodeBuilder/ShortcodeBuilder.jsx": |
| 267 | /*!********************************************************************************************************************************************************************************************************************************************************!*\ |
| 268 | !*** ../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!../../../../node_modules/@wyw-in-js/webpack-loader/lib/outputCssLoader.js?cacheProvider=!./blockEditor/shortcodeBuilder/ShortcodeBuilder.jsx ***! |
| 269 | \********************************************************************************************************************************************************************************************************************************************************/ |
| 270 | /***/ ((module, __webpack_exports__, __webpack_require__) => { |
| 271 | |
| 272 | __webpack_require__.r(__webpack_exports__); |
| 273 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 274 | /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) |
| 275 | /* harmony export */ }); |
| 276 | /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "../../../../node_modules/css-loader/dist/runtime/sourceMaps.js"); |
| 277 | /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); |
| 278 | /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ "../../../../node_modules/css-loader/dist/runtime/api.js"); |
| 279 | /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); |
| 280 | // Imports |
| 281 | |
| 282 | |
| 283 | var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); |
| 284 | // Module |
| 285 | ___CSS_LOADER_EXPORT___.push([module.id, `.s1vim7hv{overflow-x:auto;text-wrap:nowrap;padding:3px 5px 2px;background:rgba(0, 0, 0, .07);font-size:13px;font-family:Consolas,Monaco,monospace;-webkit-flex:1;-ms-flex:1;flex:1;} |
| 286 | `, "",{"version":3,"sources":["webpack://./blockEditor/shortcodeBuilder/ShortcodeBuilder.jsx"],"names":[],"mappings":"AAAA,UAAU,eAAe,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,cAAc,CAAC,qCAAqC,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC","sourcesContent":[".s1vim7hv{overflow-x:auto;text-wrap:nowrap;padding:3px 5px 2px;background:rgba(0, 0, 0, .07);font-size:13px;font-family:Consolas,Monaco,monospace;-webkit-flex:1;-ms-flex:1;flex:1;}\n"],"sourceRoot":""}]); |
| 287 | // Exports |
| 288 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); |
| 289 | |
| 290 | |
| 291 | /***/ }), |
| 292 | |
| 293 | /***/ "../../../../node_modules/css-loader/dist/runtime/api.js": |
| 294 | /*!***************************************************************!*\ |
| 295 | !*** ../../../../node_modules/css-loader/dist/runtime/api.js ***! |
| 296 | \***************************************************************/ |
| 297 | /***/ ((module) => { |
| 298 | |
| 299 | |
| 300 | |
| 301 | /* |
| 302 | MIT License http://www.opensource.org/licenses/mit-license.php |
| 303 | Author Tobias Koppers @sokra |
| 304 | */ |
| 305 | module.exports = function (cssWithMappingToString) { |
| 306 | var list = []; |
| 307 | |
| 308 | // return the list of modules as css string |
| 309 | list.toString = function toString() { |
| 310 | return this.map(function (item) { |
| 311 | var content = ""; |
| 312 | var needLayer = typeof item[5] !== "undefined"; |
| 313 | if (item[4]) { |
| 314 | content += "@supports (".concat(item[4], ") {"); |
| 315 | } |
| 316 | if (item[2]) { |
| 317 | content += "@media ".concat(item[2], " {"); |
| 318 | } |
| 319 | if (needLayer) { |
| 320 | content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); |
| 321 | } |
| 322 | content += cssWithMappingToString(item); |
| 323 | if (needLayer) { |
| 324 | content += "}"; |
| 325 | } |
| 326 | if (item[2]) { |
| 327 | content += "}"; |
| 328 | } |
| 329 | if (item[4]) { |
| 330 | content += "}"; |
| 331 | } |
| 332 | return content; |
| 333 | }).join(""); |
| 334 | }; |
| 335 | |
| 336 | // import a list of modules into the list |
| 337 | list.i = function i(modules, media, dedupe, supports, layer) { |
| 338 | if (typeof modules === "string") { |
| 339 | modules = [[null, modules, undefined]]; |
| 340 | } |
| 341 | var alreadyImportedModules = {}; |
| 342 | if (dedupe) { |
| 343 | for (var k = 0; k < this.length; k++) { |
| 344 | var id = this[k][0]; |
| 345 | if (id != null) { |
| 346 | alreadyImportedModules[id] = true; |
| 347 | } |
| 348 | } |
| 349 | } |
| 350 | for (var _k = 0; _k < modules.length; _k++) { |
| 351 | var item = [].concat(modules[_k]); |
| 352 | if (dedupe && alreadyImportedModules[item[0]]) { |
| 353 | continue; |
| 354 | } |
| 355 | if (typeof layer !== "undefined") { |
| 356 | if (typeof item[5] === "undefined") { |
| 357 | item[5] = layer; |
| 358 | } else { |
| 359 | item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); |
| 360 | item[5] = layer; |
| 361 | } |
| 362 | } |
| 363 | if (media) { |
| 364 | if (!item[2]) { |
| 365 | item[2] = media; |
| 366 | } else { |
| 367 | item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); |
| 368 | item[2] = media; |
| 369 | } |
| 370 | } |
| 371 | if (supports) { |
| 372 | if (!item[4]) { |
| 373 | item[4] = "".concat(supports); |
| 374 | } else { |
| 375 | item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); |
| 376 | item[4] = supports; |
| 377 | } |
| 378 | } |
| 379 | list.push(item); |
| 380 | } |
| 381 | }; |
| 382 | return list; |
| 383 | }; |
| 384 | |
| 385 | /***/ }), |
| 386 | |
| 387 | /***/ "../../../../node_modules/css-loader/dist/runtime/sourceMaps.js": |
| 388 | /*!**********************************************************************!*\ |
| 389 | !*** ../../../../node_modules/css-loader/dist/runtime/sourceMaps.js ***! |
| 390 | \**********************************************************************/ |
| 391 | /***/ ((module) => { |
| 392 | |
| 393 | |
| 394 | |
| 395 | module.exports = function (item) { |
| 396 | var content = item[1]; |
| 397 | var cssMapping = item[3]; |
| 398 | if (!cssMapping) { |
| 399 | return content; |
| 400 | } |
| 401 | if (typeof btoa === "function") { |
| 402 | var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping)))); |
| 403 | var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); |
| 404 | var sourceMapping = "/*# ".concat(data, " */"); |
| 405 | return [content].concat([sourceMapping]).join("\n"); |
| 406 | } |
| 407 | return [content].join("\n"); |
| 408 | }; |
| 409 | |
| 410 | /***/ }), |
| 411 | |
| 412 | /***/ "../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": |
| 413 | /*!**************************************************************************************!*\ |
| 414 | !*** ../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! |
| 415 | \**************************************************************************************/ |
| 416 | /***/ ((module) => { |
| 417 | |
| 418 | |
| 419 | |
| 420 | var stylesInDOM = []; |
| 421 | function getIndexByIdentifier(identifier) { |
| 422 | var result = -1; |
| 423 | for (var i = 0; i < stylesInDOM.length; i++) { |
| 424 | if (stylesInDOM[i].identifier === identifier) { |
| 425 | result = i; |
| 426 | break; |
| 427 | } |
| 428 | } |
| 429 | return result; |
| 430 | } |
| 431 | function modulesToDom(list, options) { |
| 432 | var idCountMap = {}; |
| 433 | var identifiers = []; |
| 434 | for (var i = 0; i < list.length; i++) { |
| 435 | var item = list[i]; |
| 436 | var id = options.base ? item[0] + options.base : item[0]; |
| 437 | var count = idCountMap[id] || 0; |
| 438 | var identifier = "".concat(id, " ").concat(count); |
| 439 | idCountMap[id] = count + 1; |
| 440 | var indexByIdentifier = getIndexByIdentifier(identifier); |
| 441 | var obj = { |
| 442 | css: item[1], |
| 443 | media: item[2], |
| 444 | sourceMap: item[3], |
| 445 | supports: item[4], |
| 446 | layer: item[5] |
| 447 | }; |
| 448 | if (indexByIdentifier !== -1) { |
| 449 | stylesInDOM[indexByIdentifier].references++; |
| 450 | stylesInDOM[indexByIdentifier].updater(obj); |
| 451 | } else { |
| 452 | var updater = addElementStyle(obj, options); |
| 453 | options.byIndex = i; |
| 454 | stylesInDOM.splice(i, 0, { |
| 455 | identifier: identifier, |
| 456 | updater: updater, |
| 457 | references: 1 |
| 458 | }); |
| 459 | } |
| 460 | identifiers.push(identifier); |
| 461 | } |
| 462 | return identifiers; |
| 463 | } |
| 464 | function addElementStyle(obj, options) { |
| 465 | var api = options.domAPI(options); |
| 466 | api.update(obj); |
| 467 | var updater = function updater(newObj) { |
| 468 | if (newObj) { |
| 469 | if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) { |
| 470 | return; |
| 471 | } |
| 472 | api.update(obj = newObj); |
| 473 | } else { |
| 474 | api.remove(); |
| 475 | } |
| 476 | }; |
| 477 | return updater; |
| 478 | } |
| 479 | module.exports = function (list, options) { |
| 480 | options = options || {}; |
| 481 | list = list || []; |
| 482 | var lastIdentifiers = modulesToDom(list, options); |
| 483 | return function update(newList) { |
| 484 | newList = newList || []; |
| 485 | for (var i = 0; i < lastIdentifiers.length; i++) { |
| 486 | var identifier = lastIdentifiers[i]; |
| 487 | var index = getIndexByIdentifier(identifier); |
| 488 | stylesInDOM[index].references--; |
| 489 | } |
| 490 | var newLastIdentifiers = modulesToDom(newList, options); |
| 491 | for (var _i = 0; _i < lastIdentifiers.length; _i++) { |
| 492 | var _identifier = lastIdentifiers[_i]; |
| 493 | var _index = getIndexByIdentifier(_identifier); |
| 494 | if (stylesInDOM[_index].references === 0) { |
| 495 | stylesInDOM[_index].updater(); |
| 496 | stylesInDOM.splice(_index, 1); |
| 497 | } |
| 498 | } |
| 499 | lastIdentifiers = newLastIdentifiers; |
| 500 | }; |
| 501 | }; |
| 502 | |
| 503 | /***/ }), |
| 504 | |
| 505 | /***/ "../../../../node_modules/style-loader/dist/runtime/insertBySelector.js": |
| 506 | /*!******************************************************************************!*\ |
| 507 | !*** ../../../../node_modules/style-loader/dist/runtime/insertBySelector.js ***! |
| 508 | \******************************************************************************/ |
| 509 | /***/ ((module) => { |
| 510 | |
| 511 | |
| 512 | |
| 513 | var memo = {}; |
| 514 | |
| 515 | /* istanbul ignore next */ |
| 516 | function getTarget(target) { |
| 517 | if (typeof memo[target] === "undefined") { |
| 518 | var styleTarget = document.querySelector(target); |
| 519 | |
| 520 | // Special case to return head of iframe instead of iframe itself |
| 521 | if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { |
| 522 | try { |
| 523 | // This will throw an exception if access to iframe is blocked |
| 524 | // due to cross-origin restrictions |
| 525 | styleTarget = styleTarget.contentDocument.head; |
| 526 | } catch (e) { |
| 527 | // istanbul ignore next |
| 528 | styleTarget = null; |
| 529 | } |
| 530 | } |
| 531 | memo[target] = styleTarget; |
| 532 | } |
| 533 | return memo[target]; |
| 534 | } |
| 535 | |
| 536 | /* istanbul ignore next */ |
| 537 | function insertBySelector(insert, style) { |
| 538 | var target = getTarget(insert); |
| 539 | if (!target) { |
| 540 | throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); |
| 541 | } |
| 542 | target.appendChild(style); |
| 543 | } |
| 544 | module.exports = insertBySelector; |
| 545 | |
| 546 | /***/ }), |
| 547 | |
| 548 | /***/ "../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js": |
| 549 | /*!********************************************************************************!*\ |
| 550 | !*** ../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js ***! |
| 551 | \********************************************************************************/ |
| 552 | /***/ ((module) => { |
| 553 | |
| 554 | |
| 555 | |
| 556 | /* istanbul ignore next */ |
| 557 | function insertStyleElement(options) { |
| 558 | var element = document.createElement("style"); |
| 559 | options.setAttributes(element, options.attributes); |
| 560 | options.insert(element, options.options); |
| 561 | return element; |
| 562 | } |
| 563 | module.exports = insertStyleElement; |
| 564 | |
| 565 | /***/ }), |
| 566 | |
| 567 | /***/ "../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js": |
| 568 | /*!********************************************************************************************!*\ |
| 569 | !*** ../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***! |
| 570 | \********************************************************************************************/ |
| 571 | /***/ ((module, __unused_webpack_exports, __webpack_require__) => { |
| 572 | |
| 573 | |
| 574 | |
| 575 | /* istanbul ignore next */ |
| 576 | function setAttributesWithoutAttributes(styleElement) { |
| 577 | var nonce = true ? __webpack_require__.nc : 0; |
| 578 | if (nonce) { |
| 579 | styleElement.setAttribute("nonce", nonce); |
| 580 | } |
| 581 | } |
| 582 | module.exports = setAttributesWithoutAttributes; |
| 583 | |
| 584 | /***/ }), |
| 585 | |
| 586 | /***/ "../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js": |
| 587 | /*!*************************************************************************!*\ |
| 588 | !*** ../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js ***! |
| 589 | \*************************************************************************/ |
| 590 | /***/ ((module) => { |
| 591 | |
| 592 | |
| 593 | |
| 594 | /* istanbul ignore next */ |
| 595 | function apply(styleElement, options, obj) { |
| 596 | var css = ""; |
| 597 | if (obj.supports) { |
| 598 | css += "@supports (".concat(obj.supports, ") {"); |
| 599 | } |
| 600 | if (obj.media) { |
| 601 | css += "@media ".concat(obj.media, " {"); |
| 602 | } |
| 603 | var needLayer = typeof obj.layer !== "undefined"; |
| 604 | if (needLayer) { |
| 605 | css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {"); |
| 606 | } |
| 607 | css += obj.css; |
| 608 | if (needLayer) { |
| 609 | css += "}"; |
| 610 | } |
| 611 | if (obj.media) { |
| 612 | css += "}"; |
| 613 | } |
| 614 | if (obj.supports) { |
| 615 | css += "}"; |
| 616 | } |
| 617 | var sourceMap = obj.sourceMap; |
| 618 | if (sourceMap && typeof btoa !== "undefined") { |
| 619 | css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); |
| 620 | } |
| 621 | |
| 622 | // For old IE |
| 623 | /* istanbul ignore if */ |
| 624 | options.styleTagTransform(css, styleElement, options.options); |
| 625 | } |
| 626 | function removeStyleElement(styleElement) { |
| 627 | // istanbul ignore if |
| 628 | if (styleElement.parentNode === null) { |
| 629 | return false; |
| 630 | } |
| 631 | styleElement.parentNode.removeChild(styleElement); |
| 632 | } |
| 633 | |
| 634 | /* istanbul ignore next */ |
| 635 | function domAPI(options) { |
| 636 | if (typeof document === "undefined") { |
| 637 | return { |
| 638 | update: function update() {}, |
| 639 | remove: function remove() {} |
| 640 | }; |
| 641 | } |
| 642 | var styleElement = options.insertStyleElement(options); |
| 643 | return { |
| 644 | update: function update(obj) { |
| 645 | apply(styleElement, options, obj); |
| 646 | }, |
| 647 | remove: function remove() { |
| 648 | removeStyleElement(styleElement); |
| 649 | } |
| 650 | }; |
| 651 | } |
| 652 | module.exports = domAPI; |
| 653 | |
| 654 | /***/ }), |
| 655 | |
| 656 | /***/ "../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js": |
| 657 | /*!*******************************************************************************!*\ |
| 658 | !*** ../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js ***! |
| 659 | \*******************************************************************************/ |
| 660 | /***/ ((module) => { |
| 661 | |
| 662 | |
| 663 | |
| 664 | /* istanbul ignore next */ |
| 665 | function styleTagTransform(css, styleElement) { |
| 666 | if (styleElement.styleSheet) { |
| 667 | styleElement.styleSheet.cssText = css; |
| 668 | } else { |
| 669 | while (styleElement.firstChild) { |
| 670 | styleElement.removeChild(styleElement.firstChild); |
| 671 | } |
| 672 | styleElement.appendChild(document.createTextNode(css)); |
| 673 | } |
| 674 | } |
| 675 | module.exports = styleTagTransform; |
| 676 | |
| 677 | /***/ }), |
| 678 | |
| 679 | /***/ "./blockEditor/shortcodeBuilder/ShortcodeBuilder.jsx": |
| 680 | /*!***********************************************************!*\ |
| 681 | !*** ./blockEditor/shortcodeBuilder/ShortcodeBuilder.jsx ***! |
| 682 | \***********************************************************/ |
| 683 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 684 | |
| 685 | __webpack_require__.r(__webpack_exports__); |
| 686 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 687 | /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) |
| 688 | /* harmony export */ }); |
| 689 | /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); |
| 690 | /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); |
| 691 | /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); |
| 692 | /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); |
| 693 | /* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/icons */ "../../../../node_modules/@wordpress/icons/build-module/library/copy-small.js"); |
| 694 | /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); |
| 695 | /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__); |
| 696 | /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); |
| 697 | /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_3__); |
| 698 | /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); |
| 699 | /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_4__); |
| 700 | /* harmony import */ var _useShortcodeArgumentsString__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./useShortcodeArgumentsString */ "./blockEditor/shortcodeBuilder/useShortcodeArgumentsString.js"); |
| 701 | /* harmony import */ var _linaria_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @linaria/react */ "../../../../node_modules/@linaria/react/dist/index.mjs"); |
| 702 | /* harmony import */ var jet_form_builder_use_form__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! jet-form-builder-use-form */ "jet-form-builder-use-form"); |
| 703 | /* harmony import */ var jet_form_builder_use_form__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(jet_form_builder_use_form__WEBPACK_IMPORTED_MODULE_6__); |
| 704 | |
| 705 | |
| 706 | |
| 707 | |
| 708 | |
| 709 | |
| 710 | |
| 711 | |
| 712 | |
| 713 | const ShortCode = /*#__PURE__*/(0,_linaria_react__WEBPACK_IMPORTED_MODULE_7__.styled)('code')({ |
| 714 | name: "ShortCode", |
| 715 | class: "s1vim7hv", |
| 716 | propsAsIs: false |
| 717 | }); |
| 718 | function ShortcodeBuilder({ |
| 719 | name |
| 720 | }) { |
| 721 | const [settings, updateSettings] = (0,jet_form_builder_use_form__WEBPACK_IMPORTED_MODULE_6__.usePluginUseSettings)(); |
| 722 | const isActive = name === settings.builder; |
| 723 | const shortcodeArgs = (0,_useShortcodeArgumentsString__WEBPACK_IMPORTED_MODULE_5__["default"])(); |
| 724 | const shortcode = `[jet_fb_form ${shortcodeArgs}]`; |
| 725 | const { |
| 726 | createNotice |
| 727 | } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)('core/notices'); |
| 728 | const copyButtonRef = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_4__.useCopyToClipboard)(shortcode, () => { |
| 729 | createNotice('info', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Copied shortcode to clipboard.', 'jet-form-builder'), { |
| 730 | isDismissible: true, |
| 731 | type: 'snackbar' |
| 732 | }); |
| 733 | }); |
| 734 | return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { |
| 735 | onClick: () => updateSettings({ |
| 736 | builder: name |
| 737 | }), |
| 738 | icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_8__["default"], |
| 739 | variant: isActive ? 'primary' : 'secondary' |
| 740 | }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Shortcode to use anywhere', 'jet-form-builder')), isActive && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(jet_form_builder_use_form__WEBPACK_IMPORTED_MODULE_6__.BuilderHelpSlotFill.Fill, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(jet_form_builder_use_form__WEBPACK_IMPORTED_MODULE_6__.Description, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("b", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Copy the shortcode and paste it where you need on the selected page:', 'jet-form-builder'))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Flex, { |
| 741 | justify: "flex-start" |
| 742 | }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ShortCode, null, shortcode), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { |
| 743 | ref: copyButtonRef, |
| 744 | variant: "secondary" |
| 745 | }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Copy', 'jet-form-builder'))))); |
| 746 | } |
| 747 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ShortcodeBuilder); |
| 748 | __webpack_require__(/*! ./ShortcodeBuilder.wyw-in-js.css!=!../../../../../../node_modules/@wyw-in-js/webpack-loader/lib/outputCssLoader.js?cacheProvider=!./ShortcodeBuilder.jsx */ "./blockEditor/shortcodeBuilder/ShortcodeBuilder.wyw-in-js.css!=!../../../../node_modules/@wyw-in-js/webpack-loader/lib/outputCssLoader.js?cacheProvider=!./blockEditor/shortcodeBuilder/ShortcodeBuilder.jsx"); |
| 749 | |
| 750 | /***/ }), |
| 751 | |
| 752 | /***/ "./blockEditor/shortcodeBuilder/ShortcodeBuilder.wyw-in-js.css!=!../../../../node_modules/@wyw-in-js/webpack-loader/lib/outputCssLoader.js?cacheProvider=!./blockEditor/shortcodeBuilder/ShortcodeBuilder.jsx": |
| 753 | /*!********************************************************************************************************************************************************************************************************************!*\ |
| 754 | !*** ./blockEditor/shortcodeBuilder/ShortcodeBuilder.wyw-in-js.css!=!../../../../node_modules/@wyw-in-js/webpack-loader/lib/outputCssLoader.js?cacheProvider=!./blockEditor/shortcodeBuilder/ShortcodeBuilder.jsx ***! |
| 755 | \********************************************************************************************************************************************************************************************************************/ |
| 756 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 757 | |
| 758 | __webpack_require__.r(__webpack_exports__); |
| 759 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 760 | /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) |
| 761 | /* harmony export */ }); |
| 762 | /* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); |
| 763 | /* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); |
| 764 | /* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js"); |
| 765 | /* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); |
| 766 | /* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "../../../../node_modules/style-loader/dist/runtime/insertBySelector.js"); |
| 767 | /* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); |
| 768 | /* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); |
| 769 | /* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); |
| 770 | /* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js"); |
| 771 | /* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); |
| 772 | /* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js"); |
| 773 | /* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); |
| 774 | /* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_postcss_loader_dist_cjs_js_node_modules_wyw_in_js_webpack_loader_lib_outputCssLoader_js_cacheProvider_ShortcodeBuilder_jsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/postcss-loader/dist/cjs.js!../../../../../../node_modules/@wyw-in-js/webpack-loader/lib/outputCssLoader.js?cacheProvider=!./ShortcodeBuilder.jsx */ "../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js!../../../../node_modules/@wyw-in-js/webpack-loader/lib/outputCssLoader.js?cacheProvider=!./blockEditor/shortcodeBuilder/ShortcodeBuilder.jsx"); |
| 775 | |
| 776 | |
| 777 | |
| 778 | |
| 779 | |
| 780 | |
| 781 | |
| 782 | |
| 783 | |
| 784 | |
| 785 | |
| 786 | var options = {}; |
| 787 | |
| 788 | options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); |
| 789 | options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); |
| 790 | |
| 791 | options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); |
| 792 | |
| 793 | options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); |
| 794 | options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); |
| 795 | |
| 796 | var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_postcss_loader_dist_cjs_js_node_modules_wyw_in_js_webpack_loader_lib_outputCssLoader_js_cacheProvider_ShortcodeBuilder_jsx__WEBPACK_IMPORTED_MODULE_6__["default"], options); |
| 797 | |
| 798 | |
| 799 | |
| 800 | |
| 801 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_postcss_loader_dist_cjs_js_node_modules_wyw_in_js_webpack_loader_lib_outputCssLoader_js_cacheProvider_ShortcodeBuilder_jsx__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_postcss_loader_dist_cjs_js_node_modules_wyw_in_js_webpack_loader_lib_outputCssLoader_js_cacheProvider_ShortcodeBuilder_jsx__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_postcss_loader_dist_cjs_js_node_modules_wyw_in_js_webpack_loader_lib_outputCssLoader_js_cacheProvider_ShortcodeBuilder_jsx__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); |
| 802 | |
| 803 | |
| 804 | /***/ }), |
| 805 | |
| 806 | /***/ "./blockEditor/shortcodeBuilder/index.js": |
| 807 | /*!***********************************************!*\ |
| 808 | !*** ./blockEditor/shortcodeBuilder/index.js ***! |
| 809 | \***********************************************/ |
| 810 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 811 | |
| 812 | __webpack_require__.r(__webpack_exports__); |
| 813 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 814 | /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) |
| 815 | /* harmony export */ }); |
| 816 | /* harmony import */ var _ShortcodeBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ShortcodeBuilder */ "./blockEditor/shortcodeBuilder/ShortcodeBuilder.jsx"); |
| 817 | |
| 818 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ |
| 819 | name: 'shortcode', |
| 820 | view: _ShortcodeBuilder__WEBPACK_IMPORTED_MODULE_0__["default"] |
| 821 | }); |
| 822 | |
| 823 | /***/ }), |
| 824 | |
| 825 | /***/ "./blockEditor/shortcodeBuilder/useShortcodeArgumentsString.js": |
| 826 | /*!*********************************************************************!*\ |
| 827 | !*** ./blockEditor/shortcodeBuilder/useShortcodeArgumentsString.js ***! |
| 828 | \*********************************************************************/ |
| 829 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 830 | |
| 831 | __webpack_require__.r(__webpack_exports__); |
| 832 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 833 | /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) |
| 834 | /* harmony export */ }); |
| 835 | /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); |
| 836 | /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); |
| 837 | /* harmony import */ var jet_form_builder_use_form__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jet-form-builder-use-form */ "jet-form-builder-use-form"); |
| 838 | /* harmony import */ var jet_form_builder_use_form__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jet_form_builder_use_form__WEBPACK_IMPORTED_MODULE_1__); |
| 839 | |
| 840 | |
| 841 | function useShortcodeArgumentsString() { |
| 842 | var _args$submit_type, _args$required_mark, _args$fields_layout, _args$fields_label_ta, _args$enable_progress, _args$clear; |
| 843 | const { |
| 844 | formId, |
| 845 | args |
| 846 | } = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useContext)(jet_form_builder_use_form__WEBPACK_IMPORTED_MODULE_1__.FormAttributesContext); |
| 847 | const preparedArgs = Object.entries({ |
| 848 | form_id: formId, |
| 849 | submit_type: (_args$submit_type = args?.submit_type) !== null && _args$submit_type !== void 0 ? _args$submit_type : 'reload', |
| 850 | required_mark: (_args$required_mark = args?.required_mark) !== null && _args$required_mark !== void 0 ? _args$required_mark : '*', |
| 851 | fields_layout: (_args$fields_layout = args?.fields_layout) !== null && _args$fields_layout !== void 0 ? _args$fields_layout : 'column', |
| 852 | fields_label_tag: (_args$fields_label_ta = args?.fields_label_tag) !== null && _args$fields_label_ta !== void 0 ? _args$fields_label_ta : 'div', |
| 853 | enable_progress: Number((_args$enable_progress = args?.enable_progress) !== null && _args$enable_progress !== void 0 ? _args$enable_progress : ''), |
| 854 | clear: Number((_args$clear = args?.clear) !== null && _args$clear !== void 0 ? _args$clear : '') |
| 855 | }); |
| 856 | return preparedArgs.map(([argName, argValue]) => argName + '="' + argValue + '"').join(' '); |
| 857 | } |
| 858 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useShortcodeArgumentsString); |
| 859 | |
| 860 | /***/ }), |
| 861 | |
| 862 | /***/ "@wordpress/components": |
| 863 | /*!************************************!*\ |
| 864 | !*** external ["wp","components"] ***! |
| 865 | \************************************/ |
| 866 | /***/ ((module) => { |
| 867 | |
| 868 | module.exports = window["wp"]["components"]; |
| 869 | |
| 870 | /***/ }), |
| 871 | |
| 872 | /***/ "@wordpress/compose": |
| 873 | /*!*********************************!*\ |
| 874 | !*** external ["wp","compose"] ***! |
| 875 | \*********************************/ |
| 876 | /***/ ((module) => { |
| 877 | |
| 878 | module.exports = window["wp"]["compose"]; |
| 879 | |
| 880 | /***/ }), |
| 881 | |
| 882 | /***/ "@wordpress/data": |
| 883 | /*!******************************!*\ |
| 884 | !*** external ["wp","data"] ***! |
| 885 | \******************************/ |
| 886 | /***/ ((module) => { |
| 887 | |
| 888 | module.exports = window["wp"]["data"]; |
| 889 | |
| 890 | /***/ }), |
| 891 | |
| 892 | /***/ "@wordpress/element": |
| 893 | /*!*********************************!*\ |
| 894 | !*** external ["wp","element"] ***! |
| 895 | \*********************************/ |
| 896 | /***/ ((module) => { |
| 897 | |
| 898 | module.exports = window["wp"]["element"]; |
| 899 | |
| 900 | /***/ }), |
| 901 | |
| 902 | /***/ "@wordpress/i18n": |
| 903 | /*!******************************!*\ |
| 904 | !*** external ["wp","i18n"] ***! |
| 905 | \******************************/ |
| 906 | /***/ ((module) => { |
| 907 | |
| 908 | module.exports = window["wp"]["i18n"]; |
| 909 | |
| 910 | /***/ }), |
| 911 | |
| 912 | /***/ "@wordpress/primitives": |
| 913 | /*!************************************!*\ |
| 914 | !*** external ["wp","primitives"] ***! |
| 915 | \************************************/ |
| 916 | /***/ ((module) => { |
| 917 | |
| 918 | module.exports = window["wp"]["primitives"]; |
| 919 | |
| 920 | /***/ }), |
| 921 | |
| 922 | /***/ "jet-form-builder-use-form": |
| 923 | /*!**********************************!*\ |
| 924 | !*** external ["jfb","useForm"] ***! |
| 925 | \**********************************/ |
| 926 | /***/ ((module) => { |
| 927 | |
| 928 | module.exports = window["jfb"]["useForm"]; |
| 929 | |
| 930 | /***/ }), |
| 931 | |
| 932 | /***/ "react": |
| 933 | /*!************************!*\ |
| 934 | !*** external "React" ***! |
| 935 | \************************/ |
| 936 | /***/ ((module) => { |
| 937 | |
| 938 | module.exports = window["React"]; |
| 939 | |
| 940 | /***/ }) |
| 941 | |
| 942 | /******/ }); |
| 943 | /************************************************************************/ |
| 944 | /******/ // The module cache |
| 945 | /******/ var __webpack_module_cache__ = {}; |
| 946 | /******/ |
| 947 | /******/ // The require function |
| 948 | /******/ function __webpack_require__(moduleId) { |
| 949 | /******/ // Check if module is in cache |
| 950 | /******/ var cachedModule = __webpack_module_cache__[moduleId]; |
| 951 | /******/ if (cachedModule !== undefined) { |
| 952 | /******/ return cachedModule.exports; |
| 953 | /******/ } |
| 954 | /******/ // Create a new module (and put it into the cache) |
| 955 | /******/ var module = __webpack_module_cache__[moduleId] = { |
| 956 | /******/ id: moduleId, |
| 957 | /******/ // no module.loaded needed |
| 958 | /******/ exports: {} |
| 959 | /******/ }; |
| 960 | /******/ |
| 961 | /******/ // Execute the module function |
| 962 | /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); |
| 963 | /******/ |
| 964 | /******/ // Return the exports of the module |
| 965 | /******/ return module.exports; |
| 966 | /******/ } |
| 967 | /******/ |
| 968 | /************************************************************************/ |
| 969 | /******/ /* webpack/runtime/compat get default export */ |
| 970 | /******/ (() => { |
| 971 | /******/ // getDefaultExport function for compatibility with non-harmony modules |
| 972 | /******/ __webpack_require__.n = (module) => { |
| 973 | /******/ var getter = module && module.__esModule ? |
| 974 | /******/ () => (module['default']) : |
| 975 | /******/ () => (module); |
| 976 | /******/ __webpack_require__.d(getter, { a: getter }); |
| 977 | /******/ return getter; |
| 978 | /******/ }; |
| 979 | /******/ })(); |
| 980 | /******/ |
| 981 | /******/ /* webpack/runtime/define property getters */ |
| 982 | /******/ (() => { |
| 983 | /******/ // define getter functions for harmony exports |
| 984 | /******/ __webpack_require__.d = (exports, definition) => { |
| 985 | /******/ for(var key in definition) { |
| 986 | /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { |
| 987 | /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); |
| 988 | /******/ } |
| 989 | /******/ } |
| 990 | /******/ }; |
| 991 | /******/ })(); |
| 992 | /******/ |
| 993 | /******/ /* webpack/runtime/hasOwnProperty shorthand */ |
| 994 | /******/ (() => { |
| 995 | /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) |
| 996 | /******/ })(); |
| 997 | /******/ |
| 998 | /******/ /* webpack/runtime/make namespace object */ |
| 999 | /******/ (() => { |
| 1000 | /******/ // define __esModule on exports |
| 1001 | /******/ __webpack_require__.r = (exports) => { |
| 1002 | /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { |
| 1003 | /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); |
| 1004 | /******/ } |
| 1005 | /******/ Object.defineProperty(exports, '__esModule', { value: true }); |
| 1006 | /******/ }; |
| 1007 | /******/ })(); |
| 1008 | /******/ |
| 1009 | /******/ /* webpack/runtime/nonce */ |
| 1010 | /******/ (() => { |
| 1011 | /******/ __webpack_require__.nc = undefined; |
| 1012 | /******/ })(); |
| 1013 | /******/ |
| 1014 | /************************************************************************/ |
| 1015 | var __webpack_exports__ = {}; |
| 1016 | // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. |
| 1017 | (() => { |
| 1018 | /*!******************************!*\ |
| 1019 | !*** ./blockEditor/index.js ***! |
| 1020 | \******************************/ |
| 1021 | __webpack_require__.r(__webpack_exports__); |
| 1022 | /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); |
| 1023 | /* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__); |
| 1024 | /* harmony import */ var _shortcodeBuilder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./shortcodeBuilder */ "./blockEditor/shortcodeBuilder/index.js"); |
| 1025 | |
| 1026 | |
| 1027 | (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.dispatch)('jet-forms/use-form').registerBuilders([_shortcodeBuilder__WEBPACK_IMPORTED_MODULE_1__["default"]]); |
| 1028 | })(); |
| 1029 | |
| 1030 | /******/ })() |
| 1031 | ; |
| 1032 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2suZWRpdG9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQzFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNqSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNkQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7O0FDUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7QUNwRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7QUNuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7QUNUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7OztBQ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7O0FDNURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUdBO0FBSUE7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQWdCQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBTUE7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzVFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUMxQkE7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDTEE7QUFDQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBS0E7QUFFQTs7Ozs7Ozs7OztBQ3ZCQTs7Ozs7Ozs7OztBQ0FBOzs7Ozs7Ozs7O0FDQUE7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7OztBQ0FBOzs7Ozs7Ozs7O0FDQUE7Ozs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7OztBQ0FBOzs7Ozs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQ1BBOzs7OztBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQ05BOzs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQ0E7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL2pmYi1zaG9ydGNvZGUvLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BlbW90aW9uL2lzLXByb3AtdmFsaWQvZGlzdC9lbW90aW9uLWlzLXByb3AtdmFsaWQuZXNtLmpzIiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BlbW90aW9uL21lbW9pemUvZGlzdC9lbW90aW9uLW1lbW9pemUuZXNtLmpzIiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BsaW5hcmlhL2NvcmUvZGlzdC9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vamZiLXNob3J0Y29kZS8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGxpbmFyaWEvcmVhY3QvZGlzdC9pbmRleC5tanMiLCJ3ZWJwYWNrOi8vamZiLXNob3J0Y29kZS8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHdvcmRwcmVzcy9pY29ucy9idWlsZC1tb2R1bGUvbGlicmFyeS9jb3B5LXNtYWxsLmpzIiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvLi9ibG9ja0VkaXRvci9zaG9ydGNvZGVCdWlsZGVyL1Nob3J0Y29kZUJ1aWxkZXIuanN4P2YwYmMiLCJ3ZWJwYWNrOi8vamZiLXNob3J0Y29kZS8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMiLCJ3ZWJwYWNrOi8vamZiLXNob3J0Y29kZS8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMiLCJ3ZWJwYWNrOi8vamZiLXNob3J0Y29kZS8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzIiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzIiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzIiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanMiLCJ3ZWJwYWNrOi8vamZiLXNob3J0Y29kZS8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9qZmItc2hvcnRjb2RlLy4vYmxvY2tFZGl0b3Ivc2hvcnRjb2RlQnVpbGRlci9TaG9ydGNvZGVCdWlsZGVyLmpzeCIsIndlYnBhY2s6Ly9qZmItc2hvcnRjb2RlLy4vYmxvY2tFZGl0b3Ivc2hvcnRjb2RlQnVpbGRlci9TaG9ydGNvZGVCdWlsZGVyLmpzeD83MWNjIiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvLi9ibG9ja0VkaXRvci9zaG9ydGNvZGVCdWlsZGVyL2luZGV4LmpzIiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvLi9ibG9ja0VkaXRvci9zaG9ydGNvZGVCdWlsZGVyL3VzZVNob3J0Y29kZUFyZ3VtZW50c1N0cmluZy5qcyIsIndlYnBhY2s6Ly9qZmItc2hvcnRjb2RlL2V4dGVybmFsIHdpbmRvdyBbXCJ3cFwiLFwiY29tcG9uZW50c1wiXSIsIndlYnBhY2s6Ly9qZmItc2hvcnRjb2RlL2V4dGVybmFsIHdpbmRvdyBbXCJ3cFwiLFwiY29tcG9zZVwiXSIsIndlYnBhY2s6Ly9qZmItc2hvcnRjb2RlL2V4dGVybmFsIHdpbmRvdyBbXCJ3cFwiLFwiZGF0YVwiXSIsIndlYnBhY2s6Ly9qZmItc2hvcnRjb2RlL2V4dGVybmFsIHdpbmRvdyBbXCJ3cFwiLFwiZWxlbWVudFwiXSIsIndlYnBhY2s6Ly9qZmItc2hvcnRjb2RlL2V4dGVybmFsIHdpbmRvdyBbXCJ3cFwiLFwiaTE4blwiXSIsIndlYnBhY2s6Ly9qZmItc2hvcnRjb2RlL2V4dGVybmFsIHdpbmRvdyBbXCJ3cFwiLFwicHJpbWl0aXZlc1wiXSIsIndlYnBhY2s6Ly9qZmItc2hvcnRjb2RlL2V4dGVybmFsIHdpbmRvdyBbXCJqZmJcIixcInVzZUZvcm1cIl0iLCJ3ZWJwYWNrOi8vamZiLXNob3J0Y29kZS9leHRlcm5hbCB3aW5kb3cgXCJSZWFjdFwiIiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vamZiLXNob3J0Y29kZS93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9qZmItc2hvcnRjb2RlL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9qZmItc2hvcnRjb2RlL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vamZiLXNob3J0Y29kZS93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvd2VicGFjay9ydW50aW1lL25vbmNlIiwid2VicGFjazovL2pmYi1zaG9ydGNvZGUvLi9ibG9ja0VkaXRvci9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWVtb2l6ZSBmcm9tICdAZW1vdGlvbi9tZW1vaXplJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG52YXIgcmVhY3RQcm9wc1JlZ2V4ID0gL14oKGNoaWxkcmVufGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfGtleXxyZWZ8YXV0b0ZvY3VzfGRlZmF1bHRWYWx1ZXxkZWZhdWx0Q2hlY2tlZHxpbm5lckhUTUx8c3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nfHN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x2YWx1ZUxpbmt8YWJicnxhY2NlcHR8YWNjZXB0Q2hhcnNldHxhY2Nlc3NLZXl8YWN0aW9ufGFsbG93fGFsbG93VXNlck1lZGlhfGFsbG93UGF5bWVudFJlcXVlc3R8YWxsb3dGdWxsU2NyZWVufGFsbG93VHJhbnNwYXJlbmN5fGFsdHxhc3luY3xhdXRvQ29tcGxldGV8YXV0b1BsYXl8Y2FwdHVyZXxjZWxsUGFkZGluZ3xjZWxsU3BhY2luZ3xjaGFsbGVuZ2V8Y2hhclNldHxjaGVja2VkfGNpdGV8Y2xhc3NJRHxjbGFzc05hbWV8Y29sc3xjb2xTcGFufGNvbnRlbnR8Y29udGVudEVkaXRhYmxlfGNvbnRleHRNZW51fGNvbnRyb2xzfGNvbnRyb2xzTGlzdHxjb29yZHN8Y3Jvc3NPcmlnaW58ZGF0YXxkYXRlVGltZXxkZWNvZGluZ3xkZWZhdWx0fGRlZmVyfGRpcnxkaXNhYmxlZHxkaXNhYmxlUGljdHVyZUluUGljdHVyZXxkaXNhYmxlUmVtb3RlUGxheWJhY2t8ZG93bmxvYWR8ZHJhZ2dhYmxlfGVuY1R5cGV8ZW50ZXJLZXlIaW50fGZldGNocHJpb3JpdHl8ZmV0Y2hQcmlvcml0eXxmb3JtfGZvcm1BY3Rpb258Zm9ybUVuY1R5cGV8Zm9ybU1ldGhvZHxmb3JtTm9WYWxpZGF0ZXxmb3JtVGFyZ2V0fGZyYW1lQm9yZGVyfGhlYWRlcnN8aGVpZ2h0fGhpZGRlbnxoaWdofGhyZWZ8aHJlZkxhbmd8aHRtbEZvcnxodHRwRXF1aXZ8aWR8aW5wdXRNb2RlfGludGVncml0eXxpc3xrZXlQYXJhbXN8a2V5VHlwZXxraW5kfGxhYmVsfGxhbmd8bGlzdHxsb2FkaW5nfGxvb3B8bG93fG1hcmdpbkhlaWdodHxtYXJnaW5XaWR0aHxtYXh8bWF4TGVuZ3RofG1lZGlhfG1lZGlhR3JvdXB8bWV0aG9kfG1pbnxtaW5MZW5ndGh8bXVsdGlwbGV8bXV0ZWR8bmFtZXxub25jZXxub1ZhbGlkYXRlfG9wZW58b3B0aW11bXxwYXR0ZXJufHBsYWNlaG9sZGVyfHBsYXlzSW5saW5lfHBvc3RlcnxwcmVsb2FkfHByb2ZpbGV8cmFkaW9Hcm91cHxyZWFkT25seXxyZWZlcnJlclBvbGljeXxyZWx8cmVxdWlyZWR8cmV2ZXJzZWR8cm9sZXxyb3dzfHJvd1NwYW58c2FuZGJveHxzY29wZXxzY29wZWR8c2Nyb2xsaW5nfHNlYW1sZXNzfHNlbGVjdGVkfHNoYXBlfHNpemV8c2l6ZXN8c2xvdHxzcGFufHNwZWxsQ2hlY2t8c3JjfHNyY0RvY3xzcmNMYW5nfHNyY1NldHxzdGFydHxzdGVwfHN0eWxlfHN1bW1hcnl8dGFiSW5kZXh8dGFyZ2V0fHRpdGxlfHRyYW5zbGF0ZXx0eXBlfHVzZU1hcHx2YWx1ZXx3aWR0aHx3bW9kZXx3cmFwfGFib3V0fGRhdGF0eXBlfGlubGlzdHxwcmVmaXh8cHJvcGVydHl8cmVzb3VyY2V8dHlwZW9mfHZvY2FifGF1dG9DYXBpdGFsaXplfGF1dG9Db3JyZWN0fGF1dG9TYXZlfGNvbG9yfGluY3JlbWVudGFsfGZhbGxiYWNrfGluZXJ0fGl0ZW1Qcm9wfGl0ZW1TY29wZXxpdGVtVHlwZXxpdGVtSUR8aXRlbVJlZnxvbnxvcHRpb258cmVzdWx0c3xzZWN1cml0eXx1bnNlbGVjdGFibGV8YWNjZW50SGVpZ2h0fGFjY3VtdWxhdGV8YWRkaXRpdmV8YWxpZ25tZW50QmFzZWxpbmV8YWxsb3dSZW9yZGVyfGFscGhhYmV0aWN8YW1wbGl0dWRlfGFyYWJpY0Zvcm18YXNjZW50fGF0dHJpYnV0ZU5hbWV8YXR0cmlidXRlVHlwZXxhdXRvUmV2ZXJzZXxhemltdXRofGJhc2VGcmVxdWVuY3l8YmFzZWxpbmVTaGlmdHxiYXNlUHJvZmlsZXxiYm94fGJlZ2lufGJpYXN8Ynl8Y2FsY01vZGV8Y2FwSGVpZ2h0fGNsaXB8Y2xpcFBhdGhVbml0c3xjbGlwUGF0aHxjbGlwUnVsZXxjb2xvckludGVycG9sYXRpb258Y29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyc3xjb2xvclByb2ZpbGV8Y29sb3JSZW5kZXJpbmd8Y29udGVudFNjcmlwdFR5cGV8Y29udGVudFN0eWxlVHlwZXxjdXJzb3J8Y3h8Y3l8ZHxkZWNlbGVyYXRlfGRlc2NlbnR8ZGlmZnVzZUNvbnN0YW50fGRpcmVjdGlvbnxkaXNwbGF5fGRpdmlzb3J8ZG9taW5hbnRCYXNlbGluZXxkdXJ8ZHh8ZHl8ZWRnZU1vZGV8ZWxldmF0aW9ufGVuYWJsZUJhY2tncm91bmR8ZW5kfGV4cG9uZW50fGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWR8ZmlsbHxmaWxsT3BhY2l0eXxmaWxsUnVsZXxmaWx0ZXJ8ZmlsdGVyUmVzfGZpbHRlclVuaXRzfGZsb29kQ29sb3J8Zmxvb2RPcGFjaXR5fGZvY3VzYWJsZXxmb250RmFtaWx5fGZvbnRTaXplfGZvbnRTaXplQWRqdXN0fGZvbnRTdHJldGNofGZvbnRTdHlsZXxmb250VmFyaWFudHxmb250V2VpZ2h0fGZvcm1hdHxmcm9tfGZyfGZ4fGZ5fGcxfGcyfGdseXBoTmFtZXxnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbHxnbHlwaE9yaWVudGF0aW9uVmVydGljYWx8Z2x5cGhSZWZ8Z3JhZGllbnRUcmFuc2Zvcm18Z3JhZGllbnRVbml0c3xoYW5naW5nfGhvcml6QWR2WHxob3Jpek9yaWdpblh8aWRlb2dyYXBoaWN8aW1hZ2VSZW5kZXJpbmd8aW58aW4yfGludGVyY2VwdHxrfGsxfGsyfGszfGs0fGtlcm5lbE1hdHJpeHxrZXJuZWxVbml0TGVuZ3RofGtlcm5pbmd8a2V5UG9pbnRzfGtleVNwbGluZXN8a2V5VGltZXN8bGVuZ3RoQWRqdXN0fGxldHRlclNwYWNpbmd8bGlnaHRpbmdDb2xvcnxsaW1pdGluZ0NvbmVBbmdsZXxsb2NhbHxtYXJrZXJFbmR8bWFya2VyTWlkfG1hcmtlclN0YXJ0fG1hcmtlckhlaWdodHxtYXJrZXJVbml0c3xtYXJrZXJXaWR0aHxtYXNrfG1hc2tDb250ZW50VW5pdHN8bWFza1VuaXRzfG1hdGhlbWF0aWNhbHxtb2RlfG51bU9jdGF2ZXN8b2Zmc2V0fG9wYWNpdHl8b3BlcmF0b3J8b3JkZXJ8b3JpZW50fG9yaWVudGF0aW9ufG9yaWdpbnxvdmVyZmxvd3xvdmVybGluZVBvc2l0aW9ufG92ZXJsaW5lVGhpY2tuZXNzfHBhbm9zZTF8cGFpbnRPcmRlcnxwYXRoTGVuZ3RofHBhdHRlcm5Db250ZW50VW5pdHN8cGF0dGVyblRyYW5zZm9ybXxwYXR0ZXJuVW5pdHN8cG9pbnRlckV2ZW50c3xwb2ludHN8cG9pbnRzQXRYfHBvaW50c0F0WXxwb2ludHNBdFp8cHJlc2VydmVBbHBoYXxwcmVzZXJ2ZUFzcGVjdFJhdGlvfHByaW1pdGl2ZVVuaXRzfHJ8cmFkaXVzfHJlZlh8cmVmWXxyZW5kZXJpbmdJbnRlbnR8cmVwZWF0Q291bnR8cmVwZWF0RHVyfHJlcXVpcmVkRXh0ZW5zaW9uc3xyZXF1aXJlZEZlYXR1cmVzfHJlc3RhcnR8cmVzdWx0fHJvdGF0ZXxyeHxyeXxzY2FsZXxzZWVkfHNoYXBlUmVuZGVyaW5nfHNsb3BlfHNwYWNpbmd8c3BlY3VsYXJDb25zdGFudHxzcGVjdWxhckV4cG9uZW50fHNwZWVkfHNwcmVhZE1ldGhvZHxzdGFydE9mZnNldHxzdGREZXZpYXRpb258c3RlbWh8c3RlbXZ8c3RpdGNoVGlsZXN8c3RvcENvbG9yfHN0b3BPcGFjaXR5fHN0cmlrZXRocm91Z2hQb3NpdGlvbnxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzfHN0cmluZ3xzdHJva2V8c3Ryb2tlRGFzaGFycmF5fHN0cm9rZURhc2hvZmZzZXR8c3Ryb2tlTGluZWNhcHxzdHJva2VMaW5lam9pbnxzdHJva2VNaXRlcmxpbWl0fHN0cm9rZU9wYWNpdHl8c3Ryb2tlV2lkdGh8c3VyZmFjZVNjYWxlfHN5c3RlbUxhbmd1YWdlfHRhYmxlVmFsdWVzfHRhcmdldFh8dGFyZ2V0WXx0ZXh0QW5jaG9yfHRleHREZWNvcmF0aW9ufHRleHRSZW5kZXJpbmd8dGV4dExlbmd0aHx0b3x0cmFuc2Zvcm18dTF8dTJ8dW5kZXJsaW5lUG9zaXRpb258dW5kZXJsaW5lVGhpY2tuZXNzfHVuaWNvZGV8dW5pY29kZUJpZGl8dW5pY29kZVJhbmdlfHVuaXRzUGVyRW18dkFscGhhYmV0aWN8dkhhbmdpbmd8dklkZW9ncmFwaGljfHZNYXRoZW1hdGljYWx8dmFsdWVzfHZlY3RvckVmZmVjdHx2ZXJzaW9ufHZlcnRBZHZZfHZlcnRPcmlnaW5YfHZlcnRPcmlnaW5ZfHZpZXdCb3h8dmlld1RhcmdldHx2aXNpYmlsaXR5fHdpZHRoc3x3b3JkU3BhY2luZ3x3cml0aW5nTW9kZXx4fHhIZWlnaHR8eDF8eDJ8eENoYW5uZWxTZWxlY3Rvcnx4bGlua0FjdHVhdGV8eGxpbmtBcmNyb2xlfHhsaW5rSHJlZnx4bGlua1JvbGV8eGxpbmtTaG93fHhsaW5rVGl0bGV8eGxpbmtUeXBlfHhtbEJhc2V8eG1sbnN8eG1sbnNYbGlua3x4bWxMYW5nfHhtbFNwYWNlfHl8eTF8eTJ8eUNoYW5uZWxTZWxlY3Rvcnx6fHpvb21BbmRQYW58Zm9yfGNsYXNzfGF1dG9mb2N1cyl8KChbRGRdW0FhXVtUdF1bQWFdfFtBYV1bUnJdW0lpXVtBYV18eCktLiopKSQvOyAvLyBodHRwczovL2VzYmVuY2guY29tL2JlbmNoLzViZmVlNjhhNGNkN2U2MDA5ZWY2MWQyM1xuXG52YXIgaXNQcm9wVmFsaWQgPSAvKiAjX19QVVJFX18gKi9tZW1vaXplKGZ1bmN0aW9uIChwcm9wKSB7XG4gIHJldHVybiByZWFjdFByb3BzUmVnZXgudGVzdChwcm9wKSB8fCBwcm9wLmNoYXJDb2RlQXQoMCkgPT09IDExMVxuICAvKiBvICovXG4gICYmIHByb3AuY2hhckNvZGVBdCgxKSA9PT0gMTEwXG4gIC8qIG4gKi9cbiAgJiYgcHJvcC5jaGFyQ29kZUF0KDIpIDwgOTE7XG59XG4vKiBaKzEgKi9cbik7XG5cbmV4cG9ydCB7IGlzUHJvcFZhbGlkIGFzIGRlZmF1bHQgfTtcbiIsImZ1bmN0aW9uIG1lbW9pemUoZm4pIHtcbiAgdmFyIGNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIChhcmcpIHtcbiAgICBpZiAoY2FjaGVbYXJnXSA9PT0gdW5kZWZpbmVkKSBjYWNoZVthcmddID0gZm4oYXJnKTtcbiAgICByZXR1cm4gY2FjaGVbYXJnXTtcbiAgfTtcbn1cblxuZXhwb3J0IHsgbWVtb2l6ZSBhcyBkZWZhdWx0IH07XG4iLCIvLyBzcmMvY3NzLnRzXG52YXIgaWR4ID0gMDtcbnZhciBjc3MgPSAoKSA9PiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJ0ZXN0XCIpIHtcbiAgICByZXR1cm4gYG1vY2tlZC1jc3MtJHtpZHgrK31gO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICAnVXNpbmcgdGhlIFwiY3NzXCIgdGFnIGluIHJ1bnRpbWUgaXMgbm90IHN1cHBvcnRlZC4gTWFrZSBzdXJlIHlvdSBoYXZlIHNldCB1cCB0aGUgQmFiZWwgcGx1Z2luIGNvcnJlY3RseS4nXG4gICk7XG59O1xudmFyIGNzc19kZWZhdWx0ID0gY3NzO1xuXG4vLyBzcmMvY3gudHNcbnZhciBjeCA9IGZ1bmN0aW9uIGN4MigpIHtcbiAgY29uc3QgcHJlc2VudENsYXNzTmFtZXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3QgYXRvbWljQ2xhc3NlcyA9IHt9O1xuICBjb25zdCBub25BdG9taWNDbGFzc2VzID0gW107XG4gIHByZXNlbnRDbGFzc05hbWVzLmZvckVhY2goKGFyZykgPT4ge1xuICAgIGNvbnN0IGluZGl2aWR1YWxDbGFzc05hbWVzID0gYXJnID8gYXJnLnNwbGl0KFwiIFwiKSA6IFtdO1xuICAgIGluZGl2aWR1YWxDbGFzc05hbWVzLmZvckVhY2goKGNsYXNzTmFtZSkgPT4ge1xuICAgICAgaWYgKGNsYXNzTmFtZS5zdGFydHNXaXRoKFwiYXRtX1wiKSkge1xuICAgICAgICBjb25zdCBbLCBrZXlIYXNoXSA9IGNsYXNzTmFtZS5zcGxpdChcIl9cIik7XG4gICAgICAgIGF0b21pY0NsYXNzZXNba2V5SGFzaF0gPSBjbGFzc05hbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub25BdG9taWNDbGFzc2VzLnB1c2goY2xhc3NOYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIGNvbnN0IHJlc3VsdCA9IFtdO1xuICBmb3IgKGNvbnN0IGtleUhhc2ggaW4gYXRvbWljQ2xhc3Nlcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYXRvbWljQ2xhc3Nlcywga2V5SGFzaCkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGF0b21pY0NsYXNzZXNba2V5SGFzaF0pO1xuICAgIH1cbiAgfVxuICByZXN1bHQucHVzaCguLi5ub25BdG9taWNDbGFzc2VzKTtcbiAgcmV0dXJuIHJlc3VsdC5qb2luKFwiIFwiKTtcbn07XG52YXIgY3hfZGVmYXVsdCA9IGN4O1xuZXhwb3J0IHtcbiAgY3NzX2RlZmF1bHQgYXMgY3NzLFxuICBjeF9kZWZhdWx0IGFzIGN4XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcCIsIi8vIHNyYy9zdHlsZWQudHNcbmltcG9ydCB2YWxpZEF0dHIgZnJvbSBcIkBlbW90aW9uL2lzLXByb3AtdmFsaWRcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGN4IH0gZnJvbSBcIkBsaW5hcmlhL2NvcmVcIjtcbnZhciBpc0NhcGl0YWwgPSAoY2gpID0+IGNoLnRvVXBwZXJDYXNlKCkgPT09IGNoO1xudmFyIGZpbHRlcktleSA9IChrZXlzKSA9PiAoa2V5KSA9PiBrZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTE7XG52YXIgb21pdCA9IChvYmosIGtleXMpID0+IHtcbiAgY29uc3QgcmVzID0ge307XG4gIE9iamVjdC5rZXlzKG9iaikuZmlsdGVyKGZpbHRlcktleShrZXlzKSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgcmVzW2tleV0gPSBvYmpba2V5XTtcbiAgfSk7XG4gIHJldHVybiByZXM7XG59O1xuZnVuY3Rpb24gZmlsdGVyUHJvcHMoYXNJcywgcHJvcHMsIG9taXRLZXlzKSB7XG4gIGNvbnN0IGZpbHRlcmVkUHJvcHMgPSBvbWl0KHByb3BzLCBvbWl0S2V5cyk7XG4gIGlmICghYXNJcykge1xuICAgIGNvbnN0IGludGVyb3BWYWxpZEF0dHIgPSB0eXBlb2YgdmFsaWRBdHRyID09PSBcImZ1bmN0aW9uXCIgPyB7IGRlZmF1bHQ6IHZhbGlkQXR0ciB9IDogdmFsaWRBdHRyO1xuICAgIE9iamVjdC5rZXlzKGZpbHRlcmVkUHJvcHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFpbnRlcm9wVmFsaWRBdHRyLmRlZmF1bHQoa2V5KSkge1xuICAgICAgICBkZWxldGUgZmlsdGVyZWRQcm9wc1trZXldO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJldHVybiBmaWx0ZXJlZFByb3BzO1xufVxudmFyIHdhcm5JZkludmFsaWQgPSAodmFsdWUsIGNvbXBvbmVudE5hbWUpID0+IHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSxuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgJiYgaXNGaW5pdGUodmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0cmluZ2lmaWVkID0gdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogU3RyaW5nKHZhbHVlKTtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgQW4gaW50ZXJwb2xhdGlvbiBldmFsdWF0ZWQgdG8gJyR7c3RyaW5naWZpZWR9JyBpbiB0aGUgY29tcG9uZW50ICcke2NvbXBvbmVudE5hbWV9Jywgd2hpY2ggaXMgcHJvYmFibHkgYSBtaXN0YWtlLiBZb3Ugc2hvdWxkIGV4cGxpY2l0bHkgY2FzdCBvciB0cmFuc2Zvcm0gdGhlIHZhbHVlIHRvIGEgc3RyaW5nLmBcbiAgICApO1xuICB9XG59O1xudmFyIGlkeCA9IDA7XG5mdW5jdGlvbiBzdHlsZWQodGFnKSB7XG4gIGxldCBtb2NrZWRDbGFzcyA9IFwiXCI7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJ0ZXN0XCIpIHtcbiAgICBtb2NrZWRDbGFzcyArPSBgbW9ja2VkLXN0eWxlZC0ke2lkeCsrfWA7XG4gICAgaWYgKHRhZyAmJiB0YWcuX193eXdfbWV0YSAmJiB0YWcuX193eXdfbWV0YS5jbGFzc05hbWUpIHtcbiAgICAgIG1vY2tlZENsYXNzICs9IGAgJHt0YWcuX193eXdfbWV0YS5jbGFzc05hbWV9YDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIChvcHRpb25zKSA9PiB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJ0ZXN0XCIpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnVXNpbmcgdGhlIFwic3R5bGVkXCIgdGFnIGluIHJ1bnRpbWUgaXMgbm90IHN1cHBvcnRlZC4gTWFrZSBzdXJlIHlvdSBoYXZlIHNldCB1cCB0aGUgQmFiZWwgcGx1Z2luIGNvcnJlY3RseS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jYWxsc3RhY2svbGluYXJpYSNzZXR1cCdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmVuZGVyID0gKHByb3BzLCByZWYpID0+IHtcbiAgICAgIGNvbnN0IHsgYXM6IGNvbXBvbmVudCA9IHRhZywgY2xhc3M6IGNsYXNzTmFtZSA9IG1vY2tlZENsYXNzIH0gPSBwcm9wcztcbiAgICAgIGNvbnN0IHNob3VsZEtlZXBQcm9wcyA9IG9wdGlvbnMucHJvcHNBc0lzID09PSB2b2lkIDAgPyAhKHR5cGVvZiBjb21wb25lbnQgPT09IFwic3RyaW5nXCIgJiYgY29tcG9uZW50LmluZGV4T2YoXCItXCIpID09PSAtMSAmJiAhaXNDYXBpdGFsKGNvbXBvbmVudFswXSkpIDogb3B0aW9ucy5wcm9wc0FzSXM7XG4gICAgICBjb25zdCBmaWx0ZXJlZFByb3BzID0gZmlsdGVyUHJvcHMoc2hvdWxkS2VlcFByb3BzLCBwcm9wcywgW1xuICAgICAgICBcImFzXCIsXG4gICAgICAgIFwiY2xhc3NcIlxuICAgICAgXSk7XG4gICAgICBmaWx0ZXJlZFByb3BzLnJlZiA9IHJlZjtcbiAgICAgIGZpbHRlcmVkUHJvcHMuY2xhc3NOYW1lID0gb3B0aW9ucy5hdG9taWMgPyBjeChvcHRpb25zLmNsYXNzLCBmaWx0ZXJlZFByb3BzLmNsYXNzTmFtZSB8fCBjbGFzc05hbWUpIDogY3goZmlsdGVyZWRQcm9wcy5jbGFzc05hbWUgfHwgY2xhc3NOYW1lLCBvcHRpb25zLmNsYXNzKTtcbiAgICAgIGNvbnN0IHsgdmFycyB9ID0gb3B0aW9ucztcbiAgICAgIGlmICh2YXJzKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0ge307XG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBpbiB2YXJzKSB7XG4gICAgICAgICAgY29uc3QgdmFyaWFibGUgPSB2YXJzW25hbWVdO1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHZhcmlhYmxlWzBdO1xuICAgICAgICAgIGNvbnN0IHVuaXQgPSB2YXJpYWJsZVsxXSB8fCBcIlwiO1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIHJlc3VsdCA9PT0gXCJmdW5jdGlvblwiID8gcmVzdWx0KHByb3BzKSA6IHJlc3VsdDtcbiAgICAgICAgICB3YXJuSWZJbnZhbGlkKHZhbHVlLCBvcHRpb25zLm5hbWUpO1xuICAgICAgICAgIHN0eWxlW2AtLSR7bmFtZX1gXSA9IGAke3ZhbHVlfSR7dW5pdH1gO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG93blN0eWxlID0gZmlsdGVyZWRQcm9wcy5zdHlsZSB8fCB7fTtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG93blN0eWxlKTtcbiAgICAgICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBzdHlsZVtrZXldID0gb3duU3R5bGVba2V5XTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJlZFByb3BzLnN0eWxlID0gc3R5bGU7XG4gICAgICB9XG4gICAgICBpZiAodGFnLl9fd3l3X21ldGEgJiYgdGFnICE9PSBjb21wb25lbnQpIHtcbiAgICAgICAgZmlsdGVyZWRQcm9wcy5hcyA9IGNvbXBvbmVudDtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQodGFnLCBmaWx0ZXJlZFByb3BzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgZmlsdGVyZWRQcm9wcyk7XG4gICAgfTtcbiAgICBjb25zdCBSZXN1bHQgPSBSZWFjdC5mb3J3YXJkUmVmID8gUmVhY3QuZm9yd2FyZFJlZihyZW5kZXIpIDogKFxuICAgICAgLy8gUmVhY3QuZm9yd2FyZFJlZiB3b24ndCBhdmFpbGFibGUgb24gb2xkZXIgUmVhY3QgdmVyc2lvbnMgYW5kIGluIFByZWFjdFxuICAgICAgLy8gRmFsbGJhY2sgdG8gYSBpbm5lclJlZiBwcm9wIGluIHRoYXQgY2FzZVxuICAgICAgKHByb3BzKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3QgPSBvbWl0KHByb3BzLCBbXCJpbm5lclJlZlwiXSk7XG4gICAgICAgIHJldHVybiByZW5kZXIocmVzdCwgcHJvcHMuaW5uZXJSZWYpO1xuICAgICAgfVxuICAgICk7XG4gICAgUmVzdWx0LmRpc3BsYXlOYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgIFJlc3VsdC5fX3d5d19tZXRhID0ge1xuICAgICAgY2xhc3NOYW1lOiBvcHRpb25zLmNsYXNzIHx8IG1vY2tlZENsYXNzLFxuICAgICAgZXh0ZW5kczogdGFnXG4gICAgfTtcbiAgICByZXR1cm4gUmVzdWx0O1xuICB9O1xufVxudmFyIHN0eWxlZF9kZWZhdWx0ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gbmV3IFByb3h5KHN0eWxlZCwge1xuICBnZXQobywgcHJvcCkge1xuICAgIHJldHVybiBvKHByb3ApO1xuICB9XG59KSA6IHN0eWxlZDtcbmV4cG9ydCB7XG4gIHN0eWxlZF9kZWZhdWx0IGFzIHN0eWxlZFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXAiLCJpbXBvcnQgeyBjcmVhdGVFbGVtZW50IH0gZnJvbSBcInJlYWN0XCI7XG4vKipcbiAqIFdvcmRQcmVzcyBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgU1ZHLCBQYXRoIH0gZnJvbSAnQHdvcmRwcmVzcy9wcmltaXRpdmVzJztcbmNvbnN0IGNvcHlTbWFsbCA9IGNyZWF0ZUVsZW1lbnQoU1ZHLCB7XG4gIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gIHZpZXdCb3g6IFwiMCAwIDI0IDI0XCJcbn0sIGNyZWF0ZUVsZW1lbnQoUGF0aCwge1xuICBmaWxsUnVsZTogXCJldmVub2RkXCIsXG4gIGNsaXBSdWxlOiBcImV2ZW5vZGRcIixcbiAgZDogXCJNNS42MjUgNS41aDkuNzVjLjA2OSAwIC4xMjUuMDU2LjEyNS4xMjV2OS43NWEuMTI1LjEyNSAwIDAgMS0uMTI1LjEyNWgtOS43NWEuMTI1LjEyNSAwIDAgMS0uMTI1LS4xMjV2LTkuNzVjMC0uMDY5LjA1Ni0uMTI1LjEyNS0uMTI1Wk00IDUuNjI1QzQgNC43MjggNC43MjggNCA1LjYyNSA0aDkuNzVDMTYuMjczIDQgMTcgNC43MjggMTcgNS42MjV2OS43NWMwIC44OTgtLjcyNyAxLjYyNS0xLjYyNSAxLjYyNWgtOS43NUExLjYyNSAxLjYyNSAwIDAgMSA0IDE1LjM3NXYtOS43NVptMTQuNSAxMS42NTZ2LTlIMjB2OUMyMCAxOC44IDE4Ljc3IDIwIDE3LjI1MSAyMEg2LjI1di0xLjVoMTEuMDAxYy42OSAwIDEuMjQ5LS41MjggMS4yNDktMS4yMTlaXCJcbn0pKTtcbmV4cG9ydCBkZWZhdWx0IGNvcHlTbWFsbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvcHktc21hbGwuanMubWFwIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5zMXZpbTdodntvdmVyZmxvdy14OmF1dG87dGV4dC13cmFwOm5vd3JhcDtwYWRkaW5nOjNweCA1cHggMnB4O2JhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAuMDcpO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtZmFtaWx5OkNvbnNvbGFzLE1vbmFjbyxtb25vc3BhY2U7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7fVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9ibG9ja0VkaXRvci9zaG9ydGNvZGVCdWlsZGVyL1Nob3J0Y29kZUJ1aWxkZXIuanN4XCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBLFVBQVUsZUFBZSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLDZCQUE2QixDQUFDLGNBQWMsQ0FBQyxxQ0FBcUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQ1wiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuczF2aW03aHZ7b3ZlcmZsb3cteDphdXRvO3RleHQtd3JhcDpub3dyYXA7cGFkZGluZzozcHggNXB4IDJweDtiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgLjA3KTtmb250LXNpemU6MTNweDtmb250LWZhbWlseTpDb25zb2xhcyxNb25hY28sbW9ub3NwYWNlOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO31cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKSB7XG4gIHZhciBsaXN0ID0gW107XG5cbiAgLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IFwiXCI7XG4gICAgICB2YXIgbmVlZExheWVyID0gdHlwZW9mIGl0ZW1bNV0gIT09IFwidW5kZWZpbmVkXCI7XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpO1xuICAgICAgfVxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBjb250ZW50ICs9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSk7XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW1bNF0pIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH0pLmpvaW4oXCJcIik7XG4gIH07XG5cbiAgLy8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcbiAgbGlzdC5pID0gZnVuY3Rpb24gaShtb2R1bGVzLCBtZWRpYSwgZGVkdXBlLCBzdXBwb3J0cywgbGF5ZXIpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIHVuZGVmaW5lZF1dO1xuICAgIH1cbiAgICB2YXIgYWxyZWFkeUltcG9ydGVkTW9kdWxlcyA9IHt9O1xuICAgIGlmIChkZWR1cGUpIHtcbiAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdGhpcy5sZW5ndGg7IGsrKykge1xuICAgICAgICB2YXIgaWQgPSB0aGlzW2tdWzBdO1xuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHZhciBfayA9IDA7IF9rIDwgbW9kdWxlcy5sZW5ndGg7IF9rKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2tdKTtcbiAgICAgIGlmIChkZWR1cGUgJiYgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbGF5ZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtWzVdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBsYXllclwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQoaXRlbVs1XSkgOiBcIlwiLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobWVkaWEpIHtcbiAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHN1cHBvcnRzKSB7XG4gICAgICAgIGlmICghaXRlbVs0XSkge1xuICAgICAgICAgIGl0ZW1bNF0gPSBcIlwiLmNvbmNhdChzdXBwb3J0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzRdID0gc3VwcG9ydHM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBsaXN0O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlbSkge1xuICB2YXIgY29udGVudCA9IGl0ZW1bMV07XG4gIHZhciBjc3NNYXBwaW5nID0gaXRlbVszXTtcbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3NzTWFwcGluZykpKSk7XG4gICAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICAgIHZhciBzb3VyY2VNYXBwaW5nID0gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbihcIlxcblwiKTtcbiAgfVxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXCJcXG5cIik7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgc3R5bGVzSW5ET00gPSBbXTtcbmZ1bmN0aW9uIGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpIHtcbiAgdmFyIHJlc3VsdCA9IC0xO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRE9NLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRE9NW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKSB7XG4gIHZhciBpZENvdW50TWFwID0ge307XG4gIHZhciBpZGVudGlmaWVycyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXhCeUlkZW50aWZpZXIgPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM10sXG4gICAgICBzdXBwb3J0czogaXRlbVs0XSxcbiAgICAgIGxheWVyOiBpdGVtWzVdXG4gICAgfTtcbiAgICBpZiAoaW5kZXhCeUlkZW50aWZpZXIgIT09IC0xKSB7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0ucmVmZXJlbmNlcysrO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnVwZGF0ZXIob2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHVwZGF0ZXIgPSBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMuYnlJbmRleCA9IGk7XG4gICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoaSwgMCwge1xuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICB1cGRhdGVyOiB1cGRhdGVyLFxuICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcbiAgfVxuICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5mdW5jdGlvbiBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKSB7XG4gIHZhciBhcGkgPSBvcHRpb25zLmRvbUFQSShvcHRpb25zKTtcbiAgYXBpLnVwZGF0ZShvYmopO1xuICB2YXIgdXBkYXRlciA9IGZ1bmN0aW9uIHVwZGF0ZXIobmV3T2JqKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCAmJiBuZXdPYmouc3VwcG9ydHMgPT09IG9iai5zdXBwb3J0cyAmJiBuZXdPYmoubGF5ZXIgPT09IG9iai5sYXllcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhcGkudXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB1cGRhdGVyO1xufVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobGlzdCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgbGlzdCA9IGxpc3QgfHwgW107XG4gIHZhciBsYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgIG5ld0xpc3QgPSBuZXdMaXN0IHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG4gICAgdmFyIG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9pZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW19pXTtcbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG4gICAgICBpZiAoc3R5bGVzSW5ET01bX2luZGV4XS5yZWZlcmVuY2VzID09PSAwKSB7XG4gICAgICAgIHN0eWxlc0luRE9NW19pbmRleF0udXBkYXRlcigpO1xuICAgICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoX2luZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIG1lbW8gPSB7fTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBnZXRUYXJnZXQodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xuXG4gICAgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcbiAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxuICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICB9XG4gIHJldHVybiBtZW1vW3RhcmdldF07XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0QnlTZWxlY3RvcihpbnNlcnQsIHN0eWxlKSB7XG4gIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQoaW5zZXJ0KTtcbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICB9XG4gIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydEJ5U2VsZWN0b3I7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gIG9wdGlvbnMuc2V0QXR0cmlidXRlcyhlbGVtZW50LCBvcHRpb25zLmF0dHJpYnV0ZXMpO1xuICBvcHRpb25zLmluc2VydChlbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xuICByZXR1cm4gZWxlbWVudDtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcyhzdHlsZUVsZW1lbnQpIHtcbiAgdmFyIG5vbmNlID0gdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSBcInVuZGVmaW5lZFwiID8gX193ZWJwYWNrX25vbmNlX18gOiBudWxsO1xuICBpZiAobm9uY2UpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwibm9uY2VcIiwgbm9uY2UpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlczsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaikge1xuICB2YXIgY3NzID0gXCJcIjtcbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KG9iai5zdXBwb3J0cywgXCIpIHtcIik7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIkBtZWRpYSBcIi5jb25jYXQob2JqLm1lZGlhLCBcIiB7XCIpO1xuICB9XG4gIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2Ygb2JqLmxheWVyICE9PSBcInVuZGVmaW5lZFwiO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwiQGxheWVyXCIuY29uY2F0KG9iai5sYXllci5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KG9iai5sYXllcikgOiBcIlwiLCBcIiB7XCIpO1xuICB9XG4gIGNzcyArPSBvYmouY3NzO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICB2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9XG5cbiAgLy8gRm9yIG9sZCBJRVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG4gIG9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG59XG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KSB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoc3R5bGVFbGVtZW50LnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBkb21BUEkob3B0aW9ucykge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKCkge30sXG4gICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHt9XG4gICAgfTtcbiAgfVxuICB2YXIgc3R5bGVFbGVtZW50ID0gb3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XG4gIHJldHVybiB7XG4gICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUob2JqKSB7XG4gICAgICBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaik7XG4gICAgfSxcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpO1xuICAgIH1cbiAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZG9tQVBJOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc3R5bGVUYWdUcmFuc2Zvcm07IiwiaW1wb3J0IHsgQnV0dG9uLCBGbGV4IH0gZnJvbSAnQHdvcmRwcmVzcy9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgY29weVNtYWxsIH0gZnJvbSAnQHdvcmRwcmVzcy9pY29ucyc7XHJcbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcclxuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdAd29yZHByZXNzL2RhdGEnO1xyXG5pbXBvcnQgeyB1c2VDb3B5VG9DbGlwYm9hcmQgfSBmcm9tICdAd29yZHByZXNzL2NvbXBvc2UnO1xyXG5pbXBvcnQgdXNlU2hvcnRjb2RlQXJndW1lbnRzU3RyaW5nIGZyb20gJy4vdXNlU2hvcnRjb2RlQXJndW1lbnRzU3RyaW5nJztcclxuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQGxpbmFyaWEvcmVhY3QnO1xyXG5pbXBvcnQge1xyXG5cdHVzZVBsdWdpblVzZVNldHRpbmdzLFxyXG5cdEJ1aWxkZXJIZWxwU2xvdEZpbGwsXHJcblx0RGVzY3JpcHRpb24sXHJcbn0gZnJvbSAnamV0LWZvcm0tYnVpbGRlci11c2UtZm9ybSc7XHJcblxyXG5jb25zdCBTaG9ydENvZGUgPSBzdHlsZWQuY29kZWBcclxuICAgIG92ZXJmbG93LXg6IGF1dG87XHJcbiAgICB0ZXh0LXdyYXA6IG5vd3JhcDtcclxuICAgIHBhZGRpbmc6IDNweCA1cHggMnB4O1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuMDcpO1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBNb25hY28sIG1vbm9zcGFjZTtcclxuICAgIGZsZXg6IDE7XHJcbmA7XHJcblxyXG5mdW5jdGlvbiBTaG9ydGNvZGVCdWlsZGVyKCB7IG5hbWUgfSApIHtcclxuXHRjb25zdCBbIHNldHRpbmdzLCB1cGRhdGVTZXR0aW5ncyBdID0gdXNlUGx1Z2luVXNlU2V0dGluZ3MoKTtcclxuXHJcblx0Y29uc3QgaXNBY3RpdmUgICAgICA9IG5hbWUgPT09IHNldHRpbmdzLmJ1aWxkZXI7XHJcblx0Y29uc3Qgc2hvcnRjb2RlQXJncyA9IHVzZVNob3J0Y29kZUFyZ3VtZW50c1N0cmluZygpO1xyXG5cclxuXHRjb25zdCBzaG9ydGNvZGUgPSBgW2pldF9mYl9mb3JtICR7IHNob3J0Y29kZUFyZ3MgfV1gO1xyXG5cclxuXHRjb25zdCB7IGNyZWF0ZU5vdGljZSB9ID0gdXNlRGlzcGF0Y2goICdjb3JlL25vdGljZXMnICk7XHJcblx0Y29uc3QgY29weUJ1dHRvblJlZiAgICA9IHVzZUNvcHlUb0NsaXBib2FyZChcclxuXHRcdHNob3J0Y29kZSxcclxuXHRcdCgpID0+IHtcclxuXHRcdFx0Y3JlYXRlTm90aWNlKFxyXG5cdFx0XHRcdCdpbmZvJyxcclxuXHRcdFx0XHRfXyggJ0NvcGllZCBzaG9ydGNvZGUgdG8gY2xpcGJvYXJkLicsICdqZXQtZm9ybS1idWlsZGVyJyApLFxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdGlzRGlzbWlzc2libGU6IHRydWUsXHJcblx0XHRcdFx0XHR0eXBlOiAnc25hY2tiYXInLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdCk7XHJcblx0XHR9LFxyXG5cdCk7XHJcblxyXG5cdHJldHVybiA8PlxyXG5cdFx0PEJ1dHRvblxyXG5cdFx0XHRvbkNsaWNrPXsgKCkgPT4gdXBkYXRlU2V0dGluZ3MoIHsgYnVpbGRlcjogbmFtZSB9ICkgfVxyXG5cdFx0XHRpY29uPXsgY29weVNtYWxsIH1cclxuXHRcdFx0dmFyaWFudD17IGlzQWN0aXZlID8gJ3ByaW1hcnknIDogJ3NlY29uZGFyeScgfVxyXG5cdFx0PlxyXG5cdFx0XHR7IF9fKFxyXG5cdFx0XHRcdCdTaG9ydGNvZGUgdG8gdXNlIGFueXdoZXJlJyxcclxuXHRcdFx0XHQnamV0LWZvcm0tYnVpbGRlcicsXHJcblx0XHRcdCkgfVxyXG5cdFx0PC9CdXR0b24+XHJcblx0XHR7IGlzQWN0aXZlICYmIDxCdWlsZGVySGVscFNsb3RGaWxsLkZpbGw+XHJcblx0XHRcdDxEZXNjcmlwdGlvbj5cclxuXHRcdFx0XHQ8Yj5cclxuXHRcdFx0XHRcdHsgX18oXHJcblx0XHRcdFx0XHRcdCdDb3B5IHRoZSBzaG9ydGNvZGUgYW5kIHBhc3RlIGl0IHdoZXJlIHlvdSBuZWVkIG9uIHRoZSBzZWxlY3RlZCBwYWdlOicsXHJcblx0XHRcdFx0XHRcdCdqZXQtZm9ybS1idWlsZGVyJyxcclxuXHRcdFx0XHRcdCkgfVxyXG5cdFx0XHRcdDwvYj5cclxuXHRcdFx0PC9EZXNjcmlwdGlvbj5cclxuXHRcdFx0PEZsZXgganVzdGlmeT1cImZsZXgtc3RhcnRcIj5cclxuXHRcdFx0XHQ8U2hvcnRDb2RlPnsgc2hvcnRjb2RlIH08L1Nob3J0Q29kZT5cclxuXHRcdFx0XHQ8QnV0dG9uIHJlZj17IGNvcHlCdXR0b25SZWYgfSB2YXJpYW50PVwic2Vjb25kYXJ5XCI+XHJcblx0XHRcdFx0XHR7IF9fKCAnQ29weScsICdqZXQtZm9ybS1idWlsZGVyJyApIH1cclxuXHRcdFx0XHQ8L0J1dHRvbj5cclxuXHRcdFx0PC9GbGV4PlxyXG5cdFx0PC9CdWlsZGVySGVscFNsb3RGaWxsLkZpbGw+IH1cclxuXHQ8Lz47XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFNob3J0Y29kZUJ1aWxkZXI7IiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B3eXctaW4tanMvd2VicGFjay1sb2FkZXIvbGliL291dHB1dENzc0xvYWRlci5qcz9jYWNoZVByb3ZpZGVyPSEuL1Nob3J0Y29kZUJ1aWxkZXIuanN4XCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5cbiAgICAgIG9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG4gICAgXG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9Ad3l3LWluLWpzL3dlYnBhY2stbG9hZGVyL2xpYi9vdXRwdXRDc3NMb2FkZXIuanM/Y2FjaGVQcm92aWRlcj0hLi9TaG9ydGNvZGVCdWlsZGVyLmpzeFwiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCBTaG9ydGNvZGVCdWlsZGVyIGZyb20gJy4vU2hvcnRjb2RlQnVpbGRlcic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcblx0bmFtZTogJ3Nob3J0Y29kZScsXHJcblx0dmlldzogU2hvcnRjb2RlQnVpbGRlcixcclxufTsiLCJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAnQHdvcmRwcmVzcy9lbGVtZW50JztcclxuaW1wb3J0IHsgRm9ybUF0dHJpYnV0ZXNDb250ZXh0IH0gZnJvbSAnamV0LWZvcm0tYnVpbGRlci11c2UtZm9ybSc7XHJcblxyXG5mdW5jdGlvbiB1c2VTaG9ydGNvZGVBcmd1bWVudHNTdHJpbmcoKSB7XHJcblx0Y29uc3QgeyBmb3JtSWQsIGFyZ3MgfSA9IHVzZUNvbnRleHQoIEZvcm1BdHRyaWJ1dGVzQ29udGV4dCApO1xyXG5cclxuXHRjb25zdCBwcmVwYXJlZEFyZ3MgPSBPYmplY3QuZW50cmllcygge1xyXG5cdFx0Zm9ybV9pZDogZm9ybUlkLFxyXG5cdFx0c3VibWl0X3R5cGU6IGFyZ3M/LnN1Ym1pdF90eXBlID8/ICdyZWxvYWQnLFxyXG5cdFx0cmVxdWlyZWRfbWFyazogYXJncz8ucmVxdWlyZWRfbWFyayA/PyAnKicsXHJcblx0XHRmaWVsZHNfbGF5b3V0OiBhcmdzPy5maWVsZHNfbGF5b3V0ID8/ICdjb2x1bW4nLFxyXG5cdFx0ZmllbGRzX2xhYmVsX3RhZzogYXJncz8uZmllbGRzX2xhYmVsX3RhZyA/PyAnZGl2JyxcclxuXHRcdGVuYWJsZV9wcm9ncmVzczogTnVtYmVyKCBhcmdzPy5lbmFibGVfcHJvZ3Jlc3MgPz8gJycgKSxcclxuXHRcdGNsZWFyOiBOdW1iZXIoIGFyZ3M/LmNsZWFyID8/ICcnICksXHJcblx0fSApO1xyXG5cclxuXHRyZXR1cm4gcHJlcGFyZWRBcmdzLm1hcChcclxuXHRcdCggWyBhcmdOYW1lLCBhcmdWYWx1ZSBdICkgPT4gKFxyXG5cdFx0XHRhcmdOYW1lICsgJz1cIicgKyBhcmdWYWx1ZSArICdcIidcclxuXHRcdCksXHJcblx0KS5qb2luKCAnICcgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgdXNlU2hvcnRjb2RlQXJndW1lbnRzU3RyaW5nOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93W1wid3BcIl1bXCJjb21wb25lbnRzXCJdOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93W1wid3BcIl1bXCJjb21wb3NlXCJdOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93W1wid3BcIl1bXCJkYXRhXCJdOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93W1wid3BcIl1bXCJlbGVtZW50XCJdOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93W1wid3BcIl1bXCJpMThuXCJdOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93W1wid3BcIl1bXCJwcmltaXRpdmVzXCJdOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93W1wiamZiXCJdW1widXNlRm9ybVwiXTsiLCJtb2R1bGUuZXhwb3J0cyA9IHdpbmRvd1tcIlJlYWN0XCJdOyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm5jID0gdW5kZWZpbmVkOyIsImltcG9ydCB7IGRpc3BhdGNoIH0gZnJvbSAnQHdvcmRwcmVzcy9kYXRhJztcclxuaW1wb3J0IHNob3J0Y29kZUJ1aWxkZXIgZnJvbSAnLi9zaG9ydGNvZGVCdWlsZGVyJztcclxuXHJcbmRpc3BhdGNoKCAnamV0LWZvcm1zL3VzZS1mb3JtJyApLnJlZ2lzdGVyQnVpbGRlcnMoIFtcclxuXHRzaG9ydGNvZGVCdWlsZGVyLFxyXG5dICk7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9 |