nextcloud/apps/settings/js/vue-vendors-settings-apps-3...

1 line
1.2 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack:///./node_modules/@nextcloud/vue/dist/Components/AppNavigationSpacer.js","webpack:///./node_modules/@nextcloud/vue/dist/Components/AppSidebar.js","webpack:///./node_modules/@nextcloud/vue/dist/Components/AppSidebarTab.js","webpack:///./node_modules/p-limit/index.js","webpack:///./node_modules/yocto-queue/index.js","webpack:///./node_modules/marked/lib/marked.js","webpack:///./node_modules/dompurify/dist/purify.js"],"names":["factory","window","modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__","_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","a","push","cssWithMappingToString","list","toString","this","map","item","content","concat","join","mediaQuery","dedupe","alreadyImportedModules","length","id","_i","_slicedToArray","arr","Array","isArray","_arrayWithHoles","iterator","_arr","_n","_d","_e","undefined","_s","next","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","slice","constructor","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_item","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__","_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_style_index_0_id_9c70beda_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_1__","options","locals","memo","isOldIE","Boolean","document","all","atob","getTarget","target","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","index","obj","css","media","sourceMap","references","updater","addStyle","insertStyleElement","style","createElement","attributes","nonce","nc","keys","forEach","setAttribute","insert","Error","appendChild","textStore","replaceText","replacement","filter","applyToSingletonTag","remove","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","firstChild","singleton","singletonCounter","update","styleIndex","parentNode","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","splice","render","staticRenderFns","_h","$createElement","_self","_c","staticClass","_withStripped","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","_AppNavigationSpacer_vue_vue_type_template_id_9c70beda_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_AppNavigationSpacer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__","_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__","component","__file","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_template_id_9c70beda_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_AppNavigationSpacer__WEBPACK_IMPORTED_MODULE_0__","_directives_Tooltip__WEBPACK_IMPORTED_MODULE_16__","_utils_GenRandomId__WEBPACK_IMPORTED_MODULE_17__","_utils_ValidateSlot__WEBPACK_IMPORTED_MODULE_18__","_l10n__WEBPACK_IMPORTED_MODULE_19__","_Popover__WEBPACK_IMPORTED_MODULE_20__","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","configurable","writable","allowedChildren","directives","tooltip","components","Popover","VNodes","props","vnodes","open","type","default","forceMenu","menuTitle","String","primary","defaultIcon","ariaLabel","placement","boundariesElement","Element","container","disabled","actions","opened","focusIndex","randomId","children","$children","computed","hasMultipleActions","isValidSingleAction","firstActionElement","firstActionVNode","firstAction","firstActionBinding","componentOptions","tag","is","href","$attrs","$props","to","exact","firstActionEvent","_this$firstActionVNod","_this$firstActionVNod2","_this$firstActionVNod3","listeners","click","firstActionEventBinding","firstActionIconSlot","_this$firstAction","_this$firstAction$$sl","$slots","icon","firstActionClass","class","trim","iconSlotIsPopulated","watch","state","beforeMount","initActions","beforeUpdate","methods","openMenu","$emit","closeMenu","$refs","menuButton","focus","onOpen","event","_this","$nextTick","focusFirstAction","onMouseFocusAction","activeElement","menuItem","closest","focusableItem","menu","querySelectorAll","indexOf","focusAction","removeCurrentActive","currentActiveElement","classList","focusElement","liMenuParent","focusPreviousAction","preventIfEvent","focusNextAction","indexLength","focusLastAction","$el","preventDefault","stopPropagation","execFirstAction","node","onFocus","onBlur","_Actions__WEBPACK_IMPORTED_MODULE_0__","_directives_Focus__WEBPACK_IMPORTED_MODULE_1__","_directives_Linkify__WEBPACK_IMPORTED_MODULE_2__","_directives_Tooltip__WEBPACK_IMPORTED_MODULE_3__","_AppSidebarTabs__WEBPACK_IMPORTED_MODULE_4__","_EmptyContent_EmptyContent__WEBPACK_IMPORTED_MODULE_5__","_l10n__WEBPACK_IMPORTED_MODULE_6__","v_click_outside__WEBPACK_IMPORTED_MODULE_7__","Actions","AppSidebarTabs","EmptyContent","linkify","ClickOutside","Tooltip","active","title","required","titleEditable","titlePlaceholder","subtitle","subtitleTooltip","background","starred","starLoading","loading","compact","empty","linkifyTitle","titleTooltip","closeTranslated","isStarred","canStar","hasFigure","header","hasFigureClickListener","$listeners","onBeforeEnter","element","onAfterEnter","onBeforeLeave","onAfterLeave","closeSidebar","onFigureClick","toggleStarred","editTitle","titleInput","onTitleInput","onSubmitTitle","onDismissEditing","onUpdateActive","activeTab","vue__WEBPACK_IMPORTED_MODULE_6__","vue__WEBPACK_IMPORTED_MODULE_6___default","IsValidString","IsValidStringWithoutSpaces","tabs","hasMultipleTabs","currentTabIndex","findIndex","tab","_active","updateActive","updateTabs","mounted","setActive","focusPreviousTab","focusActiveTab","focusNextTab","focusFirstTab","focusLastTab","focusActiveTabContent","_this2","elem","text","invalidTabs","reduce","tabNode","componentInstance","util","warn","invalid","console","debug","sort","b","orderA","order","orderB","OC","Util","naturalSortCompare","v_tooltip__WEBPACK_IMPORTED_MODULE_0__","VPopover","$watch","popover","isOpen","val","_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__","_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default","_fonts_iconfont_vue_84c461f_eot__WEBPACK_IMPORTED_MODULE_3__","_fonts_iconfont_vue_84c461f_woff__WEBPACK_IMPORTED_MODULE_4__","_fonts_iconfont_vue_84c461f_ttf__WEBPACK_IMPORTED_MODULE_5__","_fonts_iconfont_vue_84c461f_svg__WEBPACK_IMPORTED_MODULE_6__","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","url","hash","needQuotes","replace","_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_style_index_0_id_4f45864b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__","_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_style_index_0_id_4a2a5f2f_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__","_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_1__","_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_style_index_0_id_5772e44d_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__","_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_style_index_0_id_a68b8462_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__","_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_1__","_obj","_obj$1","_vm","_b","rawName","expression","modifiers","auto","attrs","rel","on","blur","_v","hidden","_t","delay","$event","show","hide","ref","slot","tabindex","keydown","_k","keyCode","ctrlKey","shiftKey","altKey","metaKey","mousemove","appear","backgroundImage","currentTarget","submit","placeholder","domProps","input","button","_l","role","desc","_g","_Actions_vue_vue_type_template_id_4f45864b_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_Actions_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__","_Actions_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__","_Actions_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_template_id_4f45864b_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_AppSidebar_vue_vue_type_template_id_4a2a5f2f_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_AppSidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__","_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__","_AppSidebar_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_5__","_AppSidebar_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_5___default","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_template_id_4a2a5f2f_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_AppSidebarTabs_vue_vue_type_template_id_5772e44d_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_AppSidebarTabs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_template_id_5772e44d_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_AppSidebar__WEBPACK_IMPORTED_MODULE_0__","_EmptyContent_vue_vue_type_template_id_a68b8462_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_EmptyContent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__","_EmptyContent_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__","_EmptyContent_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_template_id_a68b8462_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_Popover_vue_vue_type_template_id_45093cca___WEBPACK_IMPORTED_MODULE_0__","_Popover_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__","_Popover_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__","_Popover_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_template_id_45093cca___WEBPACK_IMPORTED_MODULE_0__","_Popover__WEBPACK_IMPORTED_MODULE_0__","directive","inserted","el","linkifyjs_string__WEBPACK_IMPORTED_MODULE_0__","linkifyjs_string__WEBPACK_IMPORTED_MODULE_0___default","binding","_binding$value","innerHTML","defaultProtocol","defaultTemplate","defaultHtml","_node_modules_css_loader_dist_cjs_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_index_scss__WEBPACK_IMPORTED_MODULE_1__","_nextcloud_l10n_dist_gettext__WEBPACK_IMPORTED_MODULE_1__","gtBuilder","detectLocale","lang","translations","pluralId","msgid","msgid_plural","msgstr","addTranslation","locale","gt","build","ngettext","gettext","Math","random","substr","vue__WEBPACK_IMPORTED_MODULE_3__","vue__WEBPACK_IMPORTED_MODULE_3___default","slots","allowed","vm","isHtmlElement","isVueComponent","isForbiddenComponent","Number","isActive","$parent","onScroll","scrollHeight","scrollTop","clientHeight","_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_style_index_0_id_e5dbfd76_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__","scroll","_AppSidebarTab_vue_vue_type_template_id_e5dbfd76_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_AppSidebarTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_template_id_e5dbfd76_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_AppSidebarTab__WEBPACK_IMPORTED_MODULE_0__","Queue","require","concurrency","isInteger","Infinity","queue","activeCount","run","async","fn","resolve","args","size","dequeue","generator","Promise","enqueue","pendingCount","clearQueue","clear","Node","_head","_tail","_size","current","_defineProperties","descriptor","_createForOfIteratorHelperLoose","allowArrayLike","it","defaults","createCommonjsModule","getDefaults","baseUrl","breaks","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitize","sanitizer","silent","smartLists","smartypants","tokenizer","walkTokens","xhtml","changeDefaults","newDefaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","unescapeTest","html","_","toLowerCase","charAt","fromCharCode","parseInt","substring","caret","nonWordAndColonTest","originIndependentUrl","baseUrls","justDomain","protocol","domain","resolveUrl","rtrim","relativeBase","str","invert","suffLen","currChar","helpers","encode","regex","opt","getRegex","RegExp","prot","decodeURIComponent","encodeURI","exec","tableRow","cells","match","offset","escaped","curr","split","level","pattern","defaults$1","rtrim$1","splitCells$1","_escape","findClosingBracket$1","outputLink","cap","link","raw","Tokenizer_1","Tokenizer","_proto","space","src","rules","block","newline","code","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentCodeCompensation","heading","trimmed","depth","nptable","align","hr","blockquote","bcurr","bnext","addBack","loose","istask","ischecked","endMatch","bull","isordered","ordered","start","items","itemMatch","listItemStart","task","checked","pre","def","table","lheading","paragraph","escape","inline","inLink","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","linkLen","_escapes","reflink","links","nolink","emStrong","maskedSrc","prevChar","lDelim","nextChar","punctuation","rDelim","rLength","lLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","lastIndex","min","codespan","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","del","autolink","tokens","prevCapZero","_backpedal","inlineText","noopTest$1","edit$1","merge$1","_paragraph","_label","_title","bullet","_tag","_comment","normal","reflinkSearch","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","defaults$2","block$1","inline$1","repeatString$1","out","charCodeAt","Lexer_1","Lexer","lex","lexInline","inlineTokens","Constructor","protoProps","staticProps","blockTokens","top","token","lastToken","errMsg","error","j","k","l2","row","keepPrevChar","includes","lastIndexOf","_lastToken","_lastToken2","defaults$3","cleanUrl$1","escape$1","Renderer_1","Renderer","_code","infostring","quote","_html","slugger","slug","body","listitem","checkbox","tablerow","tablecell","flags","image","_text","TextRenderer_1","TextRenderer","Slugger_1","Slugger","seen","serialize","getNextSafeSlug","originalSlug","isDryRun","occurenceAccumulator","dryrun","defaults$4","unescape$1","Parser_1","Parser","textRenderer","parse","parseInline","l3","cell","itemBody","unshift","merge$2","checkSanitizeDeprecation$1","escape$2","defaults$5","marked","callback","pending","setTimeout","_tokens","message","setOptions","use","extension","opts","_loop","prop","prevRenderer","_len","_key","ret","_loop2","prevTokenizer","_len2","_key2","_step","_iterator","_step2","_iterator2","_step3","_iterator3","_step4","_iterator4","_cell","parser","lexer","setPrototypeOf","isFrozen","getPrototypeOf","freeze","seal","_ref","Reflect","construct","fun","thisValue","x","Func","Function","func","arrayForEach","unapply","arrayPop","pop","arrayPush","stringToLowerCase","stringMatch","stringReplace","stringIndexOf","stringTrim","regExpTest","typeErrorCreate","thisArg","addToSet","set","array","lcElement","clone","newObject","lookupGetter","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","html$1","svg$1","mathMl$1","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_typeof","_toConsumableArray$1","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","suffix","currentScript","hasAttribute","getAttribute","policyName","createHTML","html$$1","createDOMPurify","DOMPurify","root","version","removed","nodeType","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","ownerDocument","trustedTypesPolicy","emptyHTML","RETURN_TRUSTED_TYPE","_document","implementation","createNodeIterator","getElementsByTagName","createDocumentFragment","importNode","documentMode","hooks","createHTMLDocument","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","CONFIG","formElement","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","_checkValidNamespace","tagName","namespaceURI","parentTagName","commonSvgAndHTMLElements","_forceRemove","outerHTML","_removeAttribute","attribute","getAttributeNode","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","firstElementChild","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","FILTER_ACCEPT","_isClobbered","elm","nodeName","textContent","_isNode","_executeHook","entryPoint","currentNode","_sanitizeElements","allowedTags","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","importedNode","oldNode","returnNode","toStaticHTML","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks"],"mappings":"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","file":"vue-vendors-settings-apps-37ab595ad4175d1a7f93.js?v=7d821c5d48c23f280943","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Components/AppNavigationSpacer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Components/AppNavigationSpacer\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Components/AppNavigationSpacer\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./src/components/AppNavigationSpacer/index.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=script&lang=js&\":\n/*!*******************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=script&lang=js& ***!\n \\*******************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'AppNavigationSpacer'\n});\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css&\":\n/*!****************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css& ***!\n \\****************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__);\n/* 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\");\n/* 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__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \"\\n.app-navigation-spacer[data-v-9c70beda] {\\n\\tflex-shrink: 0;\\n\\torder: 1;\\n\\theight: 22px;\\n}\\n\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./AppNavigationSpacer.vue\"],\"names\":[],\"mappings\":\";AAgCA;CACA,cAAA;CACA,QAAA;CACA,YAAA;AACA\",\"sourcesContent\":[\"<!--\\n - @copyright Copyright (c) 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\\n -\\n - @author Christoph Wurst <christoph@winzerhof-wurst.at>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n -->\\n<template>\\n\\t<li class=\\\"app-navigation-spacer\\\" />\\n</template>\\n\\n<script>\\nexport default {\\n\\tname: 'AppNavigationSpacer',\\n}\\n</script>\\n\\n<style scoped>\\n\\t.app-navigation-spacer {\\n\\t\\tflex-shrink: 0;\\n\\t\\torder: 1;\\n\\t\\theight: 22px;\\n\\t}\\n\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/runtime/api.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/css-loader/dist/runtime/api.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\":\n/*!************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/runtime/cssWithMappingToString.js ***!\n \\************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css&\":\n/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css& ***!\n \\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* 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\");\n/* 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__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_style_index_0_id_9c70beda_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/vue-loader/lib??vue-loader-options!./AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css& */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css&\");\n\n \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_style_index_0_id_9c70beda_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_style_index_0_id_9c70beda_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\":\n/*!****************************************************************************!*\\\n !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!\n \\****************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = true ? __webpack_require__.nc : undefined;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n/***/ }),\n\n/***/ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=template&id=9c70beda&scoped=true&\":\n/*!*********************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=template&id=9c70beda&scoped=true& ***!\n \\*********************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"li\", { staticClass: \"app-navigation-spacer\" })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n/***/ }),\n\n/***/ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***!\n \\********************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ \"./src/components/AppNavigationSpacer/AppNavigationSpacer.vue\":\n/*!********************************************************************!*\\\n !*** ./src/components/AppNavigationSpacer/AppNavigationSpacer.vue ***!\n \\********************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AppNavigationSpacer_vue_vue_type_template_id_9c70beda_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppNavigationSpacer.vue?vue&type=template&id=9c70beda&scoped=true& */ \"./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=template&id=9c70beda&scoped=true&\");\n/* harmony import */ var _AppNavigationSpacer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppNavigationSpacer.vue?vue&type=script&lang=js& */ \"./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport *//* harmony import */ var _AppNavigationSpacer_vue_vue_type_style_index_0_id_9c70beda_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css& */ \"./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _AppNavigationSpacer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _AppNavigationSpacer_vue_vue_type_template_id_9c70beda_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _AppNavigationSpacer_vue_vue_type_template_id_9c70beda_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"9c70beda\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/AppNavigationSpacer/AppNavigationSpacer.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n/***/ }),\n\n/***/ \"./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=script&lang=js&\":\n/*!*********************************************************************************************!*\\\n !*** ./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=script&lang=js& ***!\n \\*********************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/lib??vue-loader-options!./AppNavigationSpacer.vue?vue&type=script&lang=js& */ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n/***/ }),\n\n/***/ \"./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css&\":\n/*!*****************************************************************************************************************************!*\\\n !*** ./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css& ***!\n \\*****************************************************************************************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_style_index_0_id_9c70beda_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/vue-loader/lib??vue-loader-options!./AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css& */ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=style&index=0&id=9c70beda&scoped=true&lang=css&\");\n/* empty/unused harmony star reexport */\n\n/***/ }),\n\n/***/ \"./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=template&id=9c70beda&scoped=true&\":\n/*!***************************************************************************************************************!*\\\n !*** ./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=template&id=9c70beda&scoped=true& ***!\n \\***************************************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_template_id_9c70beda_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./AppNavigationSpacer.vue?vue&type=template&id=9c70beda&scoped=true& */ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppNavigationSpacer/AppNavigationSpacer.vue?vue&type=template&id=9c70beda&scoped=true&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_template_id_9c70beda_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppNavigationSpacer_vue_vue_type_template_id_9c70beda_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n/***/ }),\n\n/***/ \"./src/components/AppNavigationSpacer/index.js\":\n/*!*****************************************************!*\\\n !*** ./src/components/AppNavigationSpacer/index.js ***!\n \\*****************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AppNavigationSpacer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppNavigationSpacer */ \"./src/components/AppNavigationSpacer/AppNavigationSpacer.vue\");\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_AppNavigationSpacer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vc3JjL2NvbXBvbmVudHMvQXBwTmF2aWdhdGlvblNwYWNlci9BcHBOYXZpZ2F0aW9uU3BhY2VyLnZ1ZSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwTmF2aWdhdGlvblNwYWNlci9BcHBOYXZpZ2F0aW9uU3BhY2VyLnZ1ZT83NWI4Iiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwTmF2aWdhdGlvblNwYWNlci9BcHBOYXZpZ2F0aW9uU3BhY2VyLnZ1ZT9hZWIyIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0FwcE5hdmlnYXRpb25TcGFjZXIvQXBwTmF2aWdhdGlvblNwYWNlci52dWU/ZDA2MSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qcyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwTmF2aWdhdGlvblNwYWNlci9BcHBOYXZpZ2F0aW9uU3BhY2VyLnZ1ZSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwTmF2aWdhdGlvblNwYWNlci9BcHBOYXZpZ2F0aW9uU3BhY2VyLnZ1ZT9hY2ZlIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9BcHBOYXZpZ2F0aW9uU3BhY2VyL0FwcE5hdmlnYXRpb25TcGFjZXIudnVlP2Y5ZTAiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0FwcE5hdmlnYXRpb25TcGFjZXIvQXBwTmF2aWdhdGlvblNwYWNlci52dWU/OTAwNyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwTmF2aWdhdGlvblNwYWNlci9pbmRleC5qcyJdLCJuYW1lcyI6WyJBcHBOYXZpZ2F0aW9uU3BhY2VyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1EO0FBQ25ELENBQUM7QUFDRCxPO1FDVkE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7OztRQUdBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSwwQ0FBMEMsZ0NBQWdDO1FBQzFFO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0Esd0RBQXdELGtCQUFrQjtRQUMxRTtRQUNBLGlEQUFpRCxjQUFjO1FBQy9EOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSx5Q0FBeUMsaUNBQWlDO1FBQzFFLGdI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Ozs7O0FDQTdNO0FBQUE7QUFBQSx3Qzs7Ozs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVlQSwySEFBZixFIiwiZmlsZSI6IkNvbXBvbmVudHMvQXBwTmF2aWdhdGlvblNwYWNlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFwiQ29tcG9uZW50cy9BcHBOYXZpZ2F0aW9uU3BhY2VyXCIsIFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkNvbXBvbmVudHMvQXBwTmF2aWdhdGlvblNwYWNlclwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJOZXh0Y2xvdWRWdWVcIl0gPSByb290W1wiTmV4dGNsb3VkVnVlXCJdIHx8IHt9LCByb290W1wiTmV4dGNsb3VkVnVlXCJdW1wiQ29tcG9uZW50cy9BcHBOYXZpZ2F0aW9uU3BhY2VyXCJdID0gZmFjdG9yeSgpO1xufSkod2luZG93LCBmdW5jdGlvbigpIHtcbnJldHVybiAiLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9kaXN0L1wiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gXCIuL3NyYy9jb21wb25lbnRzL0FwcE5hdmlnYXRpb25TcGFjZXIvaW5kZXguanNcIik7XG4iLCI8IS0tXG4gLSBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOSBDaHJpc3RvcGggV3Vyc3QgPGNocmlzdG9waEB3aW56ZXJob2Ytd3Vyc3QuYXQ+XG4gLVxuIC0gQGF1dGhvciBDaHJpc3RvcGggV3Vyc3QgPGNocmlzdG9waEB3aW56ZXJob2Ytd3Vyc3QuYXQ+XG4gLVxuIC0gQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXG4gLVxuIC0gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAtIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gLSBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAtIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gLVxuIC0gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuIC0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuIC0gR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gLVxuIC0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gLSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuIC1cbiAtLT5cbjx0ZW1wbGF0ZT5cblx0PGxpIGNsYXNzPVwiYXBwLW5hdmlnYXRpb24tc3BhY2VyXCIgLz5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG5cdG5hbWU6ICdBcHBOYXZpZ2F0aW9uU3BhY2VyJyxcbn1cbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuXHQuYXBwLW5hdmlnYXRpb24tc3BhY2VyIHtcblx0XHRmbGV4LXNocmluazogMDtcblx0XHRvcmRlcjogMTtcblx0XHRoZWlnaHQ6IDIycHg7XG5cdH1cblxuPC9zdHlsZT5cbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiXFxuLmFwcC1uYXZpZ2F0aW9uLXNwYWNlcltkYXRhLXYtOWM3MGJlZGFdIHtcXG5cXHRmbGV4LXNocmluazogMDtcXG5cXHRvcmRlcjogMTtcXG5cXHRoZWlnaHQ6IDIycHg7XFxufVxcblxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL0FwcE5hdmlnYXRpb25TcGFjZXIudnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCI7QUFnQ0E7Q0FDQSxjQUFBO0NBQ0EsUUFBQTtDQUNBLFlBQUE7QUFDQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCI8IS0tXFxuIC0gQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTkgQ2hyaXN0b3BoIFd1cnN0IDxjaHJpc3RvcGhAd2luemVyaG9mLXd1cnN0LmF0PlxcbiAtXFxuIC0gQGF1dGhvciBDaHJpc3RvcGggV3Vyc3QgPGNocmlzdG9waEB3aW56ZXJob2Ytd3Vyc3QuYXQ+XFxuIC1cXG4gLSBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cXG4gLVxcbiAtIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XFxuIC0gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcXG4gLSBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcXG4gLSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxcbiAtXFxuIC0gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXFxuIC0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcXG4gLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXFxuIC0gR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXFxuIC1cXG4gLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcXG4gLSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxcbiAtXFxuIC0tPlxcbjx0ZW1wbGF0ZT5cXG5cXHQ8bGkgY2xhc3M9XFxcImFwcC1uYXZpZ2F0aW9uLXNwYWNlclxcXCIgLz5cXG48L3RlbXBsYXRlPlxcblxcbjxzY3JpcHQ+XFxuZXhwb3J0IGRlZmF1bHQge1xcblxcdG5hbWU6ICdBcHBOYXZpZ2F0aW9uU3BhY2VyJyxcXG59XFxuPC9zY3JpcHQ+XFxuXFxuPHN0eWxlIHNjb3BlZD5cXG5cXHQuYXBwLW5hdmlnYXRpb24tc3BhY2VyIHtcXG5cXHRcXHRmbGV4LXNocmluazogMDtcXG5cXHRcXHRvcmRlcjogMTtcXG5cXHRcXHRoZWlnaHQ6IDIycHg7XFxuXFx0fVxcblxcbjwvc3R5bGU+XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIlwidXNlIHN0cmljdFwiO1xuXG4vKlxuICBNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxuICBBdXRob3IgVG9iaWFzIEtvcHBlcnMgQHNva3JhXG4qL1xuLy8gY3NzIGJhc2UgY29kZSwgaW5qZWN0ZWQgYnkgdGhlIGNzcy1sb2FkZXJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKSB7XG4gIHZhciBsaXN0ID0gW107IC8vIHJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGVzIGFzIGNzcyBzdHJpbmdcblxuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSk7XG5cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIHJldHVybiBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKS5jb25jYXQoY29udGVudCwgXCJ9XCIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9KS5qb2luKFwiXCIpO1xuICB9OyAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuXG5cbiAgbGlzdC5pID0gZnVuY3Rpb24gKG1vZHVsZXMsIG1lZGlhUXVlcnksIGRlZHVwZSkge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBtb2R1bGVzID0gW1tudWxsLCBtb2R1bGVzLCBcIlwiXV07XG4gICAgfVxuXG4gICAgdmFyIGFscmVhZHlJbXBvcnRlZE1vZHVsZXMgPSB7fTtcblxuICAgIGlmIChkZWR1cGUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWRlc3RydWN0dXJpbmdcbiAgICAgICAgdmFyIGlkID0gdGhpc1tpXVswXTtcblxuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBtb2R1bGVzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfaV0pO1xuXG4gICAgICBpZiAoZGVkdXBlICYmIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnRpbnVlXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAobWVkaWFRdWVyeSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWFRdWVyeTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzJdID0gXCJcIi5jb25jYXQobWVkaWFRdWVyeSwgXCIgYW5kIFwiKS5jb25jYXQoaXRlbVsyXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gbGlzdDtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KGFyciwgaSkgeyByZXR1cm4gX2FycmF5V2l0aEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFyciwgaSkgfHwgX25vbkl0ZXJhYmxlUmVzdCgpOyB9XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVJlc3QoKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7IH1cblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikgeyBpZiAoIW8pIHJldHVybjsgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpOyBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lOyBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTsgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pOyB9XG5cbmZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7IGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoOyBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHsgYXJyMltpXSA9IGFycltpXTsgfSByZXR1cm4gYXJyMjsgfVxuXG5mdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5TGltaXQoYXJyLCBpKSB7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcInVuZGVmaW5lZFwiIHx8ICEoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChhcnIpKSkgcmV0dXJuOyB2YXIgX2FyciA9IFtdOyB2YXIgX24gPSB0cnVlOyB2YXIgX2QgPSBmYWxzZTsgdmFyIF9lID0gdW5kZWZpbmVkOyB0cnkgeyBmb3IgKHZhciBfaSA9IGFycltTeW1ib2wuaXRlcmF0b3JdKCksIF9zOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7IF9hcnIucHVzaChfcy52YWx1ZSk7IGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhazsgfSB9IGNhdGNoIChlcnIpIHsgX2QgPSB0cnVlOyBfZSA9IGVycjsgfSBmaW5hbGx5IHsgdHJ5IHsgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSAhPSBudWxsKSBfaVtcInJldHVyblwiXSgpOyB9IGZpbmFsbHkgeyBpZiAoX2QpIHRocm93IF9lOyB9IH0gcmV0dXJuIF9hcnI7IH1cblxuZnVuY3Rpb24gX2FycmF5V2l0aEhvbGVzKGFycikgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gYXJyOyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKSB7XG4gIHZhciBfaXRlbSA9IF9zbGljZWRUb0FycmF5KGl0ZW0sIDQpLFxuICAgICAgY29udGVudCA9IF9pdGVtWzFdLFxuICAgICAgY3NzTWFwcGluZyA9IF9pdGVtWzNdO1xuXG4gIGlmICh0eXBlb2YgYnRvYSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gICAgdmFyIGJhc2U2NCA9IGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGNzc01hcHBpbmcpKSkpO1xuICAgIHZhciBkYXRhID0gXCJzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcIi5jb25jYXQoYmFzZTY0KTtcbiAgICB2YXIgc291cmNlTWFwcGluZyA9IFwiLyojIFwiLmNvbmNhdChkYXRhLCBcIiAqL1wiKTtcbiAgICB2YXIgc291cmNlVVJMcyA9IGNzc01hcHBpbmcuc291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuICAgICAgcmV0dXJuIFwiLyojIHNvdXJjZVVSTD1cIi5jb25jYXQoY3NzTWFwcGluZy5zb3VyY2VSb290IHx8IFwiXCIpLmNvbmNhdChzb3VyY2UsIFwiICovXCIpO1xuICAgIH0pO1xuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KHNvdXJjZVVSTHMpLmNvbmNhdChbc291cmNlTWFwcGluZ10pLmpvaW4oXCJcXG5cIik7XG4gIH1cblxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXCJcXG5cIik7XG59OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVzb2x2ZS11cmwtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwTmF2aWdhdGlvblNwYWNlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD05YzcwYmVkYSZzY29wZWQ9dHJ1ZSZsYW5nPWNzcyZcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIGlzT2xkSUUgPSBmdW5jdGlvbiBpc09sZElFKCkge1xuICB2YXIgbWVtbztcbiAgcmV0dXJuIGZ1bmN0aW9uIG1lbW9yaXplKCkge1xuICAgIGlmICh0eXBlb2YgbWVtbyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIFRlc3QgZm9yIElFIDw9IDkgYXMgcHJvcG9zZWQgYnkgQnJvd3NlcmhhY2tzXG4gICAgICAvLyBAc2VlIGh0dHA6Ly9icm93c2VyaGFja3MuY29tLyNoYWNrLWU3MWQ4NjkyZjY1MzM0MTczZmVlNzE1YzIyMmNiODA1XG4gICAgICAvLyBUZXN0cyBmb3IgZXhpc3RlbmNlIG9mIHN0YW5kYXJkIGdsb2JhbHMgaXMgdG8gYWxsb3cgc3R5bGUtbG9hZGVyXG4gICAgICAvLyB0byBvcGVyYXRlIGNvcnJlY3RseSBpbnRvIG5vbi1zdGFuZGFyZCBlbnZpcm9ubWVudHNcbiAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJpYi9zdHlsZS1sb2FkZXIvaXNzdWVzLzE3N1xuICAgICAgbWVtbyA9IEJvb2xlYW4od2luZG93ICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFsbCAmJiAhd2luZG93LmF0b2IpO1xuICAgIH1cblxuICAgIHJldHVybiBtZW1vO1xuICB9O1xufSgpO1xuXG52YXIgZ2V0VGFyZ2V0ID0gZnVuY3Rpb24gZ2V0VGFyZ2V0KCkge1xuICB2YXIgbWVtbyA9IHt9O1xuICByZXR1cm4gZnVuY3Rpb24gbWVtb3JpemUodGFyZ2V0KSB7XG4gICAgaWYgKHR5cGVvZiBtZW1vW3RhcmdldF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB2YXIgc3R5bGVUYXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRhcmdldCk7IC8vIFNwZWNpYWwgY2FzZSB0byByZXR1cm4gaGVhZCBvZiBpZnJhbWUgaW5zdGVhZCBvZiBpZnJhbWUgaXRzZWxmXG5cbiAgICAgIGlmICh3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQgJiYgc3R5bGVUYXJnZXQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxuICAgICAgICAgIC8vIGR1ZSB0byBjcm9zcy1vcmlnaW4gcmVzdHJpY3Rpb25zXG4gICAgICAgICAgc3R5bGVUYXJnZXQgPSBzdHlsZVRhcmdldC5jb250ZW50RG9jdW1lbnQuaGVhZDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgICAgc3R5bGVUYXJnZXQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICAgIH1cblxuICAgIHJldHVybiBtZW1vW3RhcmdldF07XG4gIH07XG59KCk7XG5cbnZhciBzdHlsZXNJbkRvbSA9IFtdO1xuXG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XG4gIHZhciByZXN1bHQgPSAtMTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRG9tLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRG9tW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucykge1xuICB2YXIgaWRDb3VudE1hcCA9IHt9O1xuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM11cbiAgICB9O1xuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgc3R5bGVzSW5Eb21baW5kZXhdLnJlZmVyZW5jZXMrKztcbiAgICAgIHN0eWxlc0luRG9tW2luZGV4XS51cGRhdGVyKG9iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlc0luRG9tLnB1c2goe1xuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICB1cGRhdGVyOiBhZGRTdHlsZShvYmosIG9wdGlvbnMpLFxuICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZGVudGlmaWVycy5wdXNoKGlkZW50aWZpZXIpO1xuICB9XG5cbiAgcmV0dXJuIGlkZW50aWZpZXJzO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykge1xuICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICB2YXIgYXR0cmlidXRlcyA9IG9wdGlvbnMuYXR0cmlidXRlcyB8fCB7fTtcblxuICBpZiAodHlwZW9mIGF0dHJpYnV0ZXMubm9uY2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgdmFyIG5vbmNlID0gdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSAndW5kZWZpbmVkJyA/IF9fd2VicGFja19ub25jZV9fIDogbnVsbDtcblxuICAgIGlmIChub25jZSkge1xuICAgICAgYXR0cmlidXRlcy5ub25jZSA9IG5vbmNlO1xuICAgIH1cbiAgfVxuXG4gIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIHN0eWxlLnNldEF0dHJpYnV0ZShrZXksIGF0dHJpYnV0ZXNba2V5XSk7XG4gIH0pO1xuXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5pbnNlcnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBvcHRpb25zLmluc2VydChzdHlsZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHRhcmdldCA9IGdldFRhcmdldChvcHRpb25zLmluc2VydCB8fCAnaGVhZCcpO1xuXG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYSBzdHlsZSB0YXJnZXQuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgdmFsdWUgZm9yIHRoZSAnaW5zZXJ0JyBwYXJhbWV0ZXIgaXMgaW52YWxpZC5cIik7XG4gICAgfVxuXG4gICAgdGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgfVxuXG4gIHJldHVybiBzdHlsZTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlKSB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoc3R5bGUucGFyZW50Tm9kZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN0eWxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGUpO1xufVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5cblxudmFyIHJlcGxhY2VUZXh0ID0gZnVuY3Rpb24gcmVwbGFjZVRleHQoKSB7XG4gIHZhciB0ZXh0U3RvcmUgPSBbXTtcbiAgcmV0dXJuIGZ1bmN0aW9uIHJlcGxhY2UoaW5kZXgsIHJlcGxhY2VtZW50KSB7XG4gICAgdGV4dFN0b3JlW2luZGV4XSA9IHJlcGxhY2VtZW50O1xuICAgIHJldHVybiB0ZXh0U3RvcmUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ1xcbicpO1xuICB9O1xufSgpO1xuXG5mdW5jdGlvbiBhcHBseVRvU2luZ2xldG9uVGFnKHN0eWxlLCBpbmRleCwgcmVtb3ZlLCBvYmopIHtcbiAgdmFyIGNzcyA9IHJlbW92ZSA/ICcnIDogb2JqLm1lZGlhID8gXCJAbWVkaWEgXCIuY29uY2F0KG9iai5tZWRpYSwgXCIge1wiKS5jb25jYXQob2JqLmNzcywgXCJ9XCIpIDogb2JqLmNzczsgLy8gRm9yIG9sZCBJRVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAgKi9cblxuICBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IHJlcGxhY2VUZXh0KGluZGV4LCBjc3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBjc3NOb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKTtcbiAgICB2YXIgY2hpbGROb2RlcyA9IHN0eWxlLmNoaWxkTm9kZXM7XG5cbiAgICBpZiAoY2hpbGROb2Rlc1tpbmRleF0pIHtcbiAgICAgIHN0eWxlLnJlbW92ZUNoaWxkKGNoaWxkTm9kZXNbaW5kZXhdKTtcbiAgICB9XG5cbiAgICBpZiAoY2hpbGROb2Rlcy5sZW5ndGgpIHtcbiAgICAgIHN0eWxlLmluc2VydEJlZm9yZShjc3NOb2RlLCBjaGlsZE5vZGVzW2luZGV4XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlLmFwcGVuZENoaWxkKGNzc05vZGUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhcHBseVRvVGFnKHN0eWxlLCBvcHRpb25zLCBvYmopIHtcbiAgdmFyIGNzcyA9IG9iai5jc3M7XG4gIHZhciBtZWRpYSA9IG9iai5tZWRpYTtcbiAgdmFyIHNvdXJjZU1hcCA9IG9iai5zb3VyY2VNYXA7XG5cbiAgaWYgKG1lZGlhKSB7XG4gICAgc3R5bGUuc2V0QXR0cmlidXRlKCdtZWRpYScsIG1lZGlhKTtcbiAgfSBlbHNlIHtcbiAgICBzdHlsZS5yZW1vdmVBdHRyaWJ1dGUoJ21lZGlhJyk7XG4gIH1cblxuICBpZiAoc291cmNlTWFwICYmIHR5cGVvZiBidG9hICE9PSAndW5kZWZpbmVkJykge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9IC8vIEZvciBvbGQgSUVcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG5cblxuICBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzcztcbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoc3R5bGUuZmlyc3RDaGlsZCkge1xuICAgICAgc3R5bGUucmVtb3ZlQ2hpbGQoc3R5bGUuZmlyc3RDaGlsZCk7XG4gICAgfVxuXG4gICAgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cblxudmFyIHNpbmdsZXRvbiA9IG51bGw7XG52YXIgc2luZ2xldG9uQ291bnRlciA9IDA7XG5cbmZ1bmN0aW9uIGFkZFN0eWxlKG9iaiwgb3B0aW9ucykge1xuICB2YXIgc3R5bGU7XG4gIHZhciB1cGRhdGU7XG4gIHZhciByZW1vdmU7XG5cbiAgaWYgKG9wdGlvbnMuc2luZ2xldG9uKSB7XG4gICAgdmFyIHN0eWxlSW5kZXggPSBzaW5nbGV0b25Db3VudGVyKys7XG4gICAgc3R5bGUgPSBzaW5nbGV0b24gfHwgKHNpbmdsZXRvbiA9IGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKSk7XG4gICAgdXBkYXRlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlLCBzdHlsZUluZGV4LCBmYWxzZSk7XG4gICAgcmVtb3ZlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlLCBzdHlsZUluZGV4LCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBzdHlsZSA9IGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKTtcbiAgICB1cGRhdGUgPSBhcHBseVRvVGFnLmJpbmQobnVsbCwgc3R5bGUsIG9wdGlvbnMpO1xuXG4gICAgcmVtb3ZlID0gZnVuY3Rpb24gcmVtb3ZlKCkge1xuICAgICAgcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlKTtcbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlKG9iaik7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGVTdHlsZShuZXdPYmopIHtcbiAgICBpZiAobmV3T2JqKSB7XG4gICAgICBpZiAobmV3T2JqLmNzcyA9PT0gb2JqLmNzcyAmJiBuZXdPYmoubWVkaWEgPT09IG9iai5tZWRpYSAmJiBuZXdPYmouc291cmNlTWFwID09PSBvYmouc291cmNlTWFwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbW92ZSgpO1xuICAgIH1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobGlzdCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsgLy8gRm9yY2Ugc2luZ2xlLXRhZyBzb2x1dGlvbiBvbiBJRTYtOSwgd2hpY2ggaGFzIGEgaGFyZCBsaW1pdCBvbiB0aGUgIyBvZiA8c3R5bGU+XG4gIC8vIHRhZ3MgaXQgd2lsbCBhbGxvdyBvbiBhIHBhZ2VcblxuICBpZiAoIW9wdGlvbnMuc2luZ2xldG9uICYmIHR5cGVvZiBvcHRpb25zLnNpbmdsZXRvbiAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgb3B0aW9ucy5zaW5nbGV0b24gPSBpc09sZElFKCk7XG4gIH1cblxuICBsaXN0ID0gbGlzdCB8fCBbXTtcbiAgdmFyIGxhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZShuZXdMaXN0KSB7XG4gICAgbmV3TGlzdCA9IG5ld0xpc3QgfHwgW107XG5cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5ld0xpc3QpICE9PSAnW29iamVjdCBBcnJheV0nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW2ldO1xuICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgICBzdHlsZXNJbkRvbVtpbmRleF0ucmVmZXJlbmNlcy0tO1xuICAgIH1cblxuICAgIHZhciBuZXdMYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obmV3TGlzdCwgb3B0aW9ucyk7XG5cbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9pZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW19pXTtcblxuICAgICAgdmFyIF9pbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKF9pZGVudGlmaWVyKTtcblxuICAgICAgaWYgKHN0eWxlc0luRG9tW19pbmRleF0ucmVmZXJlbmNlcyA9PT0gMCkge1xuICAgICAgICBzdHlsZXNJbkRvbVtfaW5kZXhdLnVwZGF0ZXIoKTtcblxuICAgICAgICBzdHlsZXNJbkRvbS5zcGxpY2UoX2luZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsYXN0SWRlbnRpZmllcnMgPSBuZXdMYXN0SWRlbnRpZmllcnM7XG4gIH07XG59OyIsInZhciByZW5kZXIgPSBmdW5jdGlvbigpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXCJsaVwiLCB7IHN0YXRpY0NsYXNzOiBcImFwcC1uYXZpZ2F0aW9uLXNwYWNlclwiIH0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiLyogZ2xvYmFscyBfX1ZVRV9TU1JfQ09OVEVYVF9fICovXG5cbi8vIElNUE9SVEFOVDogRG8gTk9UIHVzZSBFUzIwMTUgZmVhdHVyZXMgaW4gdGhpcyBmaWxlIChleGNlcHQgZm9yIG1vZHVsZXMpLlxuLy8gVGhpcyBtb2R1bGUgaXMgYSBydW50aW1lIHV0aWxpdHkgZm9yIGNsZWFuZXIgY29tcG9uZW50IG1vZHVsZSBvdXRwdXQgYW5kIHdpbGxcbi8vIGJlIGluY2x1ZGVkIGluIHRoZSBmaW5hbCB3ZWJwYWNrIHVzZXIgYnVuZGxlLlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBub3JtYWxpemVDb21wb25lbnQgKFxuICBzY3JpcHRFeHBvcnRzLFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZnVuY3Rpb25hbFRlbXBsYXRlLFxuICBpbmplY3RTdHlsZXMsXG4gIHNjb3BlSWQsXG4gIG1vZHVsZUlkZW50aWZpZXIsIC8qIHNlcnZlciBvbmx5ICovXG4gIHNoYWRvd01vZGUgLyogdnVlLWNsaSBvbmx5ICovXG4pIHtcbiAgLy8gVnVlLmV4dGVuZCBjb25zdHJ1Y3RvciBleHBvcnQgaW50ZXJvcFxuICB2YXIgb3B0aW9ucyA9IHR5cGVvZiBzY3JpcHRFeHBvcnRzID09PSAnZnVuY3Rpb24nXG4gICAgPyBzY3JpcHRFeHBvcnRzLm9wdGlvbnNcbiAgICA6IHNjcmlwdEV4cG9ydHNcblxuICAvLyByZW5kZXIgZnVuY3Rpb25zXG4gIGlmIChyZW5kZXIpIHtcbiAgICBvcHRpb25zLnJlbmRlciA9IHJlbmRlclxuICAgIG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zID0gc3RhdGljUmVuZGVyRm5zXG4gICAgb3B0aW9ucy5fY29tcGlsZWQgPSB0cnVlXG4gIH1cblxuICAvLyBmdW5jdGlvbmFsIHRlbXBsYXRlXG4gIGlmIChmdW5jdGlvbmFsVGVtcGxhdGUpIHtcbiAgICBvcHRpb25zLmZ1bmN0aW9uYWwgPSB0cnVlXG4gIH1cblxuICAvLyBzY29wZWRJZFxuICBpZiAoc2NvcGVJZCkge1xuICAgIG9wdGlvbnMuX3Njb3BlSWQgPSAnZGF0YS12LScgKyBzY29wZUlkXG4gIH1cblxuICB2YXIgaG9va1xuICBpZiAobW9kdWxlSWRlbnRpZmllcikgeyAvLyBzZXJ2ZXIgYnVpbGRcbiAgICBob29rID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIC8vIDIuMyBpbmplY3Rpb25cbiAgICAgIGNvbnRleHQgPVxuICAgICAgICBjb250ZXh0IHx8IC8vIGNhY2hlZCBjYWxsXG4gICAgICAgICh0aGlzLiR2bm9kZSAmJiB0aGlzLiR2bm9kZS5zc3JDb250ZXh0KSB8fCAvLyBzdGF0ZWZ1bFxuICAgICAgICAodGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQuJHZub2RlICYmIHRoaXMucGFyZW50LiR2bm9kZS5zc3JDb250ZXh0KSAvLyBmdW5jdGlvbmFsXG4gICAgICAvLyAyLjIgd2l0aCBydW5Jbk5ld0NvbnRleHQ6IHRydWVcbiAgICAgIGlmICghY29udGV4dCAmJiB0eXBlb2YgX19WVUVfU1NSX0NPTlRFWFRfXyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29udGV4dCA9IF9fVlVFX1NTUl9DT05URVhUX19cbiAgICAgIH1cbiAgICAgIC8vIGluamVjdCBjb21wb25lbnQgc3R5bGVzXG4gICAgICBpZiAoaW5qZWN0U3R5bGVzKSB7XG4gICAgICAgIGluamVjdFN0eWxlcy5jYWxsKHRoaXMsIGNvbnRleHQpXG4gICAgICB9XG4gICAgICAvLyByZWdpc3RlciBjb21wb25lbnQgbW9kdWxlIGlkZW50aWZpZXIgZm9yIGFzeW5jIGNodW5rIGluZmVycmVuY2VcbiAgICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQuX3JlZ2lzdGVyZWRDb21wb25lbnRzKSB7XG4gICAgICAgIGNvbnRleHQuX3JlZ2lzdGVyZWRDb21wb25lbnRzLmFkZChtb2R1bGVJZGVudGlmaWVyKVxuICAgICAgfVxuICAgIH1cbiAgICAvLyB1c2VkIGJ5IHNzciBpbiBjYXNlIGNvbXBvbmVudCBpcyBjYWNoZWQgYW5kIGJlZm9yZUNyZWF0ZVxuICAgIC8vIG5ldmVyIGdldHMgY2FsbGVkXG4gICAgb3B0aW9ucy5fc3NyUmVnaXN0ZXIgPSBob29rXG4gIH0gZWxzZSBpZiAoaW5qZWN0U3R5bGVzKSB7XG4gICAgaG9vayA9IHNoYWRvd01vZGVcbiAgICAgID8gZnVuY3Rpb24gKCkge1xuICAgICAgICBpbmplY3RTdHlsZXMuY2FsbChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIChvcHRpb25zLmZ1bmN0aW9uYWwgPyB0aGlzLnBhcmVudCA6IHRoaXMpLiRyb290LiRvcHRpb25zLnNoYWRvd1Jvb3RcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgOiBpbmplY3RTdHlsZXNcbiAgfVxuXG4gIGlmIChob29rKSB7XG4gICAgaWYgKG9wdGlvbnMuZnVuY3Rpb25hbCkge1xuICAgICAgLy8gZm9yIHRlbXBsYXRlLW9ubHkgaG90LXJlbG9hZCBiZWNhdXNlIGluIHRoYXQgY2FzZSB0aGUgcmVuZGVyIGZuIGRvZXNuJ3RcbiAgICAgIC8vIGdvIHRocm91Z2ggdGhlIG5vcm1hbGl6ZXJcbiAgICAgIG9wdGlvbnMuX2luamVjdFN0eWxlcyA9IGhvb2tcbiAgICAgIC8vIHJlZ2lzdGVyIGZvciBmdW5jdGlvbmFsIGNvbXBvbmVudCBpbiB2dWUgZmlsZVxuICAgICAgdmFyIG9yaWdpbmFsUmVuZGVyID0gb3B0aW9ucy5yZW5kZXJcbiAgICAgIG9wdGlvbnMucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyV2l0aFN0eWxlSW5qZWN0aW9uIChoLCBjb250ZXh0KSB7XG4gICAgICAgIGhvb2suY2FsbChjb250ZXh0KVxuICAgICAgICByZXR1cm4gb3JpZ2luYWxSZW5kZXIoaCwgY29udGV4dClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaW5qZWN0IGNvbXBvbmVudCByZWdpc3RyYXRpb24gYXMgYmVmb3JlQ3JlYXRlIGhvb2tcbiAgICAgIHZhciBleGlzdGluZyA9IG9wdGlvbnMuYmVmb3JlQ3JlYXRlXG4gICAgICBvcHRpb25zLmJlZm9yZUNyZWF0ZSA9IGV4aXN0aW5nXG4gICAgICAgID8gW10uY29uY2F0KGV4aXN0aW5nLCBob29rKVxuICAgICAgICA6IFtob29rXVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZXhwb3J0czogc2NyaXB0RXhwb3J0cyxcbiAgICBvcHRpb25zOiBvcHRpb25zXG4gIH1cbn1cbiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vQXBwTmF2aWdhdGlvblNwYWNlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OWM3MGJlZGEmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQXBwTmF2aWdhdGlvblNwYWNlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FwcE5hdmlnYXRpb25TcGFjZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL0FwcE5hdmlnYXRpb25TcGFjZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9OWM3MGJlZGEmc2NvcGVkPXRydWUmbGFuZz1jc3MmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjljNzBiZWRhXCIsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL2hvbWUvbG91aXMvd29ya3NwYWNlL25leHRjbG91ZC90b29scy9uZXh0Y2xvdWQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzljNzBiZWRhJykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzljNzBiZWRhJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzljNzBiZWRhJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9BcHBOYXZpZ2F0aW9uU3BhY2VyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD05YzcwYmVkYSZzY29wZWQ9dHJ1ZSZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc5YzcwYmVkYScsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvQXBwTmF2aWdhdGlvblNwYWNlci9BcHBOYXZpZ2F0aW9uU3BhY2VyLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHBOYXZpZ2F0aW9uU3BhY2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcE5hdmlnYXRpb25TcGFjZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Jlc29sdmUtdXJsLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcE5hdmlnYXRpb25TcGFjZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9OWM3MGJlZGEmc2NvcGVkPXRydWUmbGFuZz1jc3MmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwTmF2aWdhdGlvblNwYWNlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9OWM3MGJlZGEmc2NvcGVkPXRydWUmXCIiLCIvKipcbiAqIEBjb3B5cmlnaHQgMjAxOSBDaHJpc3RvcGggV3Vyc3QgPGNocmlzdG9waEB3aW56ZXJob2Ytd3Vyc3QuYXQ+XG4gKlxuICogQGF1dGhvciAyMDE5IENocmlzdG9waCBXdXJzdCA8Y2hyaXN0b3BoQHdpbnplcmhvZi13dXJzdC5hdD5cbiAqXG4gKiBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxuICogTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5pbXBvcnQgQXBwTmF2aWdhdGlvblNwYWNlciBmcm9tICcuL0FwcE5hdmlnYXRpb25TcGFjZXInXG5cbmV4cG9ydCBkZWZhdWx0IEFwcE5hdmlnYXRpb25TcGFjZXJcbiJdLCJzb3VyY2VSb290IjoiIn0=","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Components/AppSidebar\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Components/AppSidebar\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Components/AppSidebar\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./src/components/AppSidebar/index.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/Actions/Actions.vue?vue&type=script&lang=js&\":\n/*!*******************************************************************************************************************************************************!*\\\n !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Actions/Actions.vue?vue&type=script&lang=js& ***!\n \\*******************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.trim.js */ \"core-js/modules/es.string.trim.js\");\n/* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ \"core-js/modules/es.array.filter.js\");\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ \"core-js/modules/es.object.keys.js\");\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ \"core-js/modules/es.symbol.js\");\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptor.js */ \"core-js/modules/es.object.get-own-property-descriptor.js\");\n/* harmony import */ var core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.object.get-own-property-descriptors.js */ \"core-js/modules/es.object.get-own-property-descriptors.js\");\n/* harmony import */ var core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptors_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ \"core-js/modules/es.symbol.description.js\");\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ \"core-js/modules/es.symbol.iterator.js\");\n/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ \"core-js/modules/es.array.iterator.js\");\n/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ \"core-js/modules/es.string.iterator.js\");\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"core-js/modules/web.dom-collections.iterator.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! core-js/modules/es.array.from.js */ \"core-js/modules/es.array.from.js\");\n/* harmony import */ var core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_from_js__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ \"core-js/modules/es.array.slice.js\");\n/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ \"core-js/modules/es.function.name.js\");\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _directives_Tooltip__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../directives/Tooltip */ \"./src/directives/Tooltip/index.js\");\n/* harmony import */ var _utils_GenRandomId__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../utils/GenRandomId */ \"./src/utils/GenRandomId.js\");\n/* harmony import */ var _utils_ValidateSlot__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../utils/ValidateSlot */ \"./src/utils/ValidateSlot.js\");\n/* harmony import */ var _l10n__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../l10n */ \"./src/l10n.js\");\n/* harmony import */ var _Popover__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../Popover */ \"./src/components/Popover/index.js\");\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n // This is the list of ALL the ALLOWED components\n// in the default SLOT\n\nvar allowedChildren = ['ActionButton', 'ActionCheckbox', 'ActionInput', 'ActionLink', 'ActionRadio', 'ActionRouter', 'ActionSeparator', 'ActionText', 'ActionTextEditable'];\nvar focusableSelector = '.focusable';\n/**\n * The Actions component can be used to display one ore more actions.\n * If only a single action is provided, it will be rendered as an inline icon.\n * For more, a menu indicator will be shown and a popovermenu containing the\n * actions will be opened on click.\n *\n * @since 0.10.0\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Actions',\n directives: {\n tooltip: _directives_Tooltip__WEBPACK_IMPORTED_MODULE_16__[\"default\"]\n },\n components: {\n Popover: _Popover__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n // Component to render the first action icon slot content (vnodes)\n VNodes: {\n functional: true,\n render: function render(h, context) {\n return context.props.vnodes;\n }\n }\n },\n props: {\n /**\n * Specify the open state of the popover menu\n */\n open: {\n type: Boolean,\n default: false\n },\n\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n\n /**\n * Specify the menu title\n */\n menuTitle: {\n type: String,\n default: null\n },\n\n /**\n * Apply primary styling for this menu\n */\n primary: {\n type: Boolean,\n default: false\n },\n\n /**\n * Icon to show for the toggle menu button\n * when more than one action is inside the actions component.\n * Only replace the default three-dot icon if really necessary.\n */\n defaultIcon: {\n type: String,\n default: 'action-item__menutoggle--default-icon'\n },\n\n /**\n * Aria label for the actions menu\n */\n ariaLabel: {\n type: String,\n default: Object(_l10n__WEBPACK_IMPORTED_MODULE_19__[\"t\"])('Actions')\n },\n\n /**\n * Wanted direction of the menu\n */\n placement: {\n type: String,\n default: 'bottom'\n },\n\n /**\n * DOM element for the actions' popover boundaries\n */\n boundariesElement: {\n type: Element,\n default: function _default() {\n return document.querySelector('body');\n }\n },\n\n /**\n * Selector for the actions' popover container\n */\n container: {\n type: String,\n default: 'body'\n },\n\n /**\n * Disabled state of the main button (single action or menu toggle)\n */\n disabled: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n actions: [],\n opened: this.open,\n focusIndex: 0,\n randomId: 'menu-' + Object(_utils_GenRandomId__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(),\n // Making children reactive!\n // By binding this here, vuejs will track the object content\n // Needed for firstAction reactivity !!!\n children: this.$children\n };\n },\n computed: {\n /**\n * Is there more than one action?\n * @returns {boolean}\n */\n hasMultipleActions: function hasMultipleActions() {\n return this.actions.length > 1;\n },\n\n /**\n * Is there any first action ?\n * And is it allowed as a standalone element ?\n * @returns {boolean}\n */\n isValidSingleAction: function isValidSingleAction() {\n return this.actions.length === 1 && this.firstActionElement !== null;\n },\n\n /**\n * First action vnode\n * @returns {Object} return the first action vue vnode\n */\n firstActionVNode: function firstActionVNode() {\n return this.actions[0];\n },\n\n /**\n * Reactive binding to the first children\n * Since we're here, it means we already passed all the proper checks\n * we can assume the first action is the first children too\n * @returns {Object} first action vue children object\n */\n firstAction: function firstAction() {\n return this.children[0] ? this.children[0] : {};\n },\n\n /**\n * Binding of the first action to the template\n * @returns {Object} vue template v-bind shortcut\n */\n firstActionBinding: function firstActionBinding() {\n if (this.firstActionVNode && this.firstActionVNode.componentOptions) {\n var tag = this.firstActionVNode.componentOptions.tag;\n\n if (tag === 'ActionLink') {\n return _objectSpread(_objectSpread({\n is: 'a',\n href: this.firstAction.href,\n target: this.firstAction.target,\n 'aria-label': this.firstAction.ariaLabel\n }, this.firstAction.$attrs), this.firstAction.$props);\n }\n\n if (tag === 'ActionRouter') {\n return _objectSpread(_objectSpread({\n is: 'router-link',\n to: this.firstAction.to,\n exact: this.firstAction.exact,\n 'aria-label': this.firstAction.ariaLabel\n }, this.firstAction.$attrs), this.firstAction.$props);\n }\n\n if (tag === 'ActionButton') {\n return _objectSpread(_objectSpread({\n is: 'button',\n 'aria-label': this.firstAction.ariaLabel\n }, this.firstAction.$attrs), this.firstAction.$props);\n }\n } // other action types are not allowed as standalone buttons\n\n\n return null;\n },\n // return the event to bind if the firstActionVNode have an action\n firstActionEvent: function firstActionEvent() {\n var _this$firstActionVNod, _this$firstActionVNod2, _this$firstActionVNod3;\n\n return (_this$firstActionVNod = this.firstActionVNode) === null || _this$firstActionVNod === void 0 ? void 0 : (_this$firstActionVNod2 = _this$firstActionVNod.componentOptions) === null || _this$firstActionVNod2 === void 0 ? void 0 : (_this$firstActionVNod3 = _this$firstActionVNod2.listeners) === null || _this$firstActionVNod3 === void 0 ? void 0 : _this$firstActionVNod3.click;\n },\n firstActionEventBinding: function firstActionEventBinding() {\n return this.firstActionEvent ? 'click' : null;\n },\n // return the first action icon slot vnodes array\n firstActionIconSlot: function firstActionIconSlot() {\n var _this$firstAction, _this$firstAction$$sl;\n\n return (_this$firstAction = this.firstAction) === null || _this$firstAction === void 0 ? void 0 : (_this$firstAction$$sl = _this$firstAction.$slots) === null || _this$firstAction$$sl === void 0 ? void 0 : _this$firstAction$$sl.icon;\n },\n firstActionClass: function firstActionClass() {\n var staticClass = this.firstActionVNode && this.firstActionVNode.data.staticClass;\n var dynClass = this.firstActionVNode && this.firstActionVNode.data.class;\n return (staticClass + ' ' + dynClass).trim();\n },\n iconSlotIsPopulated: function iconSlotIsPopulated() {\n return !!this.$slots.icon;\n }\n },\n watch: {\n // Watch parent prop\n open: function open(state) {\n if (state === this.opened) {\n return;\n }\n\n this.opened = state;\n }\n },\n beforeMount: function beforeMount() {\n // init actions\n this.initActions(); // filter invalid menu items\n\n Object(_utils_ValidateSlot__WEBPACK_IMPORTED_MODULE_18__[\"default\"])(this.$slots.default, allowedChildren, this);\n },\n beforeUpdate: function beforeUpdate() {\n // ! since we're using $slots to manage our actions\n // ! we NEED to update the actions if anything change\n // update children & actions\n // no need to init actions again since we bound it to $children\n // and the array is now reactive\n // init actions\n this.initActions();\n Object(_utils_ValidateSlot__WEBPACK_IMPORTED_MODULE_18__[\"default\"])(this.$slots.default, allowedChildren, this);\n },\n methods: {\n // MENU STATE MANAGEMENT\n openMenu: function openMenu(e) {\n if (this.opened) {\n return;\n }\n\n this.opened = true;\n /**\n * Event emitted when the popover menu open state is changed\n * @type {boolean}\n */\n\n this.$emit('update:open', true);\n /**\n * Event emitted when the popover menu is closed\n */\n\n this.$emit('open');\n },\n closeMenu: function closeMenu(e) {\n if (!this.opened) {\n return;\n }\n\n this.opened = false;\n /**\n * Event emitted when the popover menu open state is changed\n * @type {boolean}\n */\n\n this.$emit('update:open', false);\n /**\n * Event emitted when the popover menu is closed\n */\n\n this.$emit('close'); // close everything\n\n this.opened = false;\n this.focusIndex = 0; // focus back the menu button\n\n this.$refs.menuButton.focus();\n },\n onOpen: function onOpen(event) {\n var _this = this;\n\n this.$nextTick(function () {\n _this.focusFirstAction(event);\n });\n },\n // MENU KEYS & FOCUS MANAGEMENT\n // focus nearest focusable item on mouse move\n // DO NOT change the focus if the target is already focused\n // this will prevent issues with input being unfocused\n // on mouse move\n onMouseFocusAction: function onMouseFocusAction(event) {\n if (document.activeElement === event.target) {\n return;\n }\n\n var menuItem = event.target.closest('li');\n\n if (menuItem) {\n var focusableItem = menuItem.querySelector(focusableSelector);\n\n if (focusableItem) {\n var focusList = this.$refs.menu.querySelectorAll(focusableSelector);\n\n var focusIndex = _toConsumableArray(focusList).indexOf(focusableItem);\n\n if (focusIndex > -1) {\n this.focusIndex = focusIndex;\n this.focusAction();\n }\n }\n }\n },\n removeCurrentActive: function removeCurrentActive() {\n var currentActiveElement = this.$refs.menu.querySelector('li.active');\n\n if (currentActiveElement) {\n currentActiveElement.classList.remove('active');\n }\n },\n focusAction: function focusAction() {\n // TODO: have a global disabled state for non input elements\n var focusElement = this.$refs.menu.querySelectorAll(focusableSelector)[this.focusIndex];\n\n if (focusElement) {\n this.removeCurrentActive();\n var liMenuParent = focusElement.closest('li.action');\n focusElement.focus();\n\n if (liMenuParent) {\n liMenuParent.classList.add('active');\n }\n }\n },\n focusPreviousAction: function focusPreviousAction(event) {\n if (this.opened) {\n if (this.focusIndex === 0) {\n // First element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n this.closeMenu();\n } else {\n this.preventIfEvent(event);\n this.focusIndex = this.focusIndex - 1;\n }\n\n this.focusAction();\n }\n },\n focusNextAction: function focusNextAction(event) {\n if (this.opened) {\n var indexLength = this.$refs.menu.querySelectorAll(focusableSelector).length - 1;\n\n if (this.focusIndex === indexLength) {\n // Last element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n this.closeMenu();\n } else {\n this.preventIfEvent(event);\n this.focusIndex = this.focusIndex + 1;\n }\n\n this.focusAction();\n }\n },\n focusFirstAction: function focusFirstAction(event) {\n if (this.opened) {\n this.preventIfEvent(event);\n this.focusIndex = 0;\n this.focusAction();\n }\n },\n focusLastAction: function focusLastAction(event) {\n if (this.opened) {\n this.preventIfEvent(event);\n this.focusIndex = this.$el.querySelectorAll(focusableSelector).length - 1;\n this.focusAction();\n }\n },\n preventIfEvent: function preventIfEvent(event) {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n // ACTIONS MANAGEMENT\n // exec the first action\n execFirstAction: function execFirstAction(event) {\n if (this.firstActionEvent) {\n this.firstActionEvent(event);\n }\n },\n initActions: function initActions() {\n // filter out invalid slots\n this.actions = (this.$slots.default || []).filter(function (node) {\n return !!node && !!node.componentOptions;\n });\n },\n onFocus: function onFocus(event) {\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.$emit('blur', event);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=script&lang=js&\":\n/*!*************************************************************************************************************************************************************!*\\\n !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebar/AppSidebar.vue?vue&type=script&lang=js& ***!\n \\*************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Actions */ \"./src/components/Actions/index.js\");\n/* harmony import */ var _directives_Focus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../directives/Focus */ \"./src/directives/Focus/index.js\");\n/* harmony import */ var _directives_Linkify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../directives/Linkify */ \"./src/directives/Linkify/index.js\");\n/* harmony import */ var _directives_Tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../directives/Tooltip */ \"./src/directives/Tooltip/index.js\");\n/* harmony import */ var _AppSidebarTabs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AppSidebarTabs */ \"./src/components/AppSidebar/AppSidebarTabs.vue\");\n/* harmony import */ var _EmptyContent_EmptyContent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../EmptyContent/EmptyContent */ \"./src/components/EmptyContent/EmptyContent.vue\");\n/* harmony import */ var _l10n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../l10n */ \"./src/l10n.js\");\n/* harmony import */ var v_click_outside__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! v-click-outside */ \"v-click-outside\");\n/* harmony import */ var v_click_outside__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(v_click_outside__WEBPACK_IMPORTED_MODULE_7__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'AppSidebar',\n components: {\n Actions: _Actions__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n AppSidebarTabs: _AppSidebarTabs__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n EmptyContent: _EmptyContent_EmptyContent__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n },\n directives: {\n focus: _directives_Focus__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n linkify: _directives_Linkify__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ClickOutside: v_click_outside__WEBPACK_IMPORTED_MODULE_7__[\"directive\"],\n Tooltip: _directives_Tooltip__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n props: {\n active: {\n type: String,\n default: ''\n },\n title: {\n type: String,\n default: '',\n required: true\n },\n\n /**\n * Allow to edit the sidebar title.\n */\n titleEditable: {\n type: Boolean,\n default: false\n },\n titlePlaceholder: {\n type: String,\n default: ''\n },\n subtitle: {\n type: String,\n default: ''\n },\n subtitleTooltip: {\n type: String,\n default: ''\n },\n\n /**\n * Url to the top header background image\n * Applied with css\n */\n background: {\n type: String,\n default: ''\n },\n\n /**\n * Enable the favourite icon if not null\n * See fired events\n */\n starred: {\n type: Boolean,\n default: null\n },\n\n /**\n * Show loading spinner instead of the star icon\n */\n starLoading: {\n type: Boolean,\n default: false\n },\n\n /**\n * Show loading spinner instead of tabs\n */\n loading: {\n type: Boolean,\n default: false\n },\n\n /**\n * Display the sidebar in compact mode\n */\n compact: {\n type: Boolean,\n default: false\n },\n\n /**\n * Only display close button and default slot content.\n * Don't display other header content and primary and secondary actions.\n * Useful when showing the EmptyContent component as content.\n */\n empty: {\n type: Boolean,\n default: false\n },\n\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n\n /**\n * Linkify the title\n */\n linkifyTitle: {\n type: Boolean,\n default: false\n },\n\n /**\n * Tooltip to display for the title.\n * Can be set to the same text in case it's too long.\n */\n titleTooltip: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n closeTranslated: Object(_l10n__WEBPACK_IMPORTED_MODULE_6__[\"t\"])('Close'),\n isStarred: this.starred\n };\n },\n computed: {\n canStar: function canStar() {\n return this.isStarred !== null;\n },\n hasFigure: function hasFigure() {\n return this.$slots.header || this.background;\n },\n hasFigureClickListener: function hasFigureClickListener() {\n return this.$listeners['figure-click'];\n }\n },\n watch: {\n starred: function starred() {\n this.isStarred = this.starred;\n }\n },\n methods: {\n onBeforeEnter: function onBeforeEnter(element) {\n /**\n * The sidebar is opening and the transition is in progress\n * @type {HTMLElement}\n */\n this.$emit('opening', element);\n },\n onAfterEnter: function onAfterEnter(element) {\n /**\n * The sidebar is opened and the transition is complete\n * @type {HTMLElement}\n */\n this.$emit('opened', element);\n },\n onBeforeLeave: function onBeforeLeave(element) {\n /**\n * The sidebar is closing and the transition is in progress\n * @type {HTMLElement}\n */\n this.$emit('closing', element);\n },\n onAfterLeave: function onAfterLeave(element) {\n /**\n * The sidebar is closed and the transition is complete\n * @type {HTMLElement}\n */\n this.$emit('closed', element);\n },\n\n /**\n * Used to tell parent component the user asked to close the sidebar\n * @param {Event} e close icon click event\n */\n closeSidebar: function closeSidebar(e) {\n /**\n * The user clicked to closed the sidebar\n * @type {Event}\n */\n this.$emit('close', e);\n },\n\n /**\n * Emit figure click event to parent component\n * @param {Event} e click event\n */\n onFigureClick: function onFigureClick(e) {\n /**\n * The figure/background header has been clicked\n * @type {Event}\n */\n this.$emit('figure-click', e);\n },\n\n /**\n * Toggle the favourite state\n * and emit to the parent component\n */\n toggleStarred: function toggleStarred() {\n this.isStarred = !this.isStarred;\n /**\n * Emitted when the starred value changes\n * @type {boolean}\n */\n\n this.$emit('update:starred', this.isStarred);\n },\n editTitle: function editTitle() {\n var _this = this;\n\n /**\n * Emitted when the titleEditable value changes\n * @type {boolean}\n */\n this.$emit('update:titleEditable', true); // Focus the title input\n\n if (this.titleEditable) {\n this.$nextTick(function () {\n return _this.$refs.titleInput.focus();\n });\n }\n },\n\n /**\n * Emit title change event to parent component\n * @param {Event} event input event\n */\n onTitleInput: function onTitleInput(event) {\n /**\n * Emitted when the title value changes\n * @type {string|Date}\n */\n this.$emit('update:title', event.target.value);\n },\n\n /**\n * Emit when the title form edit confirm button is pressed in order\n * to change the title.\n * @param {Event} event submit event\n */\n onSubmitTitle: function onSubmitTitle(event) {\n // Disable editing\n this.$emit('update:titleEditable', false);\n /**\n * Emitted when the title edit input has been submitted\n * @type {Event}\n */\n\n this.$emit('submit-title', event);\n },\n onDismissEditing: function onDismissEditing() {\n // Disable editing\n this.$emit('update:titleEditable', false);\n /**\n * Emitted when the title edit has been cancelled\n * @type {Event}\n */\n\n this.$emit('dismiss-editing');\n },\n onUpdateActive: function onUpdateActive(activeTab) {\n /**\n * The active tab changed\n * @type {string}\n */\n this.$emit('update:active', activeTab);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=script&lang=js&\":\n/*!*****************************************************************************************************************************************************************!*\\\n !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=script&lang=js& ***!\n \\*****************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.trim.js */ \"core-js/modules/es.string.trim.js\");\n/* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.find-index.js */ \"core-js/modules/es.array.find-index.js\");\n/* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ \"core-js/modules/es.array.filter.js\");\n/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.reduce.js */ \"core-js/modules/es.array.reduce.js\");\n/* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ \"core-js/modules/es.function.name.js\");\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ \"core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_6__);\n\n\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\nvar IsValidString = function IsValidString(value) {\n return value && typeof value === 'string' && value.trim() !== '';\n};\n\nvar IsValidStringWithoutSpaces = function IsValidStringWithoutSpaces(value) {\n return IsValidString(value) && value.indexOf(' ') === -1;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'AppSidebarTabs',\n props: {\n /**\n * Id of the tab to activate\n */\n active: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n /**\n * The tab component instances to build the tab navbar from.\n */\n tabs: [],\n\n /**\n * The id of the currently active tab.\n */\n activeTab: '',\n\n /**\n * Dummy array to react on slot changes.\n */\n children: []\n };\n },\n computed: {\n hasMultipleTabs: function hasMultipleTabs() {\n return this.tabs.length > 1;\n },\n currentTabIndex: function currentTabIndex() {\n var _this = this;\n\n return this.tabs.findIndex(function (tab) {\n return tab.id === _this.activeTab;\n });\n }\n },\n watch: {\n active: function active(_active) {\n // Prevent running it twice\n if (_active !== this.activeTab) {\n this.updateActive();\n }\n },\n children: function children() {\n this.updateTabs();\n }\n },\n mounted: function mounted() {\n // Init the tabs list\n this.updateTabs(); // Let's make the children list reactive\n\n this.children = this.$children;\n },\n methods: {\n /**\n * Set the current active tab\n * @param {string} id the id of the tab\n */\n setActive: function setActive(id) {\n this.activeTab = id;\n this.$emit('update:active', this.activeTab);\n },\n\n /**\n * Focus the previous tab\n * and emit to the parent component\n */\n focusPreviousTab: function focusPreviousTab() {\n if (this.currentTabIndex > 0) {\n this.setActive(this.tabs[this.currentTabIndex - 1].id);\n }\n\n this.focusActiveTab(); // focus nav item\n },\n\n /**\n * Focus the next tab\n * and emit to the parent component\n */\n focusNextTab: function focusNextTab() {\n if (this.currentTabIndex < this.tabs.length - 1) {\n this.setActive(this.tabs[this.currentTabIndex + 1].id);\n }\n\n this.focusActiveTab(); // focus nav item\n },\n\n /**\n * Focus the first tab\n * and emit to the parent component\n */\n focusFirstTab: function focusFirstTab() {\n this.setActive(this.tabs[0].id);\n this.focusActiveTab(); // focus nav item\n },\n\n /**\n * Focus the last tab\n * and emit to the parent component\n */\n focusLastTab: function focusLastTab() {\n this.setActive(this.tabs[this.tabs.length - 1].id);\n this.focusActiveTab(); // focus nav item\n },\n\n /**\n * Focus the current active tab\n */\n focusActiveTab: function focusActiveTab() {\n this.$el.querySelector('#' + this.activeTab).focus();\n },\n\n /**\n * Focus the content on tab\n * see aria accessibility guidelines\n */\n focusActiveTabContent: function focusActiveTabContent() {\n this.$el.querySelector('#tab-' + this.activeTab).focus();\n },\n\n /**\n * Update the current active tab\n */\n updateActive: function updateActive() {\n var _this2 = this;\n\n this.activeTab = this.active && this.tabs.findIndex(function (tab) {\n return tab.id === _this2.active;\n }) !== -1 ? this.active : this.tabs.length > 0 ? this.tabs[0].id : '';\n },\n\n /**\n * Manually update the sidebar tabs according to $slots.default\n */\n updateTabs: function updateTabs() {\n if (!this.$slots.default) {\n this.tabs = [];\n return;\n } // Find all valid children (AppSidebarTab, other components, text nodes, etc.)\n\n\n var children = this.$slots.default.filter(function (elem) {\n return elem.tag || elem.text.trim();\n }); // Find all valid instances of AppSidebarTab\n\n var invalidTabs = [];\n var tabs = children.reduce(function (tabs, tabNode) {\n var tab = tabNode.componentInstance; // Make sure all required props are provided and valid\n\n if (IsValidString(tab === null || tab === void 0 ? void 0 : tab.name) && IsValidStringWithoutSpaces(tab === null || tab === void 0 ? void 0 : tab.id) && IsValidStringWithoutSpaces(tab === null || tab === void 0 ? void 0 : tab.icon)) {\n tabs.push(tab);\n } else {\n invalidTabs.push(tabNode);\n }\n\n return tabs;\n }, []); // Tabs are optional, but you can use either tabs or non-tab-content only\n\n if (tabs.length !== 0 && tabs.length !== children.length) {\n vue__WEBPACK_IMPORTED_MODULE_6___default.a.util.warn('Mixing tabs and non-tab-content is not possible.');\n invalidTabs.map(function (invalid) {\n return console.debug('Ignoring invalid tab', invalid);\n });\n } // We sort the tabs by their order or by their name\n\n\n this.tabs = tabs.sort(function (a, b) {\n var orderA = a.order || 0;\n var orderB = b.order || 0;\n\n if (orderA === orderB) {\n return OC.Util.naturalSortCompare(a.name, b.name);\n }\n\n return orderA - orderB;\n }); // Init active tab if exists\n\n if (this.tabs.length > 0) {\n this.updateActive();\n }\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/EmptyContent/EmptyContent.vue?vue&type=script&lang=js&\":\n/*!*****************************************************************************************************************************************************************!*\\\n !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmptyContent/EmptyContent.vue?vue&type=script&lang=js& ***!\n \\*****************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'EmptyContent',\n props: {\n /**\n * The main icon illustration\n */\n icon: {\n type: String,\n default: ''\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/Popover/Popover.vue?vue&type=script&lang=js&\":\n/*!*******************************************************************************************************************************************************!*\\\n !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Popover/Popover.vue?vue&type=script&lang=js& ***!\n \\*******************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var v_tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! v-tooltip */ \"v-tooltip\");\n/* harmony import */ var v_tooltip__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(v_tooltip__WEBPACK_IMPORTED_MODULE_0__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Popover',\n components: {\n VPopover: v_tooltip__WEBPACK_IMPORTED_MODULE_0__[\"VPopover\"]\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$watch(function () {\n // required because v-tooltip doesn't provide events\n // and @show is too early\n // see https://github.com/Akryum/v-tooltip/issues/661\n return _this.$refs.popover.isOpen;\n }, function (val) {\n if (val) {\n /**\n * Triggered after the tooltip was visually displayed.\n *\n * This is different from the 'show' and 'apply-show' which\n * run earlier than this where there is no guarantee that the\n * tooltip is already visible and in the DOM.\n */\n _this.$emit('after-show');\n } else {\n /**\n * Triggered after the tooltip was visually hidden.\n */\n _this.$emit('after-hide');\n }\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/cjs.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./src/directives/Tooltip/index.scss\":\n/*!********************************************************************************************************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./src/directives/Tooltip/index.scss ***!\n \\********************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__);\n/* 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\");\n/* 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__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n/**\\n* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>\\n* @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>\\n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>\\n* @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>\\n* @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>\\n*\\n* Bootstrap v3.3.5 (http://getbootstrap.com)\\n* Copyright 2011-2015 Twitter, Inc.\\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n*/\\n.vue-tooltip[data-v-84c461f] {\\n position: absolute;\\n z-index: 100000;\\n right: auto;\\n left: auto;\\n display: block;\\n margin: 0;\\n /* default to top */\\n margin-top: -3px;\\n padding: 10px 0;\\n text-align: left;\\n text-align: start;\\n opacity: 0;\\n line-height: 1.6;\\n line-break: auto;\\n filter: drop-shadow(0 1px 10px var(--color-box-shadow)); }\\n .vue-tooltip[data-v-84c461f][x-placement^='top'] .tooltip-arrow {\\n bottom: 0;\\n margin-top: 0;\\n margin-bottom: 0;\\n border-width: 10px 10px 0 10px;\\n border-right-color: transparent;\\n border-bottom-color: transparent;\\n border-left-color: transparent; }\\n .vue-tooltip[data-v-84c461f][x-placement^='bottom'] .tooltip-arrow {\\n top: 0;\\n margin-top: 0;\\n margin-bottom: 0;\\n border-width: 0 10px 10px 10px;\\n border-top-color: transparent;\\n border-right-color: transparent;\\n border-left-color: transparent; }\\n .vue-tooltip[data-v-84c461f][x-placement^='right'] .tooltip-arrow {\\n right: 100%;\\n margin-right: 0;\\n margin-left: 0;\\n border-width: 10px 10px 10px 0;\\n border-top-color: transparent;\\n border-bottom-color: transparent;\\n border-left-color: transparent; }\\n .vue-tooltip[data-v-84c461f][x-placement^='left'] .tooltip-arrow {\\n left: 100%;\\n margin-right: 0;\\n margin-left: 0;\\n border-width: 10px 0 10px 10px;\\n border-top-color: transparent;\\n border-right-color: transparent;\\n border-bottom-color: transparent; }\\n .vue-tooltip[data-v-84c461f][aria-hidden='true'] {\\n visibility: hidden;\\n transition: opacity .15s, visibility .15s;\\n opacity: 0; }\\n .vue-tooltip[data-v-84c461f][aria-hidden='false'] {\\n visibility: visible;\\n transition: opacity .15s;\\n opacity: 1; }\\n .vue-tooltip[data-v-84c461f] .tooltip-inner {\\n max-width: 350px;\\n padding: 5px 8px;\\n text-align: center;\\n color: var(--color-main-text);\\n border-radius: var(--border-radius);\\n background-color: var(--color-main-background); }\\n .vue-tooltip[data-v-84c461f] .tooltip-arrow {\\n position: absolute;\\n z-index: 1;\\n width: 0;\\n height: 0;\\n margin: 0;\\n border-style: solid;\\n border-color: var(--color-main-background); }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./index.scss\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;ACAhB;;;;;;;;;;;;;;;;;;;;EDqBE;AApBF;;;;;;;;;;CA+BC;AAjBD;EACC,kBAAkB;EAClB,eAAe;EACf,WAAW;EACX,UAAU;EACV,cAAc;EACd,SAAS;EACT,mBAAA;EACA,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,UAAU;EACV,gBAAgB;EAEhB,gBAAgB;EAChB,uDAAuD,EAAA;EAhBxD;IAqBG,SAAS;IACT,aAAa;IACb,gBAAgB;IAChB,8BA1Be;IA2Bf,+BAA+B;IAC/B,gCAAgC;IAChC,8BAA8B,EAAA;EA3BjC;IAkCG,MAAM;IACN,aAAa;IACb,gBAAgB;IAChB,8BAvCe;IAwCf,6BAA6B;IAC7B,+BAA+B;IAC/B,8BAA8B,EAAA;EAxCjC;IA+CG,WAAW;IACX,eAAe;IACf,cAAc;IACd,8BAAsD;IACtD,6BAA6B;IAC7B,gCAAgC;IAChC,8BAA8B,EAAA;EArDjC;IA4DG,UAAU;IACV,eAAe;IACf,cAAc;IACd,8BAjEe;IAkEf,6BAA6B;IAC7B,+BAA+B;IAC/B,gCAAgC,EAAA;EAlEnC;IAwEE,kBAAkB;IAClB,yCAAyC;IACzC,UAAU,EAAA;EA1EZ;IA6EE,mBAAmB;IACnB,wBAAwB;IACxB,UAAU,EAAA;EA/EZ;IAoFE,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;IAClB,6BAA6B;IAC7B,mCAAmC;IACnC,8CAA8C,EAAA;EAzFhD;IA8FE,kBAAkB;IAClB,UAAU;IACV,QAAQ;IACR,SAAS;IACT,SAAS;IACT,mBAAmB;IACnB,0CAA0C,EAAA\",\"sourcesContent\":[\"$scope_version:\\\"84c461f\\\"; @import 'variables';\\n/**\\n* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>\\n* @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>\\n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>\\n* @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>\\n* @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>\\n*\\n* Bootstrap v3.3.5 (http://getbootstrap.com)\\n* Copyright 2011-2015 Twitter, Inc.\\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n*/\\n\\n$arrow-width: 10px;\\n\\n.vue-tooltip[data-v-#{$scope_version}] {\\n\\tposition: absolute;\\n\\tz-index: 100000;\\n\\tright: auto;\\n\\tleft: auto;\\n\\tdisplay: block;\\n\\tmargin: 0;\\n\\t/* default to top */\\n\\tmargin-top: -3px;\\n\\tpadding: 10px 0;\\n\\ttext-align: left;\\n\\ttext-align: start;\\n\\topacity: 0;\\n\\tline-height: 1.6;\\n\\n\\tline-break: auto;\\n\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t// TOP\\n\\t&[x-placement^='top'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// BOTTOM\\n\\t&[x-placement^='bottom'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// RIGHT\\n\\t&[x-placement^='right'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tright: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width $arrow-width 0;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// LEFT\\n\\t&[x-placement^='left'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tleft: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// HIDDEN / SHOWN\\n\\t&[aria-hidden='true'] {\\n\\t\\tvisibility: hidden;\\n\\t\\ttransition: opacity .15s, visibility .15s;\\n\\t\\topacity: 0;\\n\\t}\\n\\t&[aria-hidden='false'] {\\n\\t\\tvisibility: visible;\\n\\t\\ttransition: opacity .15s;\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\t// CONTENT\\n\\t.tooltip-inner {\\n\\t\\tmax-width: 350px;\\n\\t\\tpadding: 5px 8px;\\n\\t\\ttext-align: center;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t}\\n\\n\\t// ARROW\\n\\t.tooltip-arrow {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: 0;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: var(--color-main-background);\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Actions/Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true&\":\n/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Actions/Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true& ***!\n \\******************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__);\n/* 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\");\n/* 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__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _fonts_iconfont_vue_84c461f_eot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../fonts/iconfont-vue-84c461f.eot */ \"./src/fonts/iconfont-vue-84c461f.eot\");\n/* harmony import */ var _fonts_iconfont_vue_84c461f_woff__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../fonts/iconfont-vue-84c461f.woff */ \"./src/fonts/iconfont-vue-84c461f.woff\");\n/* harmony import */ var _fonts_iconfont_vue_84c461f_ttf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../fonts/iconfont-vue-84c461f.ttf */ \"./src/fonts/iconfont-vue-84c461f.ttf\");\n/* harmony import */ var _fonts_iconfont_vue_84c461f_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../fonts/iconfont-vue-84c461f.svg */ \"./src/fonts/iconfont-vue-84c461f.svg\");\n// Imports\n\n\n\n\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(_fonts_iconfont_vue_84c461f_eot__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(_fonts_iconfont_vue_84c461f_woff__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(_fonts_iconfont_vue_84c461f_ttf__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(_fonts_iconfont_vue_84c461f_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n@font-face {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\n /* IE9 Compat Modes */\\n src: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format(\\\"embedded-opentype\\\"), url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format(\\\"woff\\\"), url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format(\\\"truetype\\\"), url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") format(\\\"svg\\\");\\n /* Legacy iOS */\\n}\\n.icon[data-v-4f45864b] {\\n font-style: normal;\\n font-weight: 400;\\n}\\n.icon.arrow-left-double[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.arrow-left[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.arrow-right-double[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.arrow-right[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.breadcrumb[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.checkmark[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.close[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.confirm[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.info[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.menu[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.more[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.pause[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.play[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.triangle-s[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.user-status-away[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.user-status-dnd[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.user-status-invisible[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.icon.user-status-online[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: \\\"\\\";\\n}\\n.action-item[data-v-4f45864b] {\\n position: relative;\\n display: inline-block;\\n}\\n.action-item--single[data-v-4f45864b]:hover, .action-item--single[data-v-4f45864b]:focus, .action-item--single[data-v-4f45864b]:active, .action-item__menutoggle[data-v-4f45864b]:hover, .action-item__menutoggle[data-v-4f45864b]:focus, .action-item__menutoggle[data-v-4f45864b]:active {\\n opacity: 1;\\n background-color: rgba(127, 127, 127, 0.25);\\n}\\n.action-item__menutoggle[data-v-4f45864b]:disabled, .action-item--single[data-v-4f45864b]:disabled {\\n opacity: .3 !important;\\n}\\n.action-item.action-item--open .action-item__menutoggle[data-v-4f45864b] {\\n opacity: 1;\\n background-color: rgba(127, 127, 127, 0.25);\\n}\\n.action-item--single[data-v-4f45864b], .action-item__menutoggle[data-v-4f45864b] {\\n box-sizing: border-box;\\n width: auto;\\n min-width: 44px;\\n height: 44px;\\n margin: 0;\\n padding: 14px;\\n cursor: pointer;\\n border: none;\\n border-radius: 22px;\\n background-color: transparent;\\n}\\n.action-item__menutoggle[data-v-4f45864b] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n opacity: 0.7;\\n font-weight: bold;\\n line-height: 16px;\\n}\\n.action-item__menutoggle[data-v-4f45864b] span {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.action-item__menutoggle[data-v-4f45864b]:before {\\n content: '';\\n}\\n.action-item__menutoggle--default-icon[data-v-4f45864b]:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n font-style: normal;\\n font-weight: 400;\\n content: \\\"\\\";\\n}\\n.action-item__menutoggle--default-icon[data-v-4f45864b]::before {\\n font-size: 16px;\\n}\\n.action-item__menutoggle--with-title[data-v-4f45864b] {\\n position: relative;\\n padding-left: 44px;\\n white-space: nowrap;\\n opacity: 1;\\n border: 1px solid var(--color-border-dark);\\n background-color: var(--color-background-dark);\\n background-position: 14px center;\\n font-size: inherit;\\n}\\n.action-item__menutoggle--with-title[data-v-4f45864b]:before {\\n position: absolute;\\n top: 14px;\\n left: 14px;\\n}\\n.action-item__menutoggle--primary[data-v-4f45864b] {\\n opacity: 1;\\n color: var(--color-primary-text);\\n border: none;\\n background-color: var(--color-primary-element);\\n}\\n.action-item--open .action-item__menutoggle--primary[data-v-4f45864b], .action-item__menutoggle--primary[data-v-4f45864b]:hover, .action-item__menutoggle--primary[data-v-4f45864b]:focus, .action-item__menutoggle--primary[data-v-4f45864b]:active {\\n color: var(--color-primary-text) !important;\\n background-color: var(--color-primary-element-light) !important;\\n}\\n.action-item--single[data-v-4f45864b] {\\n opacity: 0.7;\\n}\\n.action-item--single[data-v-4f45864b]:hover, .action-item--single[data-v-4f45864b]:focus, .action-item--single[data-v-4f45864b]:active {\\n opacity: 1;\\n}\\n.action-item--single > [hidden][data-v-4f45864b] {\\n display: none;\\n}\\n.ie .action-item__menu[data-v-4f45864b],\\n.ie .action-item__menu .action-item__menu_arrow[data-v-4f45864b],\\n.edge .action-item__menu[data-v-4f45864b],\\n.edge .action-item__menu .action-item__menu_arrow[data-v-4f45864b] {\\n border: 1px solid var(--color-border);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./Actions.vue\",\"webpack://./../../assets/variables.scss\",\"webpack://./../../fonts/scss/iconfont-vue.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;ACAhB;;;;;;;;;;;;;;;;;;;;EDqBE;AEsEA;EACC,mCAAmC;EACnC,4CAAuC;EAAE,qBAAA;EACzC,mPAGmD;EAAE,eAAA;AAAgB;AAMtE;EACE,kBAAkB;EAClB,gBAAgB;AAAA;AAFlB;IAMM,mCAAmC;IACnC,YA5Ge;AAAO;AAqG5B;IAMM,mCAAmC;IACnC,YA3GQ;AAAO;AAoGrB;IAMM,mCAAmC;IACnC,YA1GgB;AAAO;AAmG7B;IAMM,mCAAmC;IACnC,YAzGS;AAAO;AAkGtB;IAMM,mCAAmC;IACnC,YAxGQ;AAAO;AAiGrB;IAMM,mCAAmC;IACnC,YAvGO;AAAO;AAgGpB;IAMM,mCAAmC;IACnC,YAtGG;AAAO;AA+FhB;IAMM,mCAAmC;IACnC,YArGK;AAAO;AA8FlB;IAMM,mCAAmC;IACnC,YApGE;AAAO;AA6Ff;IAMM,mCAAmC;IACnC,YAnGE;AAAO;AA4Ff;IAMM,mCAAmC;IACnC,YAlGE;AAAO;AA2Ff;IAMM,mCAAmC;IACnC,YAjGG;AAAO;AA0FhB;IAMM,mCAAmC;IACnC,YAhGE;AAAO;AAyFf;IAMM,mCAAmC;IACnC,YA/FQ;AAAO;AAwFrB;IAMM,mCAAmC;IACnC,YA9Fc;AAAO;AAuF3B;IAMM,mCAAmC;IACnC,YA7Fa;AAAO;AAsF1B;IAMM,mCAAmC;IACnC,YA5FmB;AAAO;AAqFhC;IAMM,mCAAmC;IACnC,YA3FgB;AAAO;AF6nB/B;EACC,kBAAkB;EAClB,qBAAqB;AAAA;AAIrB;IAMC,UChnBc;IDknBd,2CC1nBsC;AAAA;AD8nBvC;IAEC,sBAAsB;AAAA;AApBxB;IAwBE,UC5nBc;ID6nBd,2CCznBgD;AAAA;AD6nBjD;IAEC,sBAAsB;IACtB,WAAW;IACX,eCxpBmB;IDypBnB,YCzpBmB;ID0pBnB,SAAS;IACT,aCnpB8C;IDopB9C,eAAe;IACf,YAAY;IACZ,mBAAkC;IAClC,6BAA6B;AAAA;AAI9B;IAEC,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,YCtpBiB;IDupBjB,iBAAiB;IACjB,iBCtqBc;AAAA;AD+pBd;MAWC,WC1qBa;MD2qBb,YC3qBa;MD4qBb,iBC5qBa;AAAA;AD+pBd;MAiBC,WAAW;AAAA;AAGX;ME9nBC,mCAjFmB;MAkFnB,kBAAkB;MAClB,gBAAgB;MAChB,YAzEM;AAAO;AFosBd;MAGC,eCtrBY;AAAA;AD0rBd;MACC,kBAAkB;MAClB,kBChsBkB;MDisBlB,mBAAmB;MACnB,UC/qBa;MDgrBb,0CAA0C;MAE1C,8CAA8C;MAC9C,gCAAwC;MACxC,kBAAkB;AAAA;AATlB;QAYC,kBAAkB;QAClB,SCnsB4C;QDosB5C,UCpsB4C;AAAA;ADwsB9C;MACC,UC9rBa;MD+rBb,gCAAgC;MAChC,YAAY;MACZ,8CAA8C;AAAA;AAC9C;QAIC,2CAA2C;QAC3C,+DAA+D;AAAA;AAKlE;IACC,YC9sBiB;AAAA;AD6sBjB;MAKC,UCjtBa;AAAA;AD4sBd;MASC,aAAa;AAAA;AAKhB;;;;EAIE,qCAAqC;AAAA\",\"sourcesContent\":[\"$scope_version:\\\"84c461f\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n@import '../../fonts/scss/iconfont-vue';\\n\\n.action-item {\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\n\\t// put a grey round background when menu is opened\\n\\t// or hover-focused\\n\\t&--single:hover,\\n\\t&--single:focus,\\n\\t&--single:active,\\n\\t&__menutoggle:hover,\\n\\t&__menutoggle:focus,\\n\\t&__menutoggle:active {\\n\\t\\topacity: $opacity_full;\\n\\t\\t// good looking on dark AND white bg\\n\\t\\tbackground-color: $icon-focus-bg;\\n\\t}\\n\\n\\t// TODO: handle this in the future button component\\n\\t&__menutoggle:disabled,\\n\\t&--single:disabled {\\n\\t\\topacity: .3 !important;\\n\\t}\\n\\n\\t&.action-item--open .action-item__menutoggle {\\n\\t\\topacity: $opacity_full;\\n\\t\\tbackground-color: $action-background-hover;\\n\\t}\\n\\n\\t// icons\\n\\t&--single,\\n\\t&__menutoggle {\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: auto;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: $icon-margin;\\n\\t\\tcursor: pointer;\\n\\t\\tborder: none;\\n\\t\\tborder-radius: $clickable-area / 2;\\n\\t\\tbackground-color: transparent;\\n\\t}\\n\\n\\t// icon-more\\n\\t&__menutoggle {\\n\\t\\t// align menu icon in center\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\topacity: $opacity_normal;\\n\\t\\tfont-weight: bold;\\n\\t\\tline-height: $icon-size;\\n\\n\\t\\t// image slot\\n\\t\\t/deep/ span {\\n\\t\\t\\twidth: $icon-size;\\n\\t\\t\\theight: $icon-size;\\n\\t\\t\\tline-height: $icon-size;\\n\\t\\t}\\n\\n\\t\\t&:before {\\n\\t\\t\\tcontent: '';\\n\\t\\t}\\n\\n\\t\\t&--default-icon {\\n\\t\\t\\t@include iconfont('more');\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tfont-size: $icon-size;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--with-title {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tpadding-left: $clickable-area;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\t\\t// with a title, we need to display this as a real button\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tfont-size: inherit;\\n\\t\\t\\t// non-background icon class\\n\\t\\t\\t&:before {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: $icon-margin;\\n\\t\\t\\t\\tleft: $icon-margin;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--primary {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t.action-item--open &,\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tcolor: var(--color-primary-text) !important;\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element-light) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&--single {\\n\\t\\topacity: $opacity_normal;\\n\\t\\t&:hover,\\n\\t\\t&:focus,\\n\\t\\t&:active {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t\\t// hide anything the slot is displaying\\n\\t\\t& > [hidden] {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ie,\\n.edge {\\n\\t.action-item__menu,\\n\\t.action-item__menu .action-item__menu_arrow {\\n\\t\\tborder: 1px solid var(--color-border);\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\",\"$__iconfont__data: map-merge(if(global_variable_exists('__iconfont__data'), $__iconfont__data, ()), (\\n\\t\\\"iconfont-vue-84c461f\\\": (\\n\\t\\t\\\"arrow-left-double\\\": \\\"\\\\ea01\\\",\\n\\t\\t\\\"arrow-left\\\": \\\"\\\\ea02\\\",\\n\\t\\t\\\"arrow-right-double\\\": \\\"\\\\ea03\\\",\\n\\t\\t\\\"arrow-right\\\": \\\"\\\\ea04\\\",\\n\\t\\t\\\"breadcrumb\\\": \\\"\\\\ea05\\\",\\n\\t\\t\\\"checkmark\\\": \\\"\\\\ea06\\\",\\n\\t\\t\\\"close\\\": \\\"\\\\ea07\\\",\\n\\t\\t\\\"confirm\\\": \\\"\\\\ea08\\\",\\n\\t\\t\\\"info\\\": \\\"\\\\ea09\\\",\\n\\t\\t\\\"menu\\\": \\\"\\\\ea0a\\\",\\n\\t\\t\\\"more\\\": \\\"\\\\ea0b\\\",\\n\\t\\t\\\"pause\\\": \\\"\\\\ea0c\\\",\\n\\t\\t\\\"play\\\": \\\"\\\\ea0d\\\",\\n\\t\\t\\\"triangle-s\\\": \\\"\\\\ea0e\\\",\\n\\t\\t\\\"user-status-away\\\": \\\"\\\\ea0f\\\",\\n\\t\\t\\\"user-status-dnd\\\": \\\"\\\\ea10\\\",\\n\\t\\t\\\"user-status-invisible\\\": \\\"\\\\ea11\\\",\\n\\t\\t\\\"user-status-online\\\": \\\"\\\\ea12\\\"\\n\\t)\\n));\\n\\n\\n$create-font-face: true !default; // should the @font-face tag get created?\\n\\n// should there be a custom class for each icon? will be .filename\\n$create-icon-classes: true !default; \\n\\n// what is the common class name that icons share? in this case icons need to have .icon.filename in their classes\\n// this requires you to have 2 classes on each icon html element, but reduced redeclaration of the font family\\n// for each icon\\n$icon-common-class: 'icon' !default;\\n\\n// if you whish to prefix your filenames, here you can do so.\\n// if this string stays empty, your classes will use the filename, for example\\n// an icon called star.svg will result in a class called .star\\n// if you use the prefix to be 'icon-' it would result in .icon-star\\n$icon-prefix: '' !default; \\n\\n// helper function to get the correct font group\\n@function iconfont-group($group: null) {\\n @if (null == $group) {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n @if (false == map-has-key($__iconfont__data, $group)) {\\n @warn 'Undefined Iconfont Family!';\\n @return ();\\n }\\n @return map-get($__iconfont__data, $group);\\n}\\n\\n// helper function to get the correct icon of a group\\n@function iconfont-item($name) {\\n $slash: str-index($name, '/');\\n $group: null;\\n @if ($slash) {\\n $group: str-slice($name, 0, $slash - 1);\\n $name: str-slice($name, $slash + 1);\\n } @else {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n $group: iconfont-group($group);\\n @if (false == map-has-key($group, $name)) {\\n @warn 'Undefined Iconfont Glyph!';\\n @return '';\\n }\\n @return map-get($group, $name);\\n}\\n\\n// complete mixing to include the icon\\n// usage:\\n// .my_icon{ @include iconfont('star') }\\n@mixin iconfont($icon) {\\n $slash: str-index($icon, '/');\\n $group: null;\\n @if ($slash) {\\n $group: str-slice($icon, 0, $slash - 1);\\n } @else {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n &:before {\\n font-family: $group;\\n font-style: normal;\\n font-weight: 400;\\n content: iconfont-item($icon);\\n }\\n}\\n\\n// creates the font face tag if the variable is set to true (default)\\n@if $create-font-face == true {\\n @font-face {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n src: url('../iconfont-vue-84c461f.eot'); /* IE9 Compat Modes */\\n src: url('../iconfont-vue-84c461f.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */\\n url('../iconfont-vue-84c461f.woff') format('woff'), /* Pretty Modern Browsers */\\n url('../iconfont-vue-84c461f.ttf') format('truetype'), /* Safari, Android, iOS */\\n url('../iconfont-vue-84c461f.svg') format('svg'); /* Legacy iOS */\\n }\\n}\\n\\n// creates icon classes for each individual loaded svg (default)\\n@if $create-icon-classes == true {\\n .#{$icon-common-class} {\\n font-style: normal;\\n font-weight: 400;\\n\\n @each $icon, $content in map-get($__iconfont__data, \\\"iconfont-vue-84c461f\\\") {\\n &.#{$icon-prefix}#{$icon}:before {\\n font-family: \\\"iconfont-vue-84c461f\\\";\\n content: iconfont-item(\\\"iconfont-vue-84c461f/#{$icon}\\\");\\n }\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true&\":\n/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true& ***!\n \\************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__);\n/* 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\");\n/* 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__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n/*\\n\\tSidebar: to be used within #content\\n\\tapp-content will be shrinked properly\\n*/\\n.app-sidebar[data-v-4a2a5f2f] {\\n position: -webkit-sticky;\\n position: sticky;\\n z-index: 1500;\\n top: var(--header-height);\\n right: 0;\\n display: flex;\\n overflow-x: hidden;\\n overflow-y: auto;\\n flex-direction: column;\\n flex-shrink: 0;\\n width: 27vw;\\n min-width: 300px;\\n max-width: 500px;\\n height: calc(100vh - var(--header-height));\\n border-left: 1px solid var(--color-border);\\n background: var(--color-main-background);\\n}\\n.app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-4a2a5f2f] {\\n position: absolute;\\n z-index: 100;\\n top: 6px;\\n right: 6px;\\n width: 44px;\\n height: 44px;\\n opacity: 0.7;\\n border-radius: 22px;\\n}\\n.app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-4a2a5f2f]:hover, .app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-4a2a5f2f]:active, .app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-4a2a5f2f]:focus {\\n opacity: 1;\\n background-color: rgba(127, 127, 127, 0.25);\\n}\\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info[data-v-4a2a5f2f] {\\n flex-direction: row;\\n}\\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-4a2a5f2f] {\\n z-index: 2;\\n width: 70px;\\n height: 70px;\\n margin: 9px;\\n border-radius: 3px;\\n flex: 0 0 auto;\\n}\\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc[data-v-4a2a5f2f] {\\n padding-left: 0;\\n flex: 1 1 auto;\\n min-width: 0;\\n padding-right: 94px;\\n}\\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-4a2a5f2f] {\\n padding-right: 50px;\\n}\\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-4a2a5f2f] {\\n z-index: 3;\\n position: absolute;\\n top: 9px;\\n left: -44px;\\n}\\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__menu[data-v-4a2a5f2f] {\\n top: 6px;\\n right: 50px;\\n background-color: transparent;\\n position: absolute;\\n}\\n.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__menu[data-v-4a2a5f2f] {\\n position: absolute;\\n top: 6px;\\n right: 50px;\\n}\\n.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc[data-v-4a2a5f2f] {\\n padding-right: 94px;\\n}\\n.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-4a2a5f2f] {\\n padding-right: 50px;\\n}\\n.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-4a2a5f2f] {\\n display: flex;\\n flex-direction: column;\\n}\\n.app-sidebar .app-sidebar-header__figure[data-v-4a2a5f2f] {\\n width: 100%;\\n height: 250px;\\n max-height: 250px;\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: contain;\\n}\\n.app-sidebar .app-sidebar-header__figure--with-action[data-v-4a2a5f2f] {\\n cursor: pointer;\\n}\\n.app-sidebar .app-sidebar-header__desc[data-v-4a2a5f2f] {\\n position: relative;\\n display: flex;\\n flex-direction: row;\\n justify-content: center;\\n padding: 18px 6px 18px 9px;\\n}\\n.app-sidebar .app-sidebar-header__desc--with-tertiary-action[data-v-4a2a5f2f] {\\n padding-left: 0;\\n}\\n.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__maintitle-form[data-v-4a2a5f2f],\\n .app-sidebar .app-sidebar-header__desc--with-subtitle--editable .app-sidebar-header__maintitle-form[data-v-4a2a5f2f] {\\n margin-top: -2px;\\n margin-bottom: -2px;\\n}\\n.app-sidebar .app-sidebar-header__desc--with-subtitle--editable .app-sidebar-header__subtitle[data-v-4a2a5f2f] {\\n margin-top: -2px;\\n}\\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-4a2a5f2f] {\\n display: flex;\\n height: 44px;\\n width: 44px;\\n justify-content: center;\\n flex: 0 0 auto;\\n}\\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container[data-v-4a2a5f2f] {\\n flex: 1 1 auto;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n min-width: 0;\\n}\\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle[data-v-4a2a5f2f] {\\n padding: 0;\\n min-height: 30px;\\n font-size: 20px;\\n line-height: 30px;\\n}\\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle[data-v-4a2a5f2f] .linkified {\\n cursor: pointer;\\n text-decoration: underline;\\n}\\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle[data-v-4a2a5f2f],\\n .app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__subtitle[data-v-4a2a5f2f] {\\n overflow: hidden;\\n width: 100%;\\n margin: 0;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__subtitle[data-v-4a2a5f2f] {\\n padding: 0;\\n opacity: 0.7;\\n font-size: var(--default-font-size);\\n}\\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-form[data-v-4a2a5f2f] {\\n display: flex;\\n margin-left: -7.5px;\\n}\\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-form .icon-confirm[data-v-4a2a5f2f] {\\n margin: 0;\\n}\\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__title-container .app-sidebar-header__maintitle-form input.app-sidebar-header__maintitle-input[data-v-4a2a5f2f] {\\n flex: 1 1 auto;\\n margin: 0;\\n padding: 7px;\\n font-size: 20px;\\n font-weight: bold;\\n}\\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__star[data-v-4a2a5f2f] {\\n display: block;\\n width: 44px;\\n height: 44px;\\n padding: 14px;\\n}\\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__menu[data-v-4a2a5f2f] {\\n height: 44px;\\n width: 44px;\\n border-radius: 22px;\\n background-color: rgba(127, 127, 127, 0.25);\\n}\\n.app-sidebar .app-sidebar-header__description[data-v-4a2a5f2f] {\\n display: flex;\\n align-items: center;\\n margin: 0 10px;\\n}\\n.slide-right-leave-active[data-v-4a2a5f2f],\\n.slide-right-enter-active[data-v-4a2a5f2f] {\\n transition-duration: var(--animation-quick);\\n transition-property: max-width, min-width;\\n}\\n.slide-right-enter-to[data-v-4a2a5f2f],\\n.slide-right-leave[data-v-4a2a5f2f] {\\n min-width: 300px;\\n max-width: 500px;\\n}\\n.slide-right-enter[data-v-4a2a5f2f],\\n.slide-right-leave-to[data-v-4a2a5f2f] {\\n min-width: 0 !important;\\n max-width: 0 !important;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./AppSidebar.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;ACAhB;;;;;;;;;;;;;;;;;;;;EDqBE;AAugBF;;;CAngBC;AAugBD;EACC,wBAAwB;EACxB,gBAAgB;EAChB,aAAa;EACb,yBAAyB;EACzB,QAAQ;EACR,aAAa;EACb,kBAAkB;EAClB,gBAAgB;EAChB,sBAAsB;EACtB,cAAc;EACd,WAAW;EACX,gBA7BwB;EA8BxB,gBA7BwB;EA8BxB,0CAA0C;EAC1C,0CAA0C;EAC1C,wCAAwC;AAAA;AAhBzC;IAmBG,kBAAkB;IAClB,YAAY;IACZ,QA3BsB;IA4BtB,UA5BsB;IA6BtB,WC9hBkB;ID+hBlB,YC/hBkB;IDgiBlB,YC9gBgB;ID+gBhB,mBAAkC;AAAA;AA1BrC;MA8BI,UClhBY;MDmhBZ,2CC/gB8C;AAAA;ADgflD;IAsCI,mBAAmB;AAAA;AAtCvB;MAyCK,UAAU;MACV,WAA4C;MAC5C,YAA6C;MAC7C,WAAkC;MAClC,kBAAkB;MAClB,cAAc;AAAA;AA9CnB;MAiDK,eAAe;MACf,cAAc;MACd,YAAY;MACZ,mBAAyD;AAAA;AApD9D;QAuDM,mBAAe;AAAA;AAvDrB;QA2DM,UAAU;QACV,kBAAkB;QAClB,QAA+B;QAC/B,WAA0B;AAAA;AA9DhC;QAiEM,QAvEmB;QAwEnB,WAA6C;QAC7C,6BAA6B;QAC7B,kBAAkB;AAAA;AApExB;IA8EI,kBAAkB;IAClB,QArFqB;IAsFrB,WAA6C;AAAA;AAhFjD;IAoFI,mBAAe;AAAA;AApFnB;MAuFK,mBAAe;AAAA;AAvFpB;IA8FG,aAAa;IACb,sBAAsB;AAAA;AA/FzB;IAoGG,WAAW;IACX,aAAa;IACb,iBAAiB;IACjB,4BAA4B;IAC5B,2BAA2B;IAC3B,wBAAwB;AAAA;AAzG3B;MA2GI,eAAe;AAAA;AA3GnB;IAiHG,kBAAkB;IAClB,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,0BAAkH;AAAA;AArHrH;MAyHI,eAAe;AAAA;AAzHnB;;MA8HI,gBAAgB;MAChB,mBAAmB;AAAA;AA/HvB;MAmII,gBAAgB;AAAA;AAnIpB;MAuII,aAAa;MACb,YC/oBiB;MDgpBjB,WChpBiB;MDipBjB,uBAAuB;MACvB,cAAc;AAAA;AA3IlB;MAgJI,cAAc;MACd,aAAa;MACb,sBAAsB;MACtB,uBAAuB;MACvB,YAAY;AAAA;AApJhB;QAwJK,UAAU;QACV,gBAAgB;QAChB,eAAe;QACf,iBArKmB;AAAA;AAUxB;UA+JM,eAAe;UACf,0BAA0B;AAAA;AAhKhC;;QAsKK,gBAAgB;QAChB,WAAW;QACX,SAAS;QACT,mBAAmB;QACnB,uBAAuB;AAAA;AA1K5B;QA+KK,UAAU;QACV,YCrqBc;QDsqBd,mCAAmC;AAAA;AAjLxC;QAqLK,aAAa;QACb,mBAAmB;AAAA;AAtLxB;UAwLM,SAAS;AAAA;AAxLf;UA4LM,cAAc;UACd,SAAS;UACT,YA3MkB;UA4MlB,eAAe;UACf,iBAAiB;AAAA;AAhMvB;MAuMI,cAAc;MACd,WC/sBiB;MDgtBjB,YChtBiB;MDitBjB,aCzsB4C;AAAA;AD+fhD;MA8MI,YCrtBiB;MDstBjB,WCttBiB;MDutBjB,mBAAkC;MAClC,2CCjsB8C;AAAA;ADgflD;IAuNG,aAAa;IACb,mBAAmB;IACnB,cAAc;AAAA;AAKjB;;EAEC,2CAA2C;EAC3C,yCAAyC;AAAA;AAG1C;;EAEC,gBAvPwB;EAwPxB,gBAvPwB;AAAA;AA0PzB;;EAEC,uBAAuB;EACvB,uBAAuB;AAAA\",\"sourcesContent\":[\"$scope_version:\\\"84c461f\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n$sidebar-min-width: 300px;\\n$sidebar-max-width: 500px;\\n\\n$desc-vertical-padding: 18px;\\n$desc-input-padding: 7px;\\n\\n// title and subtitle\\n$desc-title-height: 30px;\\n$desc-subtitle-height: 22px;\\n$desc-height: $desc-title-height + $desc-subtitle-height;\\n\\n$top-buttons-spacing: 6px;\\n\\n/*\\n\\tSidebar: to be used within #content\\n\\tapp-content will be shrinked properly\\n*/\\n.app-sidebar {\\n\\tposition: -webkit-sticky; // Safari support\\n\\tposition: sticky;\\n\\tz-index: 1500;\\n\\ttop: var(--header-height);\\n\\tright: 0;\\n\\tdisplay: flex;\\n\\toverflow-x: hidden;\\n\\toverflow-y: auto;\\n\\tflex-direction: column;\\n\\tflex-shrink: 0;\\n\\twidth: 27vw;\\n\\tmin-width: $sidebar-min-width;\\n\\tmax-width: $sidebar-max-width;\\n\\theight: calc(100vh - var(--header-height));\\n\\tborder-left: 1px solid var(--color-border);\\n\\tbackground: var(--color-main-background);\\n\\t.app-sidebar-header {\\n\\t\\t> .app-sidebar__close {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tz-index: 100;\\n\\t\\t\\ttop: $top-buttons-spacing;\\n\\t\\t\\tright: $top-buttons-spacing;\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tborder-radius: $clickable-area / 2;\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:active,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\tbackground-color: $action-background-hover;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Compact mode only affects a sidebar with a figure\\n\\t\\t&--compact.app-sidebar-header--with-figure {\\n\\t\\t\\t.app-sidebar-header__info {\\n\\t\\t\\t\\tflex-direction: row;\\n\\n\\t\\t\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\t\\t\\tz-index: 2;\\n\\t\\t\\t\\t\\twidth: $desc-height + $desc-vertical-padding;\\n\\t\\t\\t\\t\\theight: $desc-height + $desc-vertical-padding;\\n\\t\\t\\t\\t\\tmargin: $desc-vertical-padding / 2;\\n\\t\\t\\t\\t\\tborder-radius: 3px;\\n\\t\\t\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t.app-sidebar-header__desc {\\n\\t\\t\\t\\t\\tpadding-left: 0;\\n\\t\\t\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\t\\tpadding-right: 2 * $clickable-area + $top-buttons-spacing;\\n\\n\\t\\t\\t\\t\\t&.app-sidebar-header__desc--without-actions {\\n\\t\\t\\t\\t\\t\\tpadding-right: #{$clickable-area + $top-buttons-spacing};\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t.app-sidebar-header__tertiary-actions {\\n\\t\\t\\t\\t\\t\\tz-index: 3; // above star\\n\\t\\t\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\t\\t\\ttop: $desc-vertical-padding / 2;\\n\\t\\t\\t\\t\\t\\tleft: -1 * $clickable-area;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t.app-sidebar-header__menu {\\n\\t\\t\\t\\t\\t\\ttop: $top-buttons-spacing;\\n\\t\\t\\t\\t\\t\\tright: $clickable-area + $top-buttons-spacing; // left of the close button\\n\\t\\t\\t\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// sidebar without figure\\n\\t\\t&:not(.app-sidebar-header--with-figure) {\\n\\t\\t\\t// align the menu with the close button\\n\\t\\t\\t.app-sidebar-header__menu {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: $top-buttons-spacing;\\n\\t\\t\\t\\tright: $top-buttons-spacing + $clickable-area;\\n\\t\\t\\t}\\n\\t\\t\\t// increase the padding to not overlap the menu\\n\\t\\t\\t.app-sidebar-header__desc {\\n\\t\\t\\t\\tpadding-right: #{$clickable-area * 2 + $top-buttons-spacing};\\n\\n\\t\\t\\t\\t&.app-sidebar-header__desc--without-actions {\\n\\t\\t\\t\\t\\tpadding-right: #{$clickable-area + $top-buttons-spacing};\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// the container with the figure and the description\\n\\t\\t.app-sidebar-header__info {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t}\\n\\n\\t\\t// header background\\n\\t\\t&__figure {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 250px;\\n\\t\\t\\tmax-height: 250px;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-size: contain;\\n\\t\\t\\t&--with-action {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// description\\n\\t\\t&__desc {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tpadding: #{$desc-vertical-padding} #{$top-buttons-spacing} #{$desc-vertical-padding} #{$desc-vertical-padding / 2};\\n\\n\\t\\t\\t// custom overrides\\n\\t\\t\\t&--with-tertiary-action {\\n\\t\\t\\t\\tpadding-left: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--editable .app-sidebar-header__maintitle-form,\\n\\t\\t\\t&--with-subtitle--editable .app-sidebar-header__maintitle-form {\\n\\t\\t\\t\\tmargin-top: -2px;\\n\\t\\t\\t\\tmargin-bottom: -2px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--with-subtitle--editable .app-sidebar-header__subtitle {\\n\\t\\t\\t\\tmargin-top: -2px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.app-sidebar-header__tertiary-actions {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// titles\\n\\t\\t\\t.app-sidebar-header__title-container {\\n\\t\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tflex-direction: column;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\tmin-width: 0;\\n\\n\\t\\t\\t\\t// main title\\n\\t\\t\\t\\t.app-sidebar-header__maintitle {\\n\\t\\t\\t\\t\\tpadding: 0;\\n\\t\\t\\t\\t\\tmin-height: 30px;\\n\\t\\t\\t\\t\\tfont-size: 20px;\\n\\t\\t\\t\\t\\tline-height: $desc-title-height;\\n\\n\\t\\t\\t\\t\\t// Needs 'deep' as the link is generated by the linkify directive\\n\\t\\t\\t\\t\\t&::v-deep .linkified {\\n\\t\\t\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\t\\t\\ttext-decoration: underline;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.app-sidebar-header__maintitle,\\n\\t\\t\\t\\t.app-sidebar-header__subtitle {\\n\\t\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// subtitle\\n\\t\\t\\t\\t.app-sidebar-header__subtitle {\\n\\t\\t\\t\\t\\tpadding: 0;\\n\\t\\t\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\t\\t\\tfont-size: var(--default-font-size);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.app-sidebar-header__maintitle-form {\\n\\t\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\t\\tmargin-left: -7.5px;\\n\\t\\t\\t\\t\\t& .icon-confirm {\\n\\t\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\tinput.app-sidebar-header__maintitle-input {\\n\\t\\t\\t\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\t\\tpadding: $desc-input-padding;\\n\\t\\t\\t\\t\\t\\tfont-size: 20px;\\n\\t\\t\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t// favourite\\n\\t\\t\\t.app-sidebar-header__star {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\tpadding: $icon-margin;\\n\\t\\t\\t}\\n\\t\\t\\t// main menu\\n\\t\\t\\t.app-sidebar-header__menu {\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\tborder-radius: $clickable-area / 2;\\n\\t\\t\\t\\tbackground-color: $action-background-hover;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// sidebar description slot\\n\\t\\t&__description {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmargin: 0 10px;\\n\\t\\t}\\n\\t}\\n}\\n\\n.slide-right-leave-active,\\n.slide-right-enter-active {\\n\\ttransition-duration: var(--animation-quick);\\n\\ttransition-property: max-width, min-width;\\n}\\n\\n.slide-right-enter-to,\\n.slide-right-leave {\\n\\tmin-width: $sidebar-min-width;\\n\\tmax-width: $sidebar-max-width;\\n}\\n\\n.slide-right-enter,\\n.slide-right-leave-to {\\n\\tmin-width: 0 !important;\\n\\tmax-width: 0 !important;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=1&lang=scss&\":\n/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=1&lang=scss& ***!\n \\************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__);\n/* 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\");\n/* 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__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.app-sidebar-header__description button, .app-sidebar-header__description .button,\\n.app-sidebar-header__description input[type='button'],\\n.app-sidebar-header__description input[type='submit'],\\n.app-sidebar-header__description input[type='reset'] {\\n padding: 6px 22px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./AppSidebar.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;ACAhB;;;;;;;;;;;;;;;;;;;;EDqBE;AA+vBF;;;;EAKE,iBAAiB;AAAA\",\"sourcesContent\":[\"$scope_version:\\\"84c461f\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n// ! slots specific designs, cannot be scoped\\n// if any button inside the description slot, increase visual padding\\n.app-sidebar-header__description {\\n\\tbutton, .button,\\n\\tinput[type='button'],\\n\\tinput[type='submit'],\\n\\tinput[type='reset'] {\\n\\t\\tpadding: 6px 22px;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true&\":\n/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true& ***!\n \\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__);\n/* 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\");\n/* 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__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.app-sidebar-tabs[data-v-5772e44d] {\\n display: flex;\\n flex-direction: column;\\n min-height: 0;\\n flex: 1 1 100%;\\n}\\n.app-sidebar-tabs__nav[data-v-5772e44d] {\\n margin-top: 10px;\\n}\\n.app-sidebar-tabs__nav ul[data-v-5772e44d] {\\n display: flex;\\n justify-content: stretch;\\n}\\n.app-sidebar-tabs__tab[data-v-5772e44d] {\\n display: block;\\n flex: 1 1;\\n min-width: 0;\\n text-align: center;\\n}\\n.app-sidebar-tabs__tab a[data-v-5772e44d] {\\n position: relative;\\n display: block;\\n overflow: hidden;\\n padding: 25px 5px 5px 5px;\\n transition: color var(--animation-quick), opacity var(--animation-quick), border-color var(--animation-quick);\\n text-align: center;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n opacity: 0.7;\\n color: var(--color-main-text);\\n border-bottom: 1px solid var(--color-border);\\n}\\n.app-sidebar-tabs__tab a[data-v-5772e44d]:hover, .app-sidebar-tabs__tab a[data-v-5772e44d]:focus, .app-sidebar-tabs__tab a[data-v-5772e44d]:active, .app-sidebar-tabs__tab a.active[data-v-5772e44d] {\\n opacity: 1;\\n}\\n.app-sidebar-tabs__tab a:hover .app-sidebar-tabs__tab-icon[data-v-5772e44d], .app-sidebar-tabs__tab a:focus .app-sidebar-tabs__tab-icon[data-v-5772e44d], .app-sidebar-tabs__tab a:active .app-sidebar-tabs__tab-icon[data-v-5772e44d], .app-sidebar-tabs__tab a.active .app-sidebar-tabs__tab-icon[data-v-5772e44d] {\\n opacity: 1;\\n}\\n.app-sidebar-tabs__tab a[data-v-5772e44d]:not(.active):hover, .app-sidebar-tabs__tab a[data-v-5772e44d]:not(.active):focus {\\n border-bottom-color: var(--color-background-darker);\\n box-shadow: inset 0 -1px 0 var(--color-background-darker);\\n}\\n.app-sidebar-tabs__tab a.active[data-v-5772e44d] {\\n color: var(--color-text-light);\\n border-bottom-color: var(--color-text-light);\\n box-shadow: inset 0 -1px 0 var(--color-text-light);\\n font-weight: bold;\\n}\\n.app-sidebar-tabs__tab a[data-v-5772e44d]:focus {\\n border-bottom-color: var(--color-primary-element);\\n box-shadow: inset 0 -1px 0 var(--color-primary-element);\\n}\\n.app-sidebar-tabs__tab-icon[data-v-5772e44d] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 25px;\\n transition: opacity var(--animation-quick);\\n opacity: 0.7;\\n background-position: center 8px;\\n background-size: 16px;\\n}\\n.app-sidebar-tabs__content[data-v-5772e44d] {\\n position: relative;\\n min-height: 0;\\n height: 100%;\\n}\\n.app-sidebar-tabs__content--multiple[data-v-5772e44d] > :not(section) {\\n display: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./AppSidebarTabs.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;ACAhB;;;;;;;;;;;;;;;;;;;;EDqBE;AAkPF;EACC,aAAa;EACb,sBAAsB;EACtB,aAAa;EACb,cAAc;AAAA;AAEd;IACC,gBAAgB;AAAA;AADhB;MAGC,aAAa;MACb,wBAAwB;AAAA;AAG1B;IACC,cAAc;IACd,SAAS;IACT,YAAY;IACZ,kBAAkB;AAAA;AAJlB;MAMC,kBAAkB;MAClB,cAAc;MACd,gBAAgB;MAChB,yBAAyB;MACzB,6GAA6G;MAC7G,kBAAkB;MAClB,mBAAmB;MACnB,uBAAuB;MACvB,YCvPgB;MDwPhB,6BAA6B;MAC7B,4CAA4C;AAAA;AAhB7C;QAsBE,UC9PY;AAAA;ADwOd;UAwBG,UChQW;AAAA;ADwOd;QA6BE,mDAAmD;QACnD,yDAAyD;AAAA;AA9B3D;QAiCE,8BAA8B;QAC9B,4CAA4C;QAC5C,kDAAkD;QAClD,iBAAiB;AAAA;AApCnB;QA0CE,iDAAiD;QACjD,uDAAuD;AAAA;AAK1D;IACC,kBAAkB;IAClB,MAAM;IACN,OAAO;IACP,WAAW;IACX,YAAY;IACZ,0CAA0C;IAC1C,YChSiB;IDiSjB,+BAA+B;IAC/B,qBAAqB;AAAA;AAGtB;IACC,kBAAkB;IAElB,aAAa;IACb,YAAY;AAAA;AAGZ;MACC,aAAa;AAAA\",\"sourcesContent\":[\"$scope_version:\\\"84c461f\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.app-sidebar-tabs {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmin-height: 0;\\n\\tflex: 1 1 100%;\\n\\n\\t&__nav {\\n\\t\\tmargin-top: 10px;\\n\\t\\tul {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: stretch;\\n\\t\\t}\\n\\t}\\n\\t&__tab {\\n\\t\\tdisplay: block;\\n\\t\\tflex: 1 1;\\n\\t\\tmin-width: 0;\\n\\t\\ttext-align: center;\\n\\t\\ta {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tpadding: 25px 5px 5px 5px;\\n\\t\\t\\ttransition: color var(--animation-quick), opacity var(--animation-quick), border-color var(--animation-quick);\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active,\\n\\t\\t\\t&.active {\\n\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t.app-sidebar-tabs__tab-icon {\\n\\t\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&:not(.active):hover,\\n\\t\\t\\t&:not(.active):focus {\\n\\t\\t\\t\\tborder-bottom-color: var(--color-background-darker);\\n\\t\\t\\t\\tbox-shadow: inset 0 -1px 0 var(--color-background-darker);\\n\\t\\t\\t}\\n\\t\\t\\t&.active {\\n\\t\\t\\t\\tcolor: var(--color-text-light);\\n\\t\\t\\t\\tborder-bottom-color: var(--color-text-light);\\n\\t\\t\\t\\tbox-shadow: inset 0 -1px 0 var(--color-text-light);\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\t\\t\\t// differentiate the two for accessibility purpose\\n\\t\\t\\t// make sure the user knows she's focusing the navigation\\n\\t\\t\\t// and can use arrows/home/pageup...\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tborder-bottom-color: var(--color-primary-element);\\n\\t\\t\\t\\tbox-shadow: inset 0 -1px 0 var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__tab-icon {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\twidth: 100%;\\n\\t\\theight: 25px;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\topacity: $opacity_normal;\\n\\t\\tbackground-position: center 8px;\\n\\t\\tbackground-size: 16px;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tposition: relative;\\n\\t\\t// take full available height\\n\\t\\tmin-height: 0;\\n\\t\\theight: 100%;\\n\\t\\t// force the use of the tab component if more than one tab\\n\\t\\t// you can just put raw content if you don't use tabs\\n\\t\\t&--multiple > :not(section) {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/EmptyContent/EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true&\":\n/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmptyContent/EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true& ***!\n \\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__);\n/* 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\");\n/* 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__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.empty-content[data-v-a68b8462] {\\n display: flex;\\n align-items: center;\\n flex-direction: column;\\n margin-top: 20vh;\\n}\\n.empty-content__icon[data-v-a68b8462] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 64px;\\n height: 64px;\\n margin: 0 auto 15px;\\n opacity: .4;\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: 64px;\\n}\\n.empty-content__icon svg[data-v-a68b8462] {\\n width: 64px;\\n height: 64px;\\n}\\n.empty-content__title[data-v-a68b8462] {\\n margin-bottom: 10px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./EmptyContent.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;ACAhB;;;;;;;;;;;;;;;;;;;;EDqBE;AAsEF;EACC,aAAa;EACb,mBAAmB;EACnB,sBAAsB;EACtB,gBAAgB;AAAA;AAEhB;IACC,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,WAAW;IACX,YAAY;IACZ,mBAAmB;IACnB,WAAW;IACX,4BAA4B;IAC5B,2BAA2B;IAC3B,qBAAqB;AAAA;AAVrB;MAaC,WAAW;MACX,YAAY;AAAA;AAId;IACC,mBAAmB;AAAA\",\"sourcesContent\":[\"$scope_version:\\\"84c461f\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.empty-content {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tflex-direction: column;\\n\\tmargin-top: 20vh;\\n\\n\\t&__icon {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 64px;\\n\\t\\theight: 64px;\\n\\t\\tmargin: 0 auto 15px;\\n\\t\\topacity: .4;\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: 64px;\\n\\n\\t\\tsvg {\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__title {\\n\\t\\tmargin-bottom: 10px;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Popover/Popover.vue?vue&type=style&index=0&lang=scss&\":\n/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Popover/Popover.vue?vue&type=style&index=0&lang=scss& ***!\n \\******************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__);\n/* 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\");\n/* 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__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.popover {\\n z-index: 100000;\\n display: block !important;\\n filter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n}\\n.popover__inner {\\n padding: 0;\\n color: var(--color-main-text);\\n border-radius: var(--border-radius);\\n background: var(--color-main-background);\\n}\\n.popover__arrow {\\n position: absolute;\\n z-index: 1;\\n width: 0;\\n height: 0;\\n margin: 10px;\\n border-style: solid;\\n border-color: var(--color-main-background);\\n}\\n.popover[x-placement^='top'] {\\n margin-bottom: 10px;\\n}\\n.popover[x-placement^='top'] .popover__arrow {\\n bottom: -10px;\\n left: calc(50% - $arrow-width);\\n margin-top: 0;\\n margin-bottom: 0;\\n border-width: 10px 10px 0 10px;\\n border-right-color: transparent !important;\\n border-bottom-color: transparent !important;\\n border-left-color: transparent !important;\\n}\\n.popover[x-placement^='bottom'] {\\n margin-top: 10px;\\n}\\n.popover[x-placement^='bottom'] .popover__arrow {\\n top: -10px;\\n left: calc(50% - $arrow-width);\\n margin-top: 0;\\n margin-bottom: 0;\\n border-width: 0 10px 10px 10px;\\n border-top-color: transparent !important;\\n border-right-color: transparent !important;\\n border-left-color: transparent !important;\\n}\\n.popover[x-placement^='right'] {\\n margin-left: 10px;\\n}\\n.popover[x-placement^='right'] .popover__arrow {\\n top: calc(50% - $arrow-width);\\n left: -10px;\\n margin-right: 0;\\n margin-left: 0;\\n border-width: 10px 10px 10px 0;\\n border-top-color: transparent !important;\\n border-bottom-color: transparent !important;\\n border-left-color: transparent !important;\\n}\\n.popover[x-placement^='left'] {\\n margin-right: 10px;\\n}\\n.popover[x-placement^='left'] .popover__arrow {\\n top: calc(50% - $arrow-width);\\n right: -10px;\\n margin-right: 0;\\n margin-left: 0;\\n border-width: 10px 0 10px 10px;\\n border-top-color: transparent !important;\\n border-right-color: transparent !important;\\n border-bottom-color: transparent !important;\\n}\\n.popover[aria-hidden='true'] {\\n visibility: hidden;\\n transition: opacity var(--animation-quick), visibility var(--animation-quick);\\n opacity: 0;\\n}\\n.popover[aria-hidden='false'] {\\n visibility: visible;\\n transition: opacity var(--animation-quick);\\n opacity: 1;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./Popover.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;ACAhB;;;;;;;;;;;;;;;;;;;;EDqBE;AA2FF;EACC,eAAe;EACf,yBAAyB;EAEzB,uDAAuD;AAAA;AAEvD;IACC,UAAU;IACV,6BAA6B;IAC7B,mCAAmC;IACnC,wCAAwC;AAAA;AAGzC;IACC,kBAAkB;IAClB,UAAU;IACV,QAAQ;IACR,SAAS;IACT,YApBgB;IAqBhB,mBAAmB;IACnB,0CAA0C;AAAA;AApB5C;IAwBE,mBA1BgB;AAAA;AAElB;MA2BG,aA7Be;MA8Bf,8BAA8B;MAC9B,aAAa;MACb,gBAAgB;MAChB,8BAjCe;MAkCf,0CAA0C;MAC1C,2CAA2C;MAC3C,yCAAyC;AAAA;AAlC5C;IAuCE,gBAzCgB;AAAA;AAElB;MA0CG,UA5Ce;MA6Cf,8BAA8B;MAC9B,aAAa;MACb,gBAAgB;MAChB,8BAhDe;MAiDf,wCAAwC;MACxC,0CAA0C;MAC1C,yCAAyC;AAAA;AAjD5C;IAsDE,iBAxDgB;AAAA;AAElB;MAyDG,6BAA6B;MAC7B,WA5De;MA6Df,eAAe;MACf,cAAc;MACd,8BAAsD;MACtD,wCAAwC;MACxC,2CAA2C;MAC3C,yCAAyC;AAAA;AAhE5C;IAqEE,kBAvEgB;AAAA;AAElB;MAwEG,6BAA6B;MAC7B,YA3Ee;MA4Ef,eAAe;MACf,cAAc;MACd,8BA9Ee;MA+Ef,wCAAwC;MACxC,0CAA0C;MAC1C,2CAA2C;AAAA;AA/E9C;IAoFE,kBAAkB;IAClB,6EAA6E;IAC7E,UAAU;AAAA;AAtFZ;IA0FE,mBAAmB;IACnB,0CAA0C;IAC1C,UAAU;AAAA\",\"sourcesContent\":[\"$scope_version:\\\"84c461f\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n$arrow-width: 10px;\\n\\n.popover {\\n\\tz-index: 100000;\\n\\tdisplay: block !important;\\n\\n\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t&__inner {\\n\\t\\tpadding: 0;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground: var(--color-main-background);\\n\\t}\\n\\n\\t&__arrow {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: $arrow-width;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: var(--color-main-background);\\n\\t}\\n\\n\\t&[x-placement^='top'] {\\n\\t\\tmargin-bottom: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tleft: calc(50% - $arrow-width);\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='bottom'] {\\n\\t\\tmargin-top: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tleft: calc(50% - $arrow-width);\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='right'] {\\n\\t\\tmargin-left: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: calc(50% - $arrow-width);\\n\\t\\t\\tleft: -$arrow-width;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width $arrow-width 0;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='left'] {\\n\\t\\tmargin-right: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: calc(50% - $arrow-width);\\n\\t\\t\\tright: -$arrow-width;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[aria-hidden='true'] {\\n\\t\\tvisibility: hidden;\\n\\t\\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t&[aria-hidden='false'] {\\n\\t\\tvisibility: visible;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/runtime/api.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/css-loader/dist/runtime/api.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\":\n/*!************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/runtime/cssWithMappingToString.js ***!\n \\************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/runtime/getUrl.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/css-loader/dist/runtime/getUrl.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== \"string\") {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n\n return url;\n};\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Actions/Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true&\":\n/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Actions/Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true& ***!\n \\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* 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\");\n/* 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__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_style_index_0_id_4f45864b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true& */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Actions/Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true&\");\n\n \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_style_index_0_id_4f45864b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_style_index_0_id_4f45864b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true&\":\n/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true& ***!\n \\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* 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\");\n/* 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__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_style_index_0_id_4a2a5f2f_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true& */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true&\");\n\n \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_style_index_0_id_4a2a5f2f_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_style_index_0_id_4a2a5f2f_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=1&lang=scss&\":\n/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=1&lang=scss& ***!\n \\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* 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\");\n/* 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__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebar.vue?vue&type=style&index=1&lang=scss& */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=1&lang=scss&\");\n\n \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true&\":\n/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true& ***!\n \\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* 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\");\n/* 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__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_style_index_0_id_5772e44d_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true& */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true&\");\n\n \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_style_index_0_id_5772e44d_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_style_index_0_id_5772e44d_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/EmptyContent/EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true&\":\n/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmptyContent/EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true& ***!\n \\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* 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\");\n/* 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__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_style_index_0_id_a68b8462_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true& */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/EmptyContent/EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true&\");\n\n \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_style_index_0_id_a68b8462_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_style_index_0_id_a68b8462_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Popover/Popover.vue?vue&type=style&index=0&lang=scss&\":\n/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Popover/Popover.vue?vue&type=style&index=0&lang=scss& ***!\n \\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* 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\");\n/* 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__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./Popover.vue?vue&type=style&index=0&lang=scss& */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Popover/Popover.vue?vue&type=style&index=0&lang=scss&\");\n\n \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\":\n/*!****************************************************************************!*\\\n !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!\n \\****************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = true ? __webpack_require__.nc : undefined;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n/***/ }),\n\n/***/ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Actions/Actions.vue?vue&type=template&id=4f45864b&scoped=true&\":\n/*!*********************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Actions/Actions.vue?vue&type=template&id=4f45864b&scoped=true& ***!\n \\*********************************************************************************************************************************************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _obj, _obj$1\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _vm.isValidSingleAction && !_vm.forceMenu\n ? _c(\n \"element\",\n _vm._b(\n {\n directives: [\n {\n name: \"tooltip\",\n rawName: \"v-tooltip.auto\",\n value: _vm.firstAction.text,\n expression: \"firstAction.text\",\n modifiers: { auto: true }\n }\n ],\n staticClass: \"action-item action-item--single\",\n class:\n ((_obj = {}),\n (_obj[_vm.firstAction.icon] = _vm.firstAction.icon),\n (_obj[_vm.firstActionClass] = _vm.firstActionClass),\n _obj),\n attrs: { rel: \"noreferrer noopener\", disabled: _vm.disabled },\n on: _vm._d({ focus: _vm.onFocus, blur: _vm.onBlur }, [\n _vm.firstActionEventBinding,\n _vm.execFirstAction\n ])\n },\n \"element\",\n _vm.firstActionBinding,\n false\n ),\n [\n _c(\"VNodes\", { attrs: { vnodes: _vm.firstActionIconSlot } }),\n _vm._v(\" \"),\n _c(\n \"span\",\n { attrs: { \"aria-hidden\": true, hidden: \"\" } },\n [_vm._t(\"default\")],\n 2\n )\n ],\n 1\n )\n : _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.hasMultipleActions || _vm.forceMenu,\n expression: \"hasMultipleActions || forceMenu\"\n }\n ],\n staticClass: \"action-item\",\n class: { \"action-item--open\": _vm.opened }\n },\n [\n _c(\n \"Popover\",\n {\n attrs: {\n delay: 0,\n \"handle-resize\": true,\n open: _vm.opened,\n placement: _vm.placement,\n \"boundaries-element\": _vm.boundariesElement,\n container: _vm.container\n },\n on: {\n \"update:open\": function($event) {\n _vm.opened = $event\n },\n show: _vm.openMenu,\n \"after-show\": _vm.onOpen,\n hide: _vm.closeMenu\n }\n },\n [\n _c(\n \"button\",\n {\n ref: \"menuButton\",\n staticClass: \"icon action-item__menutoggle\",\n class:\n ((_obj$1 = {}),\n (_obj$1[_vm.defaultIcon] = !_vm.iconSlotIsPopulated),\n (_obj$1[\"action-item__menutoggle--with-title\"] =\n _vm.menuTitle),\n (_obj$1[\"action-item__menutoggle--primary\"] = _vm.primary),\n _obj$1),\n attrs: {\n slot: \"trigger\",\n disabled: _vm.disabled,\n \"aria-label\": _vm.ariaLabel,\n \"aria-haspopup\": \"true\",\n \"aria-controls\": _vm.randomId,\n \"test-attr\": \"1\",\n \"aria-expanded\": _vm.opened ? \"true\" : \"false\"\n },\n on: { focus: _vm.onFocus, blur: _vm.onBlur },\n slot: \"trigger\"\n },\n [\n _vm._t(\"icon\"),\n _vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.menuTitle) + \"\\n\\t\\t\")\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.opened,\n expression: \"opened\"\n }\n ],\n ref: \"menu\",\n class: { open: _vm.opened },\n attrs: { tabindex: \"-1\" },\n on: {\n keydown: [\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"up\", 38, $event.key, [\n \"Up\",\n \"ArrowUp\"\n ])\n ) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n return _vm.focusPreviousAction($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"down\", 40, $event.key, [\n \"Down\",\n \"ArrowDown\"\n ])\n ) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n return _vm.focusNextAction($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")\n ) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n return _vm.focusNextAction($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")\n ) {\n return null\n }\n if (!$event.shiftKey) {\n return null\n }\n if ($event.ctrlKey || $event.altKey || $event.metaKey) {\n return null\n }\n return _vm.focusPreviousAction($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"page-up\",\n undefined,\n $event.key,\n undefined\n )\n ) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n return _vm.focusFirstAction($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"page-down\",\n undefined,\n $event.key,\n undefined\n )\n ) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n return _vm.focusLastAction($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"esc\", 27, $event.key, [\n \"Esc\",\n \"Escape\"\n ])\n ) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n $event.preventDefault()\n return _vm.closeMenu($event)\n }\n ],\n mousemove: _vm.onMouseFocusAction\n }\n },\n [\n _c(\n \"ul\",\n { attrs: { id: _vm.randomId, tabindex: \"-1\" } },\n [_vm.opened ? [_vm._t(\"default\")] : _vm._e()],\n 2\n )\n ]\n )\n ]\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n/***/ }),\n\n/***/ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=template&id=4a2a5f2f&scoped=true&\":\n/*!***************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebar/AppSidebar.vue?vue&type=template&id=4a2a5f2f&scoped=true& ***!\n \\***************************************************************************************************************************************************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"transition\",\n {\n attrs: { appear: \"\", name: \"slide-right\" },\n on: {\n \"before-enter\": _vm.onBeforeEnter,\n \"after-enter\": _vm.onAfterEnter,\n \"before-leave\": _vm.onBeforeLeave,\n \"after-leave\": _vm.onAfterLeave\n }\n },\n [\n _c(\n \"aside\",\n { staticClass: \"app-sidebar\", attrs: { id: \"app-sidebar-vue\" } },\n [\n _c(\n \"header\",\n {\n staticClass: \"app-sidebar-header\",\n class: {\n \"app-sidebar-header--with-figure\": _vm.hasFigure,\n \"app-sidebar-header--compact\": _vm.compact\n }\n },\n [\n _c(\"a\", {\n directives: [\n {\n name: \"tooltip\",\n rawName: \"v-tooltip.auto\",\n value: _vm.closeTranslated,\n expression: \"closeTranslated\",\n modifiers: { auto: true }\n }\n ],\n staticClass: \"app-sidebar__close icon-close\",\n attrs: { href: \"#\" },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.closeSidebar($event)\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"app-sidebar-header__info\" }, [\n _vm.hasFigure && !_vm.empty\n ? _c(\n \"div\",\n {\n staticClass: \"app-sidebar-header__figure\",\n class: {\n \"app-sidebar-header__figure--with-action\":\n _vm.hasFigureClickListener\n },\n style: {\n backgroundImage: \"url(\" + _vm.background + \")\"\n },\n on: { click: _vm.onFigureClick }\n },\n [_vm._t(\"header\")],\n 2\n )\n : _vm._e(),\n _vm._v(\" \"),\n !_vm.empty\n ? _c(\n \"div\",\n {\n staticClass: \"app-sidebar-header__desc\",\n class: {\n \"app-sidebar-header__desc--with-tertiary-action\":\n _vm.canStar || _vm.$slots[\"tertiary-actions\"],\n \"app-sidebar-header__desc--editable\":\n _vm.titleEditable && !_vm.subtitle,\n \"app-sidebar-header__desc--with-subtitle--editable\":\n _vm.titleEditable && _vm.subtitle,\n \"app-sidebar-header__desc--without-actions\": !_vm\n .$slots[\"secondary-actions\"]\n }\n },\n [\n _vm.canStar || _vm.$slots[\"tertiary-actions\"]\n ? _c(\n \"div\",\n {\n staticClass:\n \"app-sidebar-header__tertiary-actions\"\n },\n [\n _vm._t(\"tertiary-actions\", [\n _vm.canStar\n ? _c(\"a\", {\n staticClass: \"app-sidebar-header__star\",\n class: {\n \"icon-starred\":\n _vm.isStarred && !_vm.starLoading,\n \"icon-star\":\n !_vm.isStarred && !_vm.starLoading,\n \"icon-loading-small\": _vm.starLoading\n },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.toggleStarred($event)\n }\n }\n })\n : _vm._e()\n ])\n ],\n 2\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"app-sidebar-header__title-container\"\n },\n [\n _c(\n \"h2\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.titleEditable,\n expression: \"!titleEditable\"\n },\n {\n name: \"linkify\",\n rawName: \"v-linkify\",\n value: {\n text: _vm.title,\n linkify: _vm.linkifyTitle\n },\n expression:\n \"{text: title, linkify: linkifyTitle}\"\n },\n {\n name: \"tooltip\",\n rawName: \"v-tooltip.auto\",\n value: _vm.titleTooltip,\n expression: \"titleTooltip\",\n modifiers: { auto: true }\n }\n ],\n staticClass: \"app-sidebar-header__maintitle\",\n on: {\n click: function($event) {\n if (\n $event.target !== $event.currentTarget\n ) {\n return null\n }\n return _vm.editTitle($event)\n }\n }\n },\n [\n _vm._v(\n \"\\n\\t\\t\\t\\t\\t\\t\\t\" +\n _vm._s(_vm.title) +\n \"\\n\\t\\t\\t\\t\\t\\t\"\n )\n ]\n ),\n _vm._v(\" \"),\n _vm.titleEditable\n ? [\n _c(\n \"form\",\n {\n directives: [\n {\n name: \"click-outside\",\n rawName: \"v-click-outside\",\n value: function() {\n return _vm.onSubmitTitle()\n },\n expression: \"() => onSubmitTitle()\"\n }\n ],\n staticClass:\n \"app-sidebar-header__maintitle-form\",\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.onSubmitTitle($event)\n }\n }\n },\n [\n _c(\"input\", {\n directives: [\n { name: \"focus\", rawName: \"v-focus\" }\n ],\n ref: \"titleInput\",\n staticClass:\n \"app-sidebar-header__maintitle-input\",\n attrs: {\n type: \"text\",\n placeholder: _vm.titlePlaceholder\n },\n domProps: { value: _vm.title },\n on: {\n keydown: function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k(\n $event.keyCode,\n \"esc\",\n 27,\n $event.key,\n [\"Esc\", \"Escape\"]\n )\n ) {\n return null\n }\n return _vm.onDismissEditing($event)\n },\n input: _vm.onTitleInput\n }\n }),\n _vm._v(\" \"),\n _c(\"button\", {\n staticClass: \"icon-confirm\",\n attrs: { type: \"submit\" }\n })\n ]\n )\n ]\n : _vm._e(),\n _vm._v(\" \"),\n _vm.subtitle.trim() !== \"\"\n ? _c(\n \"p\",\n {\n directives: [\n {\n name: \"tooltip\",\n rawName: \"v-tooltip.auto\",\n value: _vm.subtitleTooltip,\n expression: \"subtitleTooltip\",\n modifiers: { auto: true }\n }\n ],\n staticClass: \"app-sidebar-header__subtitle\"\n },\n [\n _vm._v(\n \"\\n\\t\\t\\t\\t\\t\\t\\t\" +\n _vm._s(_vm.subtitle) +\n \"\\n\\t\\t\\t\\t\\t\\t\"\n )\n ]\n )\n : _vm._e()\n ],\n 2\n ),\n _vm._v(\" \"),\n _vm.$slots[\"secondary-actions\"]\n ? _c(\n \"Actions\",\n {\n staticClass: \"app-sidebar-header__menu\",\n attrs: { \"force-menu\": _vm.forceMenu }\n },\n [_vm._t(\"secondary-actions\")],\n 2\n )\n : _vm._e()\n ],\n 1\n )\n : _vm._e()\n ]),\n _vm._v(\" \"),\n _vm.$slots[\"description\"] && !_vm.empty\n ? _c(\n \"div\",\n { staticClass: \"app-sidebar-header__description\" },\n [_vm._t(\"description\")],\n 2\n )\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"AppSidebarTabs\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.loading,\n expression: \"!loading\"\n }\n ],\n ref: \"tabs\",\n attrs: { active: _vm.active },\n on: { \"update:active\": _vm.onUpdateActive }\n },\n [_vm._t(\"default\")],\n 2\n ),\n _vm._v(\" \"),\n _vm.loading\n ? _c(\"EmptyContent\", { attrs: { icon: \"icon-loading\" } })\n : _vm._e()\n ],\n 1\n )\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n/***/ }),\n\n/***/ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=template&id=5772e44d&scoped=true&\":\n/*!*******************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=template&id=5772e44d&scoped=true& ***!\n \\*******************************************************************************************************************************************************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"app-sidebar-tabs\" }, [\n _vm.hasMultipleTabs\n ? _c(\n \"nav\",\n {\n staticClass: \"app-sidebar-tabs__nav\",\n on: {\n keydown: [\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"left\", 37, $event.key, [\n \"Left\",\n \"ArrowLeft\"\n ])\n ) {\n return null\n }\n if (\"button\" in $event && $event.button !== 0) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n $event.preventDefault()\n return _vm.focusPreviousTab($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"right\", 39, $event.key, [\n \"Right\",\n \"ArrowRight\"\n ])\n ) {\n return null\n }\n if (\"button\" in $event && $event.button !== 2) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n $event.preventDefault()\n return _vm.focusNextTab($event)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")\n ) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n $event.preventDefault()\n return _vm.focusActiveTabContent($event)\n },\n function($event) {\n if (!$event.type.indexOf(\"key\") && $event.keyCode !== 33) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n $event.preventDefault()\n return _vm.focusFirstTab($event)\n },\n function($event) {\n if (!$event.type.indexOf(\"key\") && $event.keyCode !== 34) {\n return null\n }\n if (\n $event.ctrlKey ||\n $event.shiftKey ||\n $event.altKey ||\n $event.metaKey\n ) {\n return null\n }\n $event.preventDefault()\n return _vm.focusLastTab($event)\n }\n ]\n }\n },\n [\n _c(\n \"ul\",\n _vm._l(_vm.tabs, function(tab) {\n return _c(\n \"li\",\n { key: tab.id, staticClass: \"app-sidebar-tabs__tab\" },\n [\n _c(\n \"a\",\n {\n class: { active: _vm.activeTab === tab.id },\n attrs: {\n id: tab.id,\n \"aria-controls\": \"tab-\" + tab.id,\n \"aria-selected\": _vm.activeTab === tab.id,\n \"data-id\": tab.id,\n href: \"#tab-\" + tab.id,\n tabindex: _vm.activeTab === tab.id ? null : -1,\n role: \"tab\"\n },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.setActive(tab.id)\n }\n }\n },\n [\n _c(\"span\", {\n staticClass: \"app-sidebar-tabs__tab-icon\",\n class: tab.icon\n }),\n _vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(tab.name) + \"\\n\\t\\t\\t\\t\")\n ]\n )\n ]\n )\n }),\n 0\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"app-sidebar-tabs__content\",\n class: { \"app-sidebar-tabs__content--multiple\": _vm.hasMultipleTabs }\n },\n [_vm._t(\"default\")],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n/***/ }),\n\n/***/ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/EmptyContent/EmptyContent.vue?vue&type=template&id=a68b8462&scoped=true&\":\n/*!*******************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/EmptyContent/EmptyContent.vue?vue&type=template&id=a68b8462&scoped=true& ***!\n \\*******************************************************************************************************************************************************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"empty-content\", attrs: { role: \"note\" } }, [\n _c(\n \"div\",\n {\n staticClass: \"empty-content__icon\",\n class: _vm.icon,\n attrs: { role: \"img\" }\n },\n [_vm._t(\"icon\")],\n 2\n ),\n _vm._v(\" \"),\n _c(\"h2\", { staticClass: \"empty-content__title\" }, [_vm._t(\"default\")], 2),\n _vm._v(\" \"),\n _c(\n \"p\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.$slots.desc,\n expression: \"$slots.desc\"\n }\n ]\n },\n [_vm._t(\"desc\")],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n/***/ }),\n\n/***/ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Popover/Popover.vue?vue&type=template&id=45093cca&\":\n/*!*********************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Popover/Popover.vue?vue&type=template&id=45093cca& ***!\n \\*********************************************************************************************************************************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"VPopover\",\n _vm._g(\n _vm._b(\n {\n ref: \"popover\",\n attrs: {\n \"popover-base-class\": \"popover\",\n \"popover-wrapper-class\": \"popover__wrapper\",\n \"popover-arrow-class\": \"popover__arrow\",\n \"popover-inner-class\": \"popover__inner\"\n }\n },\n \"VPopover\",\n _vm.$attrs,\n false\n ),\n _vm.$listeners\n ),\n [\n _vm._t(\"trigger\"),\n _vm._v(\" \"),\n _c(\"template\", { slot: \"popover\" }, [_vm._t(\"default\")], 2)\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n/***/ }),\n\n/***/ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***!\n \\********************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ \"./src/components/Actions/Actions.vue\":\n/*!********************************************!*\\\n !*** ./src/components/Actions/Actions.vue ***!\n \\********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Actions_vue_vue_type_template_id_4f45864b_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Actions.vue?vue&type=template&id=4f45864b&scoped=true& */ \"./src/components/Actions/Actions.vue?vue&type=template&id=4f45864b&scoped=true&\");\n/* harmony import */ var _Actions_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Actions.vue?vue&type=script&lang=js& */ \"./src/components/Actions/Actions.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Actions_vue_vue_type_style_index_0_id_4f45864b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true& */ \"./src/components/Actions/Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n/* harmony import */ var _Actions_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Actions.vue?vue&type=custom&index=0&blockType=docs */ \"./src/components/Actions/Actions.vue?vue&type=custom&index=0&blockType=docs\");\n/* harmony import */ var _Actions_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Actions_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Actions_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Actions_vue_vue_type_template_id_4f45864b_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Actions_vue_vue_type_template_id_4f45864b_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"4f45864b\",\n null\n \n)\n\n/* custom blocks */\n\nif (typeof _Actions_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default.a === 'function') _Actions_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default()(component)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/Actions/Actions.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n/***/ }),\n\n/***/ \"./src/components/Actions/Actions.vue?vue&type=custom&index=0&blockType=docs\":\n/*!***********************************************************************************!*\\\n !*** ./src/components/Actions/Actions.vue?vue&type=custom&index=0&blockType=docs ***!\n \\***********************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n\n/***/ \"./src/components/Actions/Actions.vue?vue&type=script&lang=js&\":\n/*!*********************************************************************!*\\\n !*** ./src/components/Actions/Actions.vue?vue&type=script&lang=js& ***!\n \\*********************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/lib??vue-loader-options!./Actions.vue?vue&type=script&lang=js& */ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/Actions/Actions.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n/***/ }),\n\n/***/ \"./src/components/Actions/Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true&\":\n/*!******************************************************************************************************!*\\\n !*** ./src/components/Actions/Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true& ***!\n \\******************************************************************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_style_index_0_id_4f45864b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true& */ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Actions/Actions.vue?vue&type=style&index=0&id=4f45864b&lang=scss&scoped=true&\");\n/* empty/unused harmony star reexport */\n\n/***/ }),\n\n/***/ \"./src/components/Actions/Actions.vue?vue&type=template&id=4f45864b&scoped=true&\":\n/*!***************************************************************************************!*\\\n !*** ./src/components/Actions/Actions.vue?vue&type=template&id=4f45864b&scoped=true& ***!\n \\***************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_template_id_4f45864b_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./Actions.vue?vue&type=template&id=4f45864b&scoped=true& */ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Actions/Actions.vue?vue&type=template&id=4f45864b&scoped=true&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_template_id_4f45864b_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_template_id_4f45864b_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n/***/ }),\n\n/***/ \"./src/components/Actions/index.js\":\n/*!*****************************************!*\\\n !*** ./src/components/Actions/index.js ***!\n \\*****************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Actions */ \"./src/components/Actions/Actions.vue\");\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_Actions__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebar/AppSidebar.vue\":\n/*!**************************************************!*\\\n !*** ./src/components/AppSidebar/AppSidebar.vue ***!\n \\**************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AppSidebar_vue_vue_type_template_id_4a2a5f2f_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppSidebar.vue?vue&type=template&id=4a2a5f2f&scoped=true& */ \"./src/components/AppSidebar/AppSidebar.vue?vue&type=template&id=4a2a5f2f&scoped=true&\");\n/* harmony import */ var _AppSidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppSidebar.vue?vue&type=script&lang=js& */ \"./src/components/AppSidebar/AppSidebar.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport *//* harmony import */ var _AppSidebar_vue_vue_type_style_index_0_id_4a2a5f2f_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true& */ \"./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true&\");\n/* harmony import */ var _AppSidebar_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AppSidebar.vue?vue&type=style&index=1&lang=scss& */ \"./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=1&lang=scss&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n/* harmony import */ var _AppSidebar_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AppSidebar.vue?vue&type=custom&index=0&blockType=docs */ \"./src/components/AppSidebar/AppSidebar.vue?vue&type=custom&index=0&blockType=docs\");\n/* harmony import */ var _AppSidebar_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_AppSidebar_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(\n _AppSidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _AppSidebar_vue_vue_type_template_id_4a2a5f2f_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _AppSidebar_vue_vue_type_template_id_4a2a5f2f_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"4a2a5f2f\",\n null\n \n)\n\n/* custom blocks */\n\nif (typeof _AppSidebar_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_5___default.a === 'function') _AppSidebar_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_5___default()(component)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/AppSidebar/AppSidebar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebar/AppSidebar.vue?vue&type=custom&index=0&blockType=docs\":\n/*!*****************************************************************************************!*\\\n !*** ./src/components/AppSidebar/AppSidebar.vue?vue&type=custom&index=0&blockType=docs ***!\n \\*****************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebar/AppSidebar.vue?vue&type=script&lang=js&\":\n/*!***************************************************************************!*\\\n !*** ./src/components/AppSidebar/AppSidebar.vue?vue&type=script&lang=js& ***!\n \\***************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebar.vue?vue&type=script&lang=js& */ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n/***/ }),\n\n/***/ \"./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true&\":\n/*!************************************************************************************************************!*\\\n !*** ./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true& ***!\n \\************************************************************************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_style_index_0_id_4a2a5f2f_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true& */ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=0&id=4a2a5f2f&lang=scss&scoped=true&\");\n/* empty/unused harmony star reexport */\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=1&lang=scss&\":\n/*!************************************************************************************!*\\\n !*** ./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=1&lang=scss& ***!\n \\************************************************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebar.vue?vue&type=style&index=1&lang=scss& */ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=style&index=1&lang=scss&\");\n/* empty/unused harmony star reexport */\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebar/AppSidebar.vue?vue&type=template&id=4a2a5f2f&scoped=true&\":\n/*!*********************************************************************************************!*\\\n !*** ./src/components/AppSidebar/AppSidebar.vue?vue&type=template&id=4a2a5f2f&scoped=true& ***!\n \\*********************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_template_id_4a2a5f2f_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebar.vue?vue&type=template&id=4a2a5f2f&scoped=true& */ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebar.vue?vue&type=template&id=4a2a5f2f&scoped=true&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_template_id_4a2a5f2f_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebar_vue_vue_type_template_id_4a2a5f2f_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebar/AppSidebarTabs.vue\":\n/*!******************************************************!*\\\n !*** ./src/components/AppSidebar/AppSidebarTabs.vue ***!\n \\******************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AppSidebarTabs_vue_vue_type_template_id_5772e44d_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppSidebarTabs.vue?vue&type=template&id=5772e44d&scoped=true& */ \"./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=template&id=5772e44d&scoped=true&\");\n/* harmony import */ var _AppSidebarTabs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppSidebarTabs.vue?vue&type=script&lang=js& */ \"./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport *//* harmony import */ var _AppSidebarTabs_vue_vue_type_style_index_0_id_5772e44d_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true& */ \"./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _AppSidebarTabs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _AppSidebarTabs_vue_vue_type_template_id_5772e44d_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _AppSidebarTabs_vue_vue_type_template_id_5772e44d_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"5772e44d\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/AppSidebar/AppSidebarTabs.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=script&lang=js&\":\n/*!*******************************************************************************!*\\\n !*** ./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=script&lang=js& ***!\n \\*******************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebarTabs.vue?vue&type=script&lang=js& */ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n/***/ }),\n\n/***/ \"./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true&\":\n/*!****************************************************************************************************************!*\\\n !*** ./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true& ***!\n \\****************************************************************************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_style_index_0_id_5772e44d_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true& */ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=style&index=0&id=5772e44d&lang=scss&scoped=true&\");\n/* empty/unused harmony star reexport */\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=template&id=5772e44d&scoped=true&\":\n/*!*************************************************************************************************!*\\\n !*** ./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=template&id=5772e44d&scoped=true& ***!\n \\*************************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_template_id_5772e44d_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebarTabs.vue?vue&type=template&id=5772e44d&scoped=true& */ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebar/AppSidebarTabs.vue?vue&type=template&id=5772e44d&scoped=true&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_template_id_5772e44d_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTabs_vue_vue_type_template_id_5772e44d_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebar/index.js\":\n/*!********************************************!*\\\n !*** ./src/components/AppSidebar/index.js ***!\n \\********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AppSidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppSidebar */ \"./src/components/AppSidebar/AppSidebar.vue\");\n/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_AppSidebar__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/***/ }),\n\n/***/ \"./src/components/EmptyContent/EmptyContent.vue\":\n/*!******************************************************!*\\\n !*** ./src/components/EmptyContent/EmptyContent.vue ***!\n \\******************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _EmptyContent_vue_vue_type_template_id_a68b8462_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EmptyContent.vue?vue&type=template&id=a68b8462&scoped=true& */ \"./src/components/EmptyContent/EmptyContent.vue?vue&type=template&id=a68b8462&scoped=true&\");\n/* harmony import */ var _EmptyContent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./EmptyContent.vue?vue&type=script&lang=js& */ \"./src/components/EmptyContent/EmptyContent.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport *//* harmony import */ var _EmptyContent_vue_vue_type_style_index_0_id_a68b8462_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true& */ \"./src/components/EmptyContent/EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n/* harmony import */ var _EmptyContent_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./EmptyContent.vue?vue&type=custom&index=0&blockType=docs */ \"./src/components/EmptyContent/EmptyContent.vue?vue&type=custom&index=0&blockType=docs\");\n/* harmony import */ var _EmptyContent_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_EmptyContent_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _EmptyContent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _EmptyContent_vue_vue_type_template_id_a68b8462_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _EmptyContent_vue_vue_type_template_id_a68b8462_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"a68b8462\",\n null\n \n)\n\n/* custom blocks */\n\nif (typeof _EmptyContent_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default.a === 'function') _EmptyContent_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default()(component)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/EmptyContent/EmptyContent.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n/***/ }),\n\n/***/ \"./src/components/EmptyContent/EmptyContent.vue?vue&type=custom&index=0&blockType=docs\":\n/*!*********************************************************************************************!*\\\n !*** ./src/components/EmptyContent/EmptyContent.vue?vue&type=custom&index=0&blockType=docs ***!\n \\*********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n\n/***/ \"./src/components/EmptyContent/EmptyContent.vue?vue&type=script&lang=js&\":\n/*!*******************************************************************************!*\\\n !*** ./src/components/EmptyContent/EmptyContent.vue?vue&type=script&lang=js& ***!\n \\*******************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/lib??vue-loader-options!./EmptyContent.vue?vue&type=script&lang=js& */ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/EmptyContent/EmptyContent.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n/***/ }),\n\n/***/ \"./src/components/EmptyContent/EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true&\":\n/*!****************************************************************************************************************!*\\\n !*** ./src/components/EmptyContent/EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true& ***!\n \\****************************************************************************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_style_index_0_id_a68b8462_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true& */ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/EmptyContent/EmptyContent.vue?vue&type=style&index=0&id=a68b8462&lang=scss&scoped=true&\");\n/* empty/unused harmony star reexport */\n\n/***/ }),\n\n/***/ \"./src/components/EmptyContent/EmptyContent.vue?vue&type=template&id=a68b8462&scoped=true&\":\n/*!*************************************************************************************************!*\\\n !*** ./src/components/EmptyContent/EmptyContent.vue?vue&type=template&id=a68b8462&scoped=true& ***!\n \\*************************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_template_id_a68b8462_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./EmptyContent.vue?vue&type=template&id=a68b8462&scoped=true& */ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/EmptyContent/EmptyContent.vue?vue&type=template&id=a68b8462&scoped=true&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_template_id_a68b8462_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_EmptyContent_vue_vue_type_template_id_a68b8462_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n/***/ }),\n\n/***/ \"./src/components/Popover/Popover.vue\":\n/*!********************************************!*\\\n !*** ./src/components/Popover/Popover.vue ***!\n \\********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Popover_vue_vue_type_template_id_45093cca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Popover.vue?vue&type=template&id=45093cca& */ \"./src/components/Popover/Popover.vue?vue&type=template&id=45093cca&\");\n/* harmony import */ var _Popover_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Popover.vue?vue&type=script&lang=js& */ \"./src/components/Popover/Popover.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Popover_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Popover.vue?vue&type=style&index=0&lang=scss& */ \"./src/components/Popover/Popover.vue?vue&type=style&index=0&lang=scss&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n/* harmony import */ var _Popover_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Popover.vue?vue&type=custom&index=0&blockType=docs */ \"./src/components/Popover/Popover.vue?vue&type=custom&index=0&blockType=docs\");\n/* harmony import */ var _Popover_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Popover_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Popover_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Popover_vue_vue_type_template_id_45093cca___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Popover_vue_vue_type_template_id_45093cca___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\n\nif (typeof _Popover_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default.a === 'function') _Popover_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default()(component)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/Popover/Popover.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n/***/ }),\n\n/***/ \"./src/components/Popover/Popover.vue?vue&type=custom&index=0&blockType=docs\":\n/*!***********************************************************************************!*\\\n !*** ./src/components/Popover/Popover.vue?vue&type=custom&index=0&blockType=docs ***!\n \\***********************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n\n/***/ \"./src/components/Popover/Popover.vue?vue&type=script&lang=js&\":\n/*!*********************************************************************!*\\\n !*** ./src/components/Popover/Popover.vue?vue&type=script&lang=js& ***!\n \\*********************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/lib??vue-loader-options!./Popover.vue?vue&type=script&lang=js& */ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/Popover/Popover.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n/***/ }),\n\n/***/ \"./src/components/Popover/Popover.vue?vue&type=style&index=0&lang=scss&\":\n/*!******************************************************************************!*\\\n !*** ./src/components/Popover/Popover.vue?vue&type=style&index=0&lang=scss& ***!\n \\******************************************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./Popover.vue?vue&type=style&index=0&lang=scss& */ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Popover/Popover.vue?vue&type=style&index=0&lang=scss&\");\n/* empty/unused harmony star reexport */\n\n/***/ }),\n\n/***/ \"./src/components/Popover/Popover.vue?vue&type=template&id=45093cca&\":\n/*!***************************************************************************!*\\\n !*** ./src/components/Popover/Popover.vue?vue&type=template&id=45093cca& ***!\n \\***************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_template_id_45093cca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./Popover.vue?vue&type=template&id=45093cca& */ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Popover/Popover.vue?vue&type=template&id=45093cca&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_template_id_45093cca___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_template_id_45093cca___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n/***/ }),\n\n/***/ \"./src/components/Popover/index.js\":\n/*!*****************************************!*\\\n !*** ./src/components/Popover/index.js ***!\n \\*****************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Popover__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Popover */ \"./src/components/Popover/Popover.vue\");\n/**\n * @copyright Copyright (c) 2019 Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @author Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_Popover__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/***/ }),\n\n/***/ \"./src/directives/Focus/index.js\":\n/*!***************************************!*\\\n !*** ./src/directives/Focus/index.js ***!\n \\***************************************/\n/*! exports provided: directive, default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"directive\", function() { return directive; });\n/**\n * @copyright Copyright (c) 2019 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar directive = {\n inserted: function inserted(el) {\n el.focus();\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (directive);\n\n/***/ }),\n\n/***/ \"./src/directives/Linkify/index.js\":\n/*!*****************************************!*\\\n !*** ./src/directives/Linkify/index.js ***!\n \\*****************************************/\n/*! exports provided: directive, default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"directive\", function() { return directive; });\n/* harmony import */ var linkifyjs_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! linkifyjs/string */ \"linkifyjs/string\");\n/* harmony import */ var linkifyjs_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(linkifyjs_string__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * @author Raimund Schlüßler\n * @copyright 2020 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE\n * License as published by the Free Software Foundation; either\n * version 3 of the License, or any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU AFFERO GENERAL PUBLIC LICENSE for more details.\n *\n * You should have received a copy of the GNU Affero General Public\n * License along with this library. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n // Use function shorthand for same behavior on bind and update\n// https://vuejs.org/v2/guide/custom-directive.html#Function-Shorthand\n\nvar directive = function directive(el, binding) {\n var _binding$value;\n\n if (((_binding$value = binding.value) === null || _binding$value === void 0 ? void 0 : _binding$value.linkify) === true) {\n el.innerHTML = linkifyjs_string__WEBPACK_IMPORTED_MODULE_0___default()(binding.value.text, {\n defaultProtocol: 'https'\n });\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (directive);\n\n/***/ }),\n\n/***/ \"./src/directives/Tooltip/index.js\":\n/*!*****************************************!*\\\n !*** ./src/directives/Tooltip/index.js ***!\n \\*****************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var v_tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! v-tooltip */ \"v-tooltip\");\n/* harmony import */ var v_tooltip__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(v_tooltip__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _index_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.scss */ \"./src/directives/Tooltip/index.scss\");\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n // force scope the tooltip and use .vue-tooltip\n// instead of .tooltip to avoid server compatibility\n// issues and the use of !important\n\nv_tooltip__WEBPACK_IMPORTED_MODULE_0__[\"VTooltip\"].options.defaultTemplate = \"<div class=\\\"vue-tooltip\\\" role=\\\"tooltip\\\" data-v-\".concat(\"84c461f\", \"><div class=\\\"tooltip-arrow\\\"></div><div class=\\\"tooltip-inner\\\"></div></div>\");\nv_tooltip__WEBPACK_IMPORTED_MODULE_0__[\"VTooltip\"].options.defaultHtml = false;\n/* harmony default export */ __webpack_exports__[\"default\"] = (v_tooltip__WEBPACK_IMPORTED_MODULE_0__[\"VTooltip\"]);\n\n/***/ }),\n\n/***/ \"./src/directives/Tooltip/index.scss\":\n/*!*******************************************!*\\\n !*** ./src/directives/Tooltip/index.scss ***!\n \\*******************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* 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\");\n/* 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__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_index_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!./index.scss */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./src/directives/Tooltip/index.scss\");\n\n \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_index_scss__WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_index_scss__WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n/***/ }),\n\n/***/ \"./src/fonts/iconfont-vue-84c461f.eot\":\n/*!********************************************!*\\\n !*** ./src/fonts/iconfont-vue-84c461f.eot ***!\n \\********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:application/vnd.ms-fontobject;base64,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\");\n\n/***/ }),\n\n/***/ \"./src/fonts/iconfont-vue-84c461f.svg\":\n/*!********************************************!*\\\n !*** ./src/fonts/iconfont-vue-84c461f.svg ***!\n \\********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48bWV0YWRhdGE+PC9tZXRhZGF0YT48ZGVmcz48Zm9udCBpZD0iaWNvbmZvbnQtdnVlLTg0YzQ2MWYiIGhvcml6LWFkdi14PSI1MDAwIj48Zm9udC1mYWNlIGZvbnQtZmFtaWx5PSJpY29uZm9udC12dWUtODRjNDYxZiIgZm9udC13ZWlnaHQ9IjQwMCIgZm9udC1zdHJldGNoPSJub3JtYWwiIHVuaXRzLXBlci1lbT0iNTAwMCIgcGFub3NlLTE9IjIgMCA1IDMgMCAwIDAgMCAwIDAiIGFzY2VudD0iNTAwMCIgZGVzY2VudD0iMCIgeC1oZWlnaHQ9IjAiIGJib3g9Ii0zMiAwIDUwMTEgNTAwMCIgdW5kZXJsaW5lLXRoaWNrbmVzcz0iMCIgdW5kZXJsaW5lLXBvc2l0aW9uPSI1MCIgdW5pY29kZS1yYW5nZT0iVStlYTAxLWVhMTIiIC8+PG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjAiICAvPjxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1sZWZ0LWRvdWJsZSIgdW5pY29kZT0iJiN4ZWEwMTsiIGQ9Ik0zNzUwIDM5MDYgbC0xNDA2IC0xNDA2IGwxNDA2IC0xNDA2IGwwIDMxMiBsLTEwOTQgMTA5NCBsMTA5NCAxMDk0IGwwIDMxMiBaTTIzNDQgMzkwNiBsLTE0MDYgLTE0MDYgbDE0MDYgLTE0MDYgbDAgMzEyIGwtMTA5NCAxMDk0IGwxMDk0IDEwOTQgbDAgMzEyIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImFycm93LWxlZnQiIHVuaWNvZGU9IiYjeGVhMDI7IiBkPSJNMTU2MyAyNTAwIGwxODc1IC0xODc1IGwwIC0zMTIgbC0yMTg4IDIxODcgbDIxODggMjE4OCBsMCAtMzEzIGwtMTg3NSAtMTg3NSBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1yaWdodC1kb3VibGUiIHVuaWNvZGU9IiYjeGVhMDM7IiBkPSJNMTI1MCAxMDk0IGwxNDA2IDE0MDYgbC0xNDA2IDE0MDYgbDAgLTMxMiBsMTA5NCAtMTA5NCBsLTEwOTQgLTEwOTQgbDAgLTMxMiBaTTI2NTYgMTA5NCBsMTQwNyAxNDA2IGwtMTQwNyAxNDA2IGwwIC0zMTIgbDEwOTQgLTEwOTQgbC0xMDk0IC0xMDk0IGwwIC0zMTIgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3ctcmlnaHQiIHVuaWNvZGU9IiYjeGVhMDQ7IiBkPSJNMzQzOCAyNTAwIGwtMTg3NSAxODc1IGwwIDMxMyBsMjE4NyAtMjE4OCBsLTIxODcgLTIxODcgbDAgMzEyIGwxODc1IDE4NzUgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYnJlYWRjcnVtYiIgdW5pY29kZT0iJiN4ZWEwNTsiIGQ9Ik0xNDggNTAwMCBsLTE0OCAtODUgbDEzOTQgLTI0MTUgbC0xMzk0IC0yNDE1IGwxNDggLTg1IGwxNDQzIDI1MDAgbC0xNDQzIDI1MDAgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iY2hlY2ttYXJrIiB1bmljb2RlPSImI3hlYTA2OyIgZD0iTTQwNDUgMzk3MSBsLTIwNjEgLTIwNjEgbC0xMDI5IDEwMjkgbC00NDIgLTQ0MSBsMTQ3MSAtMTQ3MSBsMjUwMyAyNTAyIGwtNDQyIDQ0MiBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJjbG9zZSIgdW5pY29kZT0iJiN4ZWEwNzsiIGQ9Ik00Mzc1IDExNTYgbC01MzEgLTUzMSBsLTEzNDQgMTM0NCBsLTEzNDQgLTEzNDQgbC01MzEgNTMxIGwxMzQ0IDEzNDQgbC0xMzQ0IDEzNDQgbDUzMSA1MzEgbDEzNDQgLTEzNDQgbDEzNDQgMTM0NCBsNTMxIC01MzEgbC0xMzQ0IC0xMzQ0IGwxMzQ0IC0xMzQ0IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImNvbmZpcm0iIHVuaWNvZGU9IiYjeGVhMDg7IiBkPSJNMjY1NiA0ODQ0IHEtMTAxIDAgLTE4MCAtNTcgcS03NCAtNTIgLTEwOSAtMTM4IHEtMzUgLTg2IC0xOSAtMTc1IHExOCAtOTYgOTAgLTE2NyBsMTQ5NSAtMTQ5NCBsLTM2MTYgMCBxLTc3IDEgLTEzOSAtMjYgcS01OCAtMjQgLTk5IC03MCBxLTM5IC00NCAtNTkgLTEwMSBxLTIwIC01NiAtMjAgLTExNiBxMCAtNjAgMjAgLTExNiBxMjAgLTU3IDU5IC0xMDEgcTQxIC00NiA5OSAtNzAgcTYyIC0yNyAxMzkgLTI1IGwzNjE2IDAgbC0xNDk1IC0xNDk1IHEtNTUgLTUzIC04MSAtMTE2IHEtMjQgLTU5IC0yMSAtMTIxIHEzIC01OCAzMCAtMTEzIHEyNSAtNTQgNjggLTk3IHE0MyAtNDMgOTYgLTY4IHE1NSAtMjYgMTE0IC0yOSBxNjIgLTMgMTIwIDIxIHE2MyAyNSAxMTYgODEgbDIwMjkgMjAyOCBxNTkgNjAgODAgMTQxIHEyMSA4MCAxIDE1OSBxLTIxIDgyIC04MSAxNDIgbC0yMDI5IDIwMjggcS00NCA0NSAtMTAyIDcwIHEtNTggMjUgLTEyMiAyNSBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJpbmZvIiB1bmljb2RlPSImI3hlYTA5OyIgZD0iTTI0MjIgNDY4OCBxLTExMSAwIC0yMTMgLTQzIHEtOTggLTQyIC0xNzQgLTExNy41IHEtNzYgLTc1LjUgLTExNyAtMTc0LjUgcS00MyAtMTAxIC00MyAtMjEyLjUgcTAgLTExMS41IDQzIC0yMTIuNSBxNDEgLTk4IDExNyAtMTc0IHE3NiAtNzYgMTc0IC0xMTcgcTEwMiAtNDMgMjEzIC00MyBxMTExIDAgMjEzIDQzIHE5OCA0MSAxNzMuNSAxMTcgcTc1LjUgNzYgMTE3LjUgMTc0IHE0MyAxMDEgNDMgMjEyLjUgcTAgMTExLjUgLTQzIDIxMi41IHEtNDIgOTkgLTExNy41IDE3NC41IHEtNzUuNSA3NS41IC0xNzMuNSAxMTcuNSBxLTEwMiA0MyAtMjEzIDQzIFpNMTU2MyAzMTI1IHEtODYgMCAtMTU4IC00MyBxLTcxIC00MSAtMTEyIC0xMTIgcS00MyAtNzIgLTQzIC0xNTcuNSBxMCAtODUuNSA0MyAtMTU3LjUgcTQxIC03MSAxMTIgLTExMiBxNzIgLTQzIDE1OCAtNDMgbDYyNSAwIGwwIC0xNTYyIGwtNjI1IDAgcS04NiAwIC0xNTggLTQzIHEtNzEgLTQxIC0xMTIgLTExMiBxLTQzIC03MyAtNDMgLTE1OCBxMCAtODUgNDMgLTE1OCBxNDEgLTcxIDExMiAtMTEyIHE3MiAtNDMgMTU4IC00MiBsMTg3NSAwIHE4NSAwIDE1NyA0MiBxNzEgNDEgMTEyIDExMiBxNDMgNzMgNDMgMTU4IHEwIDg1IC00MyAxNTggcS00MSA3MSAtMTEyIDExMiBxLTcyIDQzIC0xNTcgNDMgbC02MjUgMCBsMCAxODc1IHEwIDg1IC00MyAxNTcgcS00MSA3MSAtMTEyIDExMiBxLTczIDQzIC0xNTggNDMgbC05MzcgMCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJtZW51IiB1bmljb2RlPSImI3hlYTBhOyIgZD0iTTYyNSA0Mzc1IGwwIC02MjUgbDM3NTAgMCBsMCA2MjUgbC0zNzUwIDAgWk02MjUgMjgxMyBsMCAtNjI1IGwzNzUwIDAgbDAgNjI1IGwtMzc1MCAwIFpNNjI1IDEyNTAgbDAgLTYyNSBsMzc1MCAwIGwwIDYyNSBsLTM3NTAgMCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJtb3JlIiB1bmljb2RlPSImI3hlYTBiOyIgZD0iTTc4MSAzMDQ3IHExMTIgMCAyMTMgLTQzIHE5OCAtNDIgMTc0IC0xMTcuNSBxNzYgLTc1LjUgMTE3IC0xNzMuNSBxNDMgLTEwMiA0MyAtMjEzIHEwIC0xMTEgLTQzIC0yMTMgcS00MSAtOTggLTExNyAtMTczLjUgcS03NiAtNzUuNSAtMTc0IC0xMTcuNSBxLTEwMSAtNDMgLTIxMi41IC00MyBxLTExMS41IDAgLTIxMy41IDQzIHEtOTggNDIgLTE3My41IDExNy41IHEtNzUuNSA3NS41IC0xMTcuNSAxNzMuNSBxLTQzIDEwMiAtNDMgMjEzIHEwIDExMSA0MyAyMTMgcTQyIDk4IDExNy41IDE3My41IHE3NS41IDc1LjUgMTczLjUgMTE3LjUgcTEwMiA0MyAyMTMgNDMgWk0yNTAwIDMwNDcgcTExMSAwIDIxMyAtNDMgcTk4IC00MiAxNzMuNSAtMTE3LjUgcTc1LjUgLTc1LjUgMTE3LjUgLTE3My41IHE0MyAtMTAyIDQzIC0yMTMgcTAgLTExMSAtNDMgLTIxMyBxLTQyIC05OCAtMTE3LjUgLTE3My41IHEtNzUuNSAtNzUuNSAtMTczLjUgLTExNy41IHEtMTAyIC00MyAtMjEzIC00MyBxLTExMSAwIC0yMTMgNDMgcS05OCA0MiAtMTczLjUgMTE3LjUgcS03NS41IDc1LjUgLTExNy41IDE3My41IHEtNDMgMTAyIC00MyAyMTMgcTAgMTExIDQzIDIxMyBxNDIgOTggMTE3LjUgMTczLjUgcTc1LjUgNzUuNSAxNzMuNSAxMTcuNSBxMTAyIDQzIDIxMyA0MyBaTTQyMTkgMzA0NyBxMTExIDAgMjEzIC00MyBxOTggLTQyIDE3My41IC0xMTcuNSBxNzUuNSAtNzUuNSAxMTcuNSAtMTczLjUgcTQzIC0xMDIgNDMgLTIxMyBxMCAtMTExIC00MyAtMjEzIHEtNDIgLTk4IC0xMTcuNSAtMTczLjUgcS03NS41IC03NS41IC0xNzMuNSAtMTE3LjUgcS0xMDIgLTQzIC0yMTMuNSAtNDMgcS0xMTEuNSAwIC0yMTIuNSA0MyBxLTk4IDQyIC0xNzQgMTE3LjUgcS03NiA3NS41IC0xMTcgMTczLjUgcS00MyAxMDIgLTQzIDIxMyBxMCAxMTEgNDMgMjEzIHE0MSA5OCAxMTcgMTczLjUgcTc2IDc1LjUgMTc0IDExNy41IHExMDEgNDMgMjEzIDQzIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InBhdXNlIiB1bmljb2RlPSImI3hlYTBjOyIgZD0iTTkzOCA0MDYzIGwwIC0zMTI1IGwxMjUwIDAgbDAgMzEyNSBsLTEyNTAgMCBaTTI4MTMgNDA2MyBsMCAtMzEyNSBsMTI1MCAwIGwwIDMxMjUgbC0xMjUwIDAgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0icGxheSIgdW5pY29kZT0iJiN4ZWEwZDsiIGQ9Ik02MjUgNDM3NSBsMzc1MCAtMTg3NSBsLTM3NTAgLTE4NzUgbDAgMzc1MCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJ0cmlhbmdsZS1zIiB1bmljb2RlPSImI3hlYTBlOyIgZD0iTTEyNTAgMzEyNSBsMTI1MCAtMTI1MCBsMTI1MCAxMjQ4IGwtMjUwMCAyIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InVzZXItc3RhdHVzLWF3YXkiIHVuaWNvZGU9IiYjeGVhMGY7IiBkPSJNMjE1NiA0OTY5IHEtMzYwIC00NiAtNjk1IC0xOTcgcS0zMjYgLTE0NyAtNjAxIC0zODAgcS0yNzQgLTIzMSAtNDcyIC01MjggcS0yMDIgLTMwMSAtMzA5IC02NDIgcS0xMTAgLTM1MyAtMTEwIC03MjIgcTAgLTQwNiAxMjggLTc4OCBxMTIzIC0zNzAgMzU2IC02ODYgcTIyOSAtMzEzIDU0MiAtNTQyIHEzMTYgLTIzMiA2ODYgLTM1NiBxMzgyIC0xMjggNzg4IC0xMjggcTM2OSAwIDcyMiAxMDcgcTM0MiAxMDQgNjQ0IDMwMSBxMjk4IDE5NCA1MzMgNDYzIHEyMzYgMjcwIDM4OSA1OTMgcTE1NiAzMzEgMjEyIDY5MiBxLTE4OCAtMjA0IC00MjMuNSAtMzUxIHEtMjM1LjUgLTE0NyAtNDk4LjUgLTIyNSBxLTI2OSAtODAgLTU0NyAtODAgcS0zMjIgMCAtNjI4IDEwMyBxLTI5NSA5OSAtNTQ4IDI4NiBxLTI1MSAxODQgLTQzNSA0MzUgcS0xODcgMjUzIC0yODYgNTQ4IHEtMTAzIDMwNiAtMTAzIDYyOCBxMCAyOTMgODAgNTY4IHE3OCAyNjkgMjI1LjUgNDk4LjUgcTE0Ny41IDIyOS41IDM1MC41IDQwMi41IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InVzZXItc3RhdHVzLWRuZCIgdW5pY29kZT0iJiN4ZWExMDsiIGQ9Ik0yNTAwIDUwMDAgcS00MDYgMCAtNzg4IC0xMjggcS0zNzAgLTEyNCAtNjg2IC0zNTYgcS0zMTMgLTIyOSAtNTQyIC01NDIgcS0yMzIgLTMxNiAtMzU2IC02ODYgcS0xMjggLTM4MiAtMTI4IC03ODggcTAgLTQwNiAxMjggLTc4OCBxMTI0IC0zNzAgMzU2IC02ODYgcTIyOSAtMzEzIDU0MiAtNTQyIHEzMTYgLTIzMiA2ODYgLTM1NiBxMzgyIC0xMjggNzg4IC0xMjggcTQwNiAwIDc4OCAxMjggcTM3MCAxMjQgNjg2IDM1NiBxMzEzIDIyOSA1NDIgNTQyIHEyMzIgMzE2IDM1NiA2ODYgcTEyOCAzODIgMTI4IDc4OCBxMCA0MDYgLTEyOCA3ODggcS0xMjQgMzcwIC0zNTYgNjg2IHEtMjI5IDMxMyAtNTQyIDU0MiBxLTMxNiAyMzIgLTY4NiAzNTYgcS0zODIgMTI4IC03ODggMTI4IFpNMTU2MyAyOTY5IGwxODc1IDAgcTkxIDAgMTc4IC0zOCBxODQgLTM3IDE1MCAtMTAzIHE2NiAtNjYgMTAyIC0xNDkgcTM4IC04NyAzOCAtMTc5IHEwIC05MiAtMzggLTE3OSBxLTM2IC04MyAtMTAyIC0xNDkgcS02NiAtNjYgLTE1MCAtMTAzIHEtODcgLTM4IC0xNzggLTM4IGwtMTg3NSAwIHEtOTIgMCAtMTc5IDM4IHEtODQgMzcgLTE1MCAxMDMgcS02NiA2NiAtMTAyIDE0OSBxLTM4IDg3IC0zOCAxNzkgcTAgOTIgMzggMTc5IHEzNiA4MyAxMDIgMTQ5IHE2NiA2NiAxNTAgMTAzIHE4NyAzOCAxNzkgMzggWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0idXNlci1zdGF0dXMtaW52aXNpYmxlIiB1bmljb2RlPSImI3hlYTExOyIgZD0iTTI1MDAgNTAwMCBxLTQwNiAwIC03ODggLTEyOCBxLTM3MCAtMTI0IC02ODYgLTM1NiBxLTMxMyAtMjI5IC01NDIgLTU0MiBxLTIzMiAtMzE2IC0zNTYgLTY4NiBxLTEyOCAtMzgyIC0xMjggLTc4OCBxMCAtNDA2IDEyOCAtNzg4IHExMjQgLTM3MCAzNTYgLTY4NiBxMjI5IC0zMTMgNTQyIC01NDIgcTMxNiAtMjMyIDY4NiAtMzU2IHEzODIgLTEyOCA3ODggLTEyOCBxNDA2IDAgNzg4IDEyOCBxMzcwIDEyNCA2ODYgMzU2IHEzMTMgMjI5IDU0MiA1NDIgcTIzMiAzMTYgMzU2IDY4NiBxMTI4IDM4MiAxMjggNzg4IHEwIDQwNiAtMTI4IDc4OCBxLTEyNCAzNzAgLTM1NiA2ODYgcS0yMjkgMzEzIC01NDIgNTQyIHEtMzE2IDIzMiAtNjg2IDM1NiBxLTM4MiAxMjggLTc4OCAxMjggWk0yNTAwIDQwMDAgcTMxMSAwIDU5MCAtMTE2IHEyNzEgLTExMiA0NzYuNSAtMzE3LjUgcTIwNS41IC0yMDUuNSAzMTcuNSAtNDc2LjUgcTExNiAtMjc5IDExNiAtNTkwIHEwIC0zMTEgLTExNiAtNTkwIHEtMTEyIC0yNzEgLTMxNy41IC00NzYuNSBxLTIwNS41IC0yMDUuNSAtNDc2LjUgLTMxNy41IHEtMjc5IC0xMTYgLTU5MCAtMTE2IHEtMzExIDAgLTU5MCAxMTYgcS0yNzEgMTEyIC00NzYuNSAzMTcuNSBxLTIwNS41IDIwNS41IC0zMTcuNSA0NzYuNSBxLTExNiAyNzkgLTExNiA1OTAgcTAgMzExIDExNiA1OTAgcTExMiAyNzEgMzE3LjUgNDc2LjUgcTIwNS41IDIwNS41IDQ3Ni41IDMxNy41IHEyNzkgMTE2IDU5MCAxMTYgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0idXNlci1zdGF0dXMtb25saW5lIiB1bmljb2RlPSImI3hlYTEyOyIgZD0iTTE1MDAgMTUwMCBsMjAwMCAwIGwwIDIwMDAgbC0yMDAwIDAgbDAgLTIwMDAgWk0yNTAwIDUwMDAgcS00MDYgMCAtNzg4IC0xMjggcS0zNzAgLTEyNCAtNjg2IC0zNTYgcS0zMTMgLTIyOSAtNTQyIC01NDIgcS0yMzIgLTMxNiAtMzU2IC02ODYgcS0xMjggLTM4MiAtMTI4IC03ODggcTAgLTQwNiAxMjggLTc4OCBxMTI0IC0zNzAgMzU2IC02ODYgcTIyOSAtMzEzIDU0MiAtNTQyIHEzMTYgLTIzMiA2ODYgLTM1NiBxMzgyIC0xMjggNzg4IC0xMjggcTQwNiAwIDc4OCAxMjggcTM3MCAxMjQgNjg2IDM1NiBxMzEzIDIyOSA1NDIgNTQyIHEyMzIgMzE2IDM1NiA2ODYgcTEyOCAzODIgMTI4IDc4OCBxMCA0MDYgLTEyOCA3ODggcS0xMjQgMzcwIC0zNTYgNjg2IHEtMjI5IDMxMyAtNTQyIDU0MiBxLTMxNiAyMzIgLTY4NiAzNTYgcS0zODIgMTI4IC03ODggMTI4IFoiIC8+PC9mb250PjwvZGVmcz48L3N2Zz4=\");\n\n/***/ }),\n\n/***/ \"./src/fonts/iconfont-vue-84c461f.ttf\":\n/*!********************************************!*\\\n !*** ./src/fonts/iconfont-vue-84c461f.ttf ***!\n \\********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:font/ttf;base64,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AAATiP/g//UTkwABAAAAAAAAAAAAAAAAAAAABwAAAAATiAAAE4gAABOIAAATiAAABjYAABOIAAAAAP//AAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAACIANgBYAGwAgACUALQBDgF8AZoCEAImAjQCQgKoAyIDpgP+AAEAAAATAEsAAwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAAAQAMYAAQAAAAAAAQAUAAAAAQAAAAAAAgAHABQAAQAAAAAAAwAUABsAAQAAAAAABAAUAC8AAQAAAAAABQALAEMAAQAAAAAABgAUAE4AAQAAAAAACgArAGIAAQAAAAAACwATAI0AAwABBAkAAQAoAKAAAwABBAkAAgAOAMgAAwABBAkAAwAoANYAAwABBAkABAAoAP4AAwABBAkABQAWASYAAwABBAkABgAoATwAAwABBAkACgBWAWQAAwABBAkACwAmAbppY29uZm9udC12dWUtODRjNDYxZlJlZ3VsYXJpY29uZm9udC12dWUtODRjNDYxZmljb25mb250LXZ1ZS04NGM0NjFmVmVyc2lvbiAxLjBpY29uZm9udC12dWUtODRjNDYxZkdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0AOAA0AGMANAA2ADEAZgBSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0AOAA0AGMANAA2ADEAZgBpAGMAbwBuAGYAbwBuAHQALQB2AHUAZQAtADgANABjADQANgAxAGYAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0AOAA0AGMANAA2ADEAZgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAACAAAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAATABMAAAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBExFhcnJvdy1sZWZ0LWRvdWJsZQphcnJvdy1sZWZ0EmFycm93LXJpZ2h0LWRvdWJsZQthcnJvdy1yaWdodApicmVhZGNydW1iCWNoZWNrbWFyawVjbG9zZQdjb25maXJtBGluZm8EbWVudQRtb3JlBXBhdXNlBHBsYXkKdHJpYW5nbGUtcxB1c2VyLXN0YXR1cy1hd2F5D3VzZXItc3RhdHVzLWRuZBV1c2VyLXN0YXR1cy1pbnZpc2libGUSdXNlci1zdGF0dXMtb25saW5lAAA=\");\n\n/***/ }),\n\n/***/ \"./src/fonts/iconfont-vue-84c461f.woff\":\n/*!*********************************************!*\\\n !*** ./src/fonts/iconfont-vue-84c461f.woff ***!\n \\*********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:font/woff;base64,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PAE55eh8gAAAAQAAAAEAAD/s/DtfDzz1AAsTiAAAAADc1Uf1AAAAANyEa/X/4AAAE5MTiAAAAAgAAgAAAAAAAAABAAATiAAAAAATiP/g//UTkwABAAAAAAAAAAAAAAAAAAAABwAAAAATiAAAE4gAABOIAAATiAAABjYAABOIAAAAAP//AAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAACIANgBYAGwAgACUALQBDgF8AZoCEAImAjQCQgKoAyIDpgP+AAEAAAATAEsAAwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAAAQAMYAAQAAAAAAAQAUAAAAAQAAAAAAAgAHABQAAQAAAAAAAwAUABsAAQAAAAAABAAUAC8AAQAAAAAABQALAEMAAQAAAAAABgAUAE4AAQAAAAAACgArAGIAAQAAAAAACwATAI0AAwABBAkAAQAoAKAAAwABBAkAAgAOAMgAAwABBAkAAwAoANYAAwABBAkABAAoAP4AAwABBAkABQAWASYAAwABBAkABgAoATwAAwABBAkACgBWAWQAAwABBAkACwAmAbppY29uZm9udC12dWUtODRjNDYxZlJlZ3VsYXJpY29uZm9udC12dWUtODRjNDYxZmljb25mb250LXZ1ZS04NGM0NjFmVmVyc2lvbiAxLjBpY29uZm9udC12dWUtODRjNDYxZkdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0AOAA0AGMANAA2ADEAZgBSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0AOAA0AGMANAA2ADEAZgBpAGMAbwBuAGYAbwBuAHQALQB2AHUAZQAtADgANABjADQANgAxAGYAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0AOAA0AGMANAA2ADEAZgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAACAAAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAATABMAAAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBExFhcnJvdy1sZWZ0LWRvdWJsZQphcnJvdy1sZWZ0EmFycm93LXJpZ2h0LWRvdWJsZQthcnJvdy1yaWdodApicmVhZGNydW1iCWNoZWNrbWFyawVjbG9zZQdjb25maXJtBGluZm8EbWVudQRtb3JlBXBhdXNlBHBsYXkKdHJpYW5nbGUtcxB1c2VyLXN0YXR1cy1hd2F5D3VzZXItc3RhdHVzLWRuZBV1c2VyLXN0YXR1cy1pbnZpc2libGUSdXNlci1zdGF0dXMtb25saW5lAAA=\");\n\n/***/ }),\n\n/***/ \"./src/l10n.js\":\n/*!*********************!*\\\n !*** ./src/l10n.js ***!\n \\*********************/\n/*! exports provided: t, n */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"t\", function() { return t; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"n\", function() { return n; });\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _nextcloud_l10n_dist_gettext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n/dist/gettext */ \"@nextcloud/l10n/dist/gettext\");\n/* harmony import */ var _nextcloud_l10n_dist_gettext__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_l10n_dist_gettext__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar gtBuilder = Object(_nextcloud_l10n_dist_gettext__WEBPACK_IMPORTED_MODULE_1__[\"getGettextBuilder\"])().detectLocale(); // Decompress Translations to gettext format and add to gtBuilder\n\n[{\"locale\":\"br\",\"translations\":{\"{tag} (invisible)\":\"{tag} (diwelus)\",\"{tag} (restricted)\":\"{tag} (bevennet)\",\"Actions\":\"Oberioù\",\"Activities\":\"Oberiantizoù\",\"Animals & Nature\":\"Loened & Natur\",\"Choose\":\"Dibab\",\"Close\":\"Serriñ\",\"Custom\":\"Personelañ\",\"Flags\":\"Bannieloù\",\"Food & Drink\":\"Boued & Evajoù\",\"Frequently used\":\"Implijet alies\",\"Next\":\"Da heul\",\"No emoji found\":\"Emoji ebet kavet\",\"No results\":\"Disoc'h ebet\",\"Objects\":\"Traoù\",\"Pause slideshow\":\"Arsav an diaporama\",\"People & Body\":\"Tud & Korf\",\"Pick an emoji\":\"Choaz un emoji\",\"Previous\":\"A-raok\",\"Search\":\"Klask\",\"Search results\":\"Disoc'hoù an enklask\",\"Select a tag\":\"Choaz ur c'hlav\",\"Settings\":\"Arventennoù\",\"Smileys & Emotion\":\"Smileyioù & Fromoù\",\"Start slideshow\":\"Kregiñ an diaporama\",\"Symbols\":\"Arouezioù\",\"Travel & Places\":\"Beaj & Lec'hioù\",\"Unable to search the group\":\"Dibosupl eo klask ar strollad\"}},{\"locale\":\"ca\",\"translations\":{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restringit)\",\"Actions\":\"Accions\",\"Activities\":\"Activitats\",\"Animals & Nature\":\"Animals i natura\",\"Choose\":\"Tria\",\"Close\":\"Tanca\",\"Custom\":\"Personalitzat\",\"Flags\":\"Marques\",\"Food & Drink\":\"Menjar i begudes\",\"Frequently used\":\"Utilitzats recentment\",\"Message limit of {count} characters reached\":\"S'ha arribat al límit de {count} caràcters per missatge\",\"Next\":\"Següent\",\"No emoji found\":\"No s'ha trobat cap emoji\",\"No results\":\"Sense resultats\",\"Objects\":\"Objectes\",\"Pause slideshow\":\"Atura la presentació\",\"People & Body\":\"Persones i cos\",\"Pick an emoji\":\"Trieu un emoji\",\"Previous\":\"Anterior\",\"Search\":\"Cerca\",\"Search results\":\"Resultats de cerca\",\"Select a tag\":\"Selecciona una etiqueta\",\"Settings\":\"Paràmetres\",\"Settings navigation\":\"Navegació d'opcions\",\"Smileys & Emotion\":\"Cares i emocions\",\"Start slideshow\":\"Inicia la presentació\",\"Symbols\":\"Símbols\",\"Travel & Places\":\"Viatges i llocs\",\"Unable to search the group\":\"No es pot cercar el grup\",\"Write message, @ to mention someone …\":\"Escriu un missatge, @ per mencionar algú...\"}},{\"locale\":\"cs_CZ\",\"translations\":{\"{tag} (invisible)\":\"{tag} (neviditelné)\",\"{tag} (restricted)\":\"{tag} (omezené)\",\"Actions\":\"Akce\",\"Activities\":\"Aktivity\",\"Animals & Nature\":\"Zvířata a příroda\",\"Choose\":\"Zvolit\",\"Close\":\"Zavřít\",\"Custom\":\"Uživatelsky určené\",\"External documentation for {title}\":\"Externí dokumentace k {title}\",\"Flags\":\"Příznaky\",\"Food & Drink\":\"Jídlo a pití\",\"Frequently used\":\"Často používané\",\"Message limit of {count} characters reached\":\"Dosaženo limitu počtu ({count}) znaků zprávy\",\"Next\":\"Následující\",\"No emoji found\":\"Nenalezeno žádné emoji\",\"No results\":\"Nic nenalezeno\",\"Objects\":\"Objekty\",\"Pause slideshow\":\"Pozastavit prezentaci\",\"People & Body\":\"Lidé a tělo\",\"Pick an emoji\":\"Vybrat emoji\",\"Previous\":\"Předchozí\",\"Search\":\"Hledat\",\"Search results\":\"Výsledky hledání\",\"Select a tag\":\"Vybrat štítek\",\"Settings\":\"Nastavení\",\"Settings navigation\":\"Pohyb po nastavení\",\"Smileys & Emotion\":\"Úsměvy a emoce\",\"Start slideshow\":\"Spustit prezentaci\",\"Submit\":\"Odeslat\",\"Symbols\":\"Symboly\",\"Travel & Places\":\"Cestování a místa\",\"Unable to search the group\":\"Nedaří se hledat skupinu\",\"Write message, @ to mention someone …\":\"Pište zprávu, pokud chcete někoho zmínit, použijte @ …\"}},{\"locale\":\"da\",\"translations\":{\"{tag} (invisible)\":\"{tag} (usynlig)\",\"{tag} (restricted)\":\"{tag} (begrænset)\",\"Actions\":\"Handlinger\",\"Activities\":\"Aktiviteter\",\"Animals & Nature\":\"Dyr & Natur\",\"Choose\":\"Vælg\",\"Close\":\"Luk\",\"Custom\":\"Brugerdefineret\",\"Flags\":\"Flag\",\"Food & Drink\":\"Mad & Drikke\",\"Frequently used\":\"Ofte brugt\",\"Message limit of {count} characters reached\":\"Begrænsning på {count} tegn er nået\",\"Next\":\"Videre\",\"No emoji found\":\"Ingen emoji fundet\",\"No results\":\"Ingen resultater\",\"Objects\":\"Objekter\",\"Pause slideshow\":\"Suspender fremvisning\",\"People & Body\":\"Mennesker & Menneskekroppen\",\"Pick an emoji\":\"Vælg en emoji\",\"Previous\":\"Forrige\",\"Search\":\"Søg\",\"Search results\":\"Søgeresultater\",\"Select a tag\":\"Vælg et mærke\",\"Settings\":\"Indstillinger\",\"Settings navigation\":\"Naviger i indstillinger\",\"Smileys & Emotion\":\"Smileys & Emotion\",\"Start slideshow\":\"Start fremvisning\",\"Symbols\":\"Symboler\",\"Travel & Places\":\"Rejser & Rejsemål\",\"Unable to search the group\":\"Kan ikke søge på denne gruppe\",\"Write message, @ to mention someone …\":\"Skriv i meddelelse, @ for at nævne nogen …\"}},{\"locale\":\"de\",\"translations\":{\"{tag} (invisible)\":\"{tag} (unsichtbar)\",\"{tag} (restricted)\":\"{tag} (eingeschränkt)\",\"Actions\":\"Aktionen\",\"Activities\":\"Aktivitäten\",\"Animals & Nature\":\"Tiere & Natur\",\"Choose\":\"Auswählen\",\"Close\":\"Schließen\",\"Custom\":\"Benutzerdefiniert\",\"External documentation for {title}\":\"Externe Dokumentation für {title}\",\"Flags\":\"Flaggen\",\"Food & Drink\":\"Essen & Trinken\",\"Frequently used\":\"Häufig verwendet\",\"Message limit of {count} characters reached\":\"Nachrichtenlimit von {count} Zeichen erreicht\",\"Next\":\"Weiter\",\"No emoji found\":\"Kein Emoji gefunden\",\"No results\":\"Keine Ergebnisse\",\"Objects\":\"Gegenstände\",\"Pause slideshow\":\"Diashow pausieren\",\"People & Body\":\"Menschen & Körper\",\"Pick an emoji\":\"Ein Emoji auswählen\",\"Previous\":\"Vorherige\",\"Search\":\"Suche\",\"Search results\":\"Suchergebnisse\",\"Select a tag\":\"Schlagwort auswählen\",\"Settings\":\"Einstellungen\",\"Settings navigation\":\"Einstellungen-Navigation\",\"Smileys & Emotion\":\"Smileys & Emotionen\",\"Start slideshow\":\"Diashow starten\",\"Submit\":\"Einreichen\",\"Symbols\":\"Symbole\",\"Travel & Places\":\"Reisen & Orte\",\"Unable to search the group\":\"Die Gruppe konnte nicht durchsucht werden\",\"Write message, @ to mention someone …\":\"Nachricht schreiben, @ um jemanden zu erwähnen ...\"}},{\"locale\":\"de_DE\",\"translations\":{\"{tag} (invisible)\":\"{tag} (unsichtbar)\",\"{tag} (restricted)\":\"{tag} (eingeschränkt)\",\"Actions\":\"Aktionen\",\"Activities\":\"Aktivitäten\",\"Animals & Nature\":\"Tiere & Natur\",\"Choose\":\"Auswählen\",\"Close\":\"Schließen\",\"Custom\":\"Benutzerdefiniert\",\"External documentation for {title}\":\"Externe Dokumentation für {title}\",\"Flags\":\"Flaggen\",\"Food & Drink\":\"Essen & Trinken\",\"Frequently used\":\"Häufig verwendet\",\"Message limit of {count} characters reached\":\"Nachrichtenlimit von {count} Zeichen erreicht\",\"Next\":\"Weiter\",\"No emoji found\":\"Kein Emoji gefunden\",\"No results\":\"Keine Ergebnisse\",\"Objects\":\"Gegenstände\",\"Pause slideshow\":\"Diashow pausieren\",\"People & Body\":\"Menschen & Körper\",\"Pick an emoji\":\"Ein Emoji auswählen\",\"Previous\":\"Vorherige\",\"Search\":\"Suche\",\"Search results\":\"Suchergebnisse\",\"Select a tag\":\"Schlagwort auswählen\",\"Settings\":\"Einstellungen\",\"Settings navigation\":\"Einstellungen-Navigation\",\"Smileys & Emotion\":\"Smileys & Emotionen\",\"Start slideshow\":\"Diashow starten\",\"Submit\":\"Einreichen\",\"Symbols\":\"Symbole\",\"Travel & Places\":\"Reisen & Orte\",\"Unable to search the group\":\"Die Gruppe kann nicht durchsucht werden\",\"Write message, @ to mention someone …\":\"Nachricht schreiben, @ um jemanden zu erwähnen ...\"}},{\"locale\":\"el\",\"translations\":{\"{tag} (invisible)\":\"{tag} (αόρατο)\",\"{tag} (restricted)\":\"{tag} (περιορισμένο)\",\"Actions\":\"Ενέργειες\",\"Activities\":\"Δραστηριότητες\",\"Animals & Nature\":\"Ζώα & Φύση\",\"Choose\":\"Επιλογή\",\"Close\":\"Κλείσιμο\",\"Custom\":\"Προσαρμογή\",\"Flags\":\"Σημαίες\",\"Food & Drink\":\"Φαγητό & Ποτό\",\"Frequently used\":\"Συχνά χρησιμοποιούμενο\",\"Next\":\"Επόμενο\",\"No emoji found\":\"Δεν βρέθηκε emoji\",\"No results\":\"Κανένα αποτέλεσμα\",\"Objects\":\"Αντικείμενα\",\"Pause slideshow\":\"Παύση προβολής διαφανειών\",\"People & Body\":\"Άνθρωποι & Σώμα\",\"Pick an emoji\":\"Επιλέξτε ένα emoji\",\"Previous\":\"Προηγούμενο\",\"Search\":\"Αναζήτηση\",\"Search results\":\"Αποτελέσματα αναζήτησης\",\"Select a tag\":\"Επιλογή ετικέτας\",\"Settings\":\"Ρυθμίσεις\",\"Smileys & Emotion\":\"Φατσούλες & Συναίσθημα\",\"Start slideshow\":\"Έναρξη προβολής διαφανειών\",\"Symbols\":\"Σύμβολα\",\"Travel & Places\":\"Ταξίδια & Τοποθεσίες\",\"Unable to search the group\":\"Δεν είναι δυνατή η αναζήτηση της ομάδας\"}},{\"locale\":\"eo\",\"translations\":{\"{tag} (invisible)\":\"{tag} (kaŝita)\",\"{tag} (restricted)\":\"{tag} (limigita)\",\"Actions\":\"Agoj\",\"Activities\":\"Aktiveco\",\"Animals & Nature\":\"Bestoj & Naturo\",\"Choose\":\"Elektu\",\"Close\":\"Fermu\",\"Custom\":\"Propra\",\"Flags\":\"Flagoj\",\"Food & Drink\":\"Manĝaĵo & Trinkaĵo\",\"Frequently used\":\"Ofte uzataj\",\"Message limit of {count} characters reached\":\"La limo je {count} da literoj atingita\",\"Next\":\"Sekva\",\"No emoji found\":\"La emoĝio forestas\",\"No results\":\"La rezulto forestas\",\"Objects\":\"Objektoj\",\"Pause slideshow\":\"Payzi bildprezenton\",\"People & Body\":\"Homoj & Korpo\",\"Pick an emoji\":\"Elekti emoĝion \",\"Previous\":\"Antaŭa\",\"Search\":\"Serĉi\",\"Search results\":\"Serĉrezultoj\",\"Select a tag\":\"Elektu etikedon\",\"Settings\":\"Agordo\",\"Settings navigation\":\"Agorda navigado\",\"Smileys & Emotion\":\"Ridoj kaj Emocioj\",\"Start slideshow\":\"Komenci bildprezenton\",\"Symbols\":\"Signoj\",\"Travel & Places\":\"Vojaĵoj & Lokoj\",\"Unable to search the group\":\"Ne eblas serĉi en la grupo\",\"Write message, @ to mention someone …\":\"Mesaĝi, uzu @ por mencii iun ...\"}},{\"locale\":\"es\",\"translations\":{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restringido)\",\"Actions\":\"Acciones\",\"Activities\":\"Actividades\",\"Animals & Nature\":\"Animales y naturaleza\",\"Choose\":\"Elegir\",\"Close\":\"Cerrar\",\"Custom\":\"Personalizado\",\"Flags\":\"Banderas\",\"Food & Drink\":\"Comida y bebida\",\"Frequently used\":\"Usado con frecuenca\",\"Message limit of {count} characters reached\":\"El mensaje ha alcanzado el límite de {count} caracteres\",\"Next\":\"Siguiente\",\"No emoji found\":\"No hay ningún emoji\",\"No results\":\" Ningún resultado\",\"Objects\":\"Objetos\",\"Pause slideshow\":\"Pausar la presentación \",\"People & Body\":\"Personas y cuerpos\",\"Pick an emoji\":\"Elegir un emoji\",\"Previous\":\"Anterior\",\"Search\":\"Buscar\",\"Search results\":\"Resultados de la búsqueda\",\"Select a tag\":\"Seleccione una etiqueta\",\"Settings\":\"Ajustes\",\"Settings navigation\":\"Navegación por ajustes\",\"Smileys & Emotion\":\"Smileys y emoticonos\",\"Start slideshow\":\"Iniciar la presentación\",\"Symbols\":\"Símbolos\",\"Travel & Places\":\"Viajes y lugares\",\"Unable to search the group\":\"No es posible buscar en el grupo\",\"Write message, @ to mention someone …\":\"Escriba un mensaje, @ para mencionar a alguien...\"}},{\"locale\":\"eu\",\"translations\":{\"{tag} (invisible)\":\"{tag} (ikusezina)\",\"{tag} (restricted)\":\"{tag} (mugatua)\",\"Choose\":\"Aukeratu\",\"Close\":\"Itxi\",\"Next\":\"Hurrengoa\",\"No results\":\"Emaitzarik ez\",\"Pause slideshow\":\"Pausatu diaporama\",\"Previous\":\"Aurrekoa\",\"Select a tag\":\"Hautatu etiketa bat\",\"Settings\":\"Ezarpenak\",\"Start slideshow\":\"Hasi diaporama\"}},{\"locale\":\"fi_FI\",\"translations\":{\"{tag} (invisible)\":\"{tag} (näkymätön)\",\"{tag} (restricted)\":\"{tag} (rajoitettu)\",\"Actions\":\"Toiminnot\",\"Activities\":\"Aktiviteetit\",\"Animals & Nature\":\"Eläimet & luonto\",\"Choose\":\"Valitse\",\"Close\":\"Sulje\",\"Custom\":\"Mukautettu\",\"Flags\":\"Liput\",\"Food & Drink\":\"Ruoka & juoma\",\"Frequently used\":\"Usein käytetyt\",\"Message limit of {count} characters reached\":\"Viestin maksimimerkkimäärä {count} täynnä \",\"Next\":\"Seuraava\",\"No emoji found\":\"Emojia ei löytynyt\",\"No results\":\"Ei tuloksia\",\"Objects\":\"Esineet & asiat\",\"Pause slideshow\":\"Keskeytä diaesitys\",\"People & Body\":\"Ihmiset & keho\",\"Pick an emoji\":\"Valitse emoji\",\"Previous\":\"Edellinen\",\"Search\":\"Etsi\",\"Search results\":\"Hakutulokset\",\"Select a tag\":\"Valitse tagi\",\"Settings\":\"Asetukset\",\"Settings navigation\":\"Asetusnavigaatio\",\"Smileys & Emotion\":\"Hymiöt ja & tunteet\",\"Start slideshow\":\"Aloita diaesitys\",\"Symbols\":\"Symbolit\",\"Travel & Places\":\"Matkustus & kohteet\",\"Unable to search the group\":\"Ryhmää ei voi hakea\",\"Write message, @ to mention someone …\":\"Kirjoita viesti, @ mainitaksesi jonkun...\"}},{\"locale\":\"fr\",\"translations\":{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restreint)\",\"Actions\":\"Actions\",\"Activities\":\"Activités\",\"Animals & Nature\":\"Animaux & Nature\",\"Choose\":\"Choisir\",\"Close\":\"Fermer\",\"Custom\":\"Personnalisé\",\"Flags\":\"Drapeaux\",\"Food & Drink\":\"Nourriture & Boissons\",\"Frequently used\":\"Utilisés fréquemment\",\"Message limit of {count} characters reached\":\"Limite de messages de {count} caractères atteinte\",\"Next\":\"Suivant\",\"No emoji found\":\"Pas démoji trouvé\",\"No results\":\"Aucun résultat\",\"Objects\":\"Objets\",\"Pause slideshow\":\"Mettre le diaporama en pause\",\"People & Body\":\"Personnes & Corps\",\"Pick an emoji\":\"Choisissez un émoji\",\"Previous\":\"Précédent\",\"Search\":\"Chercher\",\"Search results\":\"Résultats de recherche\",\"Select a tag\":\"Sélectionnez une balise\",\"Settings\":\"Paramètres\",\"Settings navigation\":\"Navigation dans les paramètres\",\"Smileys & Emotion\":\"Smileys & Émotions\",\"Start slideshow\":\"Démarrer le diaporama\",\"Symbols\":\"Symboles\",\"Travel & Places\":\"Voyage & Lieux\",\"Unable to search the group\":\"Impossible de chercher le groupe\",\"Write message, @ to mention someone …\":\"Écrivez un message, @ pour mentionner quelqu'un…\"}},{\"locale\":\"gl\",\"translations\":{\"{tag} (invisible)\":\"{tag} (invisíbel)\",\"{tag} (restricted)\":\"{tag} (restrinxido)\",\"Actions\":\"Accións\",\"Activities\":\"Actividades\",\"Animals & Nature\":\"Animais e natureza\",\"Choose\":\"Escoller\",\"Close\":\"Pechar\",\"Custom\":\"Personalizado\",\"Flags\":\"Bandeiras\",\"Food & Drink\":\"Comida e bebida\",\"Frequently used\":\"Usado con frecuencia\",\"Message limit of {count} characters reached\":\"Acadouse o límite de {count} caracteres por mensaxe\",\"Next\":\"Seguinte\",\"No emoji found\":\"Non se atopou ningún «emoji»\",\"No results\":\"Sen resultados\",\"Objects\":\"Obxectos\",\"Pause slideshow\":\"Pausar o diaporama\",\"People & Body\":\"Persoas e corpo\",\"Pick an emoji\":\"Escolla un «emoji»\",\"Previous\":\"Anterir\",\"Search\":\"Buscar\",\"Search results\":\"Resultados da busca\",\"Select a tag\":\"Seleccione unha etiqueta\",\"Settings\":\"Axustes\",\"Settings navigation\":\"Navegación de axustes\",\"Smileys & Emotion\":\"Sorrisos e emocións\",\"Start slideshow\":\"Iniciar o diaporama\",\"Symbols\":\"Símbolos\",\"Travel & Places\":\"Viaxes e lugares\",\"Unable to search the group\":\"Non foi posíbel buscar o grupo\",\"Write message, @ to mention someone …\":\"Escriba a mensaxe, @ para mencionar a alguén…\"}},{\"locale\":\"he\",\"translations\":{\"{tag} (invisible)\":\"{tag} (נסתר)\",\"{tag} (restricted)\":\"{tag} (מוגבל)\",\"Actions\":\"פעולות\",\"Activities\":\"פעילויות\",\"Animals & Nature\":\"חיות וטבע\",\"Choose\":\"בחירה\",\"Close\":\"סגירה\",\"Custom\":\"בהתאמה אישית\",\"Flags\":\"דגלים\",\"Food & Drink\":\"מזון ומשקאות\",\"Frequently used\":\"בשימוש תדיר\",\"Next\":\"הבא\",\"No emoji found\":\"לא נמצא אמוג׳י\",\"No results\":\"אין תוצאות\",\"Objects\":\"חפצים\",\"Pause slideshow\":\"השהיית מצגת\",\"People & Body\":\"אנשים וגוף\",\"Pick an emoji\":\"נא לבחור אמוג׳י\",\"Previous\":\"הקודם\",\"Search\":\"חיפוש\",\"Search results\":\"תוצאות חיפוש\",\"Select a tag\":\"בחירת תגית\",\"Settings\":\"הגדרות\",\"Smileys & Emotion\":\"חייכנים ורגשונים\",\"Start slideshow\":\"התחלת המצגת\",\"Symbols\":\"סמלים\",\"Travel & Places\":\"טיולים ומקומות\",\"Unable to search the group\":\"לא ניתן לחפש בקבוצה\"}},{\"locale\":\"hu_HU\",\"translations\":{\"{tag} (invisible)\":\"{tag} (láthatatlan)\",\"{tag} (restricted)\":\"{tag} (korlátozott)\",\"Actions\":\"Műveletek\",\"Activities\":\"Tevékenységek\",\"Animals & Nature\":\"Állatok és természet\",\"Choose\":\"Válassszon\",\"Close\":\"Bezárás\",\"Custom\":\"Egyéni\",\"Flags\":\"Zászló\",\"Food & Drink\":\"Étel és ital\",\"Frequently used\":\"Gyakran használt\",\"Message limit of {count} characters reached\":\"{count} karakteres üzenetkorlát elérve\",\"Next\":\"Következő\",\"No emoji found\":\"Nem található emodzsi\",\"No results\":\"Nincs találat\",\"Objects\":\"Tárgyak\",\"Pause slideshow\":\"Diavetítés szüneteltetése\",\"People & Body\":\"Emberek és test\",\"Pick an emoji\":\"Válasszon egy emodzsit\",\"Previous\":\"Előző\",\"Search\":\"Keresés\",\"Search results\":\"Találatok\",\"Select a tag\":\"Válasszon címkét\",\"Settings\":\"Beállítások\",\"Settings navigation\":\"Navigáció a beállításokban\",\"Smileys & Emotion\":\"Mosolyok és érzelmek\",\"Start slideshow\":\"Diavetítés indítása\",\"Symbols\":\"Szimbólumok\",\"Travel & Places\":\"Utazás és helyek\",\"Unable to search the group\":\"A csoport nem kereshető\",\"Write message, @ to mention someone …\":\"Írjon üzenetet, @ valaki megemlítéséhez…\"}},{\"locale\":\"is\",\"translations\":{\"{tag} (invisible)\":\"{tag} (ósýnilegt)\",\"{tag} (restricted)\":\"{tag} (takmarkað)\",\"Actions\":\"Aðgerðir\",\"Activities\":\"Aðgerðir\",\"Animals & Nature\":\"Dýr og náttúra\",\"Choose\":\"Velja\",\"Close\":\"Loka\",\"Custom\":\"Sérsniðið\",\"Flags\":\"Flögg\",\"Food & Drink\":\"Matur og drykkur\",\"Frequently used\":\"Oftast notað\",\"Next\":\"Næsta\",\"No emoji found\":\"Ekkert tjáningartákn fannst\",\"No results\":\"Engar niðurstöður\",\"Objects\":\"Hlutir\",\"Pause slideshow\":\"Gera hlé á skyggnusýningu\",\"People & Body\":\"Fólk og líkami\",\"Pick an emoji\":\"Veldu tjáningartákn\",\"Previous\":\"Fyrri\",\"Search\":\"Leita\",\"Search results\":\"Leitarniðurstöður\",\"Select a tag\":\"Veldu merki\",\"Settings\":\"Stillingar\",\"Smileys & Emotion\":\"Broskallar og tilfinningar\",\"Start slideshow\":\"Byrja skyggnusýningu\",\"Symbols\":\"Tákn\",\"Travel & Places\":\"Staðir og ferðalög\",\"Unable to search the group\":\"Get ekki leitað í hópnum\"}},{\"locale\":\"it\",\"translations\":{\"{tag} (invisible)\":\"{tag} (invisibile)\",\"{tag} (restricted)\":\"{tag} (limitato)\",\"Actions\":\"Azioni\",\"Activities\":\"Attività\",\"Animals & Nature\":\"Animali e natura\",\"Choose\":\"Scegli\",\"Close\":\"Chiudi\",\"Custom\":\"Personalizzato\",\"External documentation for {title}\":\"Documentazione esterna per {title}\",\"Flags\":\"Bandiere\",\"Food & Drink\":\"Cibo e bevande\",\"Frequently used\":\"Usati di frequente\",\"Message limit of {count} characters reached\":\"Limite dei messaggi di {count} caratteri raggiunto\",\"Next\":\"Successivo\",\"No emoji found\":\"Nessun emoji trovato\",\"No results\":\"Nessun risultato\",\"Objects\":\"Oggetti\",\"Pause slideshow\":\"Presentazione in pausa\",\"People & Body\":\"Persone e corpo\",\"Pick an emoji\":\"Scegli un emoji\",\"Previous\":\"Precedente\",\"Search\":\"Cerca\",\"Search results\":\"Risultati di ricerca\",\"Select a tag\":\"Seleziona un'etichetta\",\"Settings\":\"Impostazioni\",\"Settings navigation\":\"Navigazione delle impostazioni\",\"Smileys & Emotion\":\"Faccine ed emozioni\",\"Start slideshow\":\"Avvia presentazione\",\"Submit\":\"Invia\",\"Symbols\":\"Simboli\",\"Travel & Places\":\"Viaggi e luoghi\",\"Unable to search the group\":\"Impossibile cercare il gruppo\",\"Write message, @ to mention someone …\":\"Scrivi messaggio, @ per menzionare qualcuno…\"}},{\"locale\":\"ja_JP\",\"translations\":{\"{tag} (invisible)\":\"{タグ} (不可視)\",\"{tag} (restricted)\":\"{タグ} (制限付)\",\"Actions\":\"操作\",\"Activities\":\"アクティビティ\",\"Animals & Nature\":\"動物と自然\",\"Choose\":\"選択\",\"Close\":\"閉じる\",\"Custom\":\"カスタム\",\"Flags\":\"国旗\",\"Food & Drink\":\"食べ物と飲み物\",\"Frequently used\":\"よく使うもの\",\"Message limit of {count} characters reached\":\"{count} 文字のメッセージ上限に達しています\",\"Next\":\"次\",\"No emoji found\":\"絵文字が見つかりません\",\"No results\":\"なし\",\"Objects\":\"物\",\"Pause slideshow\":\"スライドショーを一時停止\",\"People & Body\":\"様々な人と体の部位\",\"Pick an emoji\":\"絵文字を選択\",\"Previous\":\"前\",\"Search\":\"検索\",\"Search results\":\"検索結果\",\"Select a tag\":\"タグを選択\",\"Settings\":\"設定\",\"Settings navigation\":\"ナビゲーション設定\",\"Smileys & Emotion\":\"笑顔と気持ち\",\"Start slideshow\":\"スライドショーを開始\",\"Symbols\":\"記号\",\"Travel & Places\":\"旅行と場所\",\"Unable to search the group\":\"グループを検索できません\",\"Write message, @ to mention someone …\":\"メッセージを書く、@ で通知します。\"}},{\"locale\":\"lt_LT\",\"translations\":{\"{tag} (invisible)\":\"{tag} (nematoma)\",\"{tag} (restricted)\":\"{tag} (apribota)\",\"Actions\":\"Veiksmai\",\"Activities\":\"Veiklos\",\"Animals & Nature\":\"Gyvūnai ir gamta\",\"Choose\":\"Pasirinkti\",\"Close\":\"Užverti\",\"Custom\":\"Tinkinti\",\"External documentation for {title}\":\"Išorinė {title} dokumentacija\",\"Flags\":\"Vėliavos\",\"Food & Drink\":\"Maistas ir gėrimai\",\"Frequently used\":\"Dažniausiai naudoti\",\"Message limit of {count} characters reached\":\"Pasiekta {count} simbolių žinutės riba\",\"Next\":\"Kitas\",\"No emoji found\":\"Nerasta jaustukų\",\"No results\":\"Nėra rezultatų\",\"Objects\":\"Objektai\",\"Pause slideshow\":\"Pristabdyti skaidrių rodymą\",\"People & Body\":\"Žmonės ir kūnas\",\"Pick an emoji\":\"Pasirinkti jaustuką\",\"Previous\":\"Ankstesnis\",\"Search\":\"Ieškoti\",\"Search results\":\"Paieškos rezultatai\",\"Select a tag\":\"Pasirinkti žymę\",\"Settings\":\"Nustatymai\",\"Settings navigation\":\"Naršymas nustatymuose\",\"Smileys & Emotion\":\"Šypsenos ir emocijos\",\"Start slideshow\":\"Pradėti skaidrių rodymą\",\"Submit\":\"Pateikti\",\"Symbols\":\"Simboliai\",\"Travel & Places\":\"Kelionės ir vietos\",\"Unable to search the group\":\"Nepavyko atlikti paiešką grupėje\",\"Write message, @ to mention someone …\":\"Rašykite žinutę, naudokite @ norėdami kažką paminėti…\"}},{\"locale\":\"lv\",\"translations\":{\"{tag} (invisible)\":\"{tag} (neredzams)\",\"{tag} (restricted)\":\"{tag} (ierobežots)\",\"Choose\":\"Izvēlēties\",\"Close\":\"Aizvērt\",\"Next\":\"Nākamais\",\"No results\":\"Nav rezultātu\",\"Pause slideshow\":\"Pauzēt slaidrādi\",\"Previous\":\"Iepriekšējais\",\"Select a tag\":\"Izvēlēties birku\",\"Settings\":\"Iestatījumi\",\"Start slideshow\":\"Sākt slaidrādi\"}},{\"locale\":\"mk\",\"translations\":{\"{tag} (invisible)\":\"{tag} (невидливо)\",\"{tag} (restricted)\":\"{tag} (ограничено)\",\"Actions\":\"Акции\",\"Activities\":\"Активности\",\"Animals & Nature\":\"Животни & Природа\",\"Choose\":\"Избери\",\"Close\":\"Затвори\",\"Custom\":\"Прилагодени\",\"Flags\":\"Знамиња\",\"Food & Drink\":\"Храна & Пијалоци\",\"Frequently used\":\"Најчесто користени\",\"Message limit of {count} characters reached\":\"Ограничувањето на должината на пораката од {count} карактери е надминато\",\"Next\":\"Следно\",\"No emoji found\":\"Не се пронајдени емотикони\",\"No results\":\"Нема резултати\",\"Objects\":\"Објекти\",\"Pause slideshow\":\"Пузирај слајдшоу\",\"People & Body\":\"Луѓе & Тело\",\"Pick an emoji\":\"Избери емотикон\",\"Previous\":\"Предходно\",\"Search\":\"Барај\",\"Search results\":\"Резултати од барувањето\",\"Select a tag\":\"Избери ознака\",\"Settings\":\"Параметри\",\"Settings navigation\":\"Параметри за навигација\",\"Smileys & Emotion\":\"Смешковци & Емотикони\",\"Start slideshow\":\"Стартувај слајдшоу\",\"Symbols\":\"Симболи\",\"Travel & Places\":\"Патувања & Места\",\"Unable to search the group\":\"Неможе да се принајде групата\",\"Write message, @ to mention someone …\":\"Напиши порака, @ за да спомнеш некој …\"}},{\"locale\":\"nb_NO\",\"translations\":{\"{tag} (invisible)\":\"{tag} (usynlig)\",\"{tag} (restricted)\":\"{tag} (beskyttet)\",\"Actions\":\"Handlinger\",\"Activities\":\"Aktiviteter\",\"Animals & Nature\":\"Dyr og natur\",\"Choose\":\"Velg\",\"Close\":\"Lukk\",\"Custom\":\"Selvvalgt\",\"Flags\":\"Flagg\",\"Food & Drink\":\"Mat og drikke\",\"Frequently used\":\"Ofte brukt\",\"Next\":\"Neste\",\"No emoji found\":\"Fant ingen emoji\",\"No results\":\"Ingen resultater\",\"Objects\":\"Objekter\",\"Pause slideshow\":\"Pause lysbildefremvisning\",\"People & Body\":\"Mennesker og kropp\",\"Pick an emoji\":\"Velg en emoji\",\"Previous\":\"Forrige\",\"Search\":\"Søk\",\"Search results\":\"Søkeresultater\",\"Select a tag\":\"Velg en merkelapp\",\"Settings\":\"Innstillinger\",\"Smileys & Emotion\":\"Smilefjes og følelser\",\"Start slideshow\":\"Start lysbildefremvisning\",\"Symbols\":\"Symboler\",\"Travel & Places\":\"Reise og steder\",\"Unable to search the group\":\"Kunne ikke søke i gruppen\"}},{\"locale\":\"nl\",\"translations\":{\"{tag} (invisible)\":\"{tag} (onzichtbaar)\",\"{tag} (restricted)\":\"{tag} (beperkt)\",\"Actions\":\"Acties\",\"Activities\":\"Activiteiten\",\"Animals & Nature\":\"Dieren & Natuur\",\"Choose\":\"Kies\",\"Close\":\"Sluiten\",\"Custom\":\"Aangepast\",\"Flags\":\"Vlaggen\",\"Food & Drink\":\"Eten & Drinken\",\"Frequently used\":\"Vaak gebruikt\",\"Message limit of {count} characters reached\":\"Berichtlengte van {count} karakters bereikt\",\"Next\":\"Volgende\",\"No emoji found\":\"Geen emoji gevonden\",\"No results\":\"Geen resultaten\",\"Objects\":\"Objecten\",\"Pause slideshow\":\"Pauzeer diavoorstelling\",\"People & Body\":\"Mensen & Lichaam\",\"Pick an emoji\":\"Kies een emoji\",\"Previous\":\"Vorige\",\"Search\":\"Zoeken\",\"Search results\":\"Zoekresultaten\",\"Select a tag\":\"Selecteer een label\",\"Settings\":\"Instellingen\",\"Settings navigation\":\"Instellingen navigatie\",\"Smileys & Emotion\":\"Smileys & Emotie\",\"Start slideshow\":\"Start diavoorstelling\",\"Symbols\":\"Symbolen\",\"Travel & Places\":\"Reizen & Plaatsen\",\"Unable to search the group\":\"Kan niet in de groep zoeken\",\"Write message, @ to mention someone …\":\"Schrijf een bericht, @ om iemand te noemen ...\"}},{\"locale\":\"oc\",\"translations\":{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (limit)\",\"Actions\":\"Accions\",\"Choose\":\"Causir\",\"Close\":\"Tampar\",\"Next\":\"Seguent\",\"No results\":\"Cap de resultat\",\"Pause slideshow\":\"Metre en pausa lo diaporama\",\"Previous\":\"Precedent\",\"Select a tag\":\"Seleccionar una etiqueta\",\"Settings\":\"Paramètres\",\"Start slideshow\":\"Lançar lo diaporama\"}},{\"locale\":\"pl\",\"translations\":{\"{tag} (invisible)\":\"{tag} (niewidoczna)\",\"{tag} (restricted)\":\"{tag} (ograniczona)\",\"Actions\":\"Działania\",\"Activities\":\"Aktywność\",\"Animals & Nature\":\"Zwierzęta i natura\",\"Choose\":\"Wybierz\",\"Close\":\"Zamknij\",\"Custom\":\"Zwyczajne\",\"External documentation for {title}\":\"Dokumentacja zewnętrzna dla {title}\",\"Flags\":\"Flagi\",\"Food & Drink\":\"Jedzenie i picie\",\"Frequently used\":\"Często używane\",\"Message limit of {count} characters reached\":\"Przekroczono limit wiadomości wynoszący {count} znaków\",\"Next\":\"Następny\",\"No emoji found\":\"Nie znaleziono emotikonów\",\"No results\":\"Brak wyników\",\"Objects\":\"Obiekty\",\"Pause slideshow\":\"Wstrzymaj pokaz slajdów\",\"People & Body\":\"Ludzie i ciało\",\"Pick an emoji\":\"Wybierz emoji\",\"Previous\":\"Poprzedni\",\"Search\":\"Szukaj\",\"Search results\":\"Wyniki wyszukiwania\",\"Select a tag\":\"Wybierz etykietę\",\"Settings\":\"Ustawienia\",\"Settings navigation\":\"Nawigacja ustawień\",\"Smileys & Emotion\":\"Buźki i emotikony\",\"Start slideshow\":\"Rozpocznij pokaz slajdów\",\"Submit\":\"Wyślij\",\"Symbols\":\"Symbole\",\"Travel & Places\":\"Podróże i miejsca\",\"Unable to search the group\":\"Nie można przeszukać grupy\",\"Write message, @ to mention someone …\":\"Napisz wiadomość, aby wspomnieć o kimś użyj @…\"}},{\"locale\":\"pt_BR\",\"translations\":{\"{tag} (invisible)\":\"{tag} (invisível)\",\"{tag} (restricted)\":\"{tag} (restrito) \",\"Actions\":\"Ações\",\"Activities\":\"Atividades\",\"Animals & Nature\":\"Animais & Natureza\",\"Choose\":\"Escolher\",\"Close\":\"Fechar\",\"Custom\":\"Personalizado\",\"External documentation for {title}\":\"Documentação externa para {title}\",\"Flags\":\"Bandeiras\",\"Food & Drink\":\"Comida & Bebida\",\"Frequently used\":\"Mais usados\",\"Message limit of {count} characters reached\":\"Limite de mensagem de {count} caracteres atingido\",\"Next\":\"Próximo\",\"No emoji found\":\"Nenhum emoji encontrado\",\"No results\":\"Sem resultados\",\"Objects\":\"Objetos\",\"Pause slideshow\":\"Pausar apresentação de slides\",\"People & Body\":\"Pessoas & Corpo\",\"Pick an emoji\":\"Escolha um emoji\",\"Previous\":\"Anterior\",\"Search\":\"Pesquisar\",\"Search results\":\"Resultados da pesquisa\",\"Select a tag\":\"Selecionar uma tag\",\"Settings\":\"Configurações\",\"Settings navigation\":\"Navegação de configurações\",\"Smileys & Emotion\":\"Smiles & Emoções\",\"Start slideshow\":\"Iniciar apresentação de slides\",\"Submit\":\"Enviar\",\"Symbols\":\"Símbolo\",\"Travel & Places\":\"Viagem & Lugares\",\"Unable to search the group\":\"Não foi possível pesquisar o grupo\",\"Write message, @ to mention someone …\":\"Escreva mensagem, @ para mencionar alguém ...\"}},{\"locale\":\"pt_PT\",\"translations\":{\"{tag} (invisible)\":\"{tag} (invisivel)\",\"{tag} (restricted)\":\"{tag} (restrito)\",\"Actions\":\"Ações\",\"Choose\":\"Escolher\",\"Close\":\"Fechar\",\"Next\":\"Seguinte\",\"No results\":\"Sem resultados\",\"Pause slideshow\":\"Pausar diaporama\",\"Previous\":\"Anterior\",\"Select a tag\":\"Selecionar uma etiqueta\",\"Settings\":\"Definições\",\"Start slideshow\":\"Iniciar diaporama\",\"Unable to search the group\":\"Não é possível pesquisar o grupo\"}},{\"locale\":\"ru\",\"translations\":{\"{tag} (invisible)\":\"{tag} (невидимое)\",\"{tag} (restricted)\":\"{tag} (ограниченное)\",\"Choose\":\"Выберите\",\"Close\":\"Закрыть\",\"Next\":\"Следующее\",\"No results\":\"Результаты отсуствуют\",\"Pause slideshow\":\"Приостановить показ слйдов\",\"Previous\":\"Предыдущее\",\"Select a tag\":\"Выберите метку\",\"Settings\":\"Параметры\",\"Start slideshow\":\"Начать показ слайдов\"}},{\"locale\":\"sk_SK\",\"translations\":{\"{tag} (invisible)\":\"{tag} (neviditeľný)\",\"{tag} (restricted)\":\"{tag} (obmedzený)\",\"Actions\":\"Akcie\",\"Activities\":\"Aktivity\",\"Animals & Nature\":\"Zvieratá a príroda\",\"Choose\":\"Vybrať\",\"Close\":\"Zatvoriť\",\"Custom\":\"Zvyk\",\"Flags\":\"Vlajky\",\"Food & Drink\":\"Jedlo a nápoje\",\"Frequently used\":\"Často používané\",\"Next\":\"Ďalší\",\"No emoji found\":\"Nenašli sa žiadne emodži\",\"No results\":\"Žiadne výsledky\",\"Objects\":\"Objekty\",\"Pause slideshow\":\"Pozastaviť prezentáciu\",\"People & Body\":\"Ľudia a telo\",\"Pick an emoji\":\"Vyberte si emodži\",\"Previous\":\"Predchádzajúci\",\"Search\":\"Hľadať\",\"Search results\":\"Výsledky vyhľadávania\",\"Select a tag\":\"Vybrať štítok\",\"Settings\":\"Nastavenia\",\"Smileys & Emotion\":\"Smajlíky a emócie\",\"Start slideshow\":\"Začať prezentáciu\",\"Symbols\":\"Symboly\",\"Travel & Places\":\"Cestovanie a miesta\",\"Unable to search the group\":\"Skupinu sa nepodarilo nájsť\"}},{\"locale\":\"sl\",\"translations\":{\"{tag} (invisible)\":\"{tag} (nevidno)\",\"{tag} (restricted)\":\"{tag} (omejeno)\",\"Actions\":\"Dejanja\",\"Activities\":\"Dejavnosti\",\"Animals & Nature\":\"Živali in Narava\",\"Choose\":\"Izbor\",\"Close\":\"Zapri\",\"Custom\":\"Po meri\",\"External documentation for {title}\":\"Zunanja dokumentacija za {title}\",\"Flags\":\"Zastavice\",\"Food & Drink\":\"Hrana in Pijača\",\"Frequently used\":\"Pogostost uporabe\",\"Message limit of {count} characters reached\":\"Dosežena omejitev {count} znakov na sporočilo.\",\"Next\":\"Naslednji\",\"No emoji found\":\"Ni najdenih izraznih ikon\",\"No results\":\"Ni zadetkov\",\"Objects\":\"Predmeti\",\"Pause slideshow\":\"Ustavi predstavitev\",\"People & Body\":\"Ljudje in Telo\",\"Pick an emoji\":\"Izbor izrazne ikone\",\"Previous\":\"Predhodni\",\"Search\":\"Iskanje\",\"Search results\":\"Zadetki iskanja\",\"Select a tag\":\"Izbor oznake\",\"Settings\":\"Nastavitve\",\"Settings navigation\":\"Krmarjenje nastavitev\",\"Smileys & Emotion\":\"Izrazne ikone\",\"Start slideshow\":\"Začni predstavitev\",\"Submit\":\"Pošlji\",\"Symbols\":\"Simboli\",\"Travel & Places\":\"Potovanja in Kraji\",\"Unable to search the group\":\"Ni mogoče iskati po skuspini\",\"Write message, @ to mention someone …\":\"Napišite sporočilo, z @ omenite osebo ...\"}},{\"locale\":\"sv\",\"translations\":{\"{tag} (invisible)\":\"{tag} (osynlig)\",\"{tag} (restricted)\":\"{tag} (begränsad)\",\"Actions\":\"Åtgärder\",\"Activities\":\"Aktiviteter\",\"Animals & Nature\":\"Djur & Natur\",\"Choose\":\"Välj\",\"Close\":\"Stäng\",\"Custom\":\"Anpassad\",\"Flags\":\"Flaggor\",\"Food & Drink\":\"Mat & Dryck\",\"Frequently used\":\"Används ofta\",\"Message limit of {count} characters reached\":\"Meddelandegräns {count} tecken används\",\"Next\":\"Nästa\",\"No emoji found\":\"Hittade inga emojis\",\"No results\":\"Inga resultat\",\"Objects\":\"Objekt\",\"Pause slideshow\":\"Pausa bildspelet\",\"People & Body\":\"Kropp & Själ\",\"Pick an emoji\":\"Välj en emoji\",\"Previous\":\"Föregående\",\"Search\":\"Sök\",\"Search results\":\"Sökresultat\",\"Select a tag\":\"Välj en tag\",\"Settings\":\"Inställningar\",\"Settings navigation\":\"Inställningsmeny\",\"Smileys & Emotion\":\"Selfies & Känslor\",\"Start slideshow\":\"Starta bildspelet\",\"Symbols\":\"Symboler\",\"Travel & Places\":\"Resor & Sevärdigheter\",\"Unable to search the group\":\"Kunde inte söka i gruppen\",\"Write message, @ to mention someone …\":\"Skicka meddelande, skriv @ för att omnämna någon ...\"}},{\"locale\":\"tr\",\"translations\":{\"{tag} (invisible)\":\"{tag} (görünmez)\",\"{tag} (restricted)\":\"{tag} (kısıtlı)\",\"Actions\":\"İşlemler\",\"Activities\":\"Etkinlikler\",\"Animals & Nature\":\"Hayvanlar ve Doğa\",\"Choose\":\"Seçin\",\"Close\":\"Kapat\",\"Custom\":\"Özel\",\"External documentation for {title}\":\"{title} için dış belgeler\",\"Flags\":\"Bayraklar\",\"Food & Drink\":\"Yeme ve İçme\",\"Frequently used\":\"Sık kullanılanlar\",\"Message limit of {count} characters reached\":\"{count} karakter ileti sınırına ulaşıldı\",\"Next\":\"Sonraki\",\"No emoji found\":\"Herhangi bir emoji bulunamadı\",\"No results\":\"Herhangi bir sonuç bulunamadı\",\"Objects\":\"Nesneler\",\"Pause slideshow\":\"Slayt sunumunu duraklat\",\"People & Body\":\"İnsanlar ve Beden\",\"Pick an emoji\":\"Bir emoji seçin\",\"Previous\":\"Önceki\",\"Search\":\"Arama\",\"Search results\":\"Arama sonuçları\",\"Select a tag\":\"Bir etiket seçin\",\"Settings\":\"Ayarlar\",\"Settings navigation\":\"Gezinme ayarları\",\"Smileys & Emotion\":\"İfadeler ve Duygular\",\"Start slideshow\":\"Slayt sunumunu başlat\",\"Submit\":\"Gönder\",\"Symbols\":\"Simgeler\",\"Travel & Places\":\"Gezi ve Yerler\",\"Unable to search the group\":\"Grupta arama yapılamadı\",\"Write message, @ to mention someone …\":\"İletiyi yazın. Birini anmak için @ kullanın …\"}},{\"locale\":\"uk\",\"translations\":{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restricted)\",\"Actions\":\"Дії\",\"Activities\":\"Діяльність\",\"Animals & Nature\":\"Тварини та природа\",\"Choose\":\"Виберіть\",\"Close\":\"Закрити\",\"Custom\":\"Власне\",\"Flags\":\"Прапори\",\"Food & Drink\":\"Їжа та напитки\",\"Frequently used\":\"Найчастіші\",\"Next\":\"Вперед\",\"No emoji found\":\"Емоційки відсутні\",\"No results\":\"Відсутні результати\",\"Objects\":\"Об'єкти\",\"Pause slideshow\":\"Пауза у показі слайдів\",\"People & Body\":\"Люди та жести\",\"Pick an emoji\":\"Виберіть емоційку\",\"Previous\":\"Назад\",\"Search\":\"Пошук\",\"Search results\":\"Результати пошуку\",\"Select a tag\":\"Виберіть позначку\",\"Settings\":\"Налаштування\",\"Smileys & Emotion\":\"Усміхайлики та емоційки\",\"Start slideshow\":\"Почати показ слайдів\",\"Symbols\":\"Символи\",\"Travel & Places\":\"Поїздки та місця\",\"Unable to search the group\":\"Неможливо шукати в групі\"}},{\"locale\":\"zh_CN\",\"translations\":{\"{tag} (invisible)\":\"{tag} (不可见)\",\"{tag} (restricted)\":\"{tag} (受限)\",\"Actions\":\"行为\",\"Activities\":\"活动\",\"Animals & Nature\":\"动物 & 自然\",\"Choose\":\"选择\",\"Close\":\"关闭\",\"Custom\":\"自定义\",\"Flags\":\"旗帜\",\"Food & Drink\":\"食物 & 饮品\",\"Frequently used\":\"经常使用\",\"Message limit of {count} characters reached\":\"已达到 {count} 个字符的消息限制\",\"Next\":\"下一个\",\"No emoji found\":\"表情未找到\",\"No results\":\"无结果\",\"Objects\":\"物体\",\"Pause slideshow\":\"暂停幻灯片\",\"People & Body\":\"人 & 身体\",\"Pick an emoji\":\"选择一个表情\",\"Previous\":\"上一个\",\"Search\":\"搜索\",\"Search results\":\"搜索结果\",\"Select a tag\":\"选择一个标签\",\"Settings\":\"设置\",\"Settings navigation\":\"设置向导\",\"Smileys & Emotion\":\"笑脸 & 情感\",\"Start slideshow\":\"开始幻灯片\",\"Symbols\":\"符号\",\"Travel & Places\":\"旅游 & 地点\",\"Unable to search the group\":\"无法搜索分组\",\"Write message, @ to mention someone …\":\"输入消息,输入 @ 来提醒某人\"}},{\"locale\":\"zh_HK\",\"translations\":{\"{tag} (invisible)\":\"{tag} (隱藏)\",\"{tag} (restricted)\":\"{tag} (受限)\",\"Actions\":\"動作\",\"Activities\":\"活動\",\"Animals & Nature\":\"動物與自然\",\"Choose\":\"選擇\",\"Close\":\"關閉\",\"Custom\":\"自定義\",\"External documentation for {title}\":\"{title} 的外部文檔\",\"Flags\":\"旗幟\",\"Food & Drink\":\"食物與飲料\",\"Frequently used\":\"經常使用\",\"Message limit of {count} characters reached\":\"已達到訊息最多 {count} 字元限制\",\"Next\":\"下一個\",\"No emoji found\":\"未找到表情符號\",\"No results\":\"無結果\",\"Objects\":\"物件\",\"Pause slideshow\":\"暫停幻燈片\",\"People & Body\":\"人物\",\"Pick an emoji\":\"選擇表情符號\",\"Previous\":\"上一個\",\"Search\":\"搜尋\",\"Search results\":\"搜尋結果\",\"Select a tag\":\"選擇標籤\",\"Settings\":\"設定\",\"Settings navigation\":\"設定值導覽\",\"Smileys & Emotion\":\"表情\",\"Start slideshow\":\"開始幻燈片\",\"Submit\":\"提交\",\"Symbols\":\"標誌\",\"Travel & Places\":\"旅遊與景點\",\"Unable to search the group\":\"無法搜尋群組\",\"Write message, @ to mention someone …\":\"輸入訊息時可使用 @ 來標示某人...\"}},{\"locale\":\"zh_TW\",\"translations\":{\"{tag} (invisible)\":\"{tag} (隱藏)\",\"{tag} (restricted)\":\"{tag} (受限)\",\"Actions\":\"動作\",\"Activities\":\"活動\",\"Animals & Nature\":\"動物與自然\",\"Choose\":\"選擇\",\"Close\":\"關閉\",\"Custom\":\"自定義\",\"Flags\":\"旗幟\",\"Food & Drink\":\"食物與飲料\",\"Frequently used\":\"最近使用\",\"Message limit of {count} characters reached\":\"已達到訊息最多 {count} 字元限制\",\"Next\":\"下一個\",\"No emoji found\":\"未找到表情符號\",\"No results\":\"無結果\",\"Objects\":\"物件\",\"Pause slideshow\":\"暫停幻燈片\",\"People & Body\":\"人物\",\"Pick an emoji\":\"選擇表情符號\",\"Previous\":\"上一個\",\"Search\":\"搜尋\",\"Search results\":\"搜尋結果\",\"Select a tag\":\"選擇標籤\",\"Settings\":\"設定\",\"Settings navigation\":\"設定值導覽\",\"Smileys & Emotion\":\"表情\",\"Start slideshow\":\"開始幻燈片\",\"Symbols\":\"標誌\",\"Travel & Places\":\"旅遊與景點\",\"Unable to search the group\":\"無法搜尋群組\",\"Write message, @ to mention someone …\":\"輸入訊息時可使用 @ 來標示某人...\"}}].forEach(function (lang) {\n var translations = {};\n\n for (var key in lang.translations) {\n // Plural\n if (lang.translations[key].pluralId) {\n translations[key] = {\n msgid: key,\n msgid_plural: lang.translations[key].pluralId,\n msgstr: lang.translations[key].msgstr\n };\n continue;\n } // Singular\n\n\n translations[key] = {\n msgid: key,\n msgstr: [lang.translations[key]]\n };\n }\n\n gtBuilder.addTranslation(lang.locale, {\n translations: {\n '': translations\n }\n });\n});\nvar gt = gtBuilder.build();\nvar n = gt.ngettext.bind(gt);\nvar t = gt.gettext.bind(gt);\n\n\n/***/ }),\n\n/***/ \"./src/utils/GenRandomId.js\":\n/*!**********************************!*\\\n !*** ./src/utils/GenRandomId.js ***!\n \\**********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"core-js/modules/es.regexp.exec.js\");\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ \"core-js/modules/es.string.replace.js\");\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ \"core-js/modules/es.regexp.to-string.js\");\n/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar GenRandomId = function GenRandomId(length) {\n return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, length || 5);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (GenRandomId);\n\n/***/ }),\n\n/***/ \"./src/utils/ValidateSlot.js\":\n/*!***********************************!*\\\n !*** ./src/utils/ValidateSlot.js ***!\n \\***********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ \"core-js/modules/es.function.name.js\");\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ \"core-js/modules/es.array.splice.js\");\n/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ \"vue\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/**\n * Validate children of a vue component\n *\n * @param {Object[]} slots the vue component slot\n * @param {String[]} allowed the allowed components name\n * @param {Object} vm the vue component instance\n */\n\nvar ValidateSlot = function ValidateSlot(slots, allowed, vm) {\n if (slots === undefined) {\n return;\n }\n\n for (var index = slots.length - 1; index >= 0; index--) {\n var node = slots[index]; // also check against allowed to avoid uninitiated vnodes with no componentOptions\n\n var isHtmlElement = !node.componentOptions && node.tag && allowed.indexOf(node.tag) === -1;\n var isVueComponent = !!node.componentOptions && typeof node.componentOptions.tag === 'string';\n var isForbiddenComponent = isVueComponent && allowed.indexOf(node.componentOptions.tag) === -1; // if html element or not a vue component or vue component not in allowed tags\n\n if (isHtmlElement || !isVueComponent || isForbiddenComponent) {\n // only warn when html elment or forbidden component\n // sometimes text nodes are present which are hardly removeable by the developer and spam the warnings\n if (isHtmlElement || isForbiddenComponent) {\n vue__WEBPACK_IMPORTED_MODULE_3___default.a.util.warn(\"\".concat(isHtmlElement ? node.tag : node.componentOptions.tag, \" is not allowed inside the \").concat(vm.$options.name, \" component\"), vm);\n } // cleanup\n\n\n slots.splice(index, 1);\n }\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ValidateSlot);\n\n/***/ }),\n\n/***/ \"@nextcloud/l10n/dist/gettext\":\n/*!***********************************************!*\\\n !*** external \"@nextcloud/l10n/dist/gettext\" ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"@nextcloud/l10n/dist/gettext\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.array.concat.js\":\n/*!*****************************************************!*\\\n !*** external \"core-js/modules/es.array.concat.js\" ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.array.concat.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.array.filter.js\":\n/*!*****************************************************!*\\\n !*** external \"core-js/modules/es.array.filter.js\" ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.array.filter.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.array.find-index.js\":\n/*!*********************************************************!*\\\n !*** external \"core-js/modules/es.array.find-index.js\" ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.array.find-index.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.array.from.js\":\n/*!***************************************************!*\\\n !*** external \"core-js/modules/es.array.from.js\" ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.array.from.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.array.iterator.js\":\n/*!*******************************************************!*\\\n !*** external \"core-js/modules/es.array.iterator.js\" ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.array.iterator.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.array.map.js\":\n/*!**************************************************!*\\\n !*** external \"core-js/modules/es.array.map.js\" ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.array.map.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.array.reduce.js\":\n/*!*****************************************************!*\\\n !*** external \"core-js/modules/es.array.reduce.js\" ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.array.reduce.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.array.slice.js\":\n/*!****************************************************!*\\\n !*** external \"core-js/modules/es.array.slice.js\" ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.array.slice.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.array.splice.js\":\n/*!*****************************************************!*\\\n !*** external \"core-js/modules/es.array.splice.js\" ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.array.splice.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.function.name.js\":\n/*!******************************************************!*\\\n !*** external \"core-js/modules/es.function.name.js\" ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.function.name.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.object.get-own-property-descriptor.js\":\n/*!***************************************************************************!*\\\n !*** external \"core-js/modules/es.object.get-own-property-descriptor.js\" ***!\n \\***************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.object.get-own-property-descriptor.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.object.get-own-property-descriptors.js\":\n/*!****************************************************************************!*\\\n !*** external \"core-js/modules/es.object.get-own-property-descriptors.js\" ***!\n \\****************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.object.get-own-property-descriptors.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.object.keys.js\":\n/*!****************************************************!*\\\n !*** external \"core-js/modules/es.object.keys.js\" ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.object.keys.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.object.to-string.js\":\n/*!*********************************************************!*\\\n !*** external \"core-js/modules/es.object.to-string.js\" ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.object.to-string.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.regexp.exec.js\":\n/*!****************************************************!*\\\n !*** external \"core-js/modules/es.regexp.exec.js\" ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.regexp.exec.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.regexp.to-string.js\":\n/*!*********************************************************!*\\\n !*** external \"core-js/modules/es.regexp.to-string.js\" ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.regexp.to-string.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.string.iterator.js\":\n/*!********************************************************!*\\\n !*** external \"core-js/modules/es.string.iterator.js\" ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.string.iterator.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.string.replace.js\":\n/*!*******************************************************!*\\\n !*** external \"core-js/modules/es.string.replace.js\" ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.string.replace.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.string.trim.js\":\n/*!****************************************************!*\\\n !*** external \"core-js/modules/es.string.trim.js\" ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.string.trim.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.symbol.description.js\":\n/*!***********************************************************!*\\\n !*** external \"core-js/modules/es.symbol.description.js\" ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.symbol.description.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.symbol.iterator.js\":\n/*!********************************************************!*\\\n !*** external \"core-js/modules/es.symbol.iterator.js\" ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.symbol.iterator.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/es.symbol.js\":\n/*!***********************************************!*\\\n !*** external \"core-js/modules/es.symbol.js\" ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.symbol.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/web.dom-collections.for-each.js\":\n/*!******************************************************************!*\\\n !*** external \"core-js/modules/web.dom-collections.for-each.js\" ***!\n \\******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/web.dom-collections.for-each.js\");\n\n/***/ }),\n\n/***/ \"core-js/modules/web.dom-collections.iterator.js\":\n/*!******************************************************************!*\\\n !*** external \"core-js/modules/web.dom-collections.iterator.js\" ***!\n \\******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/web.dom-collections.iterator.js\");\n\n/***/ }),\n\n/***/ \"linkifyjs/string\":\n/*!***********************************!*\\\n !*** external \"linkifyjs/string\" ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"linkifyjs/string\");\n\n/***/ }),\n\n/***/ \"v-click-outside\":\n/*!**********************************!*\\\n !*** external \"v-click-outside\" ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"v-click-outside\");\n\n/***/ }),\n\n/***/ \"v-tooltip\":\n/*!****************************!*\\\n !*** external \"v-tooltip\" ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"v-tooltip\");\n\n/***/ }),\n\n/***/ \"vue\":\n/*!**********************!*\\\n !*** external \"vue\" ***!\n \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"vue\");\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vc3JjL2NvbXBvbmVudHMvQWN0aW9ucy9BY3Rpb25zLnZ1ZSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL3NyYy9jb21wb25lbnRzL0FwcFNpZGViYXIvQXBwU2lkZWJhci52dWUiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9zcmMvY29tcG9uZW50cy9BcHBTaWRlYmFyL0FwcFNpZGViYXJUYWJzLnZ1ZSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL3NyYy9jb21wb25lbnRzL0VtcHR5Q29udGVudC9FbXB0eUNvbnRlbnQudnVlIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vc3JjL2NvbXBvbmVudHMvUG9wb3Zlci9Qb3BvdmVyLnZ1ZSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2RpcmVjdGl2ZXMvVG9vbHRpcC9pbmRleC5zY3NzIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9BY3Rpb25zL0FjdGlvbnMudnVlP2U1ODUiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0FwcFNpZGViYXIvQXBwU2lkZWJhci52dWU/YTExZCIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhci9BcHBTaWRlYmFyLnZ1ZT9mMmE1Iiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9BcHBTaWRlYmFyL0FwcFNpZGViYXJUYWJzLnZ1ZT9iNGJmIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9FbXB0eUNvbnRlbnQvRW1wdHlDb250ZW50LnZ1ZT85N2NjIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9Qb3BvdmVyL1BvcG92ZXIudnVlPzQ2M2YiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9BY3Rpb25zL0FjdGlvbnMudnVlPzA5NDAiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0FwcFNpZGViYXIvQXBwU2lkZWJhci52dWU/NGVlYiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhci9BcHBTaWRlYmFyLnZ1ZT9jNGEwIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9BcHBTaWRlYmFyL0FwcFNpZGViYXJUYWJzLnZ1ZT8wNTI5Iiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9FbXB0eUNvbnRlbnQvRW1wdHlDb250ZW50LnZ1ZT84MDA5Iiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9Qb3BvdmVyL1BvcG92ZXIudnVlPzI2NmUiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQWN0aW9ucy9BY3Rpb25zLnZ1ZT9kY2Y5Iiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9BcHBTaWRlYmFyL0FwcFNpZGViYXIudnVlP2IwNWMiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0FwcFNpZGViYXIvQXBwU2lkZWJhclRhYnMudnVlPzU3NDUiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0VtcHR5Q29udGVudC9FbXB0eUNvbnRlbnQudnVlP2Y1OTkiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL1BvcG92ZXIvUG9wb3Zlci52dWU/MGRkNiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qcyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQWN0aW9ucy9BY3Rpb25zLnZ1ZSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQWN0aW9ucy9BY3Rpb25zLnZ1ZT9iN2RmIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9BY3Rpb25zL0FjdGlvbnMudnVlP2MzNzgiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0FjdGlvbnMvQWN0aW9ucy52dWU/YTljYSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQWN0aW9ucy9pbmRleC5qcyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhci9BcHBTaWRlYmFyLnZ1ZSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhci9BcHBTaWRlYmFyLnZ1ZT83M2JhIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9BcHBTaWRlYmFyL0FwcFNpZGViYXIudnVlP2I4ZGQiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0FwcFNpZGViYXIvQXBwU2lkZWJhci52dWU/MTAzNyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhci9BcHBTaWRlYmFyLnZ1ZT81MzViIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9BcHBTaWRlYmFyL0FwcFNpZGViYXJUYWJzLnZ1ZSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhci9BcHBTaWRlYmFyVGFicy52dWU/MGNmMCIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhci9BcHBTaWRlYmFyVGFicy52dWU/Y2MzMSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhci9BcHBTaWRlYmFyVGFicy52dWU/OGZmMiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhci9pbmRleC5qcyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvRW1wdHlDb250ZW50L0VtcHR5Q29udGVudC52dWUiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0VtcHR5Q29udGVudC9FbXB0eUNvbnRlbnQudnVlP2RiNmEiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0VtcHR5Q29udGVudC9FbXB0eUNvbnRlbnQudnVlPzRlZDMiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0VtcHR5Q29udGVudC9FbXB0eUNvbnRlbnQudnVlPzM2ZDYiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL1BvcG92ZXIvUG9wb3Zlci52dWUiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL1BvcG92ZXIvUG9wb3Zlci52dWU/MDFkMiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvUG9wb3Zlci9Qb3BvdmVyLnZ1ZT8xNGM2Iiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9Qb3BvdmVyL1BvcG92ZXIudnVlPzcyZjYiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL1BvcG92ZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9kaXJlY3RpdmVzL0ZvY3VzL2luZGV4LmpzIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvZGlyZWN0aXZlcy9MaW5raWZ5L2luZGV4LmpzIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvZGlyZWN0aXZlcy9Ub29sdGlwL2luZGV4LmpzIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvZGlyZWN0aXZlcy9Ub29sdGlwL2luZGV4LnNjc3M/YWZlOCIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2ZvbnRzL2ljb25mb250LXZ1ZS04NGM0NjFmLmVvdCIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2ZvbnRzL2ljb25mb250LXZ1ZS04NGM0NjFmLnN2ZyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2ZvbnRzL2ljb25mb250LXZ1ZS04NGM0NjFmLnR0ZiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2ZvbnRzL2ljb25mb250LXZ1ZS04NGM0NjFmLndvZmYiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9sMTBuLmpzIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvdXRpbHMvR2VuUmFuZG9tSWQuanMiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy91dGlscy9WYWxpZGF0ZVNsb3QuanMiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcIkBuZXh0Y2xvdWQvbDEwbi9kaXN0L2dldHRleHRcIiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL2V4dGVybmFsIFwiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qc1wiIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vZXh0ZXJuYWwgXCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzXCIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maW5kLWluZGV4LmpzXCIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5mcm9tLmpzXCIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvci5qc1wiIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vZXh0ZXJuYWwgXCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzXCIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5yZWR1Y2UuanNcIiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL2V4dGVybmFsIFwiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNsaWNlLmpzXCIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zcGxpY2UuanNcIiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL2V4dGVybmFsIFwiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanNcIiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL2V4dGVybmFsIFwiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanNcIiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL2V4dGVybmFsIFwiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzXCIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qc1wiIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vZXh0ZXJuYWwgXCJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qc1wiIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vZXh0ZXJuYWwgXCJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanNcIiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL2V4dGVybmFsIFwiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC50by1zdHJpbmcuanNcIiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL2V4dGVybmFsIFwiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qc1wiIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vZXh0ZXJuYWwgXCJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnJlcGxhY2UuanNcIiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL2V4dGVybmFsIFwiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy50cmltLmpzXCIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcImNvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wuZGVzY3JpcHRpb24uanNcIiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL2V4dGVybmFsIFwiY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5pdGVyYXRvci5qc1wiIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vZXh0ZXJuYWwgXCJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmpzXCIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzXCIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzXCIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcImxpbmtpZnlqcy9zdHJpbmdcIiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL2V4dGVybmFsIFwidi1jbGljay1vdXRzaWRlXCIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS9leHRlcm5hbCBcInYtdG9vbHRpcFwiIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vZXh0ZXJuYWwgXCJ2dWVcIiJdLCJuYW1lcyI6WyJBY3Rpb25zIiwiQXBwU2lkZWJhciIsIlBvcG92ZXIiLCJkaXJlY3RpdmUiLCJpbnNlcnRlZCIsImVsIiwiZm9jdXMiLCJiaW5kaW5nIiwidmFsdWUiLCJsaW5raWZ5IiwiaW5uZXJIVE1MIiwibGlua2lmeVN0ciIsInRleHQiLCJkZWZhdWx0UHJvdG9jb2wiLCJWVG9vbHRpcCIsIm9wdGlvbnMiLCJkZWZhdWx0VGVtcGxhdGUiLCJTQ09QRV9WRVJTSU9OIiwiZGVmYXVsdEh0bWwiLCJndEJ1aWxkZXIiLCJnZXRHZXR0ZXh0QnVpbGRlciIsImRldGVjdExvY2FsZSIsIlRSQU5TTEFUSU9OUyIsImZvckVhY2giLCJsYW5nIiwidHJhbnNsYXRpb25zIiwia2V5IiwicGx1cmFsSWQiLCJtc2dpZCIsIm1zZ2lkX3BsdXJhbCIsIm1zZ3N0ciIsImFkZFRyYW5zbGF0aW9uIiwibG9jYWxlIiwiZ3QiLCJidWlsZCIsIm4iLCJuZ2V0dGV4dCIsImJpbmQiLCJ0IiwiZ2V0dGV4dCIsIkdlblJhbmRvbUlkIiwibGVuZ3RoIiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwicmVwbGFjZSIsInN1YnN0ciIsIlZhbGlkYXRlU2xvdCIsInNsb3RzIiwiYWxsb3dlZCIsInZtIiwidW5kZWZpbmVkIiwiaW5kZXgiLCJub2RlIiwiaXNIdG1sRWxlbWVudCIsImNvbXBvbmVudE9wdGlvbnMiLCJ0YWciLCJpbmRleE9mIiwiaXNWdWVDb21wb25lbnQiLCJpc0ZvcmJpZGRlbkNvbXBvbmVudCIsIlZ1ZSIsInV0aWwiLCJ3YXJuIiwiJG9wdGlvbnMiLCJuYW1lIiwic3BsaWNlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1EO0FBQ25ELENBQUM7QUFDRCxPO1FDVkE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVB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Ozs7QUNBQSw4RDs7Ozs7Ozs7Ozs7QUNBQSxxRTs7Ozs7Ozs7Ozs7QUNBQSxrRTs7Ozs7Ozs7Ozs7QUNBQSx5RDs7Ozs7Ozs7Ozs7QUNBQSw0RTs7Ozs7Ozs7Ozs7QUNBQSw0RTs7Ozs7Ozs7Ozs7QUNBQSw2Qzs7Ozs7Ozs7Ozs7QUNBQSw0Qzs7Ozs7Ozs7Ozs7QUNBQSxzQzs7Ozs7Ozs7Ozs7QUNBQSxnQyIsImZpbGUiOiJDb21wb25lbnRzL0FwcFNpZGViYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShcIkNvbXBvbmVudHMvQXBwU2lkZWJhclwiLCBbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJDb21wb25lbnRzL0FwcFNpZGViYXJcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiTmV4dGNsb3VkVnVlXCJdID0gcm9vdFtcIk5leHRjbG91ZFZ1ZVwiXSB8fCB7fSwgcm9vdFtcIk5leHRjbG91ZFZ1ZVwiXVtcIkNvbXBvbmVudHMvQXBwU2lkZWJhclwiXSA9IGZhY3RvcnkoKTtcbn0pKHdpbmRvdywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvZGlzdC9cIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IFwiLi9zcmMvY29tcG9uZW50cy9BcHBTaWRlYmFyL2luZGV4LmpzXCIpO1xuIiwiPCEtLVxuICAtIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDE4IEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cbiAgLVxuICAtIEBhdXRob3IgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxuICAtIEBhdXRob3IgTWFyY28gQW1icm9zaW5pIDxtYXJjb2FtYnJvc2luaUBwbS5tZVxuICAtXG4gIC0gQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXG4gIC1cbiAgLSBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICAtIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gIC0gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlXG4gIC0gTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAgLVxuICAtIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICAtIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gIC0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICAtIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICAtXG4gIC0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gIC0gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAgLVxuICAtLT5cblxuPCEtLSBBY2Nlc3NpYmlsaXR5IGd1aWRlbGluZXM6XG5odHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzL2V4YW1wbGVzL21lbnUtYnV0dG9uL21lbnUtYnV0dG9uLWFjdGlvbnMuaHRtbCAtLT5cblxuPGRvY3M+XG4jIyMgU2luZ2xlIGFjdGlvblxuXG5gYGBcbjxBY3Rpb25zPlxuXHQ8QWN0aW9uQnV0dG9uIGljb249XCJpY29uLWRlbGV0ZVwiIEBjbGljaz1cImFsZXJ0KCdEZWxldGUnKVwiPkRlbGV0ZTwvQWN0aW9uQnV0dG9uPlxuPC9BY3Rpb25zPlxuYGBgXG5cbiMjIyBNdWx0aXBsZSBhY3Rpb25zXG5cbmBgYFxuPEFjdGlvbnM+XG5cdDxBY3Rpb25CdXR0b24gaWNvbj1cImljb24tZWRpdFwiIEBjbGljaz1cImFsZXJ0KCdFZGl0JylcIj5FZGl0PC9BY3Rpb25CdXR0b24+XG5cdDxBY3Rpb25CdXR0b24gaWNvbj1cImljb24tZGVsZXRlXCIgQGNsaWNrPVwiYWxlcnQoJ0RlbGV0ZScpXCI+RGVsZXRlPC9BY3Rpb25CdXR0b24+XG5cdDxBY3Rpb25MaW5rIGljb249XCJpY29uLWV4dGVybmFsXCIgdGl0bGU9XCJMaW5rXCIgaHJlZj1cImh0dHBzOi8vbmV4dGNsb3VkLmNvbVwiIC8+XG48L0FjdGlvbnM+XG5gYGBcblxuIyMjIE11bHRpcGxlIGFjdGlvbnMgd2l0aCBjdXN0b20gaWNvblxuXG5gYGBcbjxBY3Rpb25zIGRlZmF1bHQtaWNvbj1cImljb24tZWRpdFwiPlxuXHQ8QWN0aW9uQnV0dG9uIGljb249XCJpY29uLWVkaXRcIiBAY2xpY2s9XCJhbGVydCgnRWRpdCcpXCI+RWRpdDwvQWN0aW9uQnV0dG9uPlxuXHQ8QWN0aW9uQnV0dG9uIGljb249XCJpY29uLWRlbGV0ZVwiIEBjbGljaz1cImFsZXJ0KCdEZWxldGUnKVwiPkRlbGV0ZTwvQWN0aW9uQnV0dG9uPlxuXHQ8QWN0aW9uTGluayBpY29uPVwiaWNvbi1leHRlcm5hbFwiIHRpdGxlPVwiTGlua1wiIGhyZWY9XCJodHRwczovL25leHRjbG91ZC5jb21cIiAvPlxuPC9BY3Rpb25zPlxuYGBgXG5cbiMjIyBXaXRoIG1lbnUgdGl0bGVcblxuYGBgXG48QWN0aW9ucyBkZWZhdWx0LWljb249XCJpY29uLWVkaXRcIiBtZW51LXRpdGxlPVwiT2JqZWN0IG1hbmFnZW1lbnRcIj5cblx0PEFjdGlvbkJ1dHRvbiBpY29uPVwiaWNvbi1lZGl0XCI+UmVuYW1lPC9BY3Rpb25CdXR0b24+XG5cdDxBY3Rpb25CdXR0b24gaWNvbj1cImljb24tZGVsZXRlXCI+RGVsZXRlPC9BY3Rpb25CdXR0b24+XG5cdDxBY3Rpb25CdXR0b24gaWNvbj1cImljb24tY29uZmlybVwiPlZhbGlkYXRlPC9BY3Rpb25CdXR0b24+XG5cdDxBY3Rpb25CdXR0b24gaWNvbj1cImljb24tZG93bmxvYWRcIj5Eb3dubG9hZDwvQWN0aW9uQnV0dG9uPlxuPC9BY3Rpb25zPlxuYGBgXG5cbiMjIyBWYXJpb3VzIGljb25zIHN0eWxlc1xuYGBgXG48QWN0aW9ucyA6cHJpbWFyeT1cInRydWVcIj5cblx0PEFjdGlvbkJ1dHRvbiBpY29uPVwiaWNvbi1lZGl0XCI+RWRpdDwvQWN0aW9uQnV0dG9uPlxuXHQ8QWN0aW9uQnV0dG9uIGljb249XCJpY29uLWRlbGV0ZVwiPkRlbGV0ZTwvQWN0aW9uQnV0dG9uPlxuPC9BY3Rpb25zPlxuYGBgXG5cbmBgYFxuPEFjdGlvbnMgZGVmYXVsdC1pY29uPVwiaWNvbi1hZGQtd2hpdGVcIiA6cHJpbWFyeT1cInRydWVcIiBtZW51LXRpdGxlPVwiT2JqZWN0IG1hbmFnZW1lbnRcIj5cblx0PEFjdGlvbkJ1dHRvbiBpY29uPVwiaWNvbi1lZGl0XCI+UmVuYW1lPC9BY3Rpb25CdXR0b24+XG5cdDxBY3Rpb25CdXR0b24gaWNvbj1cImljb24tZGVsZXRlXCI+RGVsZXRlPC9BY3Rpb25CdXR0b24+XG5cdDxBY3Rpb25CdXR0b24gaWNvbj1cImljb24tY29uZmlybVwiPlZhbGlkYXRlPC9BY3Rpb25CdXR0b24+XG5cdDxBY3Rpb25CdXR0b24gaWNvbj1cImljb24tZG93bmxvYWRcIj5Eb3dubG9hZDwvQWN0aW9uQnV0dG9uPlxuPC9BY3Rpb25zPlxuYGBgXG5cbiMjIyBDdXN0b20gaWNvbiBzbG90XG5UbyBiZSB1c2VkIHdpdGggYHZ1ZS1tYXRlcmlhbC1kZXNpZ24taWNvbnNgIG9ubHkuIEZvciBpY29uIGNsYXNzZXMgdXNlIHRoZSBgZGVmYXVsdC1pY29uYCBzbG90LlxuSXQgY2FuIGJlIHVzZWQgd2l0aCBvbmUgb3IgbXVsdGlwbGUgYWN0aW9ucy5cbmBgYFxuPHRlbXBsYXRlPlxuXHQ8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDthbGlnbi1pdGVtczogY2VudGVyO1wiPlxuXHRcdDxidXR0b24gQGNsaWNrPVwidG9nZ2xlZCA9ICF0b2dnbGVkXCI+VG9nZ2xlIG11bHRpcGxlIGFjdGlvbjwvYnV0dG9uPlxuXHRcdDxBY3Rpb25zPlxuXHRcdFx0PERvdHNIb3Jpem9udGFsQ2lyY2xlT3V0bGluZVxuXHRcdFx0XHRzbG90PVwiaWNvblwiXG5cdFx0XHRcdDpzaXplPVwiMTZcIlxuXHRcdFx0XHRkZWNvcmF0aXZlIC8+XG5cdFx0XHQ8QWN0aW9uQnV0dG9uPlxuXHRcdFx0XHQ8TWljcm9waG9uZU9mZlxuXHRcdFx0XHRcdHNsb3Q9XCJpY29uXCJcblx0XHRcdFx0XHQ6c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRkZWNvcmF0aXZlIC8+XG5cdFx0XHRcdE11dGVcblx0XHRcdDwvQWN0aW9uQnV0dG9uPlxuXHRcdFx0PEFjdGlvbkJ1dHRvbiB2LWlmPVwidG9nZ2xlZFwiIGljb249XCJpY29uLWRlbGV0ZVwiPkRlbGV0ZTwvQWN0aW9uQnV0dG9uPlxuXHRcdDwvQWN0aW9ucz5cblx0XHQ8QWN0aW9ucz5cblx0XHQ8L0FjdGlvbnM+XG5cdDwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5pbXBvcnQgRG90c0hvcml6b250YWxDaXJjbGVPdXRsaW5lIGZyb20gJ3Z1ZS1tYXRlcmlhbC1kZXNpZ24taWNvbnMvRG90c0hvcml6b250YWxDaXJjbGVPdXRsaW5lJ1xuaW1wb3J0IE1pY3JvcGhvbmVPZmYgZnJvbSAndnVlLW1hdGVyaWFsLWRlc2lnbi1pY29ucy9NaWNyb3Bob25lT2ZmJ1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGNvbXBvbmVudHM6IHtcblx0XHREb3RzSG9yaXpvbnRhbENpcmNsZU91dGxpbmUsXG5cdFx0TWljcm9waG9uZU9mZixcblx0fSxcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dG9nZ2xlZDogZmFsc2Vcblx0XHR9XG5cdH1cbn1cbjwvc2NyaXB0PlxuYGBgXG5cbiMjIyBDdXN0b20gaWNvbiBzbG90IGluIGNoaWxkIGVsZW1lbnRzXG5gYGBcbjxBY3Rpb25zIDpwcmltYXJ5PVwidHJ1ZVwiPlxuXHQ8QWN0aW9uQnV0dG9uPjx0ZW1wbGF0ZSAjaWNvbj48TWFnbmlmeUljb24gLz48L3RlbXBsYXRlPlNlYXJjaDwvQWN0aW9uQnV0dG9uPlxuXHQ8QWN0aW9uQnV0dG9uIGljb249XCJpY29uLWRlbGV0ZVwiPkRlbGV0ZTwvQWN0aW9uQnV0dG9uPlxuPC9BY3Rpb25zPlxuYGBgXG5cbjwvZG9jcz5cbjx0ZW1wbGF0ZT5cblx0PCEtLSBpZiBvbmx5IG9uZSBhY3Rpb24sIGNoZWNrIGlmIHdlIG5lZWQgdG8gYmluZCB0byBjbGljayBvciBub3QgLS0+XG5cdDxlbGVtZW50IHYtaWY9XCJpc1ZhbGlkU2luZ2xlQWN0aW9uICYmICFmb3JjZU1lbnVcIlxuXHRcdHYtdG9vbHRpcC5hdXRvPVwiZmlyc3RBY3Rpb24udGV4dFwiXG5cdFx0di1iaW5kPVwiZmlyc3RBY3Rpb25CaW5kaW5nXCJcblx0XHQ6Y2xhc3M9XCJ7XG5cdFx0XHRbZmlyc3RBY3Rpb24uaWNvbl06IGZpcnN0QWN0aW9uLmljb24sXG5cdFx0XHRbZmlyc3RBY3Rpb25DbGFzc106IGZpcnN0QWN0aW9uQ2xhc3MgfVwiXG5cdFx0Y2xhc3M9XCJhY3Rpb24taXRlbSBhY3Rpb24taXRlbS0tc2luZ2xlXCJcblx0XHRyZWw9XCJub3JlZmVycmVyIG5vb3BlbmVyXCJcblx0XHQ6ZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXG5cdFx0QGZvY3VzPVwib25Gb2N1c1wiXG5cdFx0QGJsdXI9XCJvbkJsdXJcIlxuXHRcdEBbZmlyc3RBY3Rpb25FdmVudEJpbmRpbmddPVwiZXhlY0ZpcnN0QWN0aW9uXCI+XG5cdFx0PCEtLSBSZW5kZXIgdGhlIGljb24gc2xvdCBjb250ZW50IG9mIHRoZSBmaXJzdCBhY3Rpb24gLS0+XG5cdFx0PFZOb2RlcyA6dm5vZGVzPVwiZmlyc3RBY3Rpb25JY29uU2xvdFwiIC8+XG5cblx0XHQ8IS0tIGZha2Ugc2xvdCB0byBnYXRoZXIgbWFpbiBhY3Rpb24gLS0+XG5cdFx0PHNwYW4gOmFyaWEtaGlkZGVuPVwidHJ1ZVwiIGhpZGRlbj5cblx0XHRcdDwhLS0gQHNsb3QgQWxsIGFjdGlvbiBlbGVtZW50cyBwYXNzZWQgaW50byB0aGUgZGVmYXVsdCBzbG90IHdpbGwgYmUgdXNlZCAtLT5cblx0XHRcdDxzbG90IC8+XG5cdFx0PC9zcGFuPlxuXHQ8L2VsZW1lbnQ+XG5cblx0PCEtLSBtb3JlIHRoYW4gb25lIGFjdGlvbiAtLT5cblx0PGRpdiB2LWVsc2Vcblx0XHR2LXNob3c9XCJoYXNNdWx0aXBsZUFjdGlvbnMgfHwgZm9yY2VNZW51XCJcblx0XHQ6Y2xhc3M9XCJ7J2FjdGlvbi1pdGVtLS1vcGVuJzogb3BlbmVkfVwiXG5cdFx0Y2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuXHRcdDwhLS0gSWYgbW9yZSB0aGFuIG9uZSBhY3Rpb24sIGNyZWF0ZSBhIHBvcG92ZXJtZW51IC0tPlxuXHRcdDxQb3BvdmVyXG5cdFx0XHQ6ZGVsYXk9XCIwXCJcblx0XHRcdDpoYW5kbGUtcmVzaXplPVwidHJ1ZVwiXG5cdFx0XHQ6b3Blbi5zeW5jPVwib3BlbmVkXCJcblx0XHRcdDpwbGFjZW1lbnQ9XCJwbGFjZW1lbnRcIlxuXHRcdFx0OmJvdW5kYXJpZXMtZWxlbWVudD1cImJvdW5kYXJpZXNFbGVtZW50XCJcblx0XHRcdDpjb250YWluZXI9XCJjb250YWluZXJcIlxuXHRcdFx0QHNob3c9XCJvcGVuTWVudVwiXG5cdFx0XHRAYWZ0ZXItc2hvdz1cIm9uT3BlblwiXG5cdFx0XHRAaGlkZT1cImNsb3NlTWVudVwiPlxuXHRcdFx0PCEtLSBNZW51IG9wZW4vY2xvc2UgdHJpZ2dlciBidXR0b24gLS0+XG5cdFx0XHQ8YnV0dG9uIHNsb3Q9XCJ0cmlnZ2VyXCJcblx0XHRcdFx0cmVmPVwibWVudUJ1dHRvblwiXG5cdFx0XHRcdDpkaXNhYmxlZD1cImRpc2FibGVkXCJcblx0XHRcdFx0Y2xhc3M9XCJpY29uIGFjdGlvbi1pdGVtX19tZW51dG9nZ2xlXCJcblx0XHRcdFx0OmNsYXNzPVwie1xuXHRcdFx0XHRcdFtkZWZhdWx0SWNvbl06ICFpY29uU2xvdElzUG9wdWxhdGVkLFxuXHRcdFx0XHRcdCdhY3Rpb24taXRlbV9fbWVudXRvZ2dsZS0td2l0aC10aXRsZSc6IG1lbnVUaXRsZSxcblx0XHRcdFx0XHQnYWN0aW9uLWl0ZW1fX21lbnV0b2dnbGUtLXByaW1hcnknOiBwcmltYXJ5XG5cdFx0XHRcdH1cIlxuXHRcdFx0XHQ6YXJpYS1sYWJlbD1cImFyaWFMYWJlbFwiXG5cdFx0XHRcdGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcblx0XHRcdFx0OmFyaWEtY29udHJvbHM9XCJyYW5kb21JZFwiXG5cdFx0XHRcdHRlc3QtYXR0cj1cIjFcIlxuXHRcdFx0XHQ6YXJpYS1leHBhbmRlZD1cIm9wZW5lZCA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuXHRcdFx0XHRAZm9jdXM9XCJvbkZvY3VzXCJcblx0XHRcdFx0QGJsdXI9XCJvbkJsdXJcIj5cblx0XHRcdFx0PHNsb3QgbmFtZT1cImljb25cIiAvPlxuXHRcdFx0XHR7eyBtZW51VGl0bGUgfX1cblx0XHRcdDwvYnV0dG9uPlxuXG5cdFx0XHQ8IS0tIE1lbnUgY29udGVudCAtLT5cblx0XHRcdDxkaXYgdi1zaG93PVwib3BlbmVkXCJcblx0XHRcdFx0cmVmPVwibWVudVwiXG5cdFx0XHRcdDpjbGFzcz1cInsgb3Blbjogb3BlbmVkIH1cIlxuXHRcdFx0XHR0YWJpbmRleD1cIi0xXCJcblx0XHRcdFx0QGtleWRvd24udXAuZXhhY3Q9XCJmb2N1c1ByZXZpb3VzQWN0aW9uXCJcblx0XHRcdFx0QGtleWRvd24uZG93bi5leGFjdD1cImZvY3VzTmV4dEFjdGlvblwiXG5cdFx0XHRcdEBrZXlkb3duLnRhYi5leGFjdD1cImZvY3VzTmV4dEFjdGlvblwiXG5cdFx0XHRcdEBrZXlkb3duLnNoaWZ0LnRhYi5leGFjdD1cImZvY3VzUHJldmlvdXNBY3Rpb25cIlxuXHRcdFx0XHRAa2V5ZG93bi5wYWdlLXVwLmV4YWN0PVwiZm9jdXNGaXJzdEFjdGlvblwiXG5cdFx0XHRcdEBrZXlkb3duLnBhZ2UtZG93bi5leGFjdD1cImZvY3VzTGFzdEFjdGlvblwiXG5cdFx0XHRcdEBrZXlkb3duLmVzYy5leGFjdC5wcmV2ZW50PVwiY2xvc2VNZW51XCJcblx0XHRcdFx0QG1vdXNlbW92ZT1cIm9uTW91c2VGb2N1c0FjdGlvblwiPlxuXHRcdFx0XHQ8IS0tIG1lbnUgY29udGVudCAtLT5cblx0XHRcdFx0PHVsIDppZD1cInJhbmRvbUlkXCIgdGFiaW5kZXg9XCItMVwiPlxuXHRcdFx0XHRcdDx0ZW1wbGF0ZSB2LWlmPVwib3BlbmVkXCI+XG5cdFx0XHRcdFx0XHQ8c2xvdCAvPlxuXHRcdFx0XHRcdDwvdGVtcGxhdGU+XG5cdFx0XHRcdDwvdWw+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L1BvcG92ZXI+XG5cdDwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5pbXBvcnQgVG9vbHRpcCBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL1Rvb2x0aXAnXG5pbXBvcnQgR2VuUmFuZG9tSWQgZnJvbSAnLi4vLi4vdXRpbHMvR2VuUmFuZG9tSWQnXG5pbXBvcnQgVmFsaWRhdGVTbG90IGZyb20gJy4uLy4uL3V0aWxzL1ZhbGlkYXRlU2xvdCdcbmltcG9ydCB7IHQgfSBmcm9tICcuLi8uLi9sMTBuJ1xuaW1wb3J0IFBvcG92ZXIgZnJvbSAnLi4vUG9wb3ZlcidcblxuLy8gVGhpcyBpcyB0aGUgbGlzdCBvZiBBTEwgdGhlIEFMTE9XRUQgY29tcG9uZW50c1xuLy8gaW4gdGhlIGRlZmF1bHQgU0xPVFxuY29uc3QgYWxsb3dlZENoaWxkcmVuID0gW1xuXHQnQWN0aW9uQnV0dG9uJyxcblx0J0FjdGlvbkNoZWNrYm94Jyxcblx0J0FjdGlvbklucHV0Jyxcblx0J0FjdGlvbkxpbmsnLFxuXHQnQWN0aW9uUmFkaW8nLFxuXHQnQWN0aW9uUm91dGVyJyxcblx0J0FjdGlvblNlcGFyYXRvcicsXG5cdCdBY3Rpb25UZXh0Jyxcblx0J0FjdGlvblRleHRFZGl0YWJsZScsXG5dXG5cbmNvbnN0IGZvY3VzYWJsZVNlbGVjdG9yID0gJy5mb2N1c2FibGUnXG5cbi8qKlxuICogVGhlIEFjdGlvbnMgY29tcG9uZW50IGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgb25lIG9yZSBtb3JlIGFjdGlvbnMuXG4gKiBJZiBvbmx5IGEgc2luZ2xlIGFjdGlvbiBpcyBwcm92aWRlZCwgaXQgd2lsbCBiZSByZW5kZXJlZCBhcyBhbiBpbmxpbmUgaWNvbi5cbiAqIEZvciBtb3JlLCBhIG1lbnUgaW5kaWNhdG9yIHdpbGwgYmUgc2hvd24gYW5kIGEgcG9wb3Zlcm1lbnUgY29udGFpbmluZyB0aGVcbiAqIGFjdGlvbnMgd2lsbCBiZSBvcGVuZWQgb24gY2xpY2suXG4gKlxuICogQHNpbmNlIDAuMTAuMFxuICovXG5leHBvcnQgZGVmYXVsdCB7XG5cdG5hbWU6ICdBY3Rpb25zJyxcblxuXHRkaXJlY3RpdmVzOiB7XG5cdFx0dG9vbHRpcDogVG9vbHRpcCxcblx0fSxcblxuXHRjb21wb25lbnRzOiB7XG5cdFx0UG9wb3ZlcixcblxuXHRcdC8vIENvbXBvbmVudCB0byByZW5kZXIgdGhlIGZpcnN0IGFjdGlvbiBpY29uIHNsb3QgY29udGVudCAodm5vZGVzKVxuXHRcdFZOb2Rlczoge1xuXHRcdFx0ZnVuY3Rpb25hbDogdHJ1ZSxcblx0XHRcdHJlbmRlcjogKGgsIGNvbnRleHQpID0+IGNvbnRleHQucHJvcHMudm5vZGVzLFxuXHRcdH0sXG5cdH0sXG5cblx0cHJvcHM6IHtcblx0XHQvKipcblx0XHQgKiBTcGVjaWZ5IHRoZSBvcGVuIHN0YXRlIG9mIHRoZSBwb3BvdmVyIG1lbnVcblx0XHQgKi9cblx0XHRvcGVuOiB7XG5cdFx0XHR0eXBlOiBCb29sZWFuLFxuXHRcdFx0ZGVmYXVsdDogZmFsc2UsXG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEZvcmNlIHRoZSBhY3Rpb25zIHRvIGRpc3BsYXkgaW4gYSB0aHJlZSBkb3QgbWVudVxuXHRcdCAqL1xuXHRcdGZvcmNlTWVudToge1xuXHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdGRlZmF1bHQ6IGZhbHNlLFxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBTcGVjaWZ5IHRoZSBtZW51IHRpdGxlXG5cdFx0ICovXG5cdFx0bWVudVRpdGxlOiB7XG5cdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBBcHBseSBwcmltYXJ5IHN0eWxpbmcgZm9yIHRoaXMgbWVudVxuXHRcdCAqL1xuXHRcdHByaW1hcnk6IHtcblx0XHRcdHR5cGU6IEJvb2xlYW4sXG5cdFx0XHRkZWZhdWx0OiBmYWxzZSxcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogSWNvbiB0byBzaG93IGZvciB0aGUgdG9nZ2xlIG1lbnUgYnV0dG9uXG5cdFx0ICogd2hlbiBtb3JlIHRoYW4gb25lIGFjdGlvbiBpcyBpbnNpZGUgdGhlIGFjdGlvbnMgY29tcG9uZW50LlxuXHRcdCAqIE9ubHkgcmVwbGFjZSB0aGUgZGVmYXVsdCB0aHJlZS1kb3QgaWNvbiBpZiByZWFsbHkgbmVjZXNzYXJ5LlxuXHRcdCAqL1xuXHRcdGRlZmF1bHRJY29uOiB7XG5cdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRkZWZhdWx0OiAnYWN0aW9uLWl0ZW1fX21lbnV0b2dnbGUtLWRlZmF1bHQtaWNvbicsXG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEFyaWEgbGFiZWwgZm9yIHRoZSBhY3Rpb25zIG1lbnVcblx0XHQgKi9cblx0XHRhcmlhTGFiZWw6IHtcblx0XHRcdHR5cGU6IFN0cmluZyxcblx0XHRcdGRlZmF1bHQ6IHQoJ0FjdGlvbnMnKSxcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogV2FudGVkIGRpcmVjdGlvbiBvZiB0aGUgbWVudVxuXHRcdCAqL1xuXHRcdHBsYWNlbWVudDoge1xuXHRcdFx0dHlwZTogU3RyaW5nLFxuXHRcdFx0ZGVmYXVsdDogJ2JvdHRvbScsXG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIERPTSBlbGVtZW50IGZvciB0aGUgYWN0aW9ucycgcG9wb3ZlciBib3VuZGFyaWVzXG5cdFx0ICovXG5cdFx0Ym91bmRhcmllc0VsZW1lbnQ6IHtcblx0XHRcdHR5cGU6IEVsZW1lbnQsXG5cdFx0XHRkZWZhdWx0OiAoKSA9PiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JyksXG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIFNlbGVjdG9yIGZvciB0aGUgYWN0aW9ucycgcG9wb3ZlciBjb250YWluZXJcblx0XHQgKi9cblx0XHRjb250YWluZXI6IHtcblx0XHRcdHR5cGU6IFN0cmluZyxcblx0XHRcdGRlZmF1bHQ6ICdib2R5Jyxcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogRGlzYWJsZWQgc3RhdGUgb2YgdGhlIG1haW4gYnV0dG9uIChzaW5nbGUgYWN0aW9uIG9yIG1lbnUgdG9nZ2xlKVxuXHRcdCAqL1xuXHRcdGRpc2FibGVkOiB7XG5cdFx0XHR0eXBlOiBCb29sZWFuLFxuXHRcdFx0ZGVmYXVsdDogZmFsc2UsXG5cdFx0fSxcblx0fSxcblxuXHRkYXRhKCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRhY3Rpb25zOiBbXSxcblx0XHRcdG9wZW5lZDogdGhpcy5vcGVuLFxuXHRcdFx0Zm9jdXNJbmRleDogMCxcblx0XHRcdHJhbmRvbUlkOiAnbWVudS0nICsgR2VuUmFuZG9tSWQoKSxcblx0XHRcdC8vIE1ha2luZyBjaGlsZHJlbiByZWFjdGl2ZSFcblx0XHRcdC8vIEJ5IGJpbmRpbmcgdGhpcyBoZXJlLCB2dWVqcyB3aWxsIHRyYWNrIHRoZSBvYmplY3QgY29udGVudFxuXHRcdFx0Ly8gTmVlZGVkIGZvciBmaXJzdEFjdGlvbiByZWFjdGl2aXR5ICEhIVxuXHRcdFx0Y2hpbGRyZW46IHRoaXMuJGNoaWxkcmVuLFxuXHRcdH1cblx0fSxcblxuXHRjb21wdXRlZDoge1xuXHRcdC8qKlxuXHRcdCAqIElzIHRoZXJlIG1vcmUgdGhhbiBvbmUgYWN0aW9uP1xuXHRcdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHRcdCAqL1xuXHRcdGhhc011bHRpcGxlQWN0aW9ucygpIHtcblx0XHRcdHJldHVybiB0aGlzLmFjdGlvbnMubGVuZ3RoID4gMVxuXHRcdH0sXG5cdFx0LyoqXG5cdFx0ICogSXMgdGhlcmUgYW55IGZpcnN0IGFjdGlvbiA/XG5cdFx0ICogQW5kIGlzIGl0IGFsbG93ZWQgYXMgYSBzdGFuZGFsb25lIGVsZW1lbnQgP1xuXHRcdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHRcdCAqL1xuXHRcdGlzVmFsaWRTaW5nbGVBY3Rpb24oKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5hY3Rpb25zLmxlbmd0aCA9PT0gMVxuXHRcdFx0XHQmJiB0aGlzLmZpcnN0QWN0aW9uRWxlbWVudCAhPT0gbnVsbFxuXHRcdH0sXG5cdFx0LyoqXG5cdFx0ICogRmlyc3QgYWN0aW9uIHZub2RlXG5cdFx0ICogQHJldHVybnMge09iamVjdH0gcmV0dXJuIHRoZSBmaXJzdCBhY3Rpb24gdnVlIHZub2RlXG5cdFx0ICovXG5cdFx0Zmlyc3RBY3Rpb25WTm9kZSgpIHtcblx0XHRcdHJldHVybiB0aGlzLmFjdGlvbnNbMF1cblx0XHR9LFxuXHRcdC8qKlxuXHRcdCAqIFJlYWN0aXZlIGJpbmRpbmcgdG8gdGhlIGZpcnN0IGNoaWxkcmVuXG5cdFx0ICogU2luY2Ugd2UncmUgaGVyZSwgaXQgbWVhbnMgd2UgYWxyZWFkeSBwYXNzZWQgYWxsIHRoZSBwcm9wZXIgY2hlY2tzXG5cdFx0ICogd2UgY2FuIGFzc3VtZSB0aGUgZmlyc3QgYWN0aW9uIGlzIHRoZSBmaXJzdCBjaGlsZHJlbiB0b29cblx0XHQgKiBAcmV0dXJucyB7T2JqZWN0fSBmaXJzdCBhY3Rpb24gdnVlIGNoaWxkcmVuIG9iamVjdFxuXHRcdCAqL1xuXHRcdGZpcnN0QWN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuY2hpbGRyZW5bMF1cblx0XHRcdFx0PyB0aGlzLmNoaWxkcmVuWzBdXG5cdFx0XHRcdDoge31cblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogQmluZGluZyBvZiB0aGUgZmlyc3QgYWN0aW9uIHRvIHRoZSB0ZW1wbGF0ZVxuXHRcdCAqIEByZXR1cm5zIHtPYmplY3R9IHZ1ZSB0ZW1wbGF0ZSB2LWJpbmQgc2hvcnRjdXRcblx0XHQgKi9cblx0XHRmaXJzdEFjdGlvbkJpbmRpbmcoKSB7XG5cdFx0XHRpZiAodGhpcy5maXJzdEFjdGlvblZOb2RlICYmIHRoaXMuZmlyc3RBY3Rpb25WTm9kZS5jb21wb25lbnRPcHRpb25zKSB7XG5cdFx0XHRcdGNvbnN0IHRhZyA9IHRoaXMuZmlyc3RBY3Rpb25WTm9kZS5jb21wb25lbnRPcHRpb25zLnRhZ1xuXHRcdFx0XHRpZiAodGFnID09PSAnQWN0aW9uTGluaycpIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0aXM6ICdhJyxcblx0XHRcdFx0XHRcdGhyZWY6IHRoaXMuZmlyc3RBY3Rpb24uaHJlZixcblx0XHRcdFx0XHRcdHRhcmdldDogdGhpcy5maXJzdEFjdGlvbi50YXJnZXQsXG5cdFx0XHRcdFx0XHQnYXJpYS1sYWJlbCc6IHRoaXMuZmlyc3RBY3Rpb24uYXJpYUxhYmVsLFxuXHRcdFx0XHRcdFx0Li4udGhpcy5maXJzdEFjdGlvbi4kYXR0cnMsXG5cdFx0XHRcdFx0XHQuLi50aGlzLmZpcnN0QWN0aW9uLiRwcm9wcyxcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRhZyA9PT0gJ0FjdGlvblJvdXRlcicpIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0aXM6ICdyb3V0ZXItbGluaycsXG5cdFx0XHRcdFx0XHR0bzogdGhpcy5maXJzdEFjdGlvbi50byxcblx0XHRcdFx0XHRcdGV4YWN0OiB0aGlzLmZpcnN0QWN0aW9uLmV4YWN0LFxuXHRcdFx0XHRcdFx0J2FyaWEtbGFiZWwnOiB0aGlzLmZpcnN0QWN0aW9uLmFyaWFMYWJlbCxcblx0XHRcdFx0XHRcdC4uLnRoaXMuZmlyc3RBY3Rpb24uJGF0dHJzLFxuXHRcdFx0XHRcdFx0Li4udGhpcy5maXJzdEFjdGlvbi4kcHJvcHMsXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0YWcgPT09ICdBY3Rpb25CdXR0b24nKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdGlzOiAnYnV0dG9uJyxcblx0XHRcdFx0XHRcdCdhcmlhLWxhYmVsJzogdGhpcy5maXJzdEFjdGlvbi5hcmlhTGFiZWwsXG5cdFx0XHRcdFx0XHQuLi50aGlzLmZpcnN0QWN0aW9uLiRhdHRycyxcblx0XHRcdFx0XHRcdC4uLnRoaXMuZmlyc3RBY3Rpb24uJHByb3BzLFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gb3RoZXIgYWN0aW9uIHR5cGVzIGFyZSBub3QgYWxsb3dlZCBhcyBzdGFuZGFsb25lIGJ1dHRvbnNcblx0XHRcdHJldHVybiBudWxsXG5cdFx0fSxcblxuXHRcdC8vIHJldHVybiB0aGUgZXZlbnQgdG8gYmluZCBpZiB0aGUgZmlyc3RBY3Rpb25WTm9kZSBoYXZlIGFuIGFjdGlvblxuXHRcdGZpcnN0QWN0aW9uRXZlbnQoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5maXJzdEFjdGlvblZOb2RlPy5jb21wb25lbnRPcHRpb25zPy5saXN0ZW5lcnM/LmNsaWNrXG5cdFx0fSxcblx0XHRmaXJzdEFjdGlvbkV2ZW50QmluZGluZygpIHtcblx0XHRcdHJldHVybiB0aGlzLmZpcnN0QWN0aW9uRXZlbnQgPyAnY2xpY2snIDogbnVsbFxuXHRcdH0sXG5cdFx0Ly8gcmV0dXJuIHRoZSBmaXJzdCBhY3Rpb24gaWNvbiBzbG90IHZub2RlcyBhcnJheVxuXHRcdGZpcnN0QWN0aW9uSWNvblNsb3QoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5maXJzdEFjdGlvbj8uJHNsb3RzPy5pY29uXG5cdFx0fSxcblx0XHRmaXJzdEFjdGlvbkNsYXNzKCkge1xuXHRcdFx0Y29uc3Qgc3RhdGljQ2xhc3MgPSB0aGlzLmZpcnN0QWN0aW9uVk5vZGUgJiYgdGhpcy5maXJzdEFjdGlvblZOb2RlLmRhdGEuc3RhdGljQ2xhc3Ncblx0XHRcdGNvbnN0IGR5bkNsYXNzID0gdGhpcy5maXJzdEFjdGlvblZOb2RlICYmIHRoaXMuZmlyc3RBY3Rpb25WTm9kZS5kYXRhLmNsYXNzXG5cdFx0XHRyZXR1cm4gKHN0YXRpY0NsYXNzICsgJyAnICsgZHluQ2xhc3MpLnRyaW0oKVxuXHRcdH0sXG5cblx0XHRpY29uU2xvdElzUG9wdWxhdGVkKCkge1xuXHRcdFx0cmV0dXJuICEhdGhpcy4kc2xvdHMuaWNvblxuXHRcdH0sXG5cdH0sXG5cblx0d2F0Y2g6IHtcblx0XHQvLyBXYXRjaCBwYXJlbnQgcHJvcFxuXHRcdG9wZW4oc3RhdGUpIHtcblx0XHRcdGlmIChzdGF0ZSA9PT0gdGhpcy5vcGVuZWQpIHtcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cblx0XHRcdHRoaXMub3BlbmVkID0gc3RhdGVcblx0XHR9LFxuXHR9LFxuXHRiZWZvcmVNb3VudCgpIHtcblx0XHQvLyBpbml0IGFjdGlvbnNcblx0XHR0aGlzLmluaXRBY3Rpb25zKClcblxuXHRcdC8vIGZpbHRlciBpbnZhbGlkIG1lbnUgaXRlbXNcblx0XHRWYWxpZGF0ZVNsb3QodGhpcy4kc2xvdHMuZGVmYXVsdCwgYWxsb3dlZENoaWxkcmVuLCB0aGlzKVxuXHR9LFxuXHRiZWZvcmVVcGRhdGUoKSB7XG5cdFx0Ly8gISBzaW5jZSB3ZSdyZSB1c2luZyAkc2xvdHMgdG8gbWFuYWdlIG91ciBhY3Rpb25zXG5cdFx0Ly8gISB3ZSBORUVEIHRvIHVwZGF0ZSB0aGUgYWN0aW9ucyBpZiBhbnl0aGluZyBjaGFuZ2VcblxuXHRcdC8vIHVwZGF0ZSBjaGlsZHJlbiAmIGFjdGlvbnNcblx0XHQvLyBubyBuZWVkIHRvIGluaXQgYWN0aW9ucyBhZ2FpbiBzaW5jZSB3ZSBib3VuZCBpdCB0byAkY2hpbGRyZW5cblx0XHQvLyBhbmQgdGhlIGFycmF5IGlzIG5vdyByZWFjdGl2ZVxuXHRcdC8vIGluaXQgYWN0aW9uc1xuXHRcdHRoaXMuaW5pdEFjdGlvbnMoKVxuXHRcdFZhbGlkYXRlU2xvdCh0aGlzLiRzbG90cy5kZWZhdWx0LCBhbGxvd2VkQ2hpbGRyZW4sIHRoaXMpXG5cdH0sXG5cblx0bWV0aG9kczoge1xuXHRcdC8vIE1FTlUgU1RBVEUgTUFOQUdFTUVOVFxuXHRcdG9wZW5NZW51KGUpIHtcblx0XHRcdGlmICh0aGlzLm9wZW5lZCkge1xuXHRcdFx0XHRyZXR1cm5cblx0XHRcdH1cblxuXHRcdFx0dGhpcy5vcGVuZWQgPSB0cnVlXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIG1lbnUgb3BlbiBzdGF0ZSBpcyBjaGFuZ2VkXG5cdFx0XHQgKiBAdHlwZSB7Ym9vbGVhbn1cblx0XHRcdCAqL1xuXHRcdFx0dGhpcy4kZW1pdCgndXBkYXRlOm9wZW4nLCB0cnVlKVxuXG5cdFx0XHQvKipcblx0XHRcdCAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcG9wb3ZlciBtZW51IGlzIGNsb3NlZFxuXHRcdFx0ICovXG5cdFx0XHR0aGlzLiRlbWl0KCdvcGVuJylcblx0XHR9LFxuXHRcdGNsb3NlTWVudShlKSB7XG5cdFx0XHRpZiAoIXRoaXMub3BlbmVkKSB7XG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLm9wZW5lZCA9IGZhbHNlXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIG1lbnUgb3BlbiBzdGF0ZSBpcyBjaGFuZ2VkXG5cdFx0XHQgKiBAdHlwZSB7Ym9vbGVhbn1cblx0XHRcdCAqL1xuXHRcdFx0dGhpcy4kZW1pdCgndXBkYXRlOm9wZW4nLCBmYWxzZSlcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHBvcG92ZXIgbWVudSBpcyBjbG9zZWRcblx0XHRcdCAqL1xuXHRcdFx0dGhpcy4kZW1pdCgnY2xvc2UnKVxuXG5cdFx0XHQvLyBjbG9zZSBldmVyeXRoaW5nXG5cdFx0XHR0aGlzLm9wZW5lZCA9IGZhbHNlXG5cdFx0XHR0aGlzLmZvY3VzSW5kZXggPSAwXG5cblx0XHRcdC8vIGZvY3VzIGJhY2sgdGhlIG1lbnUgYnV0dG9uXG5cdFx0XHR0aGlzLiRyZWZzLm1lbnVCdXR0b24uZm9jdXMoKVxuXHRcdH0sXG5cblx0XHRvbk9wZW4oZXZlbnQpIHtcblx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcblx0XHRcdFx0dGhpcy5mb2N1c0ZpcnN0QWN0aW9uKGV2ZW50KVxuXHRcdFx0fSlcblx0XHR9LFxuXG5cdFx0Ly8gTUVOVSBLRVlTICYgRk9DVVMgTUFOQUdFTUVOVFxuXHRcdC8vIGZvY3VzIG5lYXJlc3QgZm9jdXNhYmxlIGl0ZW0gb24gbW91c2UgbW92ZVxuXHRcdC8vIERPIE5PVCBjaGFuZ2UgdGhlIGZvY3VzIGlmIHRoZSB0YXJnZXQgaXMgYWxyZWFkeSBmb2N1c2VkXG5cdFx0Ly8gdGhpcyB3aWxsIHByZXZlbnQgaXNzdWVzIHdpdGggaW5wdXQgYmVpbmcgdW5mb2N1c2VkXG5cdFx0Ly8gb24gbW91c2UgbW92ZVxuXHRcdG9uTW91c2VGb2N1c0FjdGlvbihldmVudCkge1xuXHRcdFx0aWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCkge1xuXHRcdFx0XHRyZXR1cm5cblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgbWVudUl0ZW0gPSBldmVudC50YXJnZXQuY2xvc2VzdCgnbGknKVxuXHRcdFx0aWYgKG1lbnVJdGVtKSB7XG5cdFx0XHRcdGNvbnN0IGZvY3VzYWJsZUl0ZW0gPSBtZW51SXRlbS5xdWVyeVNlbGVjdG9yKGZvY3VzYWJsZVNlbGVjdG9yKVxuXHRcdFx0XHRpZiAoZm9jdXNhYmxlSXRlbSkge1xuXHRcdFx0XHRcdGNvbnN0IGZvY3VzTGlzdCA9IHRoaXMuJHJlZnMubWVudS5xdWVyeVNlbGVjdG9yQWxsKGZvY3VzYWJsZVNlbGVjdG9yKVxuXHRcdFx0XHRcdGNvbnN0IGZvY3VzSW5kZXggPSBbLi4uZm9jdXNMaXN0XS5pbmRleE9mKGZvY3VzYWJsZUl0ZW0pXG5cdFx0XHRcdFx0aWYgKGZvY3VzSW5kZXggPiAtMSkge1xuXHRcdFx0XHRcdFx0dGhpcy5mb2N1c0luZGV4ID0gZm9jdXNJbmRleFxuXHRcdFx0XHRcdFx0dGhpcy5mb2N1c0FjdGlvbigpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRyZW1vdmVDdXJyZW50QWN0aXZlKCkge1xuXHRcdFx0Y29uc3QgY3VycmVudEFjdGl2ZUVsZW1lbnQgPSB0aGlzLiRyZWZzLm1lbnUucXVlcnlTZWxlY3RvcignbGkuYWN0aXZlJylcblx0XHRcdGlmIChjdXJyZW50QWN0aXZlRWxlbWVudCkge1xuXHRcdFx0XHRjdXJyZW50QWN0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Zm9jdXNBY3Rpb24oKSB7XG5cdFx0XHQvLyBUT0RPOiBoYXZlIGEgZ2xvYmFsIGRpc2FibGVkIHN0YXRlIGZvciBub24gaW5wdXQgZWxlbWVudHNcblx0XHRcdGNvbnN0IGZvY3VzRWxlbWVudCA9IHRoaXMuJHJlZnMubWVudS5xdWVyeVNlbGVjdG9yQWxsKGZvY3VzYWJsZVNlbGVjdG9yKVt0aGlzLmZvY3VzSW5kZXhdXG5cdFx0XHRpZiAoZm9jdXNFbGVtZW50KSB7XG5cdFx0XHRcdHRoaXMucmVtb3ZlQ3VycmVudEFjdGl2ZSgpXG5cdFx0XHRcdGNvbnN0IGxpTWVudVBhcmVudCA9IGZvY3VzRWxlbWVudC5jbG9zZXN0KCdsaS5hY3Rpb24nKVxuXHRcdFx0XHRmb2N1c0VsZW1lbnQuZm9jdXMoKVxuXHRcdFx0XHRpZiAobGlNZW51UGFyZW50KSB7XG5cdFx0XHRcdFx0bGlNZW51UGFyZW50LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LFxuXHRcdGZvY3VzUHJldmlvdXNBY3Rpb24oZXZlbnQpIHtcblx0XHRcdGlmICh0aGlzLm9wZW5lZCkge1xuXHRcdFx0XHRpZiAodGhpcy5mb2N1c0luZGV4ID09PSAwKSB7XG5cdFx0XHRcdFx0Ly8gRmlyc3QgZWxlbWVudCBvdmVyZmxvd3MgdG8gYm9keS1uYXZpZ2F0aW9uIChubyBwcmV2ZW50RGVmYXVsdCEpIGFuZCBjbG9zZXMgQWN0aW9ucy1tZW51XG5cdFx0XHRcdFx0dGhpcy5jbG9zZU1lbnUoKVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMucHJldmVudElmRXZlbnQoZXZlbnQpXG5cdFx0XHRcdFx0dGhpcy5mb2N1c0luZGV4ID0gdGhpcy5mb2N1c0luZGV4IC0gMVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuZm9jdXNBY3Rpb24oKVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Zm9jdXNOZXh0QWN0aW9uKGV2ZW50KSB7XG5cdFx0XHRpZiAodGhpcy5vcGVuZWQpIHtcblx0XHRcdFx0Y29uc3QgaW5kZXhMZW5ndGggPSB0aGlzLiRyZWZzLm1lbnUucXVlcnlTZWxlY3RvckFsbChmb2N1c2FibGVTZWxlY3RvcikubGVuZ3RoIC0gMVxuXHRcdFx0XHRpZiAodGhpcy5mb2N1c0luZGV4ID09PSBpbmRleExlbmd0aCkge1xuXHRcdFx0XHRcdC8vIExhc3QgZWxlbWVudCBvdmVyZmxvd3MgdG8gYm9keS1uYXZpZ2F0aW9uIChubyBwcmV2ZW50RGVmYXVsdCEpIGFuZCBjbG9zZXMgQWN0aW9ucy1tZW51XG5cdFx0XHRcdFx0dGhpcy5jbG9zZU1lbnUoKVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMucHJldmVudElmRXZlbnQoZXZlbnQpXG5cdFx0XHRcdFx0dGhpcy5mb2N1c0luZGV4ID0gdGhpcy5mb2N1c0luZGV4ICsgMVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuZm9jdXNBY3Rpb24oKVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Zm9jdXNGaXJzdEFjdGlvbihldmVudCkge1xuXHRcdFx0aWYgKHRoaXMub3BlbmVkKSB7XG5cdFx0XHRcdHRoaXMucHJldmVudElmRXZlbnQoZXZlbnQpXG5cdFx0XHRcdHRoaXMuZm9jdXNJbmRleCA9IDBcblx0XHRcdFx0dGhpcy5mb2N1c0FjdGlvbigpXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRmb2N1c0xhc3RBY3Rpb24oZXZlbnQpIHtcblx0XHRcdGlmICh0aGlzLm9wZW5lZCkge1xuXHRcdFx0XHR0aGlzLnByZXZlbnRJZkV2ZW50KGV2ZW50KVxuXHRcdFx0XHR0aGlzLmZvY3VzSW5kZXggPSB0aGlzLiRlbC5xdWVyeVNlbGVjdG9yQWxsKGZvY3VzYWJsZVNlbGVjdG9yKS5sZW5ndGggLSAxXG5cdFx0XHRcdHRoaXMuZm9jdXNBY3Rpb24oKVxuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHRwcmV2ZW50SWZFdmVudChldmVudCkge1xuXHRcdFx0aWYgKGV2ZW50KSB7XG5cdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KClcblx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0Ly8gQUNUSU9OUyBNQU5BR0VNRU5UXG5cdFx0Ly8gZXhlYyB0aGUgZmlyc3QgYWN0aW9uXG5cdFx0ZXhlY0ZpcnN0QWN0aW9uKGV2ZW50KSB7XG5cdFx0XHRpZiAodGhpcy5maXJzdEFjdGlvbkV2ZW50KSB7XG5cdFx0XHRcdHRoaXMuZmlyc3RBY3Rpb25FdmVudChldmVudClcblx0XHRcdH1cblx0XHR9LFxuXHRcdGluaXRBY3Rpb25zKCkge1xuXHRcdFx0Ly8gZmlsdGVyIG91dCBpbnZhbGlkIHNsb3RzXG5cdFx0XHR0aGlzLmFjdGlvbnMgPSAodGhpcy4kc2xvdHMuZGVmYXVsdCB8fCBbXSkuZmlsdGVyKG5vZGUgPT4gISFub2RlICYmICEhbm9kZS5jb21wb25lbnRPcHRpb25zKVxuXHRcdH0sXG5cdFx0b25Gb2N1cyhldmVudCkge1xuXHRcdFx0dGhpcy4kZW1pdCgnZm9jdXMnLCBldmVudClcblx0XHR9LFxuXHRcdG9uQmx1cihldmVudCkge1xuXHRcdFx0dGhpcy4kZW1pdCgnYmx1cicsIGV2ZW50KVxuXHRcdH0sXG5cdH0sXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxuQGltcG9ydCAnLi4vLi4vZm9udHMvc2Nzcy9pY29uZm9udC12dWUnO1xuXG4uYWN0aW9uLWl0ZW0ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHQvLyBwdXQgYSBncmV5IHJvdW5kIGJhY2tncm91bmQgd2hlbiBtZW51IGlzIG9wZW5lZFxuXHQvLyBvciBob3Zlci1mb2N1c2VkXG5cdCYtLXNpbmdsZTpob3Zlcixcblx0Ji0tc2luZ2xlOmZvY3VzLFxuXHQmLS1zaW5nbGU6YWN0aXZlLFxuXHQmX19tZW51dG9nZ2xlOmhvdmVyLFxuXHQmX19tZW51dG9nZ2xlOmZvY3VzLFxuXHQmX19tZW51dG9nZ2xlOmFjdGl2ZSB7XG5cdFx0b3BhY2l0eTogJG9wYWNpdHlfZnVsbDtcblx0XHQvLyBnb29kIGxvb2tpbmcgb24gZGFyayBBTkQgd2hpdGUgYmdcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi1mb2N1cy1iZztcblx0fVxuXG5cdC8vIFRPRE86IGhhbmRsZSB0aGlzIGluIHRoZSBmdXR1cmUgYnV0dG9uIGNvbXBvbmVudFxuXHQmX19tZW51dG9nZ2xlOmRpc2FibGVkLFxuXHQmLS1zaW5nbGU6ZGlzYWJsZWQge1xuXHRcdG9wYWNpdHk6IC4zICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQmLmFjdGlvbi1pdGVtLS1vcGVuIC5hY3Rpb24taXRlbV9fbWVudXRvZ2dsZSB7XG5cdFx0b3BhY2l0eTogJG9wYWNpdHlfZnVsbDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWJhY2tncm91bmQtaG92ZXI7XG5cdH1cblxuXHQvLyBpY29uc1xuXHQmLS1zaW5nbGUsXG5cdCZfX21lbnV0b2dnbGUge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0bWluLXdpZHRoOiAkY2xpY2thYmxlLWFyZWE7XG5cdFx0aGVpZ2h0OiAkY2xpY2thYmxlLWFyZWE7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6ICRpY29uLW1hcmdpbjtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdGJvcmRlci1yYWRpdXM6ICRjbGlja2FibGUtYXJlYSAvIDI7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cblxuXHQvLyBpY29uLW1vcmVcblx0Jl9fbWVudXRvZ2dsZSB7XG5cdFx0Ly8gYWxpZ24gbWVudSBpY29uIGluIGNlbnRlclxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRvcGFjaXR5OiAkb3BhY2l0eV9ub3JtYWw7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0bGluZS1oZWlnaHQ6ICRpY29uLXNpemU7XG5cblx0XHQvLyBpbWFnZSBzbG90XG5cdFx0L2RlZXAvIHNwYW4ge1xuXHRcdFx0d2lkdGg6ICRpY29uLXNpemU7XG5cdFx0XHRoZWlnaHQ6ICRpY29uLXNpemU7XG5cdFx0XHRsaW5lLWhlaWdodDogJGljb24tc2l6ZTtcblx0XHR9XG5cblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHR9XG5cblx0XHQmLS1kZWZhdWx0LWljb24ge1xuXHRcdFx0QGluY2x1ZGUgaWNvbmZvbnQoJ21vcmUnKTtcblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogJGljb24tc2l6ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLS13aXRoLXRpdGxlIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHBhZGRpbmctbGVmdDogJGNsaWNrYWJsZS1hcmVhO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdG9wYWNpdHk6ICRvcGFjaXR5X2Z1bGw7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItZGFyayk7XG5cdFx0XHQvLyB3aXRoIGEgdGl0bGUsIHdlIG5lZWQgdG8gZGlzcGxheSB0aGlzIGFzIGEgcmVhbCBidXR0b25cblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtZGFyayk7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkaWNvbi1tYXJnaW4gY2VudGVyO1xuXHRcdFx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRcdFx0Ly8gbm9uLWJhY2tncm91bmQgaWNvbiBjbGFzc1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogJGljb24tbWFyZ2luO1xuXHRcdFx0XHRsZWZ0OiAkaWNvbi1tYXJnaW47XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji0tcHJpbWFyeSB7XG5cdFx0XHRvcGFjaXR5OiAkb3BhY2l0eV9mdWxsO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktdGV4dCk7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWVsZW1lbnQpO1xuXHRcdFx0LmFjdGlvbi1pdGVtLS1vcGVuICYsXG5cdFx0XHQmOmhvdmVyLFxuXHRcdFx0Jjpmb2N1cyxcblx0XHRcdCY6YWN0aXZlIHtcblx0XHRcdFx0Y29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktdGV4dCkgIWltcG9ydGFudDtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1lbGVtZW50LWxpZ2h0KSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYtLXNpbmdsZSB7XG5cdFx0b3BhY2l0eTogJG9wYWNpdHlfbm9ybWFsO1xuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyxcblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRvcGFjaXR5OiAkb3BhY2l0eV9mdWxsO1xuXHRcdH1cblx0XHQvLyBoaWRlIGFueXRoaW5nIHRoZSBzbG90IGlzIGRpc3BsYXlpbmdcblx0XHQmID4gW2hpZGRlbl0ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLmllLFxuLmVkZ2Uge1xuXHQuYWN0aW9uLWl0ZW1fX21lbnUsXG5cdC5hY3Rpb24taXRlbV9fbWVudSAuYWN0aW9uLWl0ZW1fX21lbnVfYXJyb3cge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG5cdH1cbn1cblxuPC9zdHlsZT5cbiIsIjwhLS1cbiAgLSBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOSBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gIC1cbiAgLSBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cbiAgLVxuICAtIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxuICAtXG4gIC0gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAgLSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICAtIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxuICAtIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gIC1cbiAgLSBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAgLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICAtIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICAtIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICAtXG4gIC0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gIC0gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAgLVxuICAtLT5cblxuPGRvY3M+XG4jIyMgR2VuZXJhbCBkZXNjcmlwdGlvblxuXG5UaGlzIGNvbXBvbmVudCBwcm92aWRlcyBhIHdheSB0byBpbmNsdWRlIHRoZSBzdGFuZGFyZGlzZWQgc2lkZWJhci5cblRoZSBzdGFuZGFyZCBwcm9wZXJ0aWVzIGxpa2UgdGl0bGUsIHN1YnRpdGxlLCBzdGFycmVkLCBldGMuIGFsbG93IHRvIGF1dG9tYXRpY2FsbHlcbmluY2x1ZGUgYSBzdGFuZGFyZC1oZWFkZXIgbGlrZSBpdCdzIHVzZWQgYnkgdGhlIGZpbGVzIGFwcC5cblxuIyMjIFN0YW5kYXJkIHVzYWdlXG5cbmBgYHZ1ZVxuPEFwcFNpZGViYXJcblx0dGl0bGU9XCJjYXQtcGljdHVyZS5qcGdcIlxuXHRzdWJ0aXRsZT1cImxhc3QgZWRpdGVkIDMgd2Vla3MgYWdvXCI+XG5cdDxBcHBTaWRlYmFyVGFiIGljb249XCJpY29uLXNldHRpbmdzXCIgbmFtZT1cIlNldHRpbmdzXCIgaWQ9XCJzZXR0aW5nc1wiPlxuXHRcdFNldHRpbmdzIHRhYiBjb250ZW50XG5cdDwvQXBwU2lkZWJhclRhYj5cblx0PEFwcFNpZGViYXJUYWIgaWNvbj1cImljb24tc2hhcmVcIiBuYW1lPVwiU2hhcmluZ1wiIGlkPVwic2hhcmVcIj5cblx0XHRTaGFyaW5nIHRhYiBjb250ZW50XG5cdDwvQXBwU2lkZWJhclRhYj5cbjwvQXBwU2lkZWJhcj5cbmBgYFxuXG4jIyMgRWRpdGFibGUgdGl0bGVcblxuYGBgdnVlXG48dGVtcGxhdGU+XG5cdDxBcHBTaWRlYmFyXG5cdFx0OnRpdGxlLnN5bmM9XCJ0aXRsZVwiXG5cdFx0OnRpdGxlLWVkaXRhYmxlPVwidHJ1ZVwiXG5cdFx0dGl0bGUtcGxhY2Vob2xkZXI9XCJGaWxlbmFtZVwiXG5cdFx0c3VidGl0bGU9XCJsYXN0IGVkaXRlZCAzIHdlZWtzIGFnb1wiPlxuXHRcdDwhLS0gSW5zZXJ0IHlvdXIgc2xvdHMgYW5kIHRhYnMgaGVyZSAtLT5cblx0PC9BcHBTaWRlYmFyPlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRkYXRhKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dGl0bGU6ICdjYXQtcGljdHVyZS5qcGcnLFxuXHRcdFx0fVxuXHRcdH0sXG5cdH1cbjwvc2NyaXB0PlxuYGBgXG5cbiMjIyBFZGl0YWJsZSB0aXRsZSBhZnRlciBjbGljayB3aXRoIGN1c3RvbSB0ZXJ0aWFyeSBhY3Rpb25cblxuYGBgdnVlXG48dGVtcGxhdGU+XG5cdDxBcHBTaWRlYmFyXG5cdFx0OnRpdGxlPVwidGl0bGVcIlxuXHRcdDp0aXRsZS1lZGl0YWJsZS5zeW5jPVwidGl0bGVFZGl0YWJsZVwiXG5cdFx0OnRpdGxlLXBsYWNlaG9sZGVyPVwidGl0bGVQbGFjZWhvbGRlclwiXG5cdFx0OnN1YnRpdGxlPVwic3VidGl0bGVcIlxuXHRcdEB1cGRhdGU6dGl0bGU9XCJ0aXRsZVVwZGF0ZVwiPlxuXHRcdDx0ZW1wbGF0ZSBzbG90PVwidGVydGlhcnktYWN0aW9uc1wiPlxuXHRcdFx0PGZvcm0+XG5cdFx0XHRcdDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBAY2xpY2s9XCJ0b2dnbGVkQ2hlY2tib3hcIi8+XG5cdFx0XHQ8L2Zvcm0+XG5cdFx0PC90ZW1wbGF0ZT5cblx0PC9BcHBTaWRlYmFyPlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRkYXRhKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dGl0bGU6ICdjYXQtcGljdHVyZS5qcGcnLFxuXHRcdFx0XHR0aXRsZVBsYWNlaG9sZGVyOiAnRmlsZW5hbWUnLFxuXHRcdFx0XHRzdWJ0aXRsZTogJ2xhc3QgZWRpdGVkIDMgd2Vla3MgYWdvJyxcblx0XHRcdFx0dGl0bGVFZGl0YWJsZTogZmFsc2Vcblx0XHRcdH1cblx0XHR9LFxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdHRpdGxlVXBkYXRlKGUpIHtcblx0XHRcdFx0dGhpcy50aXRsZSA9IGVcblx0XHRcdH0sXG5cdFx0XHR0b2dnbGVkQ2hlY2tib3goKSB7XG5cdFx0XHRcdGFsZXJ0KCd0b2dnbGUnKVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuPC9zY3JpcHQ+XG5gYGBcblxuIyMjIEVtcHR5IHNpZGViYXIgZm9yIGUuZy4gZW1wdHkgY29udGVudCBjb21wb25lbnQuXG5cbmBgYHZ1ZVxuPHRlbXBsYXRlPlxuXHQ8QXBwU2lkZWJhclxuXHRcdHRpdGxlPVwiY2F0LXBpY3R1cmUuanBnXCJcblx0XHQ6ZW1wdHk9XCJ0cnVlXCI+XG5cdFx0PEVtcHR5Q29udGVudCBpY29uPVwiaWNvbi1zZWFyY2hcIj5cblx0XHRcdENvbnRlbnQgbm90IGZvdW5kLlxuXHRcdDwvRW1wdHlDb250ZW50PlxuXHQ8L0FwcFNpZGViYXI+XG48L3RlbXBsYXRlPlxuYGBgXG48L2RvY3M+XG5cbjx0ZW1wbGF0ZT5cblx0PHRyYW5zaXRpb25cblx0XHRhcHBlYXJcblx0XHRuYW1lPVwic2xpZGUtcmlnaHRcIlxuXHRcdEBiZWZvcmUtZW50ZXI9XCJvbkJlZm9yZUVudGVyXCJcblx0XHRAYWZ0ZXItZW50ZXI9XCJvbkFmdGVyRW50ZXJcIlxuXHRcdEBiZWZvcmUtbGVhdmU9XCJvbkJlZm9yZUxlYXZlXCJcblx0XHRAYWZ0ZXItbGVhdmU9XCJvbkFmdGVyTGVhdmVcIj5cblx0XHQ8YXNpZGUgaWQ9XCJhcHAtc2lkZWJhci12dWVcIiBjbGFzcz1cImFwcC1zaWRlYmFyXCI+XG5cdFx0XHQ8aGVhZGVyIDpjbGFzcz1cIntcblx0XHRcdFx0XHQnYXBwLXNpZGViYXItaGVhZGVyLS13aXRoLWZpZ3VyZSc6IGhhc0ZpZ3VyZSxcblx0XHRcdFx0XHQnYXBwLXNpZGViYXItaGVhZGVyLS1jb21wYWN0JzogY29tcGFjdCxcblx0XHRcdFx0fVwiXG5cdFx0XHRcdGNsYXNzPVwiYXBwLXNpZGViYXItaGVhZGVyXCI+XG5cdFx0XHRcdDwhLS0gY2xvc2Ugc2lkZWJhciBidXR0b24gLS0+XG5cdFx0XHRcdDxhXG5cdFx0XHRcdFx0di10b29sdGlwLmF1dG89XCJjbG9zZVRyYW5zbGF0ZWRcIlxuXHRcdFx0XHRcdGhyZWY9XCIjXCJcblx0XHRcdFx0XHRjbGFzcz1cImFwcC1zaWRlYmFyX19jbG9zZSBpY29uLWNsb3NlXCJcblx0XHRcdFx0XHRAY2xpY2sucHJldmVudD1cImNsb3NlU2lkZWJhclwiIC8+XG5cblx0XHRcdFx0PCEtLSBjb250YWluZXIgZm9yIGZpZ3VyZSBhbmQgZGVzY3JpcHRpb24sIGFsbG93cyBlYXN5IHN3aXRjaGluZyB0byBjb21wYWN0IG1vZGUgLS0+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJhcHAtc2lkZWJhci1oZWFkZXJfX2luZm9cIj5cblx0XHRcdFx0XHQ8IS0tIHNpZGViYXIgaGVhZGVyIGlsbHVzdHJhdGlvbi9maWd1cmUgLS0+XG5cdFx0XHRcdFx0PGRpdiB2LWlmPVwiaGFzRmlndXJlICYmICFlbXB0eVwiXG5cdFx0XHRcdFx0XHQ6Y2xhc3M9XCJ7XG5cdFx0XHRcdFx0XHRcdCdhcHAtc2lkZWJhci1oZWFkZXJfX2ZpZ3VyZS0td2l0aC1hY3Rpb24nOiBoYXNGaWd1cmVDbGlja0xpc3RlbmVyXG5cdFx0XHRcdFx0XHR9XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiYXBwLXNpZGViYXItaGVhZGVyX19maWd1cmVcIlxuXHRcdFx0XHRcdFx0OnN0eWxlPVwie1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kSW1hZ2U6IGB1cmwoJHtiYWNrZ3JvdW5kfSlgXG5cdFx0XHRcdFx0XHR9XCJcblx0XHRcdFx0XHRcdEBjbGljaz1cIm9uRmlndXJlQ2xpY2tcIj5cblx0XHRcdFx0XHRcdDxzbG90IGNsYXNzPVwiYXBwLXNpZGViYXItaGVhZGVyX19iYWNrZ3JvdW5kXCIgbmFtZT1cImhlYWRlclwiIC8+XG5cdFx0XHRcdFx0PC9kaXY+XG5cblx0XHRcdFx0XHQ8IS0tIHNpZGViYXIgZGV0YWlscyAtLT5cblx0XHRcdFx0XHQ8ZGl2IHYtaWY9XCIhZW1wdHlcIlxuXHRcdFx0XHRcdFx0OmNsYXNzPVwie1xuXHRcdFx0XHRcdFx0XHQnYXBwLXNpZGViYXItaGVhZGVyX19kZXNjLS13aXRoLXRlcnRpYXJ5LWFjdGlvbic6IGNhblN0YXIgfHwgJHNsb3RzWyd0ZXJ0aWFyeS1hY3Rpb25zJ10sXG5cdFx0XHRcdFx0XHRcdCdhcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2MtLWVkaXRhYmxlJzogdGl0bGVFZGl0YWJsZSAmJiAhc3VidGl0bGUsXG5cdFx0XHRcdFx0XHRcdCdhcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2MtLXdpdGgtc3VidGl0bGUtLWVkaXRhYmxlJzogdGl0bGVFZGl0YWJsZSAmJiBzdWJ0aXRsZSxcblx0XHRcdFx0XHRcdFx0J2FwcC1zaWRlYmFyLWhlYWRlcl9fZGVzYy0td2l0aG91dC1hY3Rpb25zJzogISRzbG90c1snc2Vjb25kYXJ5LWFjdGlvbnMnXSxcblx0XHRcdFx0XHRcdH1cIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJhcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2NcIj5cblx0XHRcdFx0XHRcdDwhLS0gZmF2b3VyaXRlIGljb24gLS0+XG5cdFx0XHRcdFx0XHQ8ZGl2IHYtaWY9XCJjYW5TdGFyIHx8ICRzbG90c1sndGVydGlhcnktYWN0aW9ucyddXCIgY2xhc3M9XCJhcHAtc2lkZWJhci1oZWFkZXJfX3RlcnRpYXJ5LWFjdGlvbnNcIj5cblx0XHRcdFx0XHRcdFx0PHNsb3QgbmFtZT1cInRlcnRpYXJ5LWFjdGlvbnNcIj5cblx0XHRcdFx0XHRcdFx0XHQ8YSB2LWlmPVwiY2FuU3RhclwiXG5cdFx0XHRcdFx0XHRcdFx0XHQ6Y2xhc3M9XCJ7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCdpY29uLXN0YXJyZWQnOiBpc1N0YXJyZWQgJiYgIXN0YXJMb2FkaW5nLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQnaWNvbi1zdGFyJzogIWlzU3RhcnJlZCAmJiAhc3RhckxvYWRpbmcsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCdpY29uLWxvYWRpbmctc21hbGwnOiBzdGFyTG9hZGluZyxcblx0XHRcdFx0XHRcdFx0XHRcdH1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJhcHAtc2lkZWJhci1oZWFkZXJfX3N0YXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0QGNsaWNrLnByZXZlbnQ9XCJ0b2dnbGVTdGFycmVkXCIgLz5cblx0XHRcdFx0XHRcdFx0PC9zbG90PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cblx0XHRcdFx0XHRcdDwhLS0gdGl0bGUgLS0+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYXBwLXNpZGViYXItaGVhZGVyX190aXRsZS1jb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0PCEtLSBtYWluIHRpdGxlIC0tPlxuXHRcdFx0XHRcdFx0XHQ8aDIgdi1zaG93PVwiIXRpdGxlRWRpdGFibGVcIlxuXHRcdFx0XHRcdFx0XHRcdHYtbGlua2lmeT1cInt0ZXh0OiB0aXRsZSwgbGlua2lmeTogbGlua2lmeVRpdGxlfVwiXG5cdFx0XHRcdFx0XHRcdFx0di10b29sdGlwLmF1dG89XCJ0aXRsZVRvb2x0aXBcIlxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwiYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGVcIlxuXHRcdFx0XHRcdFx0XHRcdEBjbGljay5zZWxmPVwiZWRpdFRpdGxlXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3sgdGl0bGUgfX1cblx0XHRcdFx0XHRcdFx0PC9oMj5cblx0XHRcdFx0XHRcdFx0PHRlbXBsYXRlIHYtaWY9XCJ0aXRsZUVkaXRhYmxlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGZvcm1cblx0XHRcdFx0XHRcdFx0XHRcdHYtY2xpY2stb3V0c2lkZT1cIigpID0+IG9uU3VibWl0VGl0bGUoKVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImFwcC1zaWRlYmFyLWhlYWRlcl9fbWFpbnRpdGxlLWZvcm1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0QHN1Ym1pdC5wcmV2ZW50PVwib25TdWJtaXRUaXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlZj1cInRpdGxlSW5wdXRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR2LWZvY3VzXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwiYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGUtaW5wdXRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlPVwidGV4dFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDpwbGFjZWhvbGRlcj1cInRpdGxlUGxhY2Vob2xkZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ6dmFsdWU9XCJ0aXRsZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEBrZXlkb3duLmVzYz1cIm9uRGlzbWlzc0VkaXRpbmdcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRAaW5wdXQ9XCJvblRpdGxlSW5wdXRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxidXR0b25cblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJpY29uLWNvbmZpcm1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlPVwic3VibWl0XCIgLz5cblx0XHRcdFx0XHRcdFx0XHQ8L2Zvcm0+XG5cdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHRcdDwhLS0gc2Vjb25kYXJ5IHRpdGxlIC0tPlxuXHRcdFx0XHRcdFx0XHQ8cFxuXHRcdFx0XHRcdFx0XHRcdHYtaWY9XCJzdWJ0aXRsZS50cmltKCkgIT09ICcnXCJcblx0XHRcdFx0XHRcdFx0XHR2LXRvb2x0aXAuYXV0bz1cInN1YnRpdGxlVG9vbHRpcFwiXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJhcHAtc2lkZWJhci1oZWFkZXJfX3N1YnRpdGxlXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3sgc3VidGl0bGUgfX1cblx0XHRcdFx0XHRcdFx0PC9wPlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cblx0XHRcdFx0XHRcdDwhLS0gaGVhZGVyIG1haW4gbWVudSAtLT5cblx0XHRcdFx0XHRcdDxBY3Rpb25zIHYtaWY9XCIkc2xvdHNbJ3NlY29uZGFyeS1hY3Rpb25zJ11cIiBjbGFzcz1cImFwcC1zaWRlYmFyLWhlYWRlcl9fbWVudVwiIDpmb3JjZS1tZW51PVwiZm9yY2VNZW51XCI+XG5cdFx0XHRcdFx0XHRcdDxzbG90IG5hbWU9XCJzZWNvbmRhcnktYWN0aW9uc1wiIC8+XG5cdFx0XHRcdFx0XHQ8L0FjdGlvbnM+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2IHYtaWY9XCIkc2xvdHNbJ2Rlc2NyaXB0aW9uJ10gJiYgIWVtcHR5XCIgY2xhc3M9XCJhcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2NyaXB0aW9uXCI+XG5cdFx0XHRcdFx0PHNsb3QgbmFtZT1cImRlc2NyaXB0aW9uXCIgLz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2hlYWRlcj5cblxuXHRcdFx0PEFwcFNpZGViYXJUYWJzIHYtc2hvdz1cIiFsb2FkaW5nXCJcblx0XHRcdFx0cmVmPVwidGFic1wiXG5cdFx0XHRcdDphY3RpdmU9XCJhY3RpdmVcIlxuXHRcdFx0XHRAdXBkYXRlOmFjdGl2ZT1cIm9uVXBkYXRlQWN0aXZlXCI+XG5cdFx0XHRcdDxzbG90IC8+XG5cdFx0XHQ8L0FwcFNpZGViYXJUYWJzPlxuXG5cdFx0XHQ8RW1wdHlDb250ZW50IHYtaWY9XCJsb2FkaW5nXCIgaWNvbj1cImljb24tbG9hZGluZ1wiIC8+XG5cdFx0PC9hc2lkZT5cblx0PC90cmFuc2l0aW9uPlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCBBY3Rpb25zIGZyb20gJy4uL0FjdGlvbnMnXG5pbXBvcnQgRm9jdXMgZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9Gb2N1cydcbmltcG9ydCBMaW5raWZ5IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvTGlua2lmeSdcbmltcG9ydCBUb29sdGlwIGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvVG9vbHRpcCdcbmltcG9ydCBBcHBTaWRlYmFyVGFicyBmcm9tICcuL0FwcFNpZGViYXJUYWJzJ1xuaW1wb3J0IEVtcHR5Q29udGVudCBmcm9tICcuLi9FbXB0eUNvbnRlbnQvRW1wdHlDb250ZW50J1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uLy4uL2wxMG4nXG5pbXBvcnQgeyBkaXJlY3RpdmUgYXMgQ2xpY2tPdXRzaWRlIH0gZnJvbSAndi1jbGljay1vdXRzaWRlJ1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdG5hbWU6ICdBcHBTaWRlYmFyJyxcblxuXHRjb21wb25lbnRzOiB7XG5cdFx0QWN0aW9ucyxcblx0XHRBcHBTaWRlYmFyVGFicyxcblx0XHRFbXB0eUNvbnRlbnQsXG5cdH0sXG5cblx0ZGlyZWN0aXZlczoge1xuXHRcdGZvY3VzOiBGb2N1cyxcblx0XHRsaW5raWZ5OiBMaW5raWZ5LFxuXHRcdENsaWNrT3V0c2lkZSxcblx0XHRUb29sdGlwLFxuXHR9LFxuXG5cdHByb3BzOiB7XG5cdFx0YWN0aXZlOiB7XG5cdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRkZWZhdWx0OiAnJyxcblx0XHR9LFxuXHRcdHRpdGxlOiB7XG5cdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRkZWZhdWx0OiAnJyxcblx0XHRcdHJlcXVpcmVkOiB0cnVlLFxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBBbGxvdyB0byBlZGl0IHRoZSBzaWRlYmFyIHRpdGxlLlxuXHRcdCAqL1xuXHRcdHRpdGxlRWRpdGFibGU6IHtcblx0XHRcdHR5cGU6IEJvb2xlYW4sXG5cdFx0XHRkZWZhdWx0OiBmYWxzZSxcblx0XHR9LFxuXHRcdHRpdGxlUGxhY2Vob2xkZXI6IHtcblx0XHRcdHR5cGU6IFN0cmluZyxcblx0XHRcdGRlZmF1bHQ6ICcnLFxuXHRcdH0sXG5cdFx0c3VidGl0bGU6IHtcblx0XHRcdHR5cGU6IFN0cmluZyxcblx0XHRcdGRlZmF1bHQ6ICcnLFxuXHRcdH0sXG5cdFx0c3VidGl0bGVUb29sdGlwOiB7XG5cdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRkZWZhdWx0OiAnJyxcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogVXJsIHRvIHRoZSB0b3AgaGVhZGVyIGJhY2tncm91bmQgaW1hZ2Vcblx0XHQgKiBBcHBsaWVkIHdpdGggY3NzXG5cdFx0ICovXG5cdFx0YmFja2dyb3VuZDoge1xuXHRcdFx0dHlwZTogU3RyaW5nLFxuXHRcdFx0ZGVmYXVsdDogJycsXG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEVuYWJsZSB0aGUgZmF2b3VyaXRlIGljb24gaWYgbm90IG51bGxcblx0XHQgKiBTZWUgZmlyZWQgZXZlbnRzXG5cdFx0ICovXG5cdFx0c3RhcnJlZDoge1xuXHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0fSxcblx0XHQvKipcblx0XHQgKiBTaG93IGxvYWRpbmcgc3Bpbm5lciBpbnN0ZWFkIG9mIHRoZSBzdGFyIGljb25cblx0XHQgKi9cblx0XHRzdGFyTG9hZGluZzoge1xuXHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdGRlZmF1bHQ6IGZhbHNlLFxuXHRcdH0sXG5cdFx0LyoqXG5cdFx0ICogU2hvdyBsb2FkaW5nIHNwaW5uZXIgaW5zdGVhZCBvZiB0YWJzXG5cdFx0ICovXG5cdFx0bG9hZGluZzoge1xuXHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdGRlZmF1bHQ6IGZhbHNlLFxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBEaXNwbGF5IHRoZSBzaWRlYmFyIGluIGNvbXBhY3QgbW9kZVxuXHRcdCAqL1xuXHRcdGNvbXBhY3Q6IHtcblx0XHRcdHR5cGU6IEJvb2xlYW4sXG5cdFx0XHRkZWZhdWx0OiBmYWxzZSxcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogT25seSBkaXNwbGF5IGNsb3NlIGJ1dHRvbiBhbmQgZGVmYXVsdCBzbG90IGNvbnRlbnQuXG5cdFx0ICogRG9uJ3QgZGlzcGxheSBvdGhlciBoZWFkZXIgY29udGVudCBhbmQgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IGFjdGlvbnMuXG5cdFx0ICogVXNlZnVsIHdoZW4gc2hvd2luZyB0aGUgRW1wdHlDb250ZW50IGNvbXBvbmVudCBhcyBjb250ZW50LlxuXHRcdCAqL1xuXHRcdGVtcHR5OiB7XG5cdFx0XHR0eXBlOiBCb29sZWFuLFxuXHRcdFx0ZGVmYXVsdDogZmFsc2UsXG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEZvcmNlIHRoZSBhY3Rpb25zIHRvIGRpc3BsYXkgaW4gYSB0aHJlZSBkb3QgbWVudVxuXHRcdCAqL1xuXHRcdGZvcmNlTWVudToge1xuXHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdGRlZmF1bHQ6IGZhbHNlLFxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBMaW5raWZ5IHRoZSB0aXRsZVxuXHRcdCAqL1xuXHRcdGxpbmtpZnlUaXRsZToge1xuXHRcdFx0dHlwZTogQm9vbGVhbixcblx0XHRcdGRlZmF1bHQ6IGZhbHNlLFxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBUb29sdGlwIHRvIGRpc3BsYXkgZm9yIHRoZSB0aXRsZS5cblx0XHQgKiBDYW4gYmUgc2V0IHRvIHRoZSBzYW1lIHRleHQgaW4gY2FzZSBpdCdzIHRvbyBsb25nLlxuXHRcdCAqL1xuXHRcdHRpdGxlVG9vbHRpcDoge1xuXHRcdFx0dHlwZTogU3RyaW5nLFxuXHRcdFx0ZGVmYXVsdDogJycsXG5cdFx0fSxcblx0fSxcblxuXHRkYXRhKCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRjbG9zZVRyYW5zbGF0ZWQ6IHQoJ0Nsb3NlJyksXG5cdFx0XHRpc1N0YXJyZWQ6IHRoaXMuc3RhcnJlZCxcblx0XHR9XG5cdH0sXG5cblx0Y29tcHV0ZWQ6IHtcblx0XHRjYW5TdGFyKCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuaXNTdGFycmVkICE9PSBudWxsXG5cdFx0fSxcblx0XHRoYXNGaWd1cmUoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy4kc2xvdHMuaGVhZGVyIHx8IHRoaXMuYmFja2dyb3VuZFxuXHRcdH0sXG5cdFx0aGFzRmlndXJlQ2xpY2tMaXN0ZW5lcigpIHtcblx0XHRcdHJldHVybiB0aGlzLiRsaXN0ZW5lcnNbJ2ZpZ3VyZS1jbGljayddXG5cdFx0fSxcblx0fSxcblxuXHR3YXRjaDoge1xuXHRcdHN0YXJyZWQoKSB7XG5cdFx0XHR0aGlzLmlzU3RhcnJlZCA9IHRoaXMuc3RhcnJlZFxuXHRcdH0sXG5cdH0sXG5cblx0bWV0aG9kczoge1xuXHRcdG9uQmVmb3JlRW50ZXIoZWxlbWVudCkge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBUaGUgc2lkZWJhciBpcyBvcGVuaW5nIGFuZCB0aGUgdHJhbnNpdGlvbiBpcyBpbiBwcm9ncmVzc1xuXHRcdFx0ICogQHR5cGUge0hUTUxFbGVtZW50fVxuXHRcdFx0ICovXG5cdFx0XHR0aGlzLiRlbWl0KCdvcGVuaW5nJywgZWxlbWVudClcblx0XHR9LFxuXHRcdG9uQWZ0ZXJFbnRlcihlbGVtZW50KSB7XG5cdFx0XHQvKipcblx0XHRcdCAqIFRoZSBzaWRlYmFyIGlzIG9wZW5lZCBhbmQgdGhlIHRyYW5zaXRpb24gaXMgY29tcGxldGVcblx0XHRcdCAqIEB0eXBlIHtIVE1MRWxlbWVudH1cblx0XHRcdCAqL1xuXHRcdFx0dGhpcy4kZW1pdCgnb3BlbmVkJywgZWxlbWVudClcblx0XHR9LFxuXHRcdG9uQmVmb3JlTGVhdmUoZWxlbWVudCkge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBUaGUgc2lkZWJhciBpcyBjbG9zaW5nIGFuZCB0aGUgdHJhbnNpdGlvbiBpcyBpbiBwcm9ncmVzc1xuXHRcdFx0ICogQHR5cGUge0hUTUxFbGVtZW50fVxuXHRcdFx0ICovXG5cdFx0XHR0aGlzLiRlbWl0KCdjbG9zaW5nJywgZWxlbWVudClcblx0XHR9LFxuXHRcdG9uQWZ0ZXJMZWF2ZShlbGVtZW50KSB7XG5cdFx0XHQvKipcblx0XHRcdCAqIFRoZSBzaWRlYmFyIGlzIGNsb3NlZCBhbmQgdGhlIHRyYW5zaXRpb24gaXMgY29tcGxldGVcblx0XHRcdCAqIEB0eXBlIHtIVE1MRWxlbWVudH1cblx0XHRcdCAqL1xuXHRcdFx0dGhpcy4kZW1pdCgnY2xvc2VkJywgZWxlbWVudClcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogVXNlZCB0byB0ZWxsIHBhcmVudCBjb21wb25lbnQgdGhlIHVzZXIgYXNrZWQgdG8gY2xvc2UgdGhlIHNpZGViYXJcblx0XHQgKiBAcGFyYW0ge0V2ZW50fSBlIGNsb3NlIGljb24gY2xpY2sgZXZlbnRcblx0XHQgKi9cblx0XHRjbG9zZVNpZGViYXIoZSkge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBUaGUgdXNlciBjbGlja2VkIHRvIGNsb3NlZCB0aGUgc2lkZWJhclxuXHRcdFx0ICogQHR5cGUge0V2ZW50fVxuXHRcdFx0ICovXG5cdFx0XHR0aGlzLiRlbWl0KCdjbG9zZScsIGUpXG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEVtaXQgZmlndXJlIGNsaWNrIGV2ZW50IHRvIHBhcmVudCBjb21wb25lbnRcblx0XHQgKiBAcGFyYW0ge0V2ZW50fSBlIGNsaWNrIGV2ZW50XG5cdFx0ICovXG5cdFx0b25GaWd1cmVDbGljayhlKSB7XG5cdFx0XHQvKipcblx0XHRcdCAqIFRoZSBmaWd1cmUvYmFja2dyb3VuZCBoZWFkZXIgaGFzIGJlZW4gY2xpY2tlZFxuXHRcdFx0ICogQHR5cGUge0V2ZW50fVxuXHRcdFx0ICovXG5cdFx0XHR0aGlzLiRlbWl0KCdmaWd1cmUtY2xpY2snLCBlKVxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBUb2dnbGUgdGhlIGZhdm91cml0ZSBzdGF0ZVxuXHRcdCAqIGFuZCBlbWl0IHRvIHRoZSBwYXJlbnQgY29tcG9uZW50XG5cdFx0ICovXG5cdFx0dG9nZ2xlU3RhcnJlZCgpIHtcblx0XHRcdHRoaXMuaXNTdGFycmVkID0gIXRoaXMuaXNTdGFycmVkXG5cdFx0XHQvKipcblx0XHRcdCAqIEVtaXR0ZWQgd2hlbiB0aGUgc3RhcnJlZCB2YWx1ZSBjaGFuZ2VzXG5cdFx0XHQgKiBAdHlwZSB7Ym9vbGVhbn1cblx0XHRcdCAqL1xuXHRcdFx0dGhpcy4kZW1pdCgndXBkYXRlOnN0YXJyZWQnLCB0aGlzLmlzU3RhcnJlZClcblx0XHR9LFxuXG5cdFx0ZWRpdFRpdGxlKCkge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBFbWl0dGVkIHdoZW4gdGhlIHRpdGxlRWRpdGFibGUgdmFsdWUgY2hhbmdlc1xuXHRcdFx0ICogQHR5cGUge2Jvb2xlYW59XG5cdFx0XHQgKi9cblx0XHRcdHRoaXMuJGVtaXQoJ3VwZGF0ZTp0aXRsZUVkaXRhYmxlJywgdHJ1ZSlcblx0XHRcdC8vIEZvY3VzIHRoZSB0aXRsZSBpbnB1dFxuXHRcdFx0aWYgKHRoaXMudGl0bGVFZGl0YWJsZSkge1xuXHRcdFx0XHR0aGlzLiRuZXh0VGljayhcblx0XHRcdFx0XHQoKSA9PiB0aGlzLiRyZWZzLnRpdGxlSW5wdXQuZm9jdXMoKVxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEVtaXQgdGl0bGUgY2hhbmdlIGV2ZW50IHRvIHBhcmVudCBjb21wb25lbnRcblx0XHQgKiBAcGFyYW0ge0V2ZW50fSBldmVudCBpbnB1dCBldmVudFxuXHRcdCAqL1xuXHRcdG9uVGl0bGVJbnB1dChldmVudCkge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBFbWl0dGVkIHdoZW4gdGhlIHRpdGxlIHZhbHVlIGNoYW5nZXNcblx0XHRcdCAqIEB0eXBlIHtzdHJpbmd8RGF0ZX1cblx0XHRcdCAqL1xuXHRcdFx0dGhpcy4kZW1pdCgndXBkYXRlOnRpdGxlJywgZXZlbnQudGFyZ2V0LnZhbHVlKVxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBFbWl0IHdoZW4gdGhlIHRpdGxlIGZvcm0gZWRpdCBjb25maXJtIGJ1dHRvbiBpcyBwcmVzc2VkIGluIG9yZGVyXG5cdFx0ICogdG8gY2hhbmdlIHRoZSB0aXRsZS5cblx0XHQgKiBAcGFyYW0ge0V2ZW50fSBldmVudCBzdWJtaXQgZXZlbnRcblx0XHQgKi9cblx0XHRvblN1Ym1pdFRpdGxlKGV2ZW50KSB7XG5cdFx0XHQvLyBEaXNhYmxlIGVkaXRpbmdcblx0XHRcdHRoaXMuJGVtaXQoJ3VwZGF0ZTp0aXRsZUVkaXRhYmxlJywgZmFsc2UpXG5cdFx0XHQvKipcblx0XHRcdCAqIEVtaXR0ZWQgd2hlbiB0aGUgdGl0bGUgZWRpdCBpbnB1dCBoYXMgYmVlbiBzdWJtaXR0ZWRcblx0XHRcdCAqIEB0eXBlIHtFdmVudH1cblx0XHRcdCAqL1xuXHRcdFx0dGhpcy4kZW1pdCgnc3VibWl0LXRpdGxlJywgZXZlbnQpXG5cdFx0fSxcblx0XHRvbkRpc21pc3NFZGl0aW5nKCkge1xuXHRcdFx0Ly8gRGlzYWJsZSBlZGl0aW5nXG5cdFx0XHR0aGlzLiRlbWl0KCd1cGRhdGU6dGl0bGVFZGl0YWJsZScsIGZhbHNlKVxuXHRcdFx0LyoqXG5cdFx0XHQgKiBFbWl0dGVkIHdoZW4gdGhlIHRpdGxlIGVkaXQgaGFzIGJlZW4gY2FuY2VsbGVkXG5cdFx0XHQgKiBAdHlwZSB7RXZlbnR9XG5cdFx0XHQgKi9cblx0XHRcdHRoaXMuJGVtaXQoJ2Rpc21pc3MtZWRpdGluZycpXG5cdFx0fSxcblx0XHRvblVwZGF0ZUFjdGl2ZShhY3RpdmVUYWIpIHtcblx0XHRcdC8qKlxuXHRcdFx0ICogVGhlIGFjdGl2ZSB0YWIgY2hhbmdlZFxuXHRcdFx0ICogQHR5cGUge3N0cmluZ31cblx0XHRcdCAqL1xuXHRcdFx0dGhpcy4kZW1pdCgndXBkYXRlOmFjdGl2ZScsIGFjdGl2ZVRhYilcblx0XHR9LFxuXHR9LFxufVxuPC9zY3JpcHQ+XG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XG4kc2lkZWJhci1taW4td2lkdGg6IDMwMHB4O1xuJHNpZGViYXItbWF4LXdpZHRoOiA1MDBweDtcblxuJGRlc2MtdmVydGljYWwtcGFkZGluZzogMThweDtcbiRkZXNjLWlucHV0LXBhZGRpbmc6IDdweDtcblxuLy8gdGl0bGUgYW5kIHN1YnRpdGxlXG4kZGVzYy10aXRsZS1oZWlnaHQ6IDMwcHg7XG4kZGVzYy1zdWJ0aXRsZS1oZWlnaHQ6IDIycHg7XG4kZGVzYy1oZWlnaHQ6ICRkZXNjLXRpdGxlLWhlaWdodCArICRkZXNjLXN1YnRpdGxlLWhlaWdodDtcblxuJHRvcC1idXR0b25zLXNwYWNpbmc6IDZweDtcblxuLypcblx0U2lkZWJhcjogdG8gYmUgdXNlZCB3aXRoaW4gI2NvbnRlbnRcblx0YXBwLWNvbnRlbnQgd2lsbCBiZSBzaHJpbmtlZCBwcm9wZXJseVxuKi9cbi5hcHAtc2lkZWJhciB7XG5cdHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsgLy8gU2FmYXJpIHN1cHBvcnRcblx0cG9zaXRpb246IHN0aWNreTtcblx0ei1pbmRleDogMTUwMDtcblx0dG9wOiB2YXIoLS1oZWFkZXItaGVpZ2h0KTtcblx0cmlnaHQ6IDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0b3ZlcmZsb3cteTogYXV0bztcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0ZmxleC1zaHJpbms6IDA7XG5cdHdpZHRoOiAyN3Z3O1xuXHRtaW4td2lkdGg6ICRzaWRlYmFyLW1pbi13aWR0aDtcblx0bWF4LXdpZHRoOiAkc2lkZWJhci1tYXgtd2lkdGg7XG5cdGhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLWhlYWRlci1oZWlnaHQpKTtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1tYWluLWJhY2tncm91bmQpO1xuXHQuYXBwLXNpZGViYXItaGVhZGVyIHtcblx0XHQ+IC5hcHAtc2lkZWJhcl9fY2xvc2Uge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0ei1pbmRleDogMTAwO1xuXHRcdFx0dG9wOiAkdG9wLWJ1dHRvbnMtc3BhY2luZztcblx0XHRcdHJpZ2h0OiAkdG9wLWJ1dHRvbnMtc3BhY2luZztcblx0XHRcdHdpZHRoOiAkY2xpY2thYmxlLWFyZWE7XG5cdFx0XHRoZWlnaHQ6ICRjbGlja2FibGUtYXJlYTtcblx0XHRcdG9wYWNpdHk6ICRvcGFjaXR5X25vcm1hbDtcblx0XHRcdGJvcmRlci1yYWRpdXM6ICRjbGlja2FibGUtYXJlYSAvIDI7XG5cdFx0XHQmOmhvdmVyLFxuXHRcdFx0JjphY3RpdmUsXG5cdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0b3BhY2l0eTogJG9wYWNpdHlfZnVsbDtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1iYWNrZ3JvdW5kLWhvdmVyO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENvbXBhY3QgbW9kZSBvbmx5IGFmZmVjdHMgYSBzaWRlYmFyIHdpdGggYSBmaWd1cmVcblx0XHQmLS1jb21wYWN0LmFwcC1zaWRlYmFyLWhlYWRlci0td2l0aC1maWd1cmUge1xuXHRcdFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9faW5mbyB7XG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cblx0XHRcdFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9fZmlndXJlIHtcblx0XHRcdFx0XHR6LWluZGV4OiAyO1xuXHRcdFx0XHRcdHdpZHRoOiAkZGVzYy1oZWlnaHQgKyAkZGVzYy12ZXJ0aWNhbC1wYWRkaW5nO1xuXHRcdFx0XHRcdGhlaWdodDogJGRlc2MtaGVpZ2h0ICsgJGRlc2MtdmVydGljYWwtcGFkZGluZztcblx0XHRcdFx0XHRtYXJnaW46ICRkZXNjLXZlcnRpY2FsLXBhZGRpbmcgLyAyO1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdFx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHRcdFx0fVxuXHRcdFx0XHQuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjIHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHRcdFx0ZmxleDogMSAxIGF1dG87XG5cdFx0XHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDIgKiAkY2xpY2thYmxlLWFyZWEgKyAkdG9wLWJ1dHRvbnMtc3BhY2luZztcblxuXHRcdFx0XHRcdCYuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjLS13aXRob3V0LWFjdGlvbnMge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogI3skY2xpY2thYmxlLWFyZWEgKyAkdG9wLWJ1dHRvbnMtc3BhY2luZ307XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9fdGVydGlhcnktYWN0aW9ucyB7XG5cdFx0XHRcdFx0XHR6LWluZGV4OiAzOyAvLyBhYm92ZSBzdGFyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHR0b3A6ICRkZXNjLXZlcnRpY2FsLXBhZGRpbmcgLyAyO1xuXHRcdFx0XHRcdFx0bGVmdDogLTEgKiAkY2xpY2thYmxlLWFyZWE7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC5hcHAtc2lkZWJhci1oZWFkZXJfX21lbnUge1xuXHRcdFx0XHRcdFx0dG9wOiAkdG9wLWJ1dHRvbnMtc3BhY2luZztcblx0XHRcdFx0XHRcdHJpZ2h0OiAkY2xpY2thYmxlLWFyZWEgKyAkdG9wLWJ1dHRvbnMtc3BhY2luZzsgLy8gbGVmdCBvZiB0aGUgY2xvc2UgYnV0dG9uXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBzaWRlYmFyIHdpdGhvdXQgZmlndXJlXG5cdFx0Jjpub3QoLmFwcC1zaWRlYmFyLWhlYWRlci0td2l0aC1maWd1cmUpIHtcblx0XHRcdC8vIGFsaWduIHRoZSBtZW51IHdpdGggdGhlIGNsb3NlIGJ1dHRvblxuXHRcdFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9fbWVudSB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAkdG9wLWJ1dHRvbnMtc3BhY2luZztcblx0XHRcdFx0cmlnaHQ6ICR0b3AtYnV0dG9ucy1zcGFjaW5nICsgJGNsaWNrYWJsZS1hcmVhO1xuXHRcdFx0fVxuXHRcdFx0Ly8gaW5jcmVhc2UgdGhlIHBhZGRpbmcgdG8gbm90IG92ZXJsYXAgdGhlIG1lbnVcblx0XHRcdC5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2Mge1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAjeyRjbGlja2FibGUtYXJlYSAqIDIgKyAkdG9wLWJ1dHRvbnMtc3BhY2luZ307XG5cblx0XHRcdFx0Ji5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2MtLXdpdGhvdXQtYWN0aW9ucyB7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogI3skY2xpY2thYmxlLWFyZWEgKyAkdG9wLWJ1dHRvbnMtc3BhY2luZ307XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyB0aGUgY29udGFpbmVyIHdpdGggdGhlIGZpZ3VyZSBhbmQgdGhlIGRlc2NyaXB0aW9uXG5cdFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9faW5mbyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHR9XG5cblx0XHQvLyBoZWFkZXIgYmFja2dyb3VuZFxuXHRcdCZfX2ZpZ3VyZSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMjUwcHg7XG5cdFx0XHRtYXgtaGVpZ2h0OiAyNTBweDtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdFx0XHQmLS13aXRoLWFjdGlvbiB7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBkZXNjcmlwdGlvblxuXHRcdCZfX2Rlc2Mge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdHBhZGRpbmc6ICN7JGRlc2MtdmVydGljYWwtcGFkZGluZ30gI3skdG9wLWJ1dHRvbnMtc3BhY2luZ30gI3skZGVzYy12ZXJ0aWNhbC1wYWRkaW5nfSAjeyRkZXNjLXZlcnRpY2FsLXBhZGRpbmcgLyAyfTtcblxuXHRcdFx0Ly8gY3VzdG9tIG92ZXJyaWRlc1xuXHRcdFx0Ji0td2l0aC10ZXJ0aWFyeS1hY3Rpb24ge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHR9XG5cblx0XHRcdCYtLWVkaXRhYmxlIC5hcHAtc2lkZWJhci1oZWFkZXJfX21haW50aXRsZS1mb3JtLFxuXHRcdFx0Ji0td2l0aC1zdWJ0aXRsZS0tZWRpdGFibGUgLmFwcC1zaWRlYmFyLWhlYWRlcl9fbWFpbnRpdGxlLWZvcm0ge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAtMnB4O1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAtMnB4O1xuXHRcdFx0fVxuXG5cdFx0XHQmLS13aXRoLXN1YnRpdGxlLS1lZGl0YWJsZSAuYXBwLXNpZGViYXItaGVhZGVyX19zdWJ0aXRsZSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IC0ycHg7XG5cdFx0XHR9XG5cblx0XHRcdC5hcHAtc2lkZWJhci1oZWFkZXJfX3RlcnRpYXJ5LWFjdGlvbnMge1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRoZWlnaHQ6ICRjbGlja2FibGUtYXJlYTtcblx0XHRcdFx0d2lkdGg6ICRjbGlja2FibGUtYXJlYTtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyB0aXRsZXNcblx0XHRcdC5hcHAtc2lkZWJhci1oZWFkZXJfX3RpdGxlLWNvbnRhaW5lciB7XG5cdFx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0bWluLXdpZHRoOiAwO1xuXG5cdFx0XHRcdC8vIG1haW4gdGl0bGVcblx0XHRcdFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9fbWFpbnRpdGxlIHtcblx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRcdG1pbi1oZWlnaHQ6IDMwcHg7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAkZGVzYy10aXRsZS1oZWlnaHQ7XG5cblx0XHRcdFx0XHQvLyBOZWVkcyAnZGVlcCcgYXMgdGhlIGxpbmsgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBsaW5raWZ5IGRpcmVjdGl2ZVxuXHRcdFx0XHRcdCY6OnYtZGVlcCAubGlua2lmaWVkIHtcblx0XHRcdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5hcHAtc2lkZWJhci1oZWFkZXJfX21haW50aXRsZSxcblx0XHRcdFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9fc3VidGl0bGUge1xuXHRcdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBzdWJ0aXRsZVxuXHRcdFx0XHQuYXBwLXNpZGViYXItaGVhZGVyX19zdWJ0aXRsZSB7XG5cdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0XHRvcGFjaXR5OiAkb3BhY2l0eV9ub3JtYWw7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiB2YXIoLS1kZWZhdWx0LWZvbnQtc2l6ZSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGUtZm9ybSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogLTcuNXB4O1xuXHRcdFx0XHRcdCYgLmljb24tY29uZmlybSB7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aW5wdXQuYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGUtaW5wdXQge1xuXHRcdFx0XHRcdFx0ZmxleDogMSAxIGF1dG87XG5cdFx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAkZGVzYy1pbnB1dC1wYWRkaW5nO1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIGZhdm91cml0ZVxuXHRcdFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9fc3RhciB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR3aWR0aDogJGNsaWNrYWJsZS1hcmVhO1xuXHRcdFx0XHRoZWlnaHQ6ICRjbGlja2FibGUtYXJlYTtcblx0XHRcdFx0cGFkZGluZzogJGljb24tbWFyZ2luO1xuXHRcdFx0fVxuXHRcdFx0Ly8gbWFpbiBtZW51XG5cdFx0XHQuYXBwLXNpZGViYXItaGVhZGVyX19tZW51IHtcblx0XHRcdFx0aGVpZ2h0OiAkY2xpY2thYmxlLWFyZWE7XG5cdFx0XHRcdHdpZHRoOiAkY2xpY2thYmxlLWFyZWE7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6ICRjbGlja2FibGUtYXJlYSAvIDI7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24tYmFja2dyb3VuZC1ob3Zlcjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBzaWRlYmFyIGRlc2NyaXB0aW9uIHNsb3Rcblx0XHQmX19kZXNjcmlwdGlvbiB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdG1hcmdpbjogMCAxMHB4O1xuXHRcdH1cblx0fVxufVxuXG4uc2xpZGUtcmlnaHQtbGVhdmUtYWN0aXZlLFxuLnNsaWRlLXJpZ2h0LWVudGVyLWFjdGl2ZSB7XG5cdHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLWFuaW1hdGlvbi1xdWljayk7XG5cdHRyYW5zaXRpb24tcHJvcGVydHk6IG1heC13aWR0aCwgbWluLXdpZHRoO1xufVxuXG4uc2xpZGUtcmlnaHQtZW50ZXItdG8sXG4uc2xpZGUtcmlnaHQtbGVhdmUge1xuXHRtaW4td2lkdGg6ICRzaWRlYmFyLW1pbi13aWR0aDtcblx0bWF4LXdpZHRoOiAkc2lkZWJhci1tYXgtd2lkdGg7XG59XG5cbi5zbGlkZS1yaWdodC1lbnRlcixcbi5zbGlkZS1yaWdodC1sZWF2ZS10byB7XG5cdG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuXHRtYXgtd2lkdGg6IDAgIWltcG9ydGFudDtcbn1cbjwvc3R5bGU+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxuLy8gISBzbG90cyBzcGVjaWZpYyBkZXNpZ25zLCBjYW5ub3QgYmUgc2NvcGVkXG4vLyBpZiBhbnkgYnV0dG9uIGluc2lkZSB0aGUgZGVzY3JpcHRpb24gc2xvdCwgaW5jcmVhc2UgdmlzdWFsIHBhZGRpbmdcbi5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2NyaXB0aW9uIHtcblx0YnV0dG9uLCAuYnV0dG9uLFxuXHRpbnB1dFt0eXBlPSdidXR0b24nXSxcblx0aW5wdXRbdHlwZT0nc3VibWl0J10sXG5cdGlucHV0W3R5cGU9J3Jlc2V0J10ge1xuXHRcdHBhZGRpbmc6IDZweCAyMnB4O1xuXHR9XG59XG5cbjwvc3R5bGU+XG4iLCI8IS0tXG4gIC0gQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTkgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxuICAtIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDIwIFNpbW9uIEJlbGJlb2NoIDxzaW1vbi5iZWxiZW9jaEBnbWFpbC5jb20+XG4gIC1cbiAgLSBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cbiAgLVxuICAtIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxuICAtXG4gIC0gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAgLSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICAtIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxuICAtIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gIC1cbiAgLSBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAgLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICAtIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICAtIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICAtXG4gIC0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gIC0gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAgLVxuICAtLT5cblxuPCEtLSBGb2xsb3dzIHRoZSB0YWIgYXJpYSBndWlkZWxpbmVzXG5cdGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMvZXhhbXBsZXMvdGFicy90YWJzLTEvdGFicy5odG1sIC0tPlxuPHRlbXBsYXRlPlxuXHQ8ZGl2IGNsYXNzPVwiYXBwLXNpZGViYXItdGFic1wiPlxuXHRcdDwhLS0gdGFicyBuYXZpZ2F0aW9uIC0tPlxuXHRcdDwhLS0gMzMgYW5kIDM0IGNvZGUgaXMgZm9yIHBhZ2UgdXAgYW5kIHBhZ2UgZG93biAtLT5cblx0XHQ8bmF2IHYtaWY9XCJoYXNNdWx0aXBsZVRhYnNcIlxuXHRcdFx0Y2xhc3M9XCJhcHAtc2lkZWJhci10YWJzX19uYXZcIlxuXHRcdFx0QGtleWRvd24ubGVmdC5leGFjdC5wcmV2ZW50PVwiZm9jdXNQcmV2aW91c1RhYlwiXG5cdFx0XHRAa2V5ZG93bi5yaWdodC5leGFjdC5wcmV2ZW50PVwiZm9jdXNOZXh0VGFiXCJcblx0XHRcdEBrZXlkb3duLnRhYi5leGFjdC5wcmV2ZW50PVwiZm9jdXNBY3RpdmVUYWJDb250ZW50XCJcblx0XHRcdEBrZXlkb3duLjMzLmV4YWN0LnByZXZlbnQ9XCJmb2N1c0ZpcnN0VGFiXCJcblx0XHRcdEBrZXlkb3duLjM0LmV4YWN0LnByZXZlbnQ9XCJmb2N1c0xhc3RUYWJcIj5cblx0XHRcdDx1bD5cblx0XHRcdFx0PGxpIHYtZm9yPVwidGFiIGluIHRhYnNcIiA6a2V5PVwidGFiLmlkXCIgY2xhc3M9XCJhcHAtc2lkZWJhci10YWJzX190YWJcIj5cblx0XHRcdFx0XHQ8YSA6aWQ9XCJ0YWIuaWRcIlxuXHRcdFx0XHRcdFx0OmFyaWEtY29udHJvbHM9XCJgdGFiLSR7dGFiLmlkfWBcIlxuXHRcdFx0XHRcdFx0OmFyaWEtc2VsZWN0ZWQ9XCJhY3RpdmVUYWIgPT09IHRhYi5pZFwiXG5cdFx0XHRcdFx0XHQ6Y2xhc3M9XCJ7IGFjdGl2ZTogYWN0aXZlVGFiID09PSB0YWIuaWQgfVwiXG5cdFx0XHRcdFx0XHQ6ZGF0YS1pZD1cInRhYi5pZFwiXG5cdFx0XHRcdFx0XHQ6aHJlZj1cImAjdGFiLSR7dGFiLmlkfWBcIlxuXHRcdFx0XHRcdFx0OnRhYmluZGV4PVwiYWN0aXZlVGFiID09PSB0YWIuaWQgPyBudWxsIDogLTFcIlxuXHRcdFx0XHRcdFx0cm9sZT1cInRhYlwiXG5cdFx0XHRcdFx0XHRAY2xpY2sucHJldmVudD1cInNldEFjdGl2ZSh0YWIuaWQpXCI+XG5cdFx0XHRcdFx0XHQ8c3BhbiA6Y2xhc3M9XCJ0YWIuaWNvblwiIGNsYXNzPVwiYXBwLXNpZGViYXItdGFic19fdGFiLWljb25cIiAvPlxuXHRcdFx0XHRcdFx0e3sgdGFiLm5hbWUgfX1cblx0XHRcdFx0XHQ8L2E+XG5cdFx0XHRcdDwvbGk+XG5cdFx0XHQ8L3VsPlxuXHRcdDwvbmF2PlxuXG5cdFx0PCEtLSB0YWJzIGNvbnRlbnQgLS0+XG5cdFx0PGRpdiA6Y2xhc3M9XCJ7J2FwcC1zaWRlYmFyLXRhYnNfX2NvbnRlbnQtLW11bHRpcGxlJzogaGFzTXVsdGlwbGVUYWJzfVwiXG5cdFx0XHRjbGFzcz1cImFwcC1zaWRlYmFyLXRhYnNfX2NvbnRlbnRcIj5cblx0XHRcdDxzbG90IC8+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCBWdWUgZnJvbSAndnVlJ1xuXG5jb25zdCBJc1ZhbGlkU3RyaW5nID0gZnVuY3Rpb24odmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpICE9PSAnJ1xufVxuXG5jb25zdCBJc1ZhbGlkU3RyaW5nV2l0aG91dFNwYWNlcyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG5cdHJldHVybiBJc1ZhbGlkU3RyaW5nKHZhbHVlKSAmJiB2YWx1ZS5pbmRleE9mKCcgJykgPT09IC0xXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0bmFtZTogJ0FwcFNpZGViYXJUYWJzJyxcblx0cHJvcHM6IHtcblx0XHQvKipcblx0XHQgKiBJZCBvZiB0aGUgdGFiIHRvIGFjdGl2YXRlXG5cdFx0ICovXG5cdFx0YWN0aXZlOiB7XG5cdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRkZWZhdWx0OiAnJyxcblx0XHR9LFxuXHR9LFxuXG5cdGRhdGEoKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdC8qKlxuXHRcdFx0ICogVGhlIHRhYiBjb21wb25lbnQgaW5zdGFuY2VzIHRvIGJ1aWxkIHRoZSB0YWIgbmF2YmFyIGZyb20uXG5cdFx0XHQgKi9cblx0XHRcdHRhYnM6IFtdLFxuXHRcdFx0LyoqXG5cdFx0XHQgKiBUaGUgaWQgb2YgdGhlIGN1cnJlbnRseSBhY3RpdmUgdGFiLlxuXHRcdFx0ICovXG5cdFx0XHRhY3RpdmVUYWI6ICcnLFxuXHRcdFx0LyoqXG5cdFx0XHQgKiBEdW1teSBhcnJheSB0byByZWFjdCBvbiBzbG90IGNoYW5nZXMuXG5cdFx0XHQgKi9cblx0XHRcdGNoaWxkcmVuOiBbXSxcblx0XHR9XG5cdH0sXG5cblx0Y29tcHV0ZWQ6IHtcblx0XHRoYXNNdWx0aXBsZVRhYnMoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy50YWJzLmxlbmd0aCA+IDFcblx0XHR9LFxuXHRcdGN1cnJlbnRUYWJJbmRleCgpIHtcblx0XHRcdHJldHVybiB0aGlzLnRhYnMuZmluZEluZGV4KHRhYiA9PiB0YWIuaWQgPT09IHRoaXMuYWN0aXZlVGFiKVxuXHRcdH0sXG5cdH0sXG5cblx0d2F0Y2g6IHtcblx0XHRhY3RpdmUoYWN0aXZlKSB7XG5cdFx0XHQvLyBQcmV2ZW50IHJ1bm5pbmcgaXQgdHdpY2Vcblx0XHRcdGlmIChhY3RpdmUgIT09IHRoaXMuYWN0aXZlVGFiKSB7XG5cdFx0XHRcdHRoaXMudXBkYXRlQWN0aXZlKClcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0Y2hpbGRyZW4oKSB7XG5cdFx0XHR0aGlzLnVwZGF0ZVRhYnMoKVxuXHRcdH0sXG5cdH0sXG5cblx0bW91bnRlZCgpIHtcblx0XHQvLyBJbml0IHRoZSB0YWJzIGxpc3Rcblx0XHR0aGlzLnVwZGF0ZVRhYnMoKVxuXG5cdFx0Ly8gTGV0J3MgbWFrZSB0aGUgY2hpbGRyZW4gbGlzdCByZWFjdGl2ZVxuXHRcdHRoaXMuY2hpbGRyZW4gPSB0aGlzLiRjaGlsZHJlblxuXHR9LFxuXG5cdG1ldGhvZHM6IHtcblxuXHRcdC8qKlxuXHRcdCAqIFNldCB0aGUgY3VycmVudCBhY3RpdmUgdGFiXG5cdFx0ICogQHBhcmFtIHtzdHJpbmd9IGlkIHRoZSBpZCBvZiB0aGUgdGFiXG5cdFx0ICovXG5cdFx0c2V0QWN0aXZlKGlkKSB7XG5cdFx0XHR0aGlzLmFjdGl2ZVRhYiA9IGlkXG5cdFx0XHR0aGlzLiRlbWl0KCd1cGRhdGU6YWN0aXZlJywgdGhpcy5hY3RpdmVUYWIpXG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEZvY3VzIHRoZSBwcmV2aW91cyB0YWJcblx0XHQgKiBhbmQgZW1pdCB0byB0aGUgcGFyZW50IGNvbXBvbmVudFxuXHRcdCAqL1xuXHRcdGZvY3VzUHJldmlvdXNUYWIoKSB7XG5cdFx0XHRpZiAodGhpcy5jdXJyZW50VGFiSW5kZXggPiAwKSB7XG5cdFx0XHRcdHRoaXMuc2V0QWN0aXZlKHRoaXMudGFic1t0aGlzLmN1cnJlbnRUYWJJbmRleCAtIDFdLmlkKVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5mb2N1c0FjdGl2ZVRhYigpIC8vIGZvY3VzIG5hdiBpdGVtXG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEZvY3VzIHRoZSBuZXh0IHRhYlxuXHRcdCAqIGFuZCBlbWl0IHRvIHRoZSBwYXJlbnQgY29tcG9uZW50XG5cdFx0ICovXG5cdFx0Zm9jdXNOZXh0VGFiKCkge1xuXHRcdFx0aWYgKHRoaXMuY3VycmVudFRhYkluZGV4IDwgdGhpcy50YWJzLmxlbmd0aCAtIDEpIHtcblx0XHRcdFx0dGhpcy5zZXRBY3RpdmUodGhpcy50YWJzW3RoaXMuY3VycmVudFRhYkluZGV4ICsgMV0uaWQpXG5cdFx0XHR9XG5cdFx0XHR0aGlzLmZvY3VzQWN0aXZlVGFiKCkgLy8gZm9jdXMgbmF2IGl0ZW1cblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogRm9jdXMgdGhlIGZpcnN0IHRhYlxuXHRcdCAqIGFuZCBlbWl0IHRvIHRoZSBwYXJlbnQgY29tcG9uZW50XG5cdFx0ICovXG5cdFx0Zm9jdXNGaXJzdFRhYigpIHtcblx0XHRcdHRoaXMuc2V0QWN0aXZlKHRoaXMudGFic1swXS5pZClcblx0XHRcdHRoaXMuZm9jdXNBY3RpdmVUYWIoKSAvLyBmb2N1cyBuYXYgaXRlbVxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBGb2N1cyB0aGUgbGFzdCB0YWJcblx0XHQgKiBhbmQgZW1pdCB0byB0aGUgcGFyZW50IGNvbXBvbmVudFxuXHRcdCAqL1xuXHRcdGZvY3VzTGFzdFRhYigpIHtcblx0XHRcdHRoaXMuc2V0QWN0aXZlKHRoaXMudGFic1t0aGlzLnRhYnMubGVuZ3RoIC0gMV0uaWQpXG5cdFx0XHR0aGlzLmZvY3VzQWN0aXZlVGFiKCkgLy8gZm9jdXMgbmF2IGl0ZW1cblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogRm9jdXMgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYlxuXHRcdCAqL1xuXHRcdGZvY3VzQWN0aXZlVGFiKCkge1xuXHRcdFx0dGhpcy4kZWwucXVlcnlTZWxlY3RvcignIycgKyB0aGlzLmFjdGl2ZVRhYikuZm9jdXMoKVxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBGb2N1cyB0aGUgY29udGVudCBvbiB0YWJcblx0XHQgKiBzZWUgYXJpYSBhY2Nlc3NpYmlsaXR5IGd1aWRlbGluZXNcblx0XHQgKi9cblx0XHRmb2N1c0FjdGl2ZVRhYkNvbnRlbnQoKSB7XG5cdFx0XHR0aGlzLiRlbC5xdWVyeVNlbGVjdG9yKCcjdGFiLScgKyB0aGlzLmFjdGl2ZVRhYikuZm9jdXMoKVxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBVcGRhdGUgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYlxuXHRcdCAqL1xuXHRcdHVwZGF0ZUFjdGl2ZSgpIHtcblx0XHRcdHRoaXMuYWN0aXZlVGFiID0gdGhpcy5hY3RpdmVcblx0XHRcdFx0JiYgdGhpcy50YWJzLmZpbmRJbmRleCh0YWIgPT4gdGFiLmlkID09PSB0aGlzLmFjdGl2ZSkgIT09IC0xXG5cdFx0XHRcdD8gdGhpcy5hY3RpdmVcblx0XHRcdFx0OiB0aGlzLnRhYnMubGVuZ3RoID4gMFxuXHRcdFx0XHRcdD8gdGhpcy50YWJzWzBdLmlkXG5cdFx0XHRcdFx0OiAnJ1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBNYW51YWxseSB1cGRhdGUgdGhlIHNpZGViYXIgdGFicyBhY2NvcmRpbmcgdG8gJHNsb3RzLmRlZmF1bHRcblx0XHQgKi9cblx0XHR1cGRhdGVUYWJzKCkge1xuXHRcdFx0aWYgKCF0aGlzLiRzbG90cy5kZWZhdWx0KSB7XG5cdFx0XHRcdHRoaXMudGFicyA9IFtdXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXG5cdFx0XHQvLyBGaW5kIGFsbCB2YWxpZCBjaGlsZHJlbiAoQXBwU2lkZWJhclRhYiwgb3RoZXIgY29tcG9uZW50cywgdGV4dCBub2RlcywgZXRjLilcblx0XHRcdGNvbnN0IGNoaWxkcmVuID0gdGhpcy4kc2xvdHMuZGVmYXVsdC5maWx0ZXIoZWxlbSA9PiBlbGVtLnRhZyB8fCBlbGVtLnRleHQudHJpbSgpKVxuXG5cdFx0XHQvLyBGaW5kIGFsbCB2YWxpZCBpbnN0YW5jZXMgb2YgQXBwU2lkZWJhclRhYlxuXHRcdFx0Y29uc3QgaW52YWxpZFRhYnMgPSBbXVxuXHRcdFx0Y29uc3QgdGFicyA9IGNoaWxkcmVuLnJlZHVjZSgodGFicywgdGFiTm9kZSkgPT4ge1xuXHRcdFx0XHRjb25zdCB0YWIgPSB0YWJOb2RlLmNvbXBvbmVudEluc3RhbmNlXG5cdFx0XHRcdC8vIE1ha2Ugc3VyZSBhbGwgcmVxdWlyZWQgcHJvcHMgYXJlIHByb3ZpZGVkIGFuZCB2YWxpZFxuXHRcdFx0XHRpZiAoSXNWYWxpZFN0cmluZyh0YWI/Lm5hbWUpXG5cdFx0XHRcdFx0JiYgSXNWYWxpZFN0cmluZ1dpdGhvdXRTcGFjZXModGFiPy5pZClcblx0XHRcdFx0XHQmJiBJc1ZhbGlkU3RyaW5nV2l0aG91dFNwYWNlcyh0YWI/Lmljb24pKSB7XG5cdFx0XHRcdFx0dGFicy5wdXNoKHRhYilcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpbnZhbGlkVGFicy5wdXNoKHRhYk5vZGUpXG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRhYnNcblx0XHRcdH0sIFtdKVxuXG5cdFx0XHQvLyBUYWJzIGFyZSBvcHRpb25hbCwgYnV0IHlvdSBjYW4gdXNlIGVpdGhlciB0YWJzIG9yIG5vbi10YWItY29udGVudCBvbmx5XG5cdFx0XHRpZiAodGFicy5sZW5ndGggIT09IDAgJiYgdGFicy5sZW5ndGggIT09IGNoaWxkcmVuLmxlbmd0aCkge1xuXHRcdFx0XHRWdWUudXRpbC53YXJuKCdNaXhpbmcgdGFicyBhbmQgbm9uLXRhYi1jb250ZW50IGlzIG5vdCBwb3NzaWJsZS4nKVxuXHRcdFx0XHRpbnZhbGlkVGFicy5tYXAoaW52YWxpZCA9PiBjb25zb2xlLmRlYnVnKCdJZ25vcmluZyBpbnZhbGlkIHRhYicsIGludmFsaWQpKVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBXZSBzb3J0IHRoZSB0YWJzIGJ5IHRoZWlyIG9yZGVyIG9yIGJ5IHRoZWlyIG5hbWVcblx0XHRcdHRoaXMudGFicyA9IHRhYnMuc29ydCgoYSwgYikgPT4ge1xuXHRcdFx0XHRjb25zdCBvcmRlckEgPSBhLm9yZGVyIHx8IDBcblx0XHRcdFx0Y29uc3Qgb3JkZXJCID0gYi5vcmRlciB8fCAwXG5cdFx0XHRcdGlmIChvcmRlckEgPT09IG9yZGVyQikge1xuXHRcdFx0XHRcdHJldHVybiBPQy5VdGlsLm5hdHVyYWxTb3J0Q29tcGFyZShhLm5hbWUsIGIubmFtZSlcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gb3JkZXJBIC0gb3JkZXJCXG5cdFx0XHR9KVxuXG5cdFx0XHQvLyBJbml0IGFjdGl2ZSB0YWIgaWYgZXhpc3RzXG5cdFx0XHRpZiAodGhpcy50YWJzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0dGhpcy51cGRhdGVBY3RpdmUoKVxuXHRcdFx0fVxuXHRcdH0sXG5cdH0sXG59XG48L3NjcmlwdD5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cbi5hcHAtc2lkZWJhci10YWJzIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0bWluLWhlaWdodDogMDtcblx0ZmxleDogMSAxIDEwMCU7XG5cblx0Jl9fbmF2IHtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdHVsIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG5cdFx0fVxuXHR9XG5cdCZfX3RhYiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxleDogMSAxO1xuXHRcdG1pbi13aWR0aDogMDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0YSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRwYWRkaW5nOiAyNXB4IDVweCA1cHggNXB4O1xuXHRcdFx0dHJhbnNpdGlvbjogY29sb3IgdmFyKC0tYW5pbWF0aW9uLXF1aWNrKSwgb3BhY2l0eSB2YXIoLS1hbmltYXRpb24tcXVpY2spLCBib3JkZXItY29sb3IgdmFyKC0tYW5pbWF0aW9uLXF1aWNrKTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdG9wYWNpdHk6ICRvcGFjaXR5X25vcm1hbDtcblx0XHRcdGNvbG9yOiB2YXIoLS1jb2xvci1tYWluLXRleHQpO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG5cblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3VzLFxuXHRcdFx0JjphY3RpdmUsXG5cdFx0XHQmLmFjdGl2ZSB7XG5cdFx0XHRcdG9wYWNpdHk6ICRvcGFjaXR5X2Z1bGw7XG5cdFx0XHRcdC5hcHAtc2lkZWJhci10YWJzX190YWItaWNvbiB7XG5cdFx0XHRcdFx0b3BhY2l0eTogJG9wYWNpdHlfZnVsbDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Jjpub3QoLmFjdGl2ZSk6aG92ZXIsXG5cdFx0XHQmOm5vdCguYWN0aXZlKTpmb2N1cyB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtZGFya2VyKTtcblx0XHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgdmFyKC0tY29sb3ItYmFja2dyb3VuZC1kYXJrZXIpO1xuXHRcdFx0fVxuXHRcdFx0Ji5hY3RpdmUge1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xuXHRcdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR9XG5cdFx0XHQvLyBkaWZmZXJlbnRpYXRlIHRoZSB0d28gZm9yIGFjY2Vzc2liaWxpdHkgcHVycG9zZVxuXHRcdFx0Ly8gbWFrZSBzdXJlIHRoZSB1c2VyIGtub3dzIHNoZSdzIGZvY3VzaW5nIHRoZSBuYXZpZ2F0aW9uXG5cdFx0XHQvLyBhbmQgY2FuIHVzZSBhcnJvd3MvaG9tZS9wYWdldXAuLi5cblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWVsZW1lbnQpO1xuXHRcdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCB2YXIoLS1jb2xvci1wcmltYXJ5LWVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZfX3RhYi1pY29uIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAyNXB4O1xuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tYW5pbWF0aW9uLXF1aWNrKTtcblx0XHRvcGFjaXR5OiAkb3BhY2l0eV9ub3JtYWw7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIDhweDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDE2cHg7XG5cdH1cblxuXHQmX19jb250ZW50IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0Ly8gdGFrZSBmdWxsIGF2YWlsYWJsZSBoZWlnaHRcblx0XHRtaW4taGVpZ2h0OiAwO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHQvLyBmb3JjZSB0aGUgdXNlIG9mIHRoZSB0YWIgY29tcG9uZW50IGlmIG1vcmUgdGhhbiBvbmUgdGFiXG5cdFx0Ly8geW91IGNhbiBqdXN0IHB1dCByYXcgY29udGVudCBpZiB5b3UgZG9uJ3QgdXNlIHRhYnNcblx0XHQmLS1tdWx0aXBsZSA+IDpub3Qoc2VjdGlvbikge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cbjwvc3R5bGU+XG4iLCI8IS0tXG4gIC0gQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMjAgR3JldGEgRG9jaSA8Z3JldGFkb2NpQGdtYWlsLmNvbT5cbiAgLVxuICAtIEBhdXRob3IgMjAyMCBHcmV0YSBEb2NpIDxncmV0YWRvY2lAZ21haWwuY29tPlxuICAtXG4gIC0gQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXG4gIC1cbiAgLSBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICAtIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gIC0gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlXG4gIC0gTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAgLVxuICAtIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICAtIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gIC0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICAtIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICAtXG4gIC0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gIC0gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAgLVxuICAtLT5cblxuPGRvY3M+XG4jIyMgQmFzaWMgdXNlXG5cblVzZSB0aGlzIGNvbXBvbmVudCB0byBkaXNwbGF5IGEgbWVzc2FnZSBhYm91dCBhbiBlbXB0eSBjb250ZW50LlxuQW4gaWNvbiBhbmQgYSB0aXRsZSBhcmUgbWFuZGF0b3J5LlxuUHJvdmlkaW5nIGFuIGFkZGl0aW9uYWwgZGVzY3JpcHRpb24gaXMgc3Ryb25nbHkgYWR2aXNlZC5cblxuYGBgXG48RW1wdHlDb250ZW50IGljb249XCJpY29uLWNvbW1lbnRcIj5cblx0Tm8gY29tbWVudHNcblx0PHRlbXBsYXRlICNkZXNjPk5vIGNvbW1lbnRzIGluIGhlcmU8L3RlbXBsYXRlPlxuPC9FbXB0eUNvbnRlbnQ+XG5gYGBcbmBgYFxuPHRlbXBsYXRlPlxuXHQ8RW1wdHlDb250ZW50PlxuXHRcdE5ldHdvcmsgZXJyb3Jcblx0XHQ8dGVtcGxhdGUgI2ljb24+PEFpcnBsYW5lIC8+PC90ZW1wbGF0ZT5cblx0XHQ8dGVtcGxhdGUgI2Rlc2M+VW5hYmxlIHRvIGxvYWQgdGhlIGxpc3Q8L3RlbXBsYXRlPlxuXHQ8L0VtcHR5Q29udGVudD5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgQWlycGxhbmUgZnJvbSAndnVlLW1hdGVyaWFsLWRlc2lnbi1pY29ucy9BaXJwbGFuZSdcblxuZXhwb3J0IGRlZmF1bHQge1xuXHRjb21wb25lbnRzOiB7XG5cdFx0QWlycGxhbmVcblx0fVxufVxuPC9zY3JpcHQ+XG5cbmBgYFxuPC9kb2NzPlxuXG48dGVtcGxhdGU+XG5cdDxkaXYgY2xhc3M9XCJlbXB0eS1jb250ZW50XCIgcm9sZT1cIm5vdGVcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiZW1wdHktY29udGVudF9faWNvblwiIDpjbGFzcz1cImljb25cIiByb2xlPVwiaW1nXCI+XG5cdFx0XHQ8IS0tIEBzbG90IE9wdGlvbmFsIGljb24gc2xvdCAtLT5cblx0XHRcdDxzbG90IG5hbWU9XCJpY29uXCIgLz5cblx0XHQ8L2Rpdj5cblx0XHQ8aDIgY2xhc3M9XCJlbXB0eS1jb250ZW50X190aXRsZVwiPlxuXHRcdFx0PCEtLSBAc2xvdCBNYW5kYXRvcnkgdGl0bGUgLS0+XG5cdFx0XHQ8c2xvdCAvPlxuXHRcdDwvaDI+XG5cdFx0PHAgdi1zaG93PVwiJHNsb3RzLmRlc2NcIj5cblx0XHRcdDwhLS0gQHNsb3QgT3B0aW9uYWwgZGVzY3JpcHRpb24gLS0+XG5cdFx0XHQ8c2xvdCBuYW1lPVwiZGVzY1wiIC8+XG5cdFx0PC9wPlxuXHQ8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG5cdG5hbWU6ICdFbXB0eUNvbnRlbnQnLFxuXHRwcm9wczoge1xuXHRcdC8qKlxuXHRcdCAqIFRoZSBtYWluIGljb24gaWxsdXN0cmF0aW9uXG5cdFx0ICovXG5cdFx0aWNvbjoge1xuXHRcdFx0dHlwZTogU3RyaW5nLFxuXHRcdFx0ZGVmYXVsdDogJycsXG5cdFx0fSxcblx0fSxcbn1cbjwvc2NyaXB0PlxuXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XG4uZW1wdHktY29udGVudCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdG1hcmdpbi10b3A6IDIwdmg7XG5cblx0Jl9faWNvbiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdHdpZHRoOiA2NHB4O1xuXHRcdGhlaWdodDogNjRweDtcblx0XHRtYXJnaW46IDAgYXV0byAxNXB4O1xuXHRcdG9wYWNpdHk6IC40O1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogNjRweDtcblxuXHRcdHN2ZyB7XG5cdFx0XHR3aWR0aDogNjRweDtcblx0XHRcdGhlaWdodDogNjRweDtcblx0XHR9XG5cdH1cblxuXHQmX190aXRsZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0fVxufVxuXG48L3N0eWxlPlxuIiwiPCEtLVxuICAtIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDE5IE1hcmNvIEFtYnJvc2luaSA8bWFyY29hbWJyb3NpbmlAcG0ubWU+XG4gIC1cbiAgLSBAYXV0aG9yIE1hcmNvIEFtYnJvc2luaSA8bWFyY29hbWJyb3NpbmlAcG0ubWU+XG4gIC1cbiAgLSBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cbiAgLVxuICAtIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gIC0gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAgLSBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAgLSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICAtXG4gIC0gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gIC0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAgLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAgLSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAgLVxuICAtIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICAtIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4tLT5cblxuPGRvY3M+XG5cbiMjIyBHZW5lcmFsIGRlc2NyaXB0aW9uXG5cblRoaXMgY29tcG9uZW50IGlzIGp1c3QgYSB3cmFwcGVyIGZvciB0aGUgdi1jb21wb25lbnQgcGx1Z2luIGJ5IEFrcnl1bSxcbnBsZWFzZSByZWZlciB0byB0aGlzIGRvY3VtZW50YXRpb24gZm9yIGN1c3RvbWl6YXRpb246XG5odHRwczovL2dpdGh1Yi5jb20vQWtyeXVtL3YtdG9vbHRpcFxuXG5UaGlzIGNvbXBvbmVudHMgaGFzIHR3byBzbG90czpcbiogJ3RyaWdnZXInIHdoaWNoIGNhbiBiZSBhbnkgaHRtbCBlbGVtZW50IGFuZCBpdCB3aWxsIHRyaWdnZXIgdGhlIHBvcG92ZXJcbnRoaXMgc2xvdCBpcyBvcHRpb25hbCBzaW5jZSB5b3UgY2FuIHRvZ2dsZSB0aGUgcG9wb3ZlciBhbHNvIGJ5IHVwZGF0aW5nIHRoZVxub3BlbiBwcm9wIG9uIHRoaXMgY29tcG9uZW50O1xuXG4qIGEgZGVmYXVsdCBzbG90IHRoYXQgaXMgZm9yIHRoZSBjb250ZW50IG9mIHRoZSBwb3BvdmVyLlxuXG4jIyMgRXhhbXBsZXNcblxuV2l0aCBhIGA8YnV0dG9uPmAgYXMgYSB0cmlnZ2VyOlxuYGBgdnVlXG48dGVtcGxhdGU+XG5cdDxQb3BvdmVyPlxuXHRcdDxidXR0b24gc2xvdD1cInRyaWdnZXJcIj4gSSBhbSB0aGUgdHJpZ2dlciA8L2J1dHRvbj5cblx0XHQ8dGVtcGxhdGU+XG5cdFx0PGgyPnRoaXMgaXMgc29tZSBjb250ZW50PC9oMj5cblx0XHQ8L3RlbXBsYXRlPlxuXHQ8L1BvcG92ZXI+XG48L3RlbXBsYXRlPlxuYGBgXG48L2RvY3M+XG5cbjx0ZW1wbGF0ZT5cblx0PFZQb3BvdmVyXG5cdFx0cmVmPVwicG9wb3ZlclwiXG5cdFx0di1iaW5kPVwiJGF0dHJzXCJcblx0XHRwb3BvdmVyLWJhc2UtY2xhc3M9XCJwb3BvdmVyXCJcblx0XHRwb3BvdmVyLXdyYXBwZXItY2xhc3M9XCJwb3BvdmVyX193cmFwcGVyXCJcblx0XHRwb3BvdmVyLWFycm93LWNsYXNzPVwicG9wb3Zlcl9fYXJyb3dcIlxuXHRcdHBvcG92ZXItaW5uZXItY2xhc3M9XCJwb3BvdmVyX19pbm5lclwiXG5cdFx0di1vbj1cIiRsaXN0ZW5lcnNcIj5cblx0XHQ8IS0tIFRoaXMgd2lsbCBiZSB0aGUgcG9wb3ZlciB0YXJnZXQgKGZvciB0aGUgZXZlbnRzIGFuZCBwb3NpdGlvbikgLS0+XG5cdFx0PHNsb3QgbmFtZT1cInRyaWdnZXJcIiAvPlxuXHRcdDwhLS0gVGhpcyB3aWxsIGJlIHRoZSBjb250ZW50IG9mIHRoZSBwb3BvdmVyIC0tPlxuXHRcdDx0ZW1wbGF0ZSBzbG90PVwicG9wb3ZlclwiPlxuXHRcdFx0PHNsb3QgLz5cblx0XHQ8L3RlbXBsYXRlPlxuXHQ8L1ZQb3BvdmVyPlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCB7IFZQb3BvdmVyIH0gZnJvbSAndi10b29sdGlwJ1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdG5hbWU6ICdQb3BvdmVyJyxcblx0Y29tcG9uZW50czoge1xuXHRcdFZQb3BvdmVyLFxuXHR9LFxuXG5cdG1vdW50ZWQoKSB7XG5cdFx0dGhpcy4kd2F0Y2goXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdC8vIHJlcXVpcmVkIGJlY2F1c2Ugdi10b29sdGlwIGRvZXNuJ3QgcHJvdmlkZSBldmVudHNcblx0XHRcdFx0Ly8gYW5kIEBzaG93IGlzIHRvbyBlYXJseVxuXHRcdFx0XHQvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL0Frcnl1bS92LXRvb2x0aXAvaXNzdWVzLzY2MVxuXHRcdFx0XHRyZXR1cm4gdGhpcy4kcmVmcy5wb3BvdmVyLmlzT3BlblxuXHRcdFx0fSxcblx0XHRcdCh2YWwpID0+IHtcblx0XHRcdFx0aWYgKHZhbCkge1xuXHRcdFx0XHRcdC8qKlxuXHRcdFx0XHRcdCAqIFRyaWdnZXJlZCBhZnRlciB0aGUgdG9vbHRpcCB3YXMgdmlzdWFsbHkgZGlzcGxheWVkLlxuXHRcdFx0XHRcdCAqXG5cdFx0XHRcdFx0ICogVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgJ3Nob3cnIGFuZCAnYXBwbHktc2hvdycgd2hpY2hcblx0XHRcdFx0XHQgKiBydW4gZWFybGllciB0aGFuIHRoaXMgd2hlcmUgdGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgdGhlXG5cdFx0XHRcdFx0ICogdG9vbHRpcCBpcyBhbHJlYWR5IHZpc2libGUgYW5kIGluIHRoZSBET00uXG5cdFx0XHRcdFx0ICovXG5cdFx0XHRcdFx0dGhpcy4kZW1pdCgnYWZ0ZXItc2hvdycpXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0LyoqXG5cdFx0XHRcdFx0ICogVHJpZ2dlcmVkIGFmdGVyIHRoZSB0b29sdGlwIHdhcyB2aXN1YWxseSBoaWRkZW4uXG5cdFx0XHRcdFx0ICovXG5cdFx0XHRcdFx0dGhpcy4kZW1pdCgnYWZ0ZXItaGlkZScpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHQpXG5cdH0sXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIGxhbmc9XCJzY3NzXCI+XG4kYXJyb3ctd2lkdGg6IDEwcHg7XG5cbi5wb3BvdmVyIHtcblx0ei1pbmRleDogMTAwMDAwO1xuXHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG5cdGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMTBweCB2YXIoLS1jb2xvci1ib3gtc2hhZG93KSk7XG5cblx0Jl9faW5uZXIge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Y29sb3I6IHZhcigtLWNvbG9yLW1haW4tdGV4dCk7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY29sb3ItbWFpbi1iYWNrZ3JvdW5kKTtcblx0fVxuXG5cdCZfX2Fycm93IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogMTtcblx0XHR3aWR0aDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0bWFyZ2luOiAkYXJyb3ctd2lkdGg7XG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLW1haW4tYmFja2dyb3VuZCk7XG5cdH1cblxuXHQmW3gtcGxhY2VtZW50Xj0ndG9wJ10ge1xuXHRcdG1hcmdpbi1ib3R0b206ICRhcnJvdy13aWR0aDtcblxuXHRcdC5wb3BvdmVyX19hcnJvdyB7XG5cdFx0XHRib3R0b206IC0kYXJyb3ctd2lkdGg7XG5cdFx0XHRsZWZ0OiBjYWxjKDUwJSAtICRhcnJvdy13aWR0aCk7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdGJvcmRlci13aWR0aDogJGFycm93LXdpZHRoICRhcnJvdy13aWR0aCAwICRhcnJvdy13aWR0aDtcblx0XHRcdGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHQmW3gtcGxhY2VtZW50Xj0nYm90dG9tJ10ge1xuXHRcdG1hcmdpbi10b3A6ICRhcnJvdy13aWR0aDtcblxuXHRcdC5wb3BvdmVyX19hcnJvdyB7XG5cdFx0XHR0b3A6IC0kYXJyb3ctd2lkdGg7XG5cdFx0XHRsZWZ0OiBjYWxjKDUwJSAtICRhcnJvdy13aWR0aCk7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdGJvcmRlci13aWR0aDogMCAkYXJyb3ctd2lkdGggJGFycm93LXdpZHRoICRhcnJvdy13aWR0aDtcblx0XHRcdGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHQmW3gtcGxhY2VtZW50Xj0ncmlnaHQnXSB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRhcnJvdy13aWR0aDtcblxuXHRcdC5wb3BvdmVyX19hcnJvdyB7XG5cdFx0XHR0b3A6IGNhbGMoNTAlIC0gJGFycm93LXdpZHRoKTtcblx0XHRcdGxlZnQ6IC0kYXJyb3ctd2lkdGg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdGJvcmRlci13aWR0aDogJGFycm93LXdpZHRoICRhcnJvdy13aWR0aCAkYXJyb3ctd2lkdGggMDtcblx0XHRcdGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRcdFx0Ym9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0Jlt4LXBsYWNlbWVudF49J2xlZnQnXSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAkYXJyb3ctd2lkdGg7XG5cblx0XHQucG9wb3Zlcl9fYXJyb3cge1xuXHRcdFx0dG9wOiBjYWxjKDUwJSAtICRhcnJvdy13aWR0aCk7XG5cdFx0XHRyaWdodDogLSRhcnJvdy13aWR0aDtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiAkYXJyb3ctd2lkdGggMCAkYXJyb3ctd2lkdGggJGFycm93LXdpZHRoO1xuXHRcdFx0Ym9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0XHRcdGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0JlthcmlhLWhpZGRlbj0ndHJ1ZSddIHtcblx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1hbmltYXRpb24tcXVpY2spLCB2aXNpYmlsaXR5IHZhcigtLWFuaW1hdGlvbi1xdWljayk7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdCZbYXJpYS1oaWRkZW49J2ZhbHNlJ10ge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1hbmltYXRpb24tcXVpY2spO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuPC9zdHlsZT5cbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGNoYXJzZXQgXFxcIlVURi04XFxcIjtcXG4vKipcXG4gKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOSBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cXG4gKlxcbiAqIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXFxuICpcXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cXG4gKlxcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXFxuICpcXG4gKi9cXG4vKipcXG4qIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDE2LCBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxNiwgUm9iaW4gQXBwZWxtYW4gPHJvYmluQGljZXdpbmQubmw+XFxuKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxNiwgSmFuLUNocmlzdG9waCBCb3JjaGFyZHQgPGhleUBqYW5jYm9yY2hhcmR0Lm5ldD5cXG4qIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDE2LCBFcmlrIFBlbGxpa2thIDxlcmlrQHBlbGxpa2thLm9yZz5cXG4qIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDE1LCBWaW5jZW50IFBldHJ5IDxwdmluY2U4MUBvd25jbG91ZC5jb20+XFxuKlxcbiogQm9vdHN0cmFwIHYzLjMuNSAoaHR0cDovL2dldGJvb3RzdHJhcC5jb20pXFxuKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy5cXG4qIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXFxuKi9cXG4udnVlLXRvb2x0aXBbZGF0YS12LTg0YzQ2MWZdIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHotaW5kZXg6IDEwMDAwMDtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgbGVmdDogYXV0bztcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbWFyZ2luOiAwO1xcbiAgLyogZGVmYXVsdCB0byB0b3AgKi9cXG4gIG1hcmdpbi10b3A6IC0zcHg7XFxuICBwYWRkaW5nOiAxMHB4IDA7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XFxuICBvcGFjaXR5OiAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuNjtcXG4gIGxpbmUtYnJlYWs6IGF1dG87XFxuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDEwcHggdmFyKC0tY29sb3ItYm94LXNoYWRvdykpOyB9XFxuICAudnVlLXRvb2x0aXBbZGF0YS12LTg0YzQ2MWZdW3gtcGxhY2VtZW50Xj0ndG9wJ10gLnRvb2x0aXAtYXJyb3cge1xcbiAgICBib3R0b206IDA7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgIGJvcmRlci13aWR0aDogMTBweCAxMHB4IDAgMTBweDtcXG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbiAgLnZ1ZS10b29sdGlwW2RhdGEtdi04NGM0NjFmXVt4LXBsYWNlbWVudF49J2JvdHRvbSddIC50b29sdGlwLWFycm93IHtcXG4gICAgdG9wOiAwO1xcbiAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICBib3JkZXItd2lkdGg6IDAgMTBweCAxMHB4IDEwcHg7XFxuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4gIC52dWUtdG9vbHRpcFtkYXRhLXYtODRjNDYxZl1beC1wbGFjZW1lbnRePSdyaWdodCddIC50b29sdGlwLWFycm93IHtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICAgIG1hcmdpbi1yaWdodDogMDtcXG4gICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgIGJvcmRlci13aWR0aDogMTBweCAxMHB4IDEwcHggMDtcXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4gIC52dWUtdG9vbHRpcFtkYXRhLXYtODRjNDYxZl1beC1wbGFjZW1lbnRePSdsZWZ0J10gLnRvb2x0aXAtYXJyb3cge1xcbiAgICBsZWZ0OiAxMDAlO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XFxuICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICBib3JkZXItd2lkdGg6IDEwcHggMCAxMHB4IDEwcHg7XFxuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbiAgLnZ1ZS10b29sdGlwW2RhdGEtdi04NGM0NjFmXVthcmlhLWhpZGRlbj0ndHJ1ZSddIHtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMsIHZpc2liaWxpdHkgLjE1cztcXG4gICAgb3BhY2l0eTogMDsgfVxcbiAgLnZ1ZS10b29sdGlwW2RhdGEtdi04NGM0NjFmXVthcmlhLWhpZGRlbj0nZmFsc2UnXSB7XFxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjE1cztcXG4gICAgb3BhY2l0eTogMTsgfVxcbiAgLnZ1ZS10b29sdGlwW2RhdGEtdi04NGM0NjFmXSAudG9vbHRpcC1pbm5lciB7XFxuICAgIG1heC13aWR0aDogMzUwcHg7XFxuICAgIHBhZGRpbmc6IDVweCA4cHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLW1haW4tdGV4dCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1tYWluLWJhY2tncm91bmQpOyB9XFxuICAudnVlLXRvb2x0aXBbZGF0YS12LTg0YzQ2MWZdIC50b29sdGlwLWFycm93IHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB6LWluZGV4OiAxO1xcbiAgICB3aWR0aDogMDtcXG4gICAgaGVpZ2h0OiAwO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbWFpbi1iYWNrZ3JvdW5kKTsgfVxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2luZGV4LnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2Fzc2V0cy92YXJpYWJsZXMuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQSxnQkFBZ0I7QUNBaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VEcUJFO0FBcEJGOzs7Ozs7Ozs7O0NBK0JDO0FBakJEO0VBQ0Msa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZixXQUFXO0VBQ1gsVUFBVTtFQUNWLGNBQWM7RUFDZCxTQUFTO0VBQ1QsbUJBQUE7RUFDQSxnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsVUFBVTtFQUNWLGdCQUFnQjtFQUVoQixnQkFBZ0I7RUFDaEIsdURBQXVELEVBQUE7RUFoQnhEO0lBcUJHLFNBQVM7SUFDVCxhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLDhCQTFCZTtJQTJCZiwrQkFBK0I7SUFDL0IsZ0NBQWdDO0lBQ2hDLDhCQUE4QixFQUFBO0VBM0JqQztJQWtDRyxNQUFNO0lBQ04sYUFBYTtJQUNiLGdCQUFnQjtJQUNoQiw4QkF2Q2U7SUF3Q2YsNkJBQTZCO0lBQzdCLCtCQUErQjtJQUMvQiw4QkFBOEIsRUFBQTtFQXhDakM7SUErQ0csV0FBVztJQUNYLGVBQWU7SUFDZixjQUFjO0lBQ2QsOEJBQXNEO0lBQ3RELDZCQUE2QjtJQUM3QixnQ0FBZ0M7SUFDaEMsOEJBQThCLEVBQUE7RUFyRGpDO0lBNERHLFVBQVU7SUFDVixlQUFlO0lBQ2YsY0FBYztJQUNkLDhCQWpFZTtJQWtFZiw2QkFBNkI7SUFDN0IsK0JBQStCO0lBQy9CLGdDQUFnQyxFQUFBO0VBbEVuQztJQXdFRSxrQkFBa0I7SUFDbEIseUNBQXlDO0lBQ3pDLFVBQVUsRUFBQTtFQTFFWjtJQTZFRSxtQkFBbUI7SUFDbkIsd0JBQXdCO0lBQ3hCLFVBQVUsRUFBQTtFQS9FWjtJQW9GRSxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQiw2QkFBNkI7SUFDN0IsbUNBQW1DO0lBQ25DLDhDQUE4QyxFQUFBO0VBekZoRDtJQThGRSxrQkFBa0I7SUFDbEIsVUFBVTtJQUNWLFFBQVE7SUFDUixTQUFTO0lBQ1QsU0FBUztJQUNULG1CQUFtQjtJQUNuQiwwQ0FBMEMsRUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIkc2NvcGVfdmVyc2lvbjpcXFwiODRjNDYxZlxcXCI7IEBpbXBvcnQgJ3ZhcmlhYmxlcyc7XFxuLyoqXFxuKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxNiwgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxcbiogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTYsIFJvYmluIEFwcGVsbWFuIDxyb2JpbkBpY2V3aW5kLm5sPlxcbiogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTYsIEphbi1DaHJpc3RvcGggQm9yY2hhcmR0IDxoZXlAamFuY2JvcmNoYXJkdC5uZXQ+XFxuKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxNiwgRXJpayBQZWxsaWtrYSA8ZXJpa0BwZWxsaWtrYS5vcmc+XFxuKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxNSwgVmluY2VudCBQZXRyeSA8cHZpbmNlODFAb3duY2xvdWQuY29tPlxcbipcXG4qIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKVxcbiogQ29weXJpZ2h0IDIwMTEtMjAxNSBUd2l0dGVyLCBJbmMuXFxuKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxcbiovXFxuXFxuJGFycm93LXdpZHRoOiAxMHB4O1xcblxcbi52dWUtdG9vbHRpcFtkYXRhLXYtI3skc2NvcGVfdmVyc2lvbn1dIHtcXG5cXHRwb3NpdGlvbjogYWJzb2x1dGU7XFxuXFx0ei1pbmRleDogMTAwMDAwO1xcblxcdHJpZ2h0OiBhdXRvO1xcblxcdGxlZnQ6IGF1dG87XFxuXFx0ZGlzcGxheTogYmxvY2s7XFxuXFx0bWFyZ2luOiAwO1xcblxcdC8qIGRlZmF1bHQgdG8gdG9wICovXFxuXFx0bWFyZ2luLXRvcDogLTNweDtcXG5cXHRwYWRkaW5nOiAxMHB4IDA7XFxuXFx0dGV4dC1hbGlnbjogbGVmdDtcXG5cXHR0ZXh0LWFsaWduOiBzdGFydDtcXG5cXHRvcGFjaXR5OiAwO1xcblxcdGxpbmUtaGVpZ2h0OiAxLjY7XFxuXFxuXFx0bGluZS1icmVhazogYXV0bztcXG5cXHRmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDEwcHggdmFyKC0tY29sb3ItYm94LXNoYWRvdykpO1xcblxcblxcdC8vIFRPUFxcblxcdCZbeC1wbGFjZW1lbnRePSd0b3AnXSB7XFxuXFx0XFx0LnRvb2x0aXAtYXJyb3cge1xcblxcdFxcdFxcdGJvdHRvbTogMDtcXG5cXHRcXHRcXHRtYXJnaW4tdG9wOiAwO1xcblxcdFxcdFxcdG1hcmdpbi1ib3R0b206IDA7XFxuXFx0XFx0XFx0Ym9yZGVyLXdpZHRoOiAkYXJyb3ctd2lkdGggJGFycm93LXdpZHRoIDAgJGFycm93LXdpZHRoO1xcblxcdFxcdFxcdGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuXFx0XFx0XFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuXFx0XFx0XFx0Ym9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xcblxcdFxcdH1cXG5cXHR9XFxuXFxuXFx0Ly8gQk9UVE9NXFxuXFx0Jlt4LXBsYWNlbWVudF49J2JvdHRvbSddIHtcXG5cXHRcXHQudG9vbHRpcC1hcnJvdyB7XFxuXFx0XFx0XFx0dG9wOiAwO1xcblxcdFxcdFxcdG1hcmdpbi10b3A6IDA7XFxuXFx0XFx0XFx0bWFyZ2luLWJvdHRvbTogMDtcXG5cXHRcXHRcXHRib3JkZXItd2lkdGg6IDAgJGFycm93LXdpZHRoICRhcnJvdy13aWR0aCAkYXJyb3ctd2lkdGg7XFxuXFx0XFx0XFx0Ym9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuXFx0XFx0XFx0Ym9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG5cXHRcXHRcXHRib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuXFx0XFx0fVxcblxcdH1cXG5cXG5cXHQvLyBSSUdIVFxcblxcdCZbeC1wbGFjZW1lbnRePSdyaWdodCddIHtcXG5cXHRcXHQudG9vbHRpcC1hcnJvdyB7XFxuXFx0XFx0XFx0cmlnaHQ6IDEwMCU7XFxuXFx0XFx0XFx0bWFyZ2luLXJpZ2h0OiAwO1xcblxcdFxcdFxcdG1hcmdpbi1sZWZ0OiAwO1xcblxcdFxcdFxcdGJvcmRlci13aWR0aDogJGFycm93LXdpZHRoICRhcnJvdy13aWR0aCAkYXJyb3ctd2lkdGggMDtcXG5cXHRcXHRcXHRib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcXG5cXHRcXHRcXHRib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcXG5cXHRcXHRcXHRib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuXFx0XFx0fVxcblxcdH1cXG5cXG5cXHQvLyBMRUZUXFxuXFx0Jlt4LXBsYWNlbWVudF49J2xlZnQnXSB7XFxuXFx0XFx0LnRvb2x0aXAtYXJyb3cge1xcblxcdFxcdFxcdGxlZnQ6IDEwMCU7XFxuXFx0XFx0XFx0bWFyZ2luLXJpZ2h0OiAwO1xcblxcdFxcdFxcdG1hcmdpbi1sZWZ0OiAwO1xcblxcdFxcdFxcdGJvcmRlci13aWR0aDogJGFycm93LXdpZHRoIDAgJGFycm93LXdpZHRoICRhcnJvdy13aWR0aDtcXG5cXHRcXHRcXHRib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcXG5cXHRcXHRcXHRib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcblxcdFxcdFxcdGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xcblxcdFxcdH1cXG5cXHR9XFxuXFxuXFx0Ly8gSElEREVOIC8gU0hPV05cXG5cXHQmW2FyaWEtaGlkZGVuPSd0cnVlJ10ge1xcblxcdFxcdHZpc2liaWxpdHk6IGhpZGRlbjtcXG5cXHRcXHR0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMsIHZpc2liaWxpdHkgLjE1cztcXG5cXHRcXHRvcGFjaXR5OiAwO1xcblxcdH1cXG5cXHQmW2FyaWEtaGlkZGVuPSdmYWxzZSddIHtcXG5cXHRcXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xcblxcdFxcdHRyYW5zaXRpb246IG9wYWNpdHkgLjE1cztcXG5cXHRcXHRvcGFjaXR5OiAxO1xcblxcdH1cXG5cXG5cXHQvLyBDT05URU5UXFxuXFx0LnRvb2x0aXAtaW5uZXIge1xcblxcdFxcdG1heC13aWR0aDogMzUwcHg7XFxuXFx0XFx0cGFkZGluZzogNXB4IDhweDtcXG5cXHRcXHR0ZXh0LWFsaWduOiBjZW50ZXI7XFxuXFx0XFx0Y29sb3I6IHZhcigtLWNvbG9yLW1haW4tdGV4dCk7XFxuXFx0XFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XFxuXFx0XFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItbWFpbi1iYWNrZ3JvdW5kKTtcXG5cXHR9XFxuXFxuXFx0Ly8gQVJST1dcXG5cXHQudG9vbHRpcC1hcnJvdyB7XFxuXFx0XFx0cG9zaXRpb246IGFic29sdXRlO1xcblxcdFxcdHotaW5kZXg6IDE7XFxuXFx0XFx0d2lkdGg6IDA7XFxuXFx0XFx0aGVpZ2h0OiAwO1xcblxcdFxcdG1hcmdpbjogMDtcXG5cXHRcXHRib3JkZXItc3R5bGU6IHNvbGlkO1xcblxcdFxcdGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbWFpbi1iYWNrZ3JvdW5kKTtcXG5cXHR9XFxufVxcblwiLFwiLyoqXFxuICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTkgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxcbiAqXFxuICogQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cXG4gKlxcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XFxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcXG4gKiBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXFxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXFxuICpcXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxcbiAqXFxuICovXFxuXFxuLy8gaHR0cHM6Ly91eHBsYW5ldC5vcmcvNy1ydWxlcy1mb3ItbW9iaWxlLXVpLWJ1dHRvbi1kZXNpZ24tZTljZjJlYTU0NTU2XFxuLy8gcmVjb21tZW5kZWQgaXMgNDhweFxcbi8vIDQ0cHggaXMgd2hhdCB3ZSBjaG9vc2UgYW5kIGhhdmUgdmVyeSBnb29kIHZpc3VhbC10by11c2FiaWxpdHkgcmF0aW9cXG4kY2xpY2thYmxlLWFyZWE6IDQ0cHg7XFxuXFxuLy8gYmFja2dyb3VuZCBpY29uIHNpemVcXG4vLyBhbHNvIHVzZWQgZm9yIHRoZSBzY3NzIGljb24gZm9udFxcbiRpY29uLXNpemU6IDE2cHg7XFxuXFxuLy8gaWNvbiBwYWRkaW5nIGZvciBhICRjbGlja2FibGUtYXJlYSB3aWR0aCBhbmQgYSAkaWNvbi1zaXplIGljb25cXG4vLyAoIDQ0cHggLSAxNnB4ICkgLyAyXFxuJGljb24tbWFyZ2luOiAoJGNsaWNrYWJsZS1hcmVhIC0gJGljb24tc2l6ZSkgLyAyO1xcblxcbi8vIHRyYW5zcGFyZW5jeSBiYWNrZ3JvdW5kIGZvciBpY29uc1xcbiRpY29uLWZvY3VzLWJnOiByZ2JhKDEyNywgMTI3LCAxMjcsIC4yNSk7XFxuXFxuLy8gcG9wb3Zlcm1lbnUgYXJyb3cgd2lkdGggZnJvbSB0aGUgdHJpYW5nbGUgY2VudGVyXFxuJGFycm93LXdpZHRoOiA5cHg7XFxuXFxuLy8gb3BhY2l0aWVzXFxuJG9wYWNpdHlfZGlzYWJsZWQ6IC41O1xcbiRvcGFjaXR5X25vcm1hbDogLjc7XFxuJG9wYWNpdHlfZnVsbDogMTtcXG5cXG4vLyBtZW51IHJvdW5kIGJhY2tncm91bmQgaG92ZXIgZmVlZGJhY2tcXG4vLyBnb29kIGxvb2tpbmcgb24gZGFyayBBTkQgd2hpdGUgYmdcXG4kYWN0aW9uLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoMTI3LCAxMjcsIDEyNywgLjI1KTtcXG5cXG4vLyB2YXJpb3VzIHN0cnVjdHVyZSBkYXRhIHVzZWQgaW4gdGhlIFxcbi8vIGBBcHBOYXZpZ2F0aW9uYCBjb21wb25lbnRcXG4kaGVhZGVyLWhlaWdodDogNTBweDtcXG4kbmF2aWdhdGlvbi13aWR0aDogMzAwcHg7XFxuXFxuLy8gbW9iaWxlIGJyZWFrcG9pbnRcXG4kYnJlYWtwb2ludC1tb2JpbGU6IDEwMjRweDtcXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fIGZyb20gXCIuLi8uLi9mb250cy9pY29uZm9udC12dWUtODRjNDYxZi5lb3RcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyBmcm9tIFwiLi4vLi4vZm9udHMvaWNvbmZvbnQtdnVlLTg0YzQ2MWYud29mZlwiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8yX19fIGZyb20gXCIuLi8uLi9mb250cy9pY29uZm9udC12dWUtODRjNDYxZi50dGZcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfM19fXyBmcm9tIFwiLi4vLi4vZm9udHMvaWNvbmZvbnQtdnVlLTg0YzQ2MWYuc3ZnXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzFfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8xX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8yX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMl9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfM19fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzNfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGNoYXJzZXQgXFxcIlVURi04XFxcIjtcXG4vKipcXG4gKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOSBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cXG4gKlxcbiAqIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXFxuICpcXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cXG4gKlxcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXFxuICpcXG4gKi9cXG5AZm9udC1mYWNlIHtcXG4gIGZvbnQtZmFtaWx5OiBcXFwiaWNvbmZvbnQtdnVlLTg0YzQ2MWZcXFwiO1xcbiAgc3JjOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fICsgXCIpO1xcbiAgLyogSUU5IENvbXBhdCBNb2RlcyAqL1xcbiAgc3JjOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fICsgXCIpIGZvcm1hdChcXFwiZW1iZWRkZWQtb3BlbnR5cGVcXFwiKSwgdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMV9fXyArIFwiKSBmb3JtYXQoXFxcIndvZmZcXFwiKSwgdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMl9fXyArIFwiKSBmb3JtYXQoXFxcInRydWV0eXBlXFxcIiksIHVybChcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzNfX18gKyBcIikgZm9ybWF0KFxcXCJzdmdcXFwiKTtcXG4gIC8qIExlZ2FjeSBpT1MgKi9cXG59XFxuLmljb25bZGF0YS12LTRmNDU4NjRiXSB7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4uaWNvbi5hcnJvdy1sZWZ0LWRvdWJsZVtkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiaWNvbmZvbnQtdnVlLTg0YzQ2MWZcXFwiO1xcbiAgICBjb250ZW50OiBcXFwi7qiBXFxcIjtcXG59XFxuLmljb24uYXJyb3ctbGVmdFtkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiaWNvbmZvbnQtdnVlLTg0YzQ2MWZcXFwiO1xcbiAgICBjb250ZW50OiBcXFwi7qiCXFxcIjtcXG59XFxuLmljb24uYXJyb3ctcmlnaHQtZG91YmxlW2RhdGEtdi00ZjQ1ODY0Yl06YmVmb3JlIHtcXG4gICAgZm9udC1mYW1pbHk6IFxcXCJpY29uZm9udC12dWUtODRjNDYxZlxcXCI7XFxuICAgIGNvbnRlbnQ6IFxcXCLuqINcXFwiO1xcbn1cXG4uaWNvbi5hcnJvdy1yaWdodFtkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiaWNvbmZvbnQtdnVlLTg0YzQ2MWZcXFwiO1xcbiAgICBjb250ZW50OiBcXFwi7qiEXFxcIjtcXG59XFxuLmljb24uYnJlYWRjcnVtYltkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiaWNvbmZvbnQtdnVlLTg0YzQ2MWZcXFwiO1xcbiAgICBjb250ZW50OiBcXFwi7qiFXFxcIjtcXG59XFxuLmljb24uY2hlY2ttYXJrW2RhdGEtdi00ZjQ1ODY0Yl06YmVmb3JlIHtcXG4gICAgZm9udC1mYW1pbHk6IFxcXCJpY29uZm9udC12dWUtODRjNDYxZlxcXCI7XFxuICAgIGNvbnRlbnQ6IFxcXCLuqIZcXFwiO1xcbn1cXG4uaWNvbi5jbG9zZVtkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiaWNvbmZvbnQtdnVlLTg0YzQ2MWZcXFwiO1xcbiAgICBjb250ZW50OiBcXFwi7qiHXFxcIjtcXG59XFxuLmljb24uY29uZmlybVtkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiaWNvbmZvbnQtdnVlLTg0YzQ2MWZcXFwiO1xcbiAgICBjb250ZW50OiBcXFwi7qiIXFxcIjtcXG59XFxuLmljb24uaW5mb1tkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiaWNvbmZvbnQtdnVlLTg0YzQ2MWZcXFwiO1xcbiAgICBjb250ZW50OiBcXFwi7qiJXFxcIjtcXG59XFxuLmljb24ubWVudVtkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiaWNvbmZvbnQtdnVlLTg0YzQ2MWZcXFwiO1xcbiAgICBjb250ZW50OiBcXFwi7qiKXFxcIjtcXG59XFxuLmljb24ubW9yZVtkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiaWNvbmZvbnQtdnVlLTg0YzQ2MWZcXFwiO1xcbiAgICBjb250ZW50OiBcXFwi7qiLXFxcIjtcXG59XFxuLmljb24ucGF1c2VbZGF0YS12LTRmNDU4NjRiXTpiZWZvcmUge1xcbiAgICBmb250LWZhbWlseTogXFxcImljb25mb250LXZ1ZS04NGM0NjFmXFxcIjtcXG4gICAgY29udGVudDogXFxcIu6ojFxcXCI7XFxufVxcbi5pY29uLnBsYXlbZGF0YS12LTRmNDU4NjRiXTpiZWZvcmUge1xcbiAgICBmb250LWZhbWlseTogXFxcImljb25mb250LXZ1ZS04NGM0NjFmXFxcIjtcXG4gICAgY29udGVudDogXFxcIu6ojVxcXCI7XFxufVxcbi5pY29uLnRyaWFuZ2xlLXNbZGF0YS12LTRmNDU4NjRiXTpiZWZvcmUge1xcbiAgICBmb250LWZhbWlseTogXFxcImljb25mb250LXZ1ZS04NGM0NjFmXFxcIjtcXG4gICAgY29udGVudDogXFxcIu6ojlxcXCI7XFxufVxcbi5pY29uLnVzZXItc3RhdHVzLWF3YXlbZGF0YS12LTRmNDU4NjRiXTpiZWZvcmUge1xcbiAgICBmb250LWZhbWlseTogXFxcImljb25mb250LXZ1ZS04NGM0NjFmXFxcIjtcXG4gICAgY29udGVudDogXFxcIu6oj1xcXCI7XFxufVxcbi5pY29uLnVzZXItc3RhdHVzLWRuZFtkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiaWNvbmZvbnQtdnVlLTg0YzQ2MWZcXFwiO1xcbiAgICBjb250ZW50OiBcXFwi7qiQXFxcIjtcXG59XFxuLmljb24udXNlci1zdGF0dXMtaW52aXNpYmxlW2RhdGEtdi00ZjQ1ODY0Yl06YmVmb3JlIHtcXG4gICAgZm9udC1mYW1pbHk6IFxcXCJpY29uZm9udC12dWUtODRjNDYxZlxcXCI7XFxuICAgIGNvbnRlbnQ6IFxcXCLuqJFcXFwiO1xcbn1cXG4uaWNvbi51c2VyLXN0YXR1cy1vbmxpbmVbZGF0YS12LTRmNDU4NjRiXTpiZWZvcmUge1xcbiAgICBmb250LWZhbWlseTogXFxcImljb25mb250LXZ1ZS04NGM0NjFmXFxcIjtcXG4gICAgY29udGVudDogXFxcIu6oklxcXCI7XFxufVxcbi5hY3Rpb24taXRlbVtkYXRhLXYtNGY0NTg2NGJdIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuLmFjdGlvbi1pdGVtLS1zaW5nbGVbZGF0YS12LTRmNDU4NjRiXTpob3ZlciwgLmFjdGlvbi1pdGVtLS1zaW5nbGVbZGF0YS12LTRmNDU4NjRiXTpmb2N1cywgLmFjdGlvbi1pdGVtLS1zaW5nbGVbZGF0YS12LTRmNDU4NjRiXTphY3RpdmUsIC5hY3Rpb24taXRlbV9fbWVudXRvZ2dsZVtkYXRhLXYtNGY0NTg2NGJdOmhvdmVyLCAuYWN0aW9uLWl0ZW1fX21lbnV0b2dnbGVbZGF0YS12LTRmNDU4NjRiXTpmb2N1cywgLmFjdGlvbi1pdGVtX19tZW51dG9nZ2xlW2RhdGEtdi00ZjQ1ODY0Yl06YWN0aXZlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjcsIDEyNywgMTI3LCAwLjI1KTtcXG59XFxuLmFjdGlvbi1pdGVtX19tZW51dG9nZ2xlW2RhdGEtdi00ZjQ1ODY0Yl06ZGlzYWJsZWQsIC5hY3Rpb24taXRlbS0tc2luZ2xlW2RhdGEtdi00ZjQ1ODY0Yl06ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAuMyAhaW1wb3J0YW50O1xcbn1cXG4uYWN0aW9uLWl0ZW0uYWN0aW9uLWl0ZW0tLW9wZW4gLmFjdGlvbi1pdGVtX19tZW51dG9nZ2xlW2RhdGEtdi00ZjQ1ODY0Yl0ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMjUpO1xcbn1cXG4uYWN0aW9uLWl0ZW0tLXNpbmdsZVtkYXRhLXYtNGY0NTg2NGJdLCAuYWN0aW9uLWl0ZW1fX21lbnV0b2dnbGVbZGF0YS12LTRmNDU4NjRiXSB7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDQ0cHg7XFxuICAgIGhlaWdodDogNDRweDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAxNHB4O1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYm9yZGVyLXJhZGl1czogMjJweDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5hY3Rpb24taXRlbV9fbWVudXRvZ2dsZVtkYXRhLXYtNGY0NTg2NGJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIG9wYWNpdHk6IDAuNztcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xcbn1cXG4uYWN0aW9uLWl0ZW1fX21lbnV0b2dnbGVbZGF0YS12LTRmNDU4NjRiXSBzcGFuIHtcXG4gICAgICB3aWR0aDogMTZweDtcXG4gICAgICBoZWlnaHQ6IDE2cHg7XFxuICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XFxufVxcbi5hY3Rpb24taXRlbV9fbWVudXRvZ2dsZVtkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgICAgY29udGVudDogJyc7XFxufVxcbi5hY3Rpb24taXRlbV9fbWVudXRvZ2dsZS0tZGVmYXVsdC1pY29uW2RhdGEtdi00ZjQ1ODY0Yl06YmVmb3JlIHtcXG4gICAgICBmb250LWZhbWlseTogXFxcImljb25mb250LXZ1ZS04NGM0NjFmXFxcIjtcXG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgICBjb250ZW50OiBcXFwi7qiLXFxcIjtcXG59XFxuLmFjdGlvbi1pdGVtX19tZW51dG9nZ2xlLS1kZWZhdWx0LWljb25bZGF0YS12LTRmNDU4NjRiXTo6YmVmb3JlIHtcXG4gICAgICBmb250LXNpemU6IDE2cHg7XFxufVxcbi5hY3Rpb24taXRlbV9fbWVudXRvZ2dsZS0td2l0aC10aXRsZVtkYXRhLXYtNGY0NTg2NGJdIHtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgcGFkZGluZy1sZWZ0OiA0NHB4O1xcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAgICAgb3BhY2l0eTogMTtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItZGFyayk7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1kYXJrKTtcXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxNHB4IGNlbnRlcjtcXG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XFxufVxcbi5hY3Rpb24taXRlbV9fbWVudXRvZ2dsZS0td2l0aC10aXRsZVtkYXRhLXYtNGY0NTg2NGJdOmJlZm9yZSB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IDE0cHg7XFxuICAgICAgICBsZWZ0OiAxNHB4O1xcbn1cXG4uYWN0aW9uLWl0ZW1fX21lbnV0b2dnbGUtLXByaW1hcnlbZGF0YS12LTRmNDU4NjRiXSB7XFxuICAgICAgb3BhY2l0eTogMTtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS10ZXh0KTtcXG4gICAgICBib3JkZXI6IG5vbmU7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1lbGVtZW50KTtcXG59XFxuLmFjdGlvbi1pdGVtLS1vcGVuIC5hY3Rpb24taXRlbV9fbWVudXRvZ2dsZS0tcHJpbWFyeVtkYXRhLXYtNGY0NTg2NGJdLCAuYWN0aW9uLWl0ZW1fX21lbnV0b2dnbGUtLXByaW1hcnlbZGF0YS12LTRmNDU4NjRiXTpob3ZlciwgLmFjdGlvbi1pdGVtX19tZW51dG9nZ2xlLS1wcmltYXJ5W2RhdGEtdi00ZjQ1ODY0Yl06Zm9jdXMsIC5hY3Rpb24taXRlbV9fbWVudXRvZ2dsZS0tcHJpbWFyeVtkYXRhLXYtNGY0NTg2NGJdOmFjdGl2ZSB7XFxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS10ZXh0KSAhaW1wb3J0YW50O1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1lbGVtZW50LWxpZ2h0KSAhaW1wb3J0YW50O1xcbn1cXG4uYWN0aW9uLWl0ZW0tLXNpbmdsZVtkYXRhLXYtNGY0NTg2NGJdIHtcXG4gICAgb3BhY2l0eTogMC43O1xcbn1cXG4uYWN0aW9uLWl0ZW0tLXNpbmdsZVtkYXRhLXYtNGY0NTg2NGJdOmhvdmVyLCAuYWN0aW9uLWl0ZW0tLXNpbmdsZVtkYXRhLXYtNGY0NTg2NGJdOmZvY3VzLCAuYWN0aW9uLWl0ZW0tLXNpbmdsZVtkYXRhLXYtNGY0NTg2NGJdOmFjdGl2ZSB7XFxuICAgICAgb3BhY2l0eTogMTtcXG59XFxuLmFjdGlvbi1pdGVtLS1zaW5nbGUgPiBbaGlkZGVuXVtkYXRhLXYtNGY0NTg2NGJdIHtcXG4gICAgICBkaXNwbGF5OiBub25lO1xcbn1cXG4uaWUgLmFjdGlvbi1pdGVtX19tZW51W2RhdGEtdi00ZjQ1ODY0Yl0sXFxuLmllIC5hY3Rpb24taXRlbV9fbWVudSAuYWN0aW9uLWl0ZW1fX21lbnVfYXJyb3dbZGF0YS12LTRmNDU4NjRiXSxcXG4uZWRnZSAuYWN0aW9uLWl0ZW1fX21lbnVbZGF0YS12LTRmNDU4NjRiXSxcXG4uZWRnZSAuYWN0aW9uLWl0ZW1fX21lbnUgLmFjdGlvbi1pdGVtX19tZW51X2Fycm93W2RhdGEtdi00ZjQ1ODY0Yl0ge1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vQWN0aW9ucy52dWVcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2Fzc2V0cy92YXJpYWJsZXMuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vZm9udHMvc2Nzcy9pY29uZm9udC12dWUuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQSxnQkFBZ0I7QUNBaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VEcUJFO0FFc0VBO0VBQ0MsbUNBQW1DO0VBQ25DLDRDQUF1QztFQUFFLHFCQUFBO0VBQ3pDLG1QQUdtRDtFQUFFLGVBQUE7QUFBZ0I7QUFNdEU7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0FBQUE7QUFGbEI7SUFNTSxtQ0FBbUM7SUFDbkMsWUE1R2U7QUFBTztBQXFHNUI7SUFNTSxtQ0FBbUM7SUFDbkMsWUEzR1E7QUFBTztBQW9HckI7SUFNTSxtQ0FBbUM7SUFDbkMsWUExR2dCO0FBQU87QUFtRzdCO0lBTU0sbUNBQW1DO0lBQ25DLFlBekdTO0FBQU87QUFrR3RCO0lBTU0sbUNBQW1DO0lBQ25DLFlBeEdRO0FBQU87QUFpR3JCO0lBTU0sbUNBQW1DO0lBQ25DLFlBdkdPO0FBQU87QUFnR3BCO0lBTU0sbUNBQW1DO0lBQ25DLFlBdEdHO0FBQU87QUErRmhCO0lBTU0sbUNBQW1DO0lBQ25DLFlBckdLO0FBQU87QUE4RmxCO0lBTU0sbUNBQW1DO0lBQ25DLFlBcEdFO0FBQU87QUE2RmY7SUFNTSxtQ0FBbUM7SUFDbkMsWUFuR0U7QUFBTztBQTRGZjtJQU1NLG1DQUFtQztJQUNuQyxZQWxHRTtBQUFPO0FBMkZmO0lBTU0sbUNBQW1DO0lBQ25DLFlBakdHO0FBQU87QUEwRmhCO0lBTU0sbUNBQW1DO0lBQ25DLFlBaEdFO0FBQU87QUF5RmY7SUFNTSxtQ0FBbUM7SUFDbkMsWUEvRlE7QUFBTztBQXdGckI7SUFNTSxtQ0FBbUM7SUFDbkMsWUE5RmM7QUFBTztBQXVGM0I7SUFNTSxtQ0FBbUM7SUFDbkMsWUE3RmE7QUFBTztBQXNGMUI7SUFNTSxtQ0FBbUM7SUFDbkMsWUE1Rm1CO0FBQU87QUFxRmhDO0lBTU0sbUNBQW1DO0lBQ25DLFlBM0ZnQjtBQUFPO0FGNm5CL0I7RUFDQyxrQkFBa0I7RUFDbEIscUJBQXFCO0FBQUE7QUFJckI7SUFNQyxVQ2huQmM7SURrbkJkLDJDQzFuQnNDO0FBQUE7QUQ4bkJ2QztJQUVDLHNCQUFzQjtBQUFBO0FBcEJ4QjtJQXdCRSxVQzVuQmM7SUQ2bkJkLDJDQ3puQmdEO0FBQUE7QUQ2bkJqRDtJQUVDLHNCQUFzQjtJQUN0QixXQUFXO0lBQ1gsZUN4cEJtQjtJRHlwQm5CLFlDenBCbUI7SUQwcEJuQixTQUFTO0lBQ1QsYUNucEI4QztJRG9wQjlDLGVBQWU7SUFDZixZQUFZO0lBQ1osbUJBQWtDO0lBQ2xDLDZCQUE2QjtBQUFBO0FBSTlCO0lBRUMsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsWUN0cEJpQjtJRHVwQmpCLGlCQUFpQjtJQUNqQixpQkN0cUJjO0FBQUE7QUQrcEJkO01BV0MsV0MxcUJhO01EMnFCYixZQzNxQmE7TUQ0cUJiLGlCQzVxQmE7QUFBQTtBRCtwQmQ7TUFpQkMsV0FBVztBQUFBO0FBR1g7TUU5bkJDLG1DQWpGbUI7TUFrRm5CLGtCQUFrQjtNQUNsQixnQkFBZ0I7TUFDaEIsWUF6RU07QUFBTztBRm9zQmQ7TUFHQyxlQ3RyQlk7QUFBQTtBRDByQmQ7TUFDQyxrQkFBa0I7TUFDbEIsa0JDaHNCa0I7TURpc0JsQixtQkFBbUI7TUFDbkIsVUMvcUJhO01EZ3JCYiwwQ0FBMEM7TUFFMUMsOENBQThDO01BQzlDLGdDQUF3QztNQUN4QyxrQkFBa0I7QUFBQTtBQVRsQjtRQVlDLGtCQUFrQjtRQUNsQixTQ25zQjRDO1FEb3NCNUMsVUNwc0I0QztBQUFBO0FEd3NCOUM7TUFDQyxVQzlyQmE7TUQrckJiLGdDQUFnQztNQUNoQyxZQUFZO01BQ1osOENBQThDO0FBQUE7QUFDOUM7UUFJQywyQ0FBMkM7UUFDM0MsK0RBQStEO0FBQUE7QUFLbEU7SUFDQyxZQzlzQmlCO0FBQUE7QUQ2c0JqQjtNQUtDLFVDanRCYTtBQUFBO0FENHNCZDtNQVNDLGFBQWE7QUFBQTtBQUtoQjs7OztFQUlFLHFDQUFxQztBQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIiRzY29wZV92ZXJzaW9uOlxcXCI4NGM0NjFmXFxcIjsgQGltcG9ydCAndmFyaWFibGVzJztcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5AaW1wb3J0ICcuLi8uLi9mb250cy9zY3NzL2ljb25mb250LXZ1ZSc7XFxuXFxuLmFjdGlvbi1pdGVtIHtcXG5cXHRwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xcblxcblxcdC8vIHB1dCBhIGdyZXkgcm91bmQgYmFja2dyb3VuZCB3aGVuIG1lbnUgaXMgb3BlbmVkXFxuXFx0Ly8gb3IgaG92ZXItZm9jdXNlZFxcblxcdCYtLXNpbmdsZTpob3ZlcixcXG5cXHQmLS1zaW5nbGU6Zm9jdXMsXFxuXFx0Ji0tc2luZ2xlOmFjdGl2ZSxcXG5cXHQmX19tZW51dG9nZ2xlOmhvdmVyLFxcblxcdCZfX21lbnV0b2dnbGU6Zm9jdXMsXFxuXFx0Jl9fbWVudXRvZ2dsZTphY3RpdmUge1xcblxcdFxcdG9wYWNpdHk6ICRvcGFjaXR5X2Z1bGw7XFxuXFx0XFx0Ly8gZ29vZCBsb29raW5nIG9uIGRhcmsgQU5EIHdoaXRlIGJnXFxuXFx0XFx0YmFja2dyb3VuZC1jb2xvcjogJGljb24tZm9jdXMtYmc7XFxuXFx0fVxcblxcblxcdC8vIFRPRE86IGhhbmRsZSB0aGlzIGluIHRoZSBmdXR1cmUgYnV0dG9uIGNvbXBvbmVudFxcblxcdCZfX21lbnV0b2dnbGU6ZGlzYWJsZWQsXFxuXFx0Ji0tc2luZ2xlOmRpc2FibGVkIHtcXG5cXHRcXHRvcGFjaXR5OiAuMyAhaW1wb3J0YW50O1xcblxcdH1cXG5cXG5cXHQmLmFjdGlvbi1pdGVtLS1vcGVuIC5hY3Rpb24taXRlbV9fbWVudXRvZ2dsZSB7XFxuXFx0XFx0b3BhY2l0eTogJG9wYWNpdHlfZnVsbDtcXG5cXHRcXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWJhY2tncm91bmQtaG92ZXI7XFxuXFx0fVxcblxcblxcdC8vIGljb25zXFxuXFx0Ji0tc2luZ2xlLFxcblxcdCZfX21lbnV0b2dnbGUge1xcblxcdFxcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuXFx0XFx0d2lkdGg6IGF1dG87XFxuXFx0XFx0bWluLXdpZHRoOiAkY2xpY2thYmxlLWFyZWE7XFxuXFx0XFx0aGVpZ2h0OiAkY2xpY2thYmxlLWFyZWE7XFxuXFx0XFx0bWFyZ2luOiAwO1xcblxcdFxcdHBhZGRpbmc6ICRpY29uLW1hcmdpbjtcXG5cXHRcXHRjdXJzb3I6IHBvaW50ZXI7XFxuXFx0XFx0Ym9yZGVyOiBub25lO1xcblxcdFxcdGJvcmRlci1yYWRpdXM6ICRjbGlja2FibGUtYXJlYSAvIDI7XFxuXFx0XFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuXFx0fVxcblxcblxcdC8vIGljb24tbW9yZVxcblxcdCZfX21lbnV0b2dnbGUge1xcblxcdFxcdC8vIGFsaWduIG1lbnUgaWNvbiBpbiBjZW50ZXJcXG5cXHRcXHRkaXNwbGF5OiBmbGV4O1xcblxcdFxcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuXFx0XFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuXFx0XFx0b3BhY2l0eTogJG9wYWNpdHlfbm9ybWFsO1xcblxcdFxcdGZvbnQtd2VpZ2h0OiBib2xkO1xcblxcdFxcdGxpbmUtaGVpZ2h0OiAkaWNvbi1zaXplO1xcblxcblxcdFxcdC8vIGltYWdlIHNsb3RcXG5cXHRcXHQvZGVlcC8gc3BhbiB7XFxuXFx0XFx0XFx0d2lkdGg6ICRpY29uLXNpemU7XFxuXFx0XFx0XFx0aGVpZ2h0OiAkaWNvbi1zaXplO1xcblxcdFxcdFxcdGxpbmUtaGVpZ2h0OiAkaWNvbi1zaXplO1xcblxcdFxcdH1cXG5cXG5cXHRcXHQmOmJlZm9yZSB7XFxuXFx0XFx0XFx0Y29udGVudDogJyc7XFxuXFx0XFx0fVxcblxcblxcdFxcdCYtLWRlZmF1bHQtaWNvbiB7XFxuXFx0XFx0XFx0QGluY2x1ZGUgaWNvbmZvbnQoJ21vcmUnKTtcXG5cXHRcXHRcXHQmOjpiZWZvcmUge1xcblxcdFxcdFxcdFxcdGZvbnQtc2l6ZTogJGljb24tc2l6ZTtcXG5cXHRcXHRcXHR9XFxuXFx0XFx0fVxcblxcblxcdFxcdCYtLXdpdGgtdGl0bGUge1xcblxcdFxcdFxcdHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXHRcXHRcXHRwYWRkaW5nLWxlZnQ6ICRjbGlja2FibGUtYXJlYTtcXG5cXHRcXHRcXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xcblxcdFxcdFxcdG9wYWNpdHk6ICRvcGFjaXR5X2Z1bGw7XFxuXFx0XFx0XFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWRhcmspO1xcblxcdFxcdFxcdC8vIHdpdGggYSB0aXRsZSwgd2UgbmVlZCB0byBkaXNwbGF5IHRoaXMgYXMgYSByZWFsIGJ1dHRvblxcblxcdFxcdFxcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtZGFyayk7XFxuXFx0XFx0XFx0YmFja2dyb3VuZC1wb3NpdGlvbjogJGljb24tbWFyZ2luIGNlbnRlcjtcXG5cXHRcXHRcXHRmb250LXNpemU6IGluaGVyaXQ7XFxuXFx0XFx0XFx0Ly8gbm9uLWJhY2tncm91bmQgaWNvbiBjbGFzc1xcblxcdFxcdFxcdCY6YmVmb3JlIHtcXG5cXHRcXHRcXHRcXHRwb3NpdGlvbjogYWJzb2x1dGU7XFxuXFx0XFx0XFx0XFx0dG9wOiAkaWNvbi1tYXJnaW47XFxuXFx0XFx0XFx0XFx0bGVmdDogJGljb24tbWFyZ2luO1xcblxcdFxcdFxcdH1cXG5cXHRcXHR9XFxuXFxuXFx0XFx0Ji0tcHJpbWFyeSB7XFxuXFx0XFx0XFx0b3BhY2l0eTogJG9wYWNpdHlfZnVsbDtcXG5cXHRcXHRcXHRjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS10ZXh0KTtcXG5cXHRcXHRcXHRib3JkZXI6IG5vbmU7XFxuXFx0XFx0XFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1lbGVtZW50KTtcXG5cXHRcXHRcXHQuYWN0aW9uLWl0ZW0tLW9wZW4gJixcXG5cXHRcXHRcXHQmOmhvdmVyLFxcblxcdFxcdFxcdCY6Zm9jdXMsXFxuXFx0XFx0XFx0JjphY3RpdmUge1xcblxcdFxcdFxcdFxcdGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXRleHQpICFpbXBvcnRhbnQ7XFxuXFx0XFx0XFx0XFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1lbGVtZW50LWxpZ2h0KSAhaW1wb3J0YW50O1xcblxcdFxcdFxcdH1cXG5cXHRcXHR9XFxuXFx0fVxcblxcblxcdCYtLXNpbmdsZSB7XFxuXFx0XFx0b3BhY2l0eTogJG9wYWNpdHlfbm9ybWFsO1xcblxcdFxcdCY6aG92ZXIsXFxuXFx0XFx0Jjpmb2N1cyxcXG5cXHRcXHQmOmFjdGl2ZSB7XFxuXFx0XFx0XFx0b3BhY2l0eTogJG9wYWNpdHlfZnVsbDtcXG5cXHRcXHR9XFxuXFx0XFx0Ly8gaGlkZSBhbnl0aGluZyB0aGUgc2xvdCBpcyBkaXNwbGF5aW5nXFxuXFx0XFx0JiA+IFtoaWRkZW5dIHtcXG5cXHRcXHRcXHRkaXNwbGF5OiBub25lO1xcblxcdFxcdH1cXG5cXHR9XFxufVxcblxcbi5pZSxcXG4uZWRnZSB7XFxuXFx0LmFjdGlvbi1pdGVtX19tZW51LFxcblxcdC5hY3Rpb24taXRlbV9fbWVudSAuYWN0aW9uLWl0ZW1fX21lbnVfYXJyb3cge1xcblxcdFxcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XFxuXFx0fVxcbn1cXG5cXG5cIixcIi8qKlxcbiAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDE5IEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cXG4gKlxcbiAqIEBhdXRob3IgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxcbiAqXFxuICogQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXFxuICpcXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXFxuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlXFxuICogTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cXG4gKlxcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXFxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxcbiAqXFxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXFxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cXG4gKlxcbiAqL1xcblxcbi8vIGh0dHBzOi8vdXhwbGFuZXQub3JnLzctcnVsZXMtZm9yLW1vYmlsZS11aS1idXR0b24tZGVzaWduLWU5Y2YyZWE1NDU1Nlxcbi8vIHJlY29tbWVuZGVkIGlzIDQ4cHhcXG4vLyA0NHB4IGlzIHdoYXQgd2UgY2hvb3NlIGFuZCBoYXZlIHZlcnkgZ29vZCB2aXN1YWwtdG8tdXNhYmlsaXR5IHJhdGlvXFxuJGNsaWNrYWJsZS1hcmVhOiA0NHB4O1xcblxcbi8vIGJhY2tncm91bmQgaWNvbiBzaXplXFxuLy8gYWxzbyB1c2VkIGZvciB0aGUgc2NzcyBpY29uIGZvbnRcXG4kaWNvbi1zaXplOiAxNnB4O1xcblxcbi8vIGljb24gcGFkZGluZyBmb3IgYSAkY2xpY2thYmxlLWFyZWEgd2lkdGggYW5kIGEgJGljb24tc2l6ZSBpY29uXFxuLy8gKCA0NHB4IC0gMTZweCApIC8gMlxcbiRpY29uLW1hcmdpbjogKCRjbGlja2FibGUtYXJlYSAtICRpY29uLXNpemUpIC8gMjtcXG5cXG4vLyB0cmFuc3BhcmVuY3kgYmFja2dyb3VuZCBmb3IgaWNvbnNcXG4kaWNvbi1mb2N1cy1iZzogcmdiYSgxMjcsIDEyNywgMTI3LCAuMjUpO1xcblxcbi8vIHBvcG92ZXJtZW51IGFycm93IHdpZHRoIGZyb20gdGhlIHRyaWFuZ2xlIGNlbnRlclxcbiRhcnJvdy13aWR0aDogOXB4O1xcblxcbi8vIG9wYWNpdGllc1xcbiRvcGFjaXR5X2Rpc2FibGVkOiAuNTtcXG4kb3BhY2l0eV9ub3JtYWw6IC43O1xcbiRvcGFjaXR5X2Z1bGw6IDE7XFxuXFxuLy8gbWVudSByb3VuZCBiYWNrZ3JvdW5kIGhvdmVyIGZlZWRiYWNrXFxuLy8gZ29vZCBsb29raW5nIG9uIGRhcmsgQU5EIHdoaXRlIGJnXFxuJGFjdGlvbi1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKDEyNywgMTI3LCAxMjcsIC4yNSk7XFxuXFxuLy8gdmFyaW91cyBzdHJ1Y3R1cmUgZGF0YSB1c2VkIGluIHRoZSBcXG4vLyBgQXBwTmF2aWdhdGlvbmAgY29tcG9uZW50XFxuJGhlYWRlci1oZWlnaHQ6IDUwcHg7XFxuJG5hdmlnYXRpb24td2lkdGg6IDMwMHB4O1xcblxcbi8vIG1vYmlsZSBicmVha3BvaW50XFxuJGJyZWFrcG9pbnQtbW9iaWxlOiAxMDI0cHg7XFxuXCIsXCIkX19pY29uZm9udF9fZGF0YTogbWFwLW1lcmdlKGlmKGdsb2JhbF92YXJpYWJsZV9leGlzdHMoJ19faWNvbmZvbnRfX2RhdGEnKSwgJF9faWNvbmZvbnRfX2RhdGEsICgpKSwgKFxcblxcdFxcXCJpY29uZm9udC12dWUtODRjNDYxZlxcXCI6IChcXG5cXHRcXHRcXFwiYXJyb3ctbGVmdC1kb3VibGVcXFwiOiBcXFwiXFxcXGVhMDFcXFwiLFxcblxcdFxcdFxcXCJhcnJvdy1sZWZ0XFxcIjogXFxcIlxcXFxlYTAyXFxcIixcXG5cXHRcXHRcXFwiYXJyb3ctcmlnaHQtZG91YmxlXFxcIjogXFxcIlxcXFxlYTAzXFxcIixcXG5cXHRcXHRcXFwiYXJyb3ctcmlnaHRcXFwiOiBcXFwiXFxcXGVhMDRcXFwiLFxcblxcdFxcdFxcXCJicmVhZGNydW1iXFxcIjogXFxcIlxcXFxlYTA1XFxcIixcXG5cXHRcXHRcXFwiY2hlY2ttYXJrXFxcIjogXFxcIlxcXFxlYTA2XFxcIixcXG5cXHRcXHRcXFwiY2xvc2VcXFwiOiBcXFwiXFxcXGVhMDdcXFwiLFxcblxcdFxcdFxcXCJjb25maXJtXFxcIjogXFxcIlxcXFxlYTA4XFxcIixcXG5cXHRcXHRcXFwiaW5mb1xcXCI6IFxcXCJcXFxcZWEwOVxcXCIsXFxuXFx0XFx0XFxcIm1lbnVcXFwiOiBcXFwiXFxcXGVhMGFcXFwiLFxcblxcdFxcdFxcXCJtb3JlXFxcIjogXFxcIlxcXFxlYTBiXFxcIixcXG5cXHRcXHRcXFwicGF1c2VcXFwiOiBcXFwiXFxcXGVhMGNcXFwiLFxcblxcdFxcdFxcXCJwbGF5XFxcIjogXFxcIlxcXFxlYTBkXFxcIixcXG5cXHRcXHRcXFwidHJpYW5nbGUtc1xcXCI6IFxcXCJcXFxcZWEwZVxcXCIsXFxuXFx0XFx0XFxcInVzZXItc3RhdHVzLWF3YXlcXFwiOiBcXFwiXFxcXGVhMGZcXFwiLFxcblxcdFxcdFxcXCJ1c2VyLXN0YXR1cy1kbmRcXFwiOiBcXFwiXFxcXGVhMTBcXFwiLFxcblxcdFxcdFxcXCJ1c2VyLXN0YXR1cy1pbnZpc2libGVcXFwiOiBcXFwiXFxcXGVhMTFcXFwiLFxcblxcdFxcdFxcXCJ1c2VyLXN0YXR1cy1vbmxpbmVcXFwiOiBcXFwiXFxcXGVhMTJcXFwiXFxuXFx0KVxcbikpO1xcblxcblxcbiRjcmVhdGUtZm9udC1mYWNlOiB0cnVlICFkZWZhdWx0OyAvLyBzaG91bGQgdGhlIEBmb250LWZhY2UgdGFnIGdldCBjcmVhdGVkP1xcblxcbi8vIHNob3VsZCB0aGVyZSBiZSBhIGN1c3RvbSBjbGFzcyBmb3IgZWFjaCBpY29uPyB3aWxsIGJlIC5maWxlbmFtZVxcbiRjcmVhdGUtaWNvbi1jbGFzc2VzOiB0cnVlICFkZWZhdWx0OyBcXG5cXG4vLyB3aGF0IGlzIHRoZSBjb21tb24gY2xhc3MgbmFtZSB0aGF0IGljb25zIHNoYXJlPyBpbiB0aGlzIGNhc2UgaWNvbnMgbmVlZCB0byBoYXZlIC5pY29uLmZpbGVuYW1lIGluIHRoZWlyIGNsYXNzZXNcXG4vLyB0aGlzIHJlcXVpcmVzIHlvdSB0byBoYXZlIDIgY2xhc3NlcyBvbiBlYWNoIGljb24gaHRtbCBlbGVtZW50LCBidXQgcmVkdWNlZCByZWRlY2xhcmF0aW9uIG9mIHRoZSBmb250IGZhbWlseVxcbi8vIGZvciBlYWNoIGljb25cXG4kaWNvbi1jb21tb24tY2xhc3M6ICdpY29uJyAhZGVmYXVsdDtcXG5cXG4vLyBpZiB5b3Ugd2hpc2ggdG8gcHJlZml4IHlvdXIgZmlsZW5hbWVzLCBoZXJlIHlvdSBjYW4gZG8gc28uXFxuLy8gaWYgdGhpcyBzdHJpbmcgc3RheXMgZW1wdHksIHlvdXIgY2xhc3NlcyB3aWxsIHVzZSB0aGUgZmlsZW5hbWUsIGZvciBleGFtcGxlXFxuLy8gYW4gaWNvbiBjYWxsZWQgc3Rhci5zdmcgd2lsbCByZXN1bHQgaW4gYSBjbGFzcyBjYWxsZWQgLnN0YXJcXG4vLyBpZiB5b3UgdXNlIHRoZSBwcmVmaXggdG8gYmUgJ2ljb24tJyBpdCB3b3VsZCByZXN1bHQgaW4gLmljb24tc3RhclxcbiRpY29uLXByZWZpeDogJycgIWRlZmF1bHQ7IFxcblxcbi8vIGhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIGNvcnJlY3QgZm9udCBncm91cFxcbkBmdW5jdGlvbiBpY29uZm9udC1ncm91cCgkZ3JvdXA6IG51bGwpIHtcXG4gIEBpZiAobnVsbCA9PSAkZ3JvdXApIHtcXG4gICAgJGdyb3VwOiBudGgobWFwLWtleXMoJF9faWNvbmZvbnRfX2RhdGEpLCAxKTtcXG4gIH1cXG4gIEBpZiAoZmFsc2UgPT0gbWFwLWhhcy1rZXkoJF9faWNvbmZvbnRfX2RhdGEsICRncm91cCkpIHtcXG4gICAgQHdhcm4gJ1VuZGVmaW5lZCBJY29uZm9udCBGYW1pbHkhJztcXG4gICAgQHJldHVybiAoKTtcXG4gIH1cXG4gIEByZXR1cm4gbWFwLWdldCgkX19pY29uZm9udF9fZGF0YSwgJGdyb3VwKTtcXG59XFxuXFxuLy8gaGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgY29ycmVjdCBpY29uIG9mIGEgZ3JvdXBcXG5AZnVuY3Rpb24gaWNvbmZvbnQtaXRlbSgkbmFtZSkge1xcbiAgJHNsYXNoOiBzdHItaW5kZXgoJG5hbWUsICcvJyk7XFxuICAkZ3JvdXA6IG51bGw7XFxuICBAaWYgKCRzbGFzaCkge1xcbiAgICAkZ3JvdXA6IHN0ci1zbGljZSgkbmFtZSwgMCwgJHNsYXNoIC0gMSk7XFxuICAgICRuYW1lOiBzdHItc2xpY2UoJG5hbWUsICRzbGFzaCArIDEpO1xcbiAgfSBAZWxzZSB7XFxuICAgICRncm91cDogbnRoKG1hcC1rZXlzKCRfX2ljb25mb250X19kYXRhKSwgMSk7XFxuICB9XFxuICAkZ3JvdXA6IGljb25mb250LWdyb3VwKCRncm91cCk7XFxuICBAaWYgKGZhbHNlID09IG1hcC1oYXMta2V5KCRncm91cCwgJG5hbWUpKSB7XFxuICAgIEB3YXJuICdVbmRlZmluZWQgSWNvbmZvbnQgR2x5cGghJztcXG4gICAgQHJldHVybiAnJztcXG4gIH1cXG4gIEByZXR1cm4gbWFwLWdldCgkZ3JvdXAsICRuYW1lKTtcXG59XFxuXFxuLy8gY29tcGxldGUgbWl4aW5nIHRvIGluY2x1ZGUgdGhlIGljb25cXG4vLyB1c2FnZTpcXG4vLyAubXlfaWNvbnsgQGluY2x1ZGUgaWNvbmZvbnQoJ3N0YXInKSB9XFxuQG1peGluIGljb25mb250KCRpY29uKSB7XFxuICAkc2xhc2g6IHN0ci1pbmRleCgkaWNvbiwgJy8nKTtcXG4gICRncm91cDogbnVsbDtcXG4gIEBpZiAoJHNsYXNoKSB7XFxuICAgICRncm91cDogc3RyLXNsaWNlKCRpY29uLCAwLCAkc2xhc2ggLSAxKTtcXG4gIH0gQGVsc2Uge1xcbiAgICAkZ3JvdXA6IG50aChtYXAta2V5cygkX19pY29uZm9udF9fZGF0YSksIDEpO1xcbiAgfVxcbiAgJjpiZWZvcmUge1xcbiAgICBmb250LWZhbWlseTogJGdyb3VwO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIGNvbnRlbnQ6IGljb25mb250LWl0ZW0oJGljb24pO1xcbiAgfVxcbn1cXG5cXG4vLyBjcmVhdGVzIHRoZSBmb250IGZhY2UgdGFnIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgdG8gdHJ1ZSAoZGVmYXVsdClcXG5AaWYgJGNyZWF0ZS1mb250LWZhY2UgPT0gdHJ1ZSB7XFxuICBAZm9udC1mYWNlIHtcXG4gICBmb250LWZhbWlseTogXFxcImljb25mb250LXZ1ZS04NGM0NjFmXFxcIjtcXG4gICBzcmM6IHVybCgnLi4vaWNvbmZvbnQtdnVlLTg0YzQ2MWYuZW90Jyk7IC8qIElFOSBDb21wYXQgTW9kZXMgKi9cXG4gICBzcmM6IHVybCgnLi4vaWNvbmZvbnQtdnVlLTg0YzQ2MWYuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgLyogSUU2LUlFOCAqL1xcbiAgICAgIHVybCgnLi4vaWNvbmZvbnQtdnVlLTg0YzQ2MWYud29mZicpIGZvcm1hdCgnd29mZicpLCAvKiBQcmV0dHkgTW9kZXJuIEJyb3dzZXJzICovXFxuICAgICAgdXJsKCcuLi9pY29uZm9udC12dWUtODRjNDYxZi50dGYnKSAgZm9ybWF0KCd0cnVldHlwZScpLCAvKiBTYWZhcmksIEFuZHJvaWQsIGlPUyAqL1xcbiAgICAgIHVybCgnLi4vaWNvbmZvbnQtdnVlLTg0YzQ2MWYuc3ZnJykgZm9ybWF0KCdzdmcnKTsgLyogTGVnYWN5IGlPUyAqL1xcbiAgfVxcbn1cXG5cXG4vLyBjcmVhdGVzIGljb24gY2xhc3NlcyBmb3IgZWFjaCBpbmRpdmlkdWFsIGxvYWRlZCBzdmcgKGRlZmF1bHQpXFxuQGlmICRjcmVhdGUtaWNvbi1jbGFzc2VzID09IHRydWUge1xcbiAgLiN7JGljb24tY29tbW9uLWNsYXNzfSB7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG5cXG4gICAgQGVhY2ggJGljb24sICRjb250ZW50IGluIG1hcC1nZXQoJF9faWNvbmZvbnRfX2RhdGEsIFxcXCJpY29uZm9udC12dWUtODRjNDYxZlxcXCIpIHtcXG4gICAgICAmLiN7JGljb24tcHJlZml4fSN7JGljb259OmJlZm9yZSB7XFxuICAgICAgICBmb250LWZhbWlseTogXFxcImljb25mb250LXZ1ZS04NGM0NjFmXFxcIjtcXG4gICAgICAgIGNvbnRlbnQ6IGljb25mb250LWl0ZW0oXFxcImljb25mb250LXZ1ZS04NGM0NjFmLyN7JGljb259XFxcIik7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBjaGFyc2V0IFxcXCJVVEYtOFxcXCI7XFxuLyoqXFxuICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTkgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxcbiAqXFxuICogQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cXG4gKlxcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XFxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcXG4gKiBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXFxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXFxuICpcXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxcbiAqXFxuICovXFxuLypcXG5cXHRTaWRlYmFyOiB0byBiZSB1c2VkIHdpdGhpbiAjY29udGVudFxcblxcdGFwcC1jb250ZW50IHdpbGwgYmUgc2hyaW5rZWQgcHJvcGVybHlcXG4qL1xcbi5hcHAtc2lkZWJhcltkYXRhLXYtNGEyYTVmMmZdIHtcXG4gIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcXG4gIHBvc2l0aW9uOiBzdGlja3k7XFxuICB6LWluZGV4OiAxNTAwO1xcbiAgdG9wOiB2YXIoLS1oZWFkZXItaGVpZ2h0KTtcXG4gIHJpZ2h0OiAwO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgZmxleC1zaHJpbms6IDA7XFxuICB3aWR0aDogMjd2dztcXG4gIG1pbi13aWR0aDogMzAwcHg7XFxuICBtYXgtd2lkdGg6IDUwMHB4O1xcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gdmFyKC0taGVhZGVyLWhlaWdodCkpO1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbWFpbi1iYWNrZ3JvdW5kKTtcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXIgPiAuYXBwLXNpZGViYXJfX2Nsb3NlW2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHotaW5kZXg6IDEwMDtcXG4gICAgdG9wOiA2cHg7XFxuICAgIHJpZ2h0OiA2cHg7XFxuICAgIHdpZHRoOiA0NHB4O1xcbiAgICBoZWlnaHQ6IDQ0cHg7XFxuICAgIG9wYWNpdHk6IDAuNztcXG4gICAgYm9yZGVyLXJhZGl1czogMjJweDtcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXIgPiAuYXBwLXNpZGViYXJfX2Nsb3NlW2RhdGEtdi00YTJhNWYyZl06aG92ZXIsIC5hcHAtc2lkZWJhciAuYXBwLXNpZGViYXItaGVhZGVyID4gLmFwcC1zaWRlYmFyX19jbG9zZVtkYXRhLXYtNGEyYTVmMmZdOmFjdGl2ZSwgLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXIgPiAuYXBwLXNpZGViYXJfX2Nsb3NlW2RhdGEtdi00YTJhNWYyZl06Zm9jdXMge1xcbiAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjcsIDEyNywgMTI3LCAwLjI1KTtcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXItLWNvbXBhY3QuYXBwLXNpZGViYXItaGVhZGVyLS13aXRoLWZpZ3VyZSAuYXBwLXNpZGViYXItaGVhZGVyX19pbmZvW2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbn1cXG4uYXBwLXNpZGViYXIgLmFwcC1zaWRlYmFyLWhlYWRlci0tY29tcGFjdC5hcHAtc2lkZWJhci1oZWFkZXItLXdpdGgtZmlndXJlIC5hcHAtc2lkZWJhci1oZWFkZXJfX2luZm8gLmFwcC1zaWRlYmFyLWhlYWRlcl9fZmlndXJlW2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgICAgIHotaW5kZXg6IDI7XFxuICAgICAgd2lkdGg6IDcwcHg7XFxuICAgICAgaGVpZ2h0OiA3MHB4O1xcbiAgICAgIG1hcmdpbjogOXB4O1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gICAgICBmbGV4OiAwIDAgYXV0bztcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXItLWNvbXBhY3QuYXBwLXNpZGViYXItaGVhZGVyLS13aXRoLWZpZ3VyZSAuYXBwLXNpZGViYXItaGVhZGVyX19pbmZvIC5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2NbZGF0YS12LTRhMmE1ZjJmXSB7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICAgIG1pbi13aWR0aDogMDtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA5NHB4O1xcbn1cXG4uYXBwLXNpZGViYXIgLmFwcC1zaWRlYmFyLWhlYWRlci0tY29tcGFjdC5hcHAtc2lkZWJhci1oZWFkZXItLXdpdGgtZmlndXJlIC5hcHAtc2lkZWJhci1oZWFkZXJfX2luZm8gLmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzYy5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2MtLXdpdGhvdXQtYWN0aW9uc1tkYXRhLXYtNGEyYTVmMmZdIHtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7XFxufVxcbi5hcHAtc2lkZWJhciAuYXBwLXNpZGViYXItaGVhZGVyLS1jb21wYWN0LmFwcC1zaWRlYmFyLWhlYWRlci0td2l0aC1maWd1cmUgLmFwcC1zaWRlYmFyLWhlYWRlcl9faW5mbyAuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjIC5hcHAtc2lkZWJhci1oZWFkZXJfX3RlcnRpYXJ5LWFjdGlvbnNbZGF0YS12LTRhMmE1ZjJmXSB7XFxuICAgICAgICB6LWluZGV4OiAzO1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgdG9wOiA5cHg7XFxuICAgICAgICBsZWZ0OiAtNDRweDtcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXItLWNvbXBhY3QuYXBwLXNpZGViYXItaGVhZGVyLS13aXRoLWZpZ3VyZSAuYXBwLXNpZGViYXItaGVhZGVyX19pbmZvIC5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2MgLmFwcC1zaWRlYmFyLWhlYWRlcl9fbWVudVtkYXRhLXYtNGEyYTVmMmZdIHtcXG4gICAgICAgIHRvcDogNnB4O1xcbiAgICAgICAgcmlnaHQ6IDUwcHg7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXI6bm90KC5hcHAtc2lkZWJhci1oZWFkZXItLXdpdGgtZmlndXJlKSAuYXBwLXNpZGViYXItaGVhZGVyX19tZW51W2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogNnB4O1xcbiAgICByaWdodDogNTBweDtcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXI6bm90KC5hcHAtc2lkZWJhci1oZWFkZXItLXdpdGgtZmlndXJlKSAuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjW2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA5NHB4O1xcbn1cXG4uYXBwLXNpZGViYXIgLmFwcC1zaWRlYmFyLWhlYWRlcjpub3QoLmFwcC1zaWRlYmFyLWhlYWRlci0td2l0aC1maWd1cmUpIC5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2MuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjLS13aXRob3V0LWFjdGlvbnNbZGF0YS12LTRhMmE1ZjJmXSB7XFxuICAgICAgcGFkZGluZy1yaWdodDogNTBweDtcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXIgLmFwcC1zaWRlYmFyLWhlYWRlcl9faW5mb1tkYXRhLXYtNGEyYTVmMmZdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXJfX2ZpZ3VyZVtkYXRhLXYtNGEyYTVmMmZdIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMjUwcHg7XFxuICAgIG1heC1oZWlnaHQ6IDI1MHB4O1xcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XFxuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXJfX2ZpZ3VyZS0td2l0aC1hY3Rpb25bZGF0YS12LTRhMmE1ZjJmXSB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4uYXBwLXNpZGViYXIgLmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzY1tkYXRhLXYtNGEyYTVmMmZdIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgcGFkZGluZzogMThweCA2cHggMThweCA5cHg7XFxufVxcbi5hcHAtc2lkZWJhciAuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjLS13aXRoLXRlcnRpYXJ5LWFjdGlvbltkYXRhLXYtNGEyYTVmMmZdIHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XFxufVxcbi5hcHAtc2lkZWJhciAuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjLS1lZGl0YWJsZSAuYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGUtZm9ybVtkYXRhLXYtNGEyYTVmMmZdLFxcbiAgICAuYXBwLXNpZGViYXIgLmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzYy0td2l0aC1zdWJ0aXRsZS0tZWRpdGFibGUgLmFwcC1zaWRlYmFyLWhlYWRlcl9fbWFpbnRpdGxlLWZvcm1bZGF0YS12LTRhMmE1ZjJmXSB7XFxuICAgICAgbWFyZ2luLXRvcDogLTJweDtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1xcbn1cXG4uYXBwLXNpZGViYXIgLmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzYy0td2l0aC1zdWJ0aXRsZS0tZWRpdGFibGUgLmFwcC1zaWRlYmFyLWhlYWRlcl9fc3VidGl0bGVbZGF0YS12LTRhMmE1ZjJmXSB7XFxuICAgICAgbWFyZ2luLXRvcDogLTJweDtcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2MgLmFwcC1zaWRlYmFyLWhlYWRlcl9fdGVydGlhcnktYWN0aW9uc1tkYXRhLXYtNGEyYTVmMmZdIHtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGhlaWdodDogNDRweDtcXG4gICAgICB3aWR0aDogNDRweDtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICBmbGV4OiAwIDAgYXV0bztcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2MgLmFwcC1zaWRlYmFyLWhlYWRlcl9fdGl0bGUtY29udGFpbmVyW2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICBtaW4td2lkdGg6IDA7XFxufVxcbi5hcHAtc2lkZWJhciAuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjIC5hcHAtc2lkZWJhci1oZWFkZXJfX3RpdGxlLWNvbnRhaW5lciAuYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGVbZGF0YS12LTRhMmE1ZjJmXSB7XFxuICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgbWluLWhlaWdodDogMzBweDtcXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xcbn1cXG4uYXBwLXNpZGViYXIgLmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzYyAuYXBwLXNpZGViYXItaGVhZGVyX190aXRsZS1jb250YWluZXIgLmFwcC1zaWRlYmFyLWhlYWRlcl9fbWFpbnRpdGxlW2RhdGEtdi00YTJhNWYyZl0gLmxpbmtpZmllZCB7XFxuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxufVxcbi5hcHAtc2lkZWJhciAuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjIC5hcHAtc2lkZWJhci1oZWFkZXJfX3RpdGxlLWNvbnRhaW5lciAuYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGVbZGF0YS12LTRhMmE1ZjJmXSxcXG4gICAgICAuYXBwLXNpZGViYXIgLmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzYyAuYXBwLXNpZGViYXItaGVhZGVyX190aXRsZS1jb250YWluZXIgLmFwcC1zaWRlYmFyLWhlYWRlcl9fc3VidGl0bGVbZGF0YS12LTRhMmE1ZjJmXSB7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxufVxcbi5hcHAtc2lkZWJhciAuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjIC5hcHAtc2lkZWJhci1oZWFkZXJfX3RpdGxlLWNvbnRhaW5lciAuYXBwLXNpZGViYXItaGVhZGVyX19zdWJ0aXRsZVtkYXRhLXYtNGEyYTVmMmZdIHtcXG4gICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICBvcGFjaXR5OiAwLjc7XFxuICAgICAgICBmb250LXNpemU6IHZhcigtLWRlZmF1bHQtZm9udC1zaXplKTtcXG59XFxuLmFwcC1zaWRlYmFyIC5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2MgLmFwcC1zaWRlYmFyLWhlYWRlcl9fdGl0bGUtY29udGFpbmVyIC5hcHAtc2lkZWJhci1oZWFkZXJfX21haW50aXRsZS1mb3JtW2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNy41cHg7XFxufVxcbi5hcHAtc2lkZWJhciAuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjIC5hcHAtc2lkZWJhci1oZWFkZXJfX3RpdGxlLWNvbnRhaW5lciAuYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGUtZm9ybSAuaWNvbi1jb25maXJtW2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgICAgICAgICBtYXJnaW46IDA7XFxufVxcbi5hcHAtc2lkZWJhciAuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjIC5hcHAtc2lkZWJhci1oZWFkZXJfX3RpdGxlLWNvbnRhaW5lciAuYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGUtZm9ybSBpbnB1dC5hcHAtc2lkZWJhci1oZWFkZXJfX21haW50aXRsZS1pbnB1dFtkYXRhLXYtNGEyYTVmMmZdIHtcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgcGFkZGluZzogN3B4O1xcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7XFxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG4uYXBwLXNpZGViYXIgLmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzYyAuYXBwLXNpZGViYXItaGVhZGVyX19zdGFyW2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgIHdpZHRoOiA0NHB4O1xcbiAgICAgIGhlaWdodDogNDRweDtcXG4gICAgICBwYWRkaW5nOiAxNHB4O1xcbn1cXG4uYXBwLXNpZGViYXIgLmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzYyAuYXBwLXNpZGViYXItaGVhZGVyX19tZW51W2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgICAgIGhlaWdodDogNDRweDtcXG4gICAgICB3aWR0aDogNDRweDtcXG4gICAgICBib3JkZXItcmFkaXVzOiAyMnB4O1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI3LCAxMjcsIDEyNywgMC4yNSk7XFxufVxcbi5hcHAtc2lkZWJhciAuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjcmlwdGlvbltkYXRhLXYtNGEyYTVmMmZdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgbWFyZ2luOiAwIDEwcHg7XFxufVxcbi5zbGlkZS1yaWdodC1sZWF2ZS1hY3RpdmVbZGF0YS12LTRhMmE1ZjJmXSxcXG4uc2xpZGUtcmlnaHQtZW50ZXItYWN0aXZlW2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tYW5pbWF0aW9uLXF1aWNrKTtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG1heC13aWR0aCwgbWluLXdpZHRoO1xcbn1cXG4uc2xpZGUtcmlnaHQtZW50ZXItdG9bZGF0YS12LTRhMmE1ZjJmXSxcXG4uc2xpZGUtcmlnaHQtbGVhdmVbZGF0YS12LTRhMmE1ZjJmXSB7XFxuICBtaW4td2lkdGg6IDMwMHB4O1xcbiAgbWF4LXdpZHRoOiA1MDBweDtcXG59XFxuLnNsaWRlLXJpZ2h0LWVudGVyW2RhdGEtdi00YTJhNWYyZl0sXFxuLnNsaWRlLXJpZ2h0LWxlYXZlLXRvW2RhdGEtdi00YTJhNWYyZl0ge1xcbiAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XFxuICBtYXgtd2lkdGg6IDAgIWltcG9ydGFudDtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vQXBwU2lkZWJhci52dWVcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2Fzc2V0cy92YXJpYWJsZXMuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQSxnQkFBZ0I7QUNBaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VEcUJFO0FBdWdCRjs7O0NBbmdCQztBQXVnQkQ7RUFDQyx3QkFBd0I7RUFDeEIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYix5QkFBeUI7RUFDekIsUUFBUTtFQUNSLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QixjQUFjO0VBQ2QsV0FBVztFQUNYLGdCQTdCd0I7RUE4QnhCLGdCQTdCd0I7RUE4QnhCLDBDQUEwQztFQUMxQywwQ0FBMEM7RUFDMUMsd0NBQXdDO0FBQUE7QUFoQnpDO0lBbUJHLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osUUEzQnNCO0lBNEJ0QixVQTVCc0I7SUE2QnRCLFdDOWhCa0I7SUQraEJsQixZQy9oQmtCO0lEZ2lCbEIsWUM5Z0JnQjtJRCtnQmhCLG1CQUFrQztBQUFBO0FBMUJyQztNQThCSSxVQ2xoQlk7TURtaEJaLDJDQy9nQjhDO0FBQUE7QURnZmxEO0lBc0NJLG1CQUFtQjtBQUFBO0FBdEN2QjtNQXlDSyxVQUFVO01BQ1YsV0FBNEM7TUFDNUMsWUFBNkM7TUFDN0MsV0FBa0M7TUFDbEMsa0JBQWtCO01BQ2xCLGNBQWM7QUFBQTtBQTlDbkI7TUFpREssZUFBZTtNQUNmLGNBQWM7TUFDZCxZQUFZO01BQ1osbUJBQXlEO0FBQUE7QUFwRDlEO1FBdURNLG1CQUFlO0FBQUE7QUF2RHJCO1FBMkRNLFVBQVU7UUFDVixrQkFBa0I7UUFDbEIsUUFBK0I7UUFDL0IsV0FBMEI7QUFBQTtBQTlEaEM7UUFpRU0sUUF2RW1CO1FBd0VuQixXQUE2QztRQUM3Qyw2QkFBNkI7UUFDN0Isa0JBQWtCO0FBQUE7QUFwRXhCO0lBOEVJLGtCQUFrQjtJQUNsQixRQXJGcUI7SUFzRnJCLFdBQTZDO0FBQUE7QUFoRmpEO0lBb0ZJLG1CQUFlO0FBQUE7QUFwRm5CO01BdUZLLG1CQUFlO0FBQUE7QUF2RnBCO0lBOEZHLGFBQWE7SUFDYixzQkFBc0I7QUFBQTtBQS9GekI7SUFvR0csV0FBVztJQUNYLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsNEJBQTRCO0lBQzVCLDJCQUEyQjtJQUMzQix3QkFBd0I7QUFBQTtBQXpHM0I7TUEyR0ksZUFBZTtBQUFBO0FBM0duQjtJQWlIRyxrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsMEJBQWtIO0FBQUE7QUFySHJIO01BeUhJLGVBQWU7QUFBQTtBQXpIbkI7O01BOEhJLGdCQUFnQjtNQUNoQixtQkFBbUI7QUFBQTtBQS9IdkI7TUFtSUksZ0JBQWdCO0FBQUE7QUFuSXBCO01BdUlJLGFBQWE7TUFDYixZQy9vQmlCO01EZ3BCakIsV0NocEJpQjtNRGlwQmpCLHVCQUF1QjtNQUN2QixjQUFjO0FBQUE7QUEzSWxCO01BZ0pJLGNBQWM7TUFDZCxhQUFhO01BQ2Isc0JBQXNCO01BQ3RCLHVCQUF1QjtNQUN2QixZQUFZO0FBQUE7QUFwSmhCO1FBd0pLLFVBQVU7UUFDVixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGlCQXJLbUI7QUFBQTtBQVV4QjtVQStKTSxlQUFlO1VBQ2YsMEJBQTBCO0FBQUE7QUFoS2hDOztRQXNLSyxnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLFNBQVM7UUFDVCxtQkFBbUI7UUFDbkIsdUJBQXVCO0FBQUE7QUExSzVCO1FBK0tLLFVBQVU7UUFDVixZQ3JxQmM7UURzcUJkLG1DQUFtQztBQUFBO0FBakx4QztRQXFMSyxhQUFhO1FBQ2IsbUJBQW1CO0FBQUE7QUF0THhCO1VBd0xNLFNBQVM7QUFBQTtBQXhMZjtVQTRMTSxjQUFjO1VBQ2QsU0FBUztVQUNULFlBM01rQjtVQTRNbEIsZUFBZTtVQUNmLGlCQUFpQjtBQUFBO0FBaE12QjtNQXVNSSxjQUFjO01BQ2QsV0Mvc0JpQjtNRGd0QmpCLFlDaHRCaUI7TURpdEJqQixhQ3pzQjRDO0FBQUE7QUQrZmhEO01BOE1JLFlDcnRCaUI7TURzdEJqQixXQ3R0QmlCO01EdXRCakIsbUJBQWtDO01BQ2xDLDJDQ2pzQjhDO0FBQUE7QURnZmxEO0lBdU5HLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsY0FBYztBQUFBO0FBS2pCOztFQUVDLDJDQUEyQztFQUMzQyx5Q0FBeUM7QUFBQTtBQUcxQzs7RUFFQyxnQkF2UHdCO0VBd1B4QixnQkF2UHdCO0FBQUE7QUEwUHpCOztFQUVDLHVCQUF1QjtFQUN2Qix1QkFBdUI7QUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIkc2NvcGVfdmVyc2lvbjpcXFwiODRjNDYxZlxcXCI7IEBpbXBvcnQgJ3ZhcmlhYmxlcyc7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuJHNpZGViYXItbWluLXdpZHRoOiAzMDBweDtcXG4kc2lkZWJhci1tYXgtd2lkdGg6IDUwMHB4O1xcblxcbiRkZXNjLXZlcnRpY2FsLXBhZGRpbmc6IDE4cHg7XFxuJGRlc2MtaW5wdXQtcGFkZGluZzogN3B4O1xcblxcbi8vIHRpdGxlIGFuZCBzdWJ0aXRsZVxcbiRkZXNjLXRpdGxlLWhlaWdodDogMzBweDtcXG4kZGVzYy1zdWJ0aXRsZS1oZWlnaHQ6IDIycHg7XFxuJGRlc2MtaGVpZ2h0OiAkZGVzYy10aXRsZS1oZWlnaHQgKyAkZGVzYy1zdWJ0aXRsZS1oZWlnaHQ7XFxuXFxuJHRvcC1idXR0b25zLXNwYWNpbmc6IDZweDtcXG5cXG4vKlxcblxcdFNpZGViYXI6IHRvIGJlIHVzZWQgd2l0aGluICNjb250ZW50XFxuXFx0YXBwLWNvbnRlbnQgd2lsbCBiZSBzaHJpbmtlZCBwcm9wZXJseVxcbiovXFxuLmFwcC1zaWRlYmFyIHtcXG5cXHRwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7IC8vIFNhZmFyaSBzdXBwb3J0XFxuXFx0cG9zaXRpb246IHN0aWNreTtcXG5cXHR6LWluZGV4OiAxNTAwO1xcblxcdHRvcDogdmFyKC0taGVhZGVyLWhlaWdodCk7XFxuXFx0cmlnaHQ6IDA7XFxuXFx0ZGlzcGxheTogZmxleDtcXG5cXHRvdmVyZmxvdy14OiBoaWRkZW47XFxuXFx0b3ZlcmZsb3cteTogYXV0bztcXG5cXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcblxcdGZsZXgtc2hyaW5rOiAwO1xcblxcdHdpZHRoOiAyN3Z3O1xcblxcdG1pbi13aWR0aDogJHNpZGViYXItbWluLXdpZHRoO1xcblxcdG1heC13aWR0aDogJHNpZGViYXItbWF4LXdpZHRoO1xcblxcdGhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLWhlYWRlci1oZWlnaHQpKTtcXG5cXHRib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XFxuXFx0YmFja2dyb3VuZDogdmFyKC0tY29sb3ItbWFpbi1iYWNrZ3JvdW5kKTtcXG5cXHQuYXBwLXNpZGViYXItaGVhZGVyIHtcXG5cXHRcXHQ+IC5hcHAtc2lkZWJhcl9fY2xvc2Uge1xcblxcdFxcdFxcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG5cXHRcXHRcXHR6LWluZGV4OiAxMDA7XFxuXFx0XFx0XFx0dG9wOiAkdG9wLWJ1dHRvbnMtc3BhY2luZztcXG5cXHRcXHRcXHRyaWdodDogJHRvcC1idXR0b25zLXNwYWNpbmc7XFxuXFx0XFx0XFx0d2lkdGg6ICRjbGlja2FibGUtYXJlYTtcXG5cXHRcXHRcXHRoZWlnaHQ6ICRjbGlja2FibGUtYXJlYTtcXG5cXHRcXHRcXHRvcGFjaXR5OiAkb3BhY2l0eV9ub3JtYWw7XFxuXFx0XFx0XFx0Ym9yZGVyLXJhZGl1czogJGNsaWNrYWJsZS1hcmVhIC8gMjtcXG5cXHRcXHRcXHQmOmhvdmVyLFxcblxcdFxcdFxcdCY6YWN0aXZlLFxcblxcdFxcdFxcdCY6Zm9jdXMge1xcblxcdFxcdFxcdFxcdG9wYWNpdHk6ICRvcGFjaXR5X2Z1bGw7XFxuXFx0XFx0XFx0XFx0YmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1iYWNrZ3JvdW5kLWhvdmVyO1xcblxcdFxcdFxcdH1cXG5cXHRcXHR9XFxuXFxuXFx0XFx0Ly8gQ29tcGFjdCBtb2RlIG9ubHkgYWZmZWN0cyBhIHNpZGViYXIgd2l0aCBhIGZpZ3VyZVxcblxcdFxcdCYtLWNvbXBhY3QuYXBwLXNpZGViYXItaGVhZGVyLS13aXRoLWZpZ3VyZSB7XFxuXFx0XFx0XFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9faW5mbyB7XFxuXFx0XFx0XFx0XFx0ZmxleC1kaXJlY3Rpb246IHJvdztcXG5cXG5cXHRcXHRcXHRcXHQuYXBwLXNpZGViYXItaGVhZGVyX19maWd1cmUge1xcblxcdFxcdFxcdFxcdFxcdHotaW5kZXg6IDI7XFxuXFx0XFx0XFx0XFx0XFx0d2lkdGg6ICRkZXNjLWhlaWdodCArICRkZXNjLXZlcnRpY2FsLXBhZGRpbmc7XFxuXFx0XFx0XFx0XFx0XFx0aGVpZ2h0OiAkZGVzYy1oZWlnaHQgKyAkZGVzYy12ZXJ0aWNhbC1wYWRkaW5nO1xcblxcdFxcdFxcdFxcdFxcdG1hcmdpbjogJGRlc2MtdmVydGljYWwtcGFkZGluZyAvIDI7XFxuXFx0XFx0XFx0XFx0XFx0Ym9yZGVyLXJhZGl1czogM3B4O1xcblxcdFxcdFxcdFxcdFxcdGZsZXg6IDAgMCBhdXRvO1xcblxcdFxcdFxcdFxcdH1cXG5cXHRcXHRcXHRcXHQuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjIHtcXG5cXHRcXHRcXHRcXHRcXHRwYWRkaW5nLWxlZnQ6IDA7XFxuXFx0XFx0XFx0XFx0XFx0ZmxleDogMSAxIGF1dG87XFxuXFx0XFx0XFx0XFx0XFx0bWluLXdpZHRoOiAwO1xcblxcdFxcdFxcdFxcdFxcdHBhZGRpbmctcmlnaHQ6IDIgKiAkY2xpY2thYmxlLWFyZWEgKyAkdG9wLWJ1dHRvbnMtc3BhY2luZztcXG5cXG5cXHRcXHRcXHRcXHRcXHQmLmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzYy0td2l0aG91dC1hY3Rpb25zIHtcXG5cXHRcXHRcXHRcXHRcXHRcXHRwYWRkaW5nLXJpZ2h0OiAjeyRjbGlja2FibGUtYXJlYSArICR0b3AtYnV0dG9ucy1zcGFjaW5nfTtcXG5cXHRcXHRcXHRcXHRcXHR9XFxuXFxuXFx0XFx0XFx0XFx0XFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9fdGVydGlhcnktYWN0aW9ucyB7XFxuXFx0XFx0XFx0XFx0XFx0XFx0ei1pbmRleDogMzsgLy8gYWJvdmUgc3RhclxcblxcdFxcdFxcdFxcdFxcdFxcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG5cXHRcXHRcXHRcXHRcXHRcXHR0b3A6ICRkZXNjLXZlcnRpY2FsLXBhZGRpbmcgLyAyO1xcblxcdFxcdFxcdFxcdFxcdFxcdGxlZnQ6IC0xICogJGNsaWNrYWJsZS1hcmVhO1xcblxcdFxcdFxcdFxcdFxcdH1cXG5cXHRcXHRcXHRcXHRcXHQuYXBwLXNpZGViYXItaGVhZGVyX19tZW51IHtcXG5cXHRcXHRcXHRcXHRcXHRcXHR0b3A6ICR0b3AtYnV0dG9ucy1zcGFjaW5nO1xcblxcdFxcdFxcdFxcdFxcdFxcdHJpZ2h0OiAkY2xpY2thYmxlLWFyZWEgKyAkdG9wLWJ1dHRvbnMtc3BhY2luZzsgLy8gbGVmdCBvZiB0aGUgY2xvc2UgYnV0dG9uXFxuXFx0XFx0XFx0XFx0XFx0XFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuXFx0XFx0XFx0XFx0XFx0XFx0cG9zaXRpb246IGFic29sdXRlO1xcblxcdFxcdFxcdFxcdFxcdH1cXG5cXHRcXHRcXHRcXHR9XFxuXFx0XFx0XFx0fVxcblxcdFxcdH1cXG5cXG5cXHRcXHQvLyBzaWRlYmFyIHdpdGhvdXQgZmlndXJlXFxuXFx0XFx0Jjpub3QoLmFwcC1zaWRlYmFyLWhlYWRlci0td2l0aC1maWd1cmUpIHtcXG5cXHRcXHRcXHQvLyBhbGlnbiB0aGUgbWVudSB3aXRoIHRoZSBjbG9zZSBidXR0b25cXG5cXHRcXHRcXHQuYXBwLXNpZGViYXItaGVhZGVyX19tZW51IHtcXG5cXHRcXHRcXHRcXHRwb3NpdGlvbjogYWJzb2x1dGU7XFxuXFx0XFx0XFx0XFx0dG9wOiAkdG9wLWJ1dHRvbnMtc3BhY2luZztcXG5cXHRcXHRcXHRcXHRyaWdodDogJHRvcC1idXR0b25zLXNwYWNpbmcgKyAkY2xpY2thYmxlLWFyZWE7XFxuXFx0XFx0XFx0fVxcblxcdFxcdFxcdC8vIGluY3JlYXNlIHRoZSBwYWRkaW5nIHRvIG5vdCBvdmVybGFwIHRoZSBtZW51XFxuXFx0XFx0XFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzYyB7XFxuXFx0XFx0XFx0XFx0cGFkZGluZy1yaWdodDogI3skY2xpY2thYmxlLWFyZWEgKiAyICsgJHRvcC1idXR0b25zLXNwYWNpbmd9O1xcblxcblxcdFxcdFxcdFxcdCYuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjLS13aXRob3V0LWFjdGlvbnMge1xcblxcdFxcdFxcdFxcdFxcdHBhZGRpbmctcmlnaHQ6ICN7JGNsaWNrYWJsZS1hcmVhICsgJHRvcC1idXR0b25zLXNwYWNpbmd9O1xcblxcdFxcdFxcdFxcdH1cXG5cXHRcXHRcXHR9XFxuXFx0XFx0fVxcblxcblxcdFxcdC8vIHRoZSBjb250YWluZXIgd2l0aCB0aGUgZmlndXJlIGFuZCB0aGUgZGVzY3JpcHRpb25cXG5cXHRcXHQuYXBwLXNpZGViYXItaGVhZGVyX19pbmZvIHtcXG5cXHRcXHRcXHRkaXNwbGF5OiBmbGV4O1xcblxcdFxcdFxcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuXFx0XFx0fVxcblxcblxcdFxcdC8vIGhlYWRlciBiYWNrZ3JvdW5kXFxuXFx0XFx0Jl9fZmlndXJlIHtcXG5cXHRcXHRcXHR3aWR0aDogMTAwJTtcXG5cXHRcXHRcXHRoZWlnaHQ6IDI1MHB4O1xcblxcdFxcdFxcdG1heC1oZWlnaHQ6IDI1MHB4O1xcblxcdFxcdFxcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuXFx0XFx0XFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xcblxcdFxcdFxcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcXG5cXHRcXHRcXHQmLS13aXRoLWFjdGlvbiB7XFxuXFx0XFx0XFx0XFx0Y3Vyc29yOiBwb2ludGVyO1xcblxcdFxcdFxcdH1cXG5cXHRcXHR9XFxuXFxuXFx0XFx0Ly8gZGVzY3JpcHRpb25cXG5cXHRcXHQmX19kZXNjIHtcXG5cXHRcXHRcXHRwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFx0XFx0XFx0ZGlzcGxheTogZmxleDtcXG5cXHRcXHRcXHRmbGV4LWRpcmVjdGlvbjogcm93O1xcblxcdFxcdFxcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xcblxcdFxcdFxcdHBhZGRpbmc6ICN7JGRlc2MtdmVydGljYWwtcGFkZGluZ30gI3skdG9wLWJ1dHRvbnMtc3BhY2luZ30gI3skZGVzYy12ZXJ0aWNhbC1wYWRkaW5nfSAjeyRkZXNjLXZlcnRpY2FsLXBhZGRpbmcgLyAyfTtcXG5cXG5cXHRcXHRcXHQvLyBjdXN0b20gb3ZlcnJpZGVzXFxuXFx0XFx0XFx0Ji0td2l0aC10ZXJ0aWFyeS1hY3Rpb24ge1xcblxcdFxcdFxcdFxcdHBhZGRpbmctbGVmdDogMDtcXG5cXHRcXHRcXHR9XFxuXFxuXFx0XFx0XFx0Ji0tZWRpdGFibGUgLmFwcC1zaWRlYmFyLWhlYWRlcl9fbWFpbnRpdGxlLWZvcm0sXFxuXFx0XFx0XFx0Ji0td2l0aC1zdWJ0aXRsZS0tZWRpdGFibGUgLmFwcC1zaWRlYmFyLWhlYWRlcl9fbWFpbnRpdGxlLWZvcm0ge1xcblxcdFxcdFxcdFxcdG1hcmdpbi10b3A6IC0ycHg7XFxuXFx0XFx0XFx0XFx0bWFyZ2luLWJvdHRvbTogLTJweDtcXG5cXHRcXHRcXHR9XFxuXFxuXFx0XFx0XFx0Ji0td2l0aC1zdWJ0aXRsZS0tZWRpdGFibGUgLmFwcC1zaWRlYmFyLWhlYWRlcl9fc3VidGl0bGUge1xcblxcdFxcdFxcdFxcdG1hcmdpbi10b3A6IC0ycHg7XFxuXFx0XFx0XFx0fVxcblxcblxcdFxcdFxcdC5hcHAtc2lkZWJhci1oZWFkZXJfX3RlcnRpYXJ5LWFjdGlvbnMge1xcblxcdFxcdFxcdFxcdGRpc3BsYXk6IGZsZXg7XFxuXFx0XFx0XFx0XFx0aGVpZ2h0OiAkY2xpY2thYmxlLWFyZWE7XFxuXFx0XFx0XFx0XFx0d2lkdGg6ICRjbGlja2FibGUtYXJlYTtcXG5cXHRcXHRcXHRcXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG5cXHRcXHRcXHRcXHRmbGV4OiAwIDAgYXV0bztcXG5cXHRcXHRcXHR9XFxuXFxuXFx0XFx0XFx0Ly8gdGl0bGVzXFxuXFx0XFx0XFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9fdGl0bGUtY29udGFpbmVyIHtcXG5cXHRcXHRcXHRcXHRmbGV4OiAxIDEgYXV0bztcXG5cXHRcXHRcXHRcXHRkaXNwbGF5OiBmbGV4O1xcblxcdFxcdFxcdFxcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuXFx0XFx0XFx0XFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuXFx0XFx0XFx0XFx0bWluLXdpZHRoOiAwO1xcblxcblxcdFxcdFxcdFxcdC8vIG1haW4gdGl0bGVcXG5cXHRcXHRcXHRcXHQuYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGUge1xcblxcdFxcdFxcdFxcdFxcdHBhZGRpbmc6IDA7XFxuXFx0XFx0XFx0XFx0XFx0bWluLWhlaWdodDogMzBweDtcXG5cXHRcXHRcXHRcXHRcXHRmb250LXNpemU6IDIwcHg7XFxuXFx0XFx0XFx0XFx0XFx0bGluZS1oZWlnaHQ6ICRkZXNjLXRpdGxlLWhlaWdodDtcXG5cXG5cXHRcXHRcXHRcXHRcXHQvLyBOZWVkcyAnZGVlcCcgYXMgdGhlIGxpbmsgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBsaW5raWZ5IGRpcmVjdGl2ZVxcblxcdFxcdFxcdFxcdFxcdCY6OnYtZGVlcCAubGlua2lmaWVkIHtcXG5cXHRcXHRcXHRcXHRcXHRcXHRjdXJzb3I6IHBvaW50ZXI7XFxuXFx0XFx0XFx0XFx0XFx0XFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuXFx0XFx0XFx0XFx0XFx0fVxcblxcdFxcdFxcdFxcdH1cXG5cXG5cXHRcXHRcXHRcXHQuYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGUsXFxuXFx0XFx0XFx0XFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9fc3VidGl0bGUge1xcblxcdFxcdFxcdFxcdFxcdG92ZXJmbG93OiBoaWRkZW47XFxuXFx0XFx0XFx0XFx0XFx0d2lkdGg6IDEwMCU7XFxuXFx0XFx0XFx0XFx0XFx0bWFyZ2luOiAwO1xcblxcdFxcdFxcdFxcdFxcdHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuXFx0XFx0XFx0XFx0XFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuXFx0XFx0XFx0XFx0fVxcblxcblxcdFxcdFxcdFxcdC8vIHN1YnRpdGxlXFxuXFx0XFx0XFx0XFx0LmFwcC1zaWRlYmFyLWhlYWRlcl9fc3VidGl0bGUge1xcblxcdFxcdFxcdFxcdFxcdHBhZGRpbmc6IDA7XFxuXFx0XFx0XFx0XFx0XFx0b3BhY2l0eTogJG9wYWNpdHlfbm9ybWFsO1xcblxcdFxcdFxcdFxcdFxcdGZvbnQtc2l6ZTogdmFyKC0tZGVmYXVsdC1mb250LXNpemUpO1xcblxcdFxcdFxcdFxcdH1cXG5cXG5cXHRcXHRcXHRcXHQuYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGUtZm9ybSB7XFxuXFx0XFx0XFx0XFx0XFx0ZGlzcGxheTogZmxleDtcXG5cXHRcXHRcXHRcXHRcXHRtYXJnaW4tbGVmdDogLTcuNXB4O1xcblxcdFxcdFxcdFxcdFxcdCYgLmljb24tY29uZmlybSB7XFxuXFx0XFx0XFx0XFx0XFx0XFx0bWFyZ2luOiAwO1xcblxcdFxcdFxcdFxcdFxcdH1cXG5cXG5cXHRcXHRcXHRcXHRcXHRpbnB1dC5hcHAtc2lkZWJhci1oZWFkZXJfX21haW50aXRsZS1pbnB1dCB7XFxuXFx0XFx0XFx0XFx0XFx0XFx0ZmxleDogMSAxIGF1dG87XFxuXFx0XFx0XFx0XFx0XFx0XFx0bWFyZ2luOiAwO1xcblxcdFxcdFxcdFxcdFxcdFxcdHBhZGRpbmc6ICRkZXNjLWlucHV0LXBhZGRpbmc7XFxuXFx0XFx0XFx0XFx0XFx0XFx0Zm9udC1zaXplOiAyMHB4O1xcblxcdFxcdFxcdFxcdFxcdFxcdGZvbnQtd2VpZ2h0OiBib2xkO1xcblxcdFxcdFxcdFxcdFxcdH1cXG5cXHRcXHRcXHRcXHR9XFxuXFx0XFx0XFx0fVxcblxcblxcdFxcdFxcdC8vIGZhdm91cml0ZVxcblxcdFxcdFxcdC5hcHAtc2lkZWJhci1oZWFkZXJfX3N0YXIge1xcblxcdFxcdFxcdFxcdGRpc3BsYXk6IGJsb2NrO1xcblxcdFxcdFxcdFxcdHdpZHRoOiAkY2xpY2thYmxlLWFyZWE7XFxuXFx0XFx0XFx0XFx0aGVpZ2h0OiAkY2xpY2thYmxlLWFyZWE7XFxuXFx0XFx0XFx0XFx0cGFkZGluZzogJGljb24tbWFyZ2luO1xcblxcdFxcdFxcdH1cXG5cXHRcXHRcXHQvLyBtYWluIG1lbnVcXG5cXHRcXHRcXHQuYXBwLXNpZGViYXItaGVhZGVyX19tZW51IHtcXG5cXHRcXHRcXHRcXHRoZWlnaHQ6ICRjbGlja2FibGUtYXJlYTtcXG5cXHRcXHRcXHRcXHR3aWR0aDogJGNsaWNrYWJsZS1hcmVhO1xcblxcdFxcdFxcdFxcdGJvcmRlci1yYWRpdXM6ICRjbGlja2FibGUtYXJlYSAvIDI7XFxuXFx0XFx0XFx0XFx0YmFja2dyb3VuZC1jb2xvcjogJGFjdGlvbi1iYWNrZ3JvdW5kLWhvdmVyO1xcblxcdFxcdFxcdH1cXG5cXHRcXHR9XFxuXFxuXFx0XFx0Ly8gc2lkZWJhciBkZXNjcmlwdGlvbiBzbG90XFxuXFx0XFx0Jl9fZGVzY3JpcHRpb24ge1xcblxcdFxcdFxcdGRpc3BsYXk6IGZsZXg7XFxuXFx0XFx0XFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcXG5cXHRcXHRcXHRtYXJnaW46IDAgMTBweDtcXG5cXHRcXHR9XFxuXFx0fVxcbn1cXG5cXG4uc2xpZGUtcmlnaHQtbGVhdmUtYWN0aXZlLFxcbi5zbGlkZS1yaWdodC1lbnRlci1hY3RpdmUge1xcblxcdHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLWFuaW1hdGlvbi1xdWljayk7XFxuXFx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogbWF4LXdpZHRoLCBtaW4td2lkdGg7XFxufVxcblxcbi5zbGlkZS1yaWdodC1lbnRlci10byxcXG4uc2xpZGUtcmlnaHQtbGVhdmUge1xcblxcdG1pbi13aWR0aDogJHNpZGViYXItbWluLXdpZHRoO1xcblxcdG1heC13aWR0aDogJHNpZGViYXItbWF4LXdpZHRoO1xcbn1cXG5cXG4uc2xpZGUtcmlnaHQtZW50ZXIsXFxuLnNsaWRlLXJpZ2h0LWxlYXZlLXRvIHtcXG5cXHRtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcXG5cXHRtYXgtd2lkdGg6IDAgIWltcG9ydGFudDtcXG59XFxuXCIsXCIvKipcXG4gKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOSBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cXG4gKlxcbiAqIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXFxuICpcXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cXG4gKlxcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXFxuICpcXG4gKi9cXG5cXG4vLyBodHRwczovL3V4cGxhbmV0Lm9yZy83LXJ1bGVzLWZvci1tb2JpbGUtdWktYnV0dG9uLWRlc2lnbi1lOWNmMmVhNTQ1NTZcXG4vLyByZWNvbW1lbmRlZCBpcyA0OHB4XFxuLy8gNDRweCBpcyB3aGF0IHdlIGNob29zZSBhbmQgaGF2ZSB2ZXJ5IGdvb2QgdmlzdWFsLXRvLXVzYWJpbGl0eSByYXRpb1xcbiRjbGlja2FibGUtYXJlYTogNDRweDtcXG5cXG4vLyBiYWNrZ3JvdW5kIGljb24gc2l6ZVxcbi8vIGFsc28gdXNlZCBmb3IgdGhlIHNjc3MgaWNvbiBmb250XFxuJGljb24tc2l6ZTogMTZweDtcXG5cXG4vLyBpY29uIHBhZGRpbmcgZm9yIGEgJGNsaWNrYWJsZS1hcmVhIHdpZHRoIGFuZCBhICRpY29uLXNpemUgaWNvblxcbi8vICggNDRweCAtIDE2cHggKSAvIDJcXG4kaWNvbi1tYXJnaW46ICgkY2xpY2thYmxlLWFyZWEgLSAkaWNvbi1zaXplKSAvIDI7XFxuXFxuLy8gdHJhbnNwYXJlbmN5IGJhY2tncm91bmQgZm9yIGljb25zXFxuJGljb24tZm9jdXMtYmc6IHJnYmEoMTI3LCAxMjcsIDEyNywgLjI1KTtcXG5cXG4vLyBwb3BvdmVybWVudSBhcnJvdyB3aWR0aCBmcm9tIHRoZSB0cmlhbmdsZSBjZW50ZXJcXG4kYXJyb3ctd2lkdGg6IDlweDtcXG5cXG4vLyBvcGFjaXRpZXNcXG4kb3BhY2l0eV9kaXNhYmxlZDogLjU7XFxuJG9wYWNpdHlfbm9ybWFsOiAuNztcXG4kb3BhY2l0eV9mdWxsOiAxO1xcblxcbi8vIG1lbnUgcm91bmQgYmFja2dyb3VuZCBob3ZlciBmZWVkYmFja1xcbi8vIGdvb2QgbG9va2luZyBvbiBkYXJrIEFORCB3aGl0ZSBiZ1xcbiRhY3Rpb24tYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgxMjcsIDEyNywgMTI3LCAuMjUpO1xcblxcbi8vIHZhcmlvdXMgc3RydWN0dXJlIGRhdGEgdXNlZCBpbiB0aGUgXFxuLy8gYEFwcE5hdmlnYXRpb25gIGNvbXBvbmVudFxcbiRoZWFkZXItaGVpZ2h0OiA1MHB4O1xcbiRuYXZpZ2F0aW9uLXdpZHRoOiAzMDBweDtcXG5cXG4vLyBtb2JpbGUgYnJlYWtwb2ludFxcbiRicmVha3BvaW50LW1vYmlsZTogMTAyNHB4O1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBjaGFyc2V0IFxcXCJVVEYtOFxcXCI7XFxuLyoqXFxuICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTkgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxcbiAqXFxuICogQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cXG4gKlxcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XFxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcXG4gKiBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXFxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXFxuICpcXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxcbiAqXFxuICovXFxuLmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzY3JpcHRpb24gYnV0dG9uLCAuYXBwLXNpZGViYXItaGVhZGVyX19kZXNjcmlwdGlvbiAuYnV0dG9uLFxcbi5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2NyaXB0aW9uIGlucHV0W3R5cGU9J2J1dHRvbiddLFxcbi5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2NyaXB0aW9uIGlucHV0W3R5cGU9J3N1Ym1pdCddLFxcbi5hcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2NyaXB0aW9uIGlucHV0W3R5cGU9J3Jlc2V0J10ge1xcbiAgcGFkZGluZzogNnB4IDIycHg7XFxufVxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL0FwcFNpZGViYXIudnVlXCIsXCJ3ZWJwYWNrOi8vLi8uLi8uLi9hc3NldHMvdmFyaWFibGVzLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsZ0JBQWdCO0FDQWhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFRHFCRTtBQSt2QkY7Ozs7RUFLRSxpQkFBaUI7QUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIkc2NvcGVfdmVyc2lvbjpcXFwiODRjNDYxZlxcXCI7IEBpbXBvcnQgJ3ZhcmlhYmxlcyc7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuLy8gISBzbG90cyBzcGVjaWZpYyBkZXNpZ25zLCBjYW5ub3QgYmUgc2NvcGVkXFxuLy8gaWYgYW55IGJ1dHRvbiBpbnNpZGUgdGhlIGRlc2NyaXB0aW9uIHNsb3QsIGluY3JlYXNlIHZpc3VhbCBwYWRkaW5nXFxuLmFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzY3JpcHRpb24ge1xcblxcdGJ1dHRvbiwgLmJ1dHRvbixcXG5cXHRpbnB1dFt0eXBlPSdidXR0b24nXSxcXG5cXHRpbnB1dFt0eXBlPSdzdWJtaXQnXSxcXG5cXHRpbnB1dFt0eXBlPSdyZXNldCddIHtcXG5cXHRcXHRwYWRkaW5nOiA2cHggMjJweDtcXG5cXHR9XFxufVxcblxcblwiLFwiLyoqXFxuICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTkgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxcbiAqXFxuICogQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cXG4gKlxcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XFxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcXG4gKiBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXFxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXFxuICpcXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxcbiAqXFxuICovXFxuXFxuLy8gaHR0cHM6Ly91eHBsYW5ldC5vcmcvNy1ydWxlcy1mb3ItbW9iaWxlLXVpLWJ1dHRvbi1kZXNpZ24tZTljZjJlYTU0NTU2XFxuLy8gcmVjb21tZW5kZWQgaXMgNDhweFxcbi8vIDQ0cHggaXMgd2hhdCB3ZSBjaG9vc2UgYW5kIGhhdmUgdmVyeSBnb29kIHZpc3VhbC10by11c2FiaWxpdHkgcmF0aW9cXG4kY2xpY2thYmxlLWFyZWE6IDQ0cHg7XFxuXFxuLy8gYmFja2dyb3VuZCBpY29uIHNpemVcXG4vLyBhbHNvIHVzZWQgZm9yIHRoZSBzY3NzIGljb24gZm9udFxcbiRpY29uLXNpemU6IDE2cHg7XFxuXFxuLy8gaWNvbiBwYWRkaW5nIGZvciBhICRjbGlja2FibGUtYXJlYSB3aWR0aCBhbmQgYSAkaWNvbi1zaXplIGljb25cXG4vLyAoIDQ0cHggLSAxNnB4ICkgLyAyXFxuJGljb24tbWFyZ2luOiAoJGNsaWNrYWJsZS1hcmVhIC0gJGljb24tc2l6ZSkgLyAyO1xcblxcbi8vIHRyYW5zcGFyZW5jeSBiYWNrZ3JvdW5kIGZvciBpY29uc1xcbiRpY29uLWZvY3VzLWJnOiByZ2JhKDEyNywgMTI3LCAxMjcsIC4yNSk7XFxuXFxuLy8gcG9wb3Zlcm1lbnUgYXJyb3cgd2lkdGggZnJvbSB0aGUgdHJpYW5nbGUgY2VudGVyXFxuJGFycm93LXdpZHRoOiA5cHg7XFxuXFxuLy8gb3BhY2l0aWVzXFxuJG9wYWNpdHlfZGlzYWJsZWQ6IC41O1xcbiRvcGFjaXR5X25vcm1hbDogLjc7XFxuJG9wYWNpdHlfZnVsbDogMTtcXG5cXG4vLyBtZW51IHJvdW5kIGJhY2tncm91bmQgaG92ZXIgZmVlZGJhY2tcXG4vLyBnb29kIGxvb2tpbmcgb24gZGFyayBBTkQgd2hpdGUgYmdcXG4kYWN0aW9uLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoMTI3LCAxMjcsIDEyNywgLjI1KTtcXG5cXG4vLyB2YXJpb3VzIHN0cnVjdHVyZSBkYXRhIHVzZWQgaW4gdGhlIFxcbi8vIGBBcHBOYXZpZ2F0aW9uYCBjb21wb25lbnRcXG4kaGVhZGVyLWhlaWdodDogNTBweDtcXG4kbmF2aWdhdGlvbi13aWR0aDogMzAwcHg7XFxuXFxuLy8gbW9iaWxlIGJyZWFrcG9pbnRcXG4kYnJlYWtwb2ludC1tb2JpbGU6IDEwMjRweDtcXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCJAY2hhcnNldCBcXFwiVVRGLThcXFwiO1xcbi8qKlxcbiAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDE5IEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cXG4gKlxcbiAqIEBhdXRob3IgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxcbiAqXFxuICogQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXFxuICpcXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXFxuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlXFxuICogTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cXG4gKlxcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXFxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxcbiAqXFxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXFxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cXG4gKlxcbiAqL1xcbi5hcHAtc2lkZWJhci10YWJzW2RhdGEtdi01NzcyZTQ0ZF0ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgZmxleDogMSAxIDEwMCU7XFxufVxcbi5hcHAtc2lkZWJhci10YWJzX19uYXZbZGF0YS12LTU3NzJlNDRkXSB7XFxuICAgIG1hcmdpbi10b3A6IDEwcHg7XFxufVxcbi5hcHAtc2lkZWJhci10YWJzX19uYXYgdWxbZGF0YS12LTU3NzJlNDRkXSB7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XFxufVxcbi5hcHAtc2lkZWJhci10YWJzX190YWJbZGF0YS12LTU3NzJlNDRkXSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmbGV4OiAxIDE7XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4uYXBwLXNpZGViYXItdGFic19fdGFiIGFbZGF0YS12LTU3NzJlNDRkXSB7XFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgcGFkZGluZzogMjVweCA1cHggNXB4IDVweDtcXG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1hbmltYXRpb24tcXVpY2spLCBvcGFjaXR5IHZhcigtLWFuaW1hdGlvbi1xdWljayksIGJvcmRlci1jb2xvciB2YXIoLS1hbmltYXRpb24tcXVpY2spO1xcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgICAgIG9wYWNpdHk6IDAuNztcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItbWFpbi10ZXh0KTtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcXG59XFxuLmFwcC1zaWRlYmFyLXRhYnNfX3RhYiBhW2RhdGEtdi01NzcyZTQ0ZF06aG92ZXIsIC5hcHAtc2lkZWJhci10YWJzX190YWIgYVtkYXRhLXYtNTc3MmU0NGRdOmZvY3VzLCAuYXBwLXNpZGViYXItdGFic19fdGFiIGFbZGF0YS12LTU3NzJlNDRkXTphY3RpdmUsIC5hcHAtc2lkZWJhci10YWJzX190YWIgYS5hY3RpdmVbZGF0YS12LTU3NzJlNDRkXSB7XFxuICAgICAgICBvcGFjaXR5OiAxO1xcbn1cXG4uYXBwLXNpZGViYXItdGFic19fdGFiIGE6aG92ZXIgLmFwcC1zaWRlYmFyLXRhYnNfX3RhYi1pY29uW2RhdGEtdi01NzcyZTQ0ZF0sIC5hcHAtc2lkZWJhci10YWJzX190YWIgYTpmb2N1cyAuYXBwLXNpZGViYXItdGFic19fdGFiLWljb25bZGF0YS12LTU3NzJlNDRkXSwgLmFwcC1zaWRlYmFyLXRhYnNfX3RhYiBhOmFjdGl2ZSAuYXBwLXNpZGViYXItdGFic19fdGFiLWljb25bZGF0YS12LTU3NzJlNDRkXSwgLmFwcC1zaWRlYmFyLXRhYnNfX3RhYiBhLmFjdGl2ZSAuYXBwLXNpZGViYXItdGFic19fdGFiLWljb25bZGF0YS12LTU3NzJlNDRkXSB7XFxuICAgICAgICAgIG9wYWNpdHk6IDE7XFxufVxcbi5hcHAtc2lkZWJhci10YWJzX190YWIgYVtkYXRhLXYtNTc3MmU0NGRdOm5vdCguYWN0aXZlKTpob3ZlciwgLmFwcC1zaWRlYmFyLXRhYnNfX3RhYiBhW2RhdGEtdi01NzcyZTQ0ZF06bm90KC5hY3RpdmUpOmZvY3VzIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtZGFya2VyKTtcXG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHZhcigtLWNvbG9yLWJhY2tncm91bmQtZGFya2VyKTtcXG59XFxuLmFwcC1zaWRlYmFyLXRhYnNfX3RhYiBhLmFjdGl2ZVtkYXRhLXYtNTc3MmU0NGRdIHtcXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWxpZ2h0KTtcXG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgdmFyKC0tY29sb3ItdGV4dC1saWdodCk7XFxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLmFwcC1zaWRlYmFyLXRhYnNfX3RhYiBhW2RhdGEtdi01NzcyZTQ0ZF06Zm9jdXMge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1lbGVtZW50KTtcXG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHZhcigtLWNvbG9yLXByaW1hcnktZWxlbWVudCk7XFxufVxcbi5hcHAtc2lkZWJhci10YWJzX190YWItaWNvbltkYXRhLXYtNTc3MmU0NGRdIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDI1cHg7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tYW5pbWF0aW9uLXF1aWNrKTtcXG4gICAgb3BhY2l0eTogMC43O1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgOHB4O1xcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHg7XFxufVxcbi5hcHAtc2lkZWJhci10YWJzX19jb250ZW50W2RhdGEtdi01NzcyZTQ0ZF0ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIGhlaWdodDogMTAwJTtcXG59XFxuLmFwcC1zaWRlYmFyLXRhYnNfX2NvbnRlbnQtLW11bHRpcGxlW2RhdGEtdi01NzcyZTQ0ZF0gPiA6bm90KHNlY3Rpb24pIHtcXG4gICAgICBkaXNwbGF5OiBub25lO1xcbn1cXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9BcHBTaWRlYmFyVGFicy52dWVcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2Fzc2V0cy92YXJpYWJsZXMuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQSxnQkFBZ0I7QUNBaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VEcUJFO0FBa1BGO0VBQ0MsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixhQUFhO0VBQ2IsY0FBYztBQUFBO0FBRWQ7SUFDQyxnQkFBZ0I7QUFBQTtBQURoQjtNQUdDLGFBQWE7TUFDYix3QkFBd0I7QUFBQTtBQUcxQjtJQUNDLGNBQWM7SUFDZCxTQUFTO0lBQ1QsWUFBWTtJQUNaLGtCQUFrQjtBQUFBO0FBSmxCO01BTUMsa0JBQWtCO01BQ2xCLGNBQWM7TUFDZCxnQkFBZ0I7TUFDaEIseUJBQXlCO01BQ3pCLDZHQUE2RztNQUM3RyxrQkFBa0I7TUFDbEIsbUJBQW1CO01BQ25CLHVCQUF1QjtNQUN2QixZQ3ZQZ0I7TUR3UGhCLDZCQUE2QjtNQUM3Qiw0Q0FBNEM7QUFBQTtBQWhCN0M7UUFzQkUsVUM5UFk7QUFBQTtBRHdPZDtVQXdCRyxVQ2hRVztBQUFBO0FEd09kO1FBNkJFLG1EQUFtRDtRQUNuRCx5REFBeUQ7QUFBQTtBQTlCM0Q7UUFpQ0UsOEJBQThCO1FBQzlCLDRDQUE0QztRQUM1QyxrREFBa0Q7UUFDbEQsaUJBQWlCO0FBQUE7QUFwQ25CO1FBMENFLGlEQUFpRDtRQUNqRCx1REFBdUQ7QUFBQTtBQUsxRDtJQUNDLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7SUFDWCxZQUFZO0lBQ1osMENBQTBDO0lBQzFDLFlDaFNpQjtJRGlTakIsK0JBQStCO0lBQy9CLHFCQUFxQjtBQUFBO0FBR3RCO0lBQ0Msa0JBQWtCO0lBRWxCLGFBQWE7SUFDYixZQUFZO0FBQUE7QUFHWjtNQUNDLGFBQWE7QUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIkc2NvcGVfdmVyc2lvbjpcXFwiODRjNDYxZlxcXCI7IEBpbXBvcnQgJ3ZhcmlhYmxlcyc7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuLmFwcC1zaWRlYmFyLXRhYnMge1xcblxcdGRpc3BsYXk6IGZsZXg7XFxuXFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG5cXHRtaW4taGVpZ2h0OiAwO1xcblxcdGZsZXg6IDEgMSAxMDAlO1xcblxcblxcdCZfX25hdiB7XFxuXFx0XFx0bWFyZ2luLXRvcDogMTBweDtcXG5cXHRcXHR1bCB7XFxuXFx0XFx0XFx0ZGlzcGxheTogZmxleDtcXG5cXHRcXHRcXHRqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XFxuXFx0XFx0fVxcblxcdH1cXG5cXHQmX190YWIge1xcblxcdFxcdGRpc3BsYXk6IGJsb2NrO1xcblxcdFxcdGZsZXg6IDEgMTtcXG5cXHRcXHRtaW4td2lkdGg6IDA7XFxuXFx0XFx0dGV4dC1hbGlnbjogY2VudGVyO1xcblxcdFxcdGEge1xcblxcdFxcdFxcdHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXHRcXHRcXHRkaXNwbGF5OiBibG9jaztcXG5cXHRcXHRcXHRvdmVyZmxvdzogaGlkZGVuO1xcblxcdFxcdFxcdHBhZGRpbmc6IDI1cHggNXB4IDVweCA1cHg7XFxuXFx0XFx0XFx0dHJhbnNpdGlvbjogY29sb3IgdmFyKC0tYW5pbWF0aW9uLXF1aWNrKSwgb3BhY2l0eSB2YXIoLS1hbmltYXRpb24tcXVpY2spLCBib3JkZXItY29sb3IgdmFyKC0tYW5pbWF0aW9uLXF1aWNrKTtcXG5cXHRcXHRcXHR0ZXh0LWFsaWduOiBjZW50ZXI7XFxuXFx0XFx0XFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcXG5cXHRcXHRcXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG5cXHRcXHRcXHRvcGFjaXR5OiAkb3BhY2l0eV9ub3JtYWw7XFxuXFx0XFx0XFx0Y29sb3I6IHZhcigtLWNvbG9yLW1haW4tdGV4dCk7XFxuXFx0XFx0XFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XFxuXFxuXFx0XFx0XFx0Jjpob3ZlcixcXG5cXHRcXHRcXHQmOmZvY3VzLFxcblxcdFxcdFxcdCY6YWN0aXZlLFxcblxcdFxcdFxcdCYuYWN0aXZlIHtcXG5cXHRcXHRcXHRcXHRvcGFjaXR5OiAkb3BhY2l0eV9mdWxsO1xcblxcdFxcdFxcdFxcdC5hcHAtc2lkZWJhci10YWJzX190YWItaWNvbiB7XFxuXFx0XFx0XFx0XFx0XFx0b3BhY2l0eTogJG9wYWNpdHlfZnVsbDtcXG5cXHRcXHRcXHRcXHR9XFxuXFx0XFx0XFx0fVxcblxcdFxcdFxcdCY6bm90KC5hY3RpdmUpOmhvdmVyLFxcblxcdFxcdFxcdCY6bm90KC5hY3RpdmUpOmZvY3VzIHtcXG5cXHRcXHRcXHRcXHRib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWRhcmtlcik7XFxuXFx0XFx0XFx0XFx0Ym94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgdmFyKC0tY29sb3ItYmFja2dyb3VuZC1kYXJrZXIpO1xcblxcdFxcdFxcdH1cXG5cXHRcXHRcXHQmLmFjdGl2ZSB7XFxuXFx0XFx0XFx0XFx0Y29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xcblxcdFxcdFxcdFxcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xcblxcdFxcdFxcdFxcdGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHZhcigtLWNvbG9yLXRleHQtbGlnaHQpO1xcblxcdFxcdFxcdFxcdGZvbnQtd2VpZ2h0OiBib2xkO1xcblxcdFxcdFxcdH1cXG5cXHRcXHRcXHQvLyBkaWZmZXJlbnRpYXRlIHRoZSB0d28gZm9yIGFjY2Vzc2liaWxpdHkgcHVycG9zZVxcblxcdFxcdFxcdC8vIG1ha2Ugc3VyZSB0aGUgdXNlciBrbm93cyBzaGUncyBmb2N1c2luZyB0aGUgbmF2aWdhdGlvblxcblxcdFxcdFxcdC8vIGFuZCBjYW4gdXNlIGFycm93cy9ob21lL3BhZ2V1cC4uLlxcblxcdFxcdFxcdCY6Zm9jdXMge1xcblxcdFxcdFxcdFxcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZWxlbWVudCk7XFxuXFx0XFx0XFx0XFx0Ym94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgdmFyKC0tY29sb3ItcHJpbWFyeS1lbGVtZW50KTtcXG5cXHRcXHRcXHR9XFxuXFx0XFx0fVxcblxcdH1cXG5cXG5cXHQmX190YWItaWNvbiB7XFxuXFx0XFx0cG9zaXRpb246IGFic29sdXRlO1xcblxcdFxcdHRvcDogMDtcXG5cXHRcXHRsZWZ0OiAwO1xcblxcdFxcdHdpZHRoOiAxMDAlO1xcblxcdFxcdGhlaWdodDogMjVweDtcXG5cXHRcXHR0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLWFuaW1hdGlvbi1xdWljayk7XFxuXFx0XFx0b3BhY2l0eTogJG9wYWNpdHlfbm9ybWFsO1xcblxcdFxcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciA4cHg7XFxuXFx0XFx0YmFja2dyb3VuZC1zaXplOiAxNnB4O1xcblxcdH1cXG5cXG5cXHQmX19jb250ZW50IHtcXG5cXHRcXHRwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFx0XFx0Ly8gdGFrZSBmdWxsIGF2YWlsYWJsZSBoZWlnaHRcXG5cXHRcXHRtaW4taGVpZ2h0OiAwO1xcblxcdFxcdGhlaWdodDogMTAwJTtcXG5cXHRcXHQvLyBmb3JjZSB0aGUgdXNlIG9mIHRoZSB0YWIgY29tcG9uZW50IGlmIG1vcmUgdGhhbiBvbmUgdGFiXFxuXFx0XFx0Ly8geW91IGNhbiBqdXN0IHB1dCByYXcgY29udGVudCBpZiB5b3UgZG9uJ3QgdXNlIHRhYnNcXG5cXHRcXHQmLS1tdWx0aXBsZSA+IDpub3Qoc2VjdGlvbikge1xcblxcdFxcdFxcdGRpc3BsYXk6IG5vbmU7XFxuXFx0XFx0fVxcblxcdH1cXG59XFxuXCIsXCIvKipcXG4gKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOSBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cXG4gKlxcbiAqIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXFxuICpcXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cXG4gKlxcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXFxuICpcXG4gKi9cXG5cXG4vLyBodHRwczovL3V4cGxhbmV0Lm9yZy83LXJ1bGVzLWZvci1tb2JpbGUtdWktYnV0dG9uLWRlc2lnbi1lOWNmMmVhNTQ1NTZcXG4vLyByZWNvbW1lbmRlZCBpcyA0OHB4XFxuLy8gNDRweCBpcyB3aGF0IHdlIGNob29zZSBhbmQgaGF2ZSB2ZXJ5IGdvb2QgdmlzdWFsLXRvLXVzYWJpbGl0eSByYXRpb1xcbiRjbGlja2FibGUtYXJlYTogNDRweDtcXG5cXG4vLyBiYWNrZ3JvdW5kIGljb24gc2l6ZVxcbi8vIGFsc28gdXNlZCBmb3IgdGhlIHNjc3MgaWNvbiBmb250XFxuJGljb24tc2l6ZTogMTZweDtcXG5cXG4vLyBpY29uIHBhZGRpbmcgZm9yIGEgJGNsaWNrYWJsZS1hcmVhIHdpZHRoIGFuZCBhICRpY29uLXNpemUgaWNvblxcbi8vICggNDRweCAtIDE2cHggKSAvIDJcXG4kaWNvbi1tYXJnaW46ICgkY2xpY2thYmxlLWFyZWEgLSAkaWNvbi1zaXplKSAvIDI7XFxuXFxuLy8gdHJhbnNwYXJlbmN5IGJhY2tncm91bmQgZm9yIGljb25zXFxuJGljb24tZm9jdXMtYmc6IHJnYmEoMTI3LCAxMjcsIDEyNywgLjI1KTtcXG5cXG4vLyBwb3BvdmVybWVudSBhcnJvdyB3aWR0aCBmcm9tIHRoZSB0cmlhbmdsZSBjZW50ZXJcXG4kYXJyb3ctd2lkdGg6IDlweDtcXG5cXG4vLyBvcGFjaXRpZXNcXG4kb3BhY2l0eV9kaXNhYmxlZDogLjU7XFxuJG9wYWNpdHlfbm9ybWFsOiAuNztcXG4kb3BhY2l0eV9mdWxsOiAxO1xcblxcbi8vIG1lbnUgcm91bmQgYmFja2dyb3VuZCBob3ZlciBmZWVkYmFja1xcbi8vIGdvb2QgbG9va2luZyBvbiBkYXJrIEFORCB3aGl0ZSBiZ1xcbiRhY3Rpb24tYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgxMjcsIDEyNywgMTI3LCAuMjUpO1xcblxcbi8vIHZhcmlvdXMgc3RydWN0dXJlIGRhdGEgdXNlZCBpbiB0aGUgXFxuLy8gYEFwcE5hdmlnYXRpb25gIGNvbXBvbmVudFxcbiRoZWFkZXItaGVpZ2h0OiA1MHB4O1xcbiRuYXZpZ2F0aW9uLXdpZHRoOiAzMDBweDtcXG5cXG4vLyBtb2JpbGUgYnJlYWtwb2ludFxcbiRicmVha3BvaW50LW1vYmlsZTogMTAyNHB4O1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBjaGFyc2V0IFxcXCJVVEYtOFxcXCI7XFxuLyoqXFxuICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTkgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxcbiAqXFxuICogQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cXG4gKlxcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XFxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcXG4gKiBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXFxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXFxuICpcXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxcbiAqXFxuICovXFxuLmVtcHR5LWNvbnRlbnRbZGF0YS12LWE2OGI4NDYyXSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBtYXJnaW4tdG9wOiAyMHZoO1xcbn1cXG4uZW1wdHktY29udGVudF9faWNvbltkYXRhLXYtYTY4Yjg0NjJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIHdpZHRoOiA2NHB4O1xcbiAgICBoZWlnaHQ6IDY0cHg7XFxuICAgIG1hcmdpbjogMCBhdXRvIDE1cHg7XFxuICAgIG9wYWNpdHk6IC40O1xcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XFxuICAgIGJhY2tncm91bmQtc2l6ZTogNjRweDtcXG59XFxuLmVtcHR5LWNvbnRlbnRfX2ljb24gc3ZnW2RhdGEtdi1hNjhiODQ2Ml0ge1xcbiAgICAgIHdpZHRoOiA2NHB4O1xcbiAgICAgIGhlaWdodDogNjRweDtcXG59XFxuLmVtcHR5LWNvbnRlbnRfX3RpdGxlW2RhdGEtdi1hNjhiODQ2Ml0ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xcbn1cXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9FbXB0eUNvbnRlbnQudnVlXCIsXCJ3ZWJwYWNrOi8vLi8uLi8uLi9hc3NldHMvdmFyaWFibGVzLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsZ0JBQWdCO0FDQWhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFRHFCRTtBQXNFRjtFQUNDLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBQ3RCLGdCQUFnQjtBQUFBO0FBRWhCO0lBQ0MsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsV0FBVztJQUNYLFlBQVk7SUFDWixtQkFBbUI7SUFDbkIsV0FBVztJQUNYLDRCQUE0QjtJQUM1QiwyQkFBMkI7SUFDM0IscUJBQXFCO0FBQUE7QUFWckI7TUFhQyxXQUFXO01BQ1gsWUFBWTtBQUFBO0FBSWQ7SUFDQyxtQkFBbUI7QUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIkc2NvcGVfdmVyc2lvbjpcXFwiODRjNDYxZlxcXCI7IEBpbXBvcnQgJ3ZhcmlhYmxlcyc7XFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuLmVtcHR5LWNvbnRlbnQge1xcblxcdGRpc3BsYXk6IGZsZXg7XFxuXFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcXG5cXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcblxcdG1hcmdpbi10b3A6IDIwdmg7XFxuXFxuXFx0Jl9faWNvbiB7XFxuXFx0XFx0ZGlzcGxheTogZmxleDtcXG5cXHRcXHRhbGlnbi1pdGVtczogY2VudGVyO1xcblxcdFxcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xcblxcdFxcdHdpZHRoOiA2NHB4O1xcblxcdFxcdGhlaWdodDogNjRweDtcXG5cXHRcXHRtYXJnaW46IDAgYXV0byAxNXB4O1xcblxcdFxcdG9wYWNpdHk6IC40O1xcblxcdFxcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuXFx0XFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xcblxcdFxcdGJhY2tncm91bmQtc2l6ZTogNjRweDtcXG5cXG5cXHRcXHRzdmcge1xcblxcdFxcdFxcdHdpZHRoOiA2NHB4O1xcblxcdFxcdFxcdGhlaWdodDogNjRweDtcXG5cXHRcXHR9XFxuXFx0fVxcblxcblxcdCZfX3RpdGxlIHtcXG5cXHRcXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xcblxcdH1cXG59XFxuXFxuXCIsXCIvKipcXG4gKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOSBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cXG4gKlxcbiAqIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXFxuICpcXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cXG4gKlxcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXFxuICpcXG4gKi9cXG5cXG4vLyBodHRwczovL3V4cGxhbmV0Lm9yZy83LXJ1bGVzLWZvci1tb2JpbGUtdWktYnV0dG9uLWRlc2lnbi1lOWNmMmVhNTQ1NTZcXG4vLyByZWNvbW1lbmRlZCBpcyA0OHB4XFxuLy8gNDRweCBpcyB3aGF0IHdlIGNob29zZSBhbmQgaGF2ZSB2ZXJ5IGdvb2QgdmlzdWFsLXRvLXVzYWJpbGl0eSByYXRpb1xcbiRjbGlja2FibGUtYXJlYTogNDRweDtcXG5cXG4vLyBiYWNrZ3JvdW5kIGljb24gc2l6ZVxcbi8vIGFsc28gdXNlZCBmb3IgdGhlIHNjc3MgaWNvbiBmb250XFxuJGljb24tc2l6ZTogMTZweDtcXG5cXG4vLyBpY29uIHBhZGRpbmcgZm9yIGEgJGNsaWNrYWJsZS1hcmVhIHdpZHRoIGFuZCBhICRpY29uLXNpemUgaWNvblxcbi8vICggNDRweCAtIDE2cHggKSAvIDJcXG4kaWNvbi1tYXJnaW46ICgkY2xpY2thYmxlLWFyZWEgLSAkaWNvbi1zaXplKSAvIDI7XFxuXFxuLy8gdHJhbnNwYXJlbmN5IGJhY2tncm91bmQgZm9yIGljb25zXFxuJGljb24tZm9jdXMtYmc6IHJnYmEoMTI3LCAxMjcsIDEyNywgLjI1KTtcXG5cXG4vLyBwb3BvdmVybWVudSBhcnJvdyB3aWR0aCBmcm9tIHRoZSB0cmlhbmdsZSBjZW50ZXJcXG4kYXJyb3ctd2lkdGg6IDlweDtcXG5cXG4vLyBvcGFjaXRpZXNcXG4kb3BhY2l0eV9kaXNhYmxlZDogLjU7XFxuJG9wYWNpdHlfbm9ybWFsOiAuNztcXG4kb3BhY2l0eV9mdWxsOiAxO1xcblxcbi8vIG1lbnUgcm91bmQgYmFja2dyb3VuZCBob3ZlciBmZWVkYmFja1xcbi8vIGdvb2QgbG9va2luZyBvbiBkYXJrIEFORCB3aGl0ZSBiZ1xcbiRhY3Rpb24tYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgxMjcsIDEyNywgMTI3LCAuMjUpO1xcblxcbi8vIHZhcmlvdXMgc3RydWN0dXJlIGRhdGEgdXNlZCBpbiB0aGUgXFxuLy8gYEFwcE5hdmlnYXRpb25gIGNvbXBvbmVudFxcbiRoZWFkZXItaGVpZ2h0OiA1MHB4O1xcbiRuYXZpZ2F0aW9uLXdpZHRoOiAzMDBweDtcXG5cXG4vLyBtb2JpbGUgYnJlYWtwb2ludFxcbiRicmVha3BvaW50LW1vYmlsZTogMTAyNHB4O1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBjaGFyc2V0IFxcXCJVVEYtOFxcXCI7XFxuLyoqXFxuICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTkgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxcbiAqXFxuICogQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cXG4gKlxcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XFxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcXG4gKiBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXFxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXFxuICpcXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxcbiAqXFxuICovXFxuLnBvcG92ZXIge1xcbiAgei1pbmRleDogMTAwMDAwO1xcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMTBweCB2YXIoLS1jb2xvci1ib3gtc2hhZG93KSk7XFxufVxcbi5wb3BvdmVyX19pbm5lciB7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1tYWluLXRleHQpO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbWFpbi1iYWNrZ3JvdW5kKTtcXG59XFxuLnBvcG92ZXJfX2Fycm93IHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB6LWluZGV4OiAxO1xcbiAgICB3aWR0aDogMDtcXG4gICAgaGVpZ2h0OiAwO1xcbiAgICBtYXJnaW46IDEwcHg7XFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItbWFpbi1iYWNrZ3JvdW5kKTtcXG59XFxuLnBvcG92ZXJbeC1wbGFjZW1lbnRePSd0b3AnXSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XFxufVxcbi5wb3BvdmVyW3gtcGxhY2VtZW50Xj0ndG9wJ10gLnBvcG92ZXJfX2Fycm93IHtcXG4gICAgICBib3R0b206IC0xMHB4O1xcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gJGFycm93LXdpZHRoKTtcXG4gICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgICAgYm9yZGVyLXdpZHRoOiAxMHB4IDEwcHggMCAxMHB4O1xcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4ucG9wb3Zlclt4LXBsYWNlbWVudF49J2JvdHRvbSddIHtcXG4gICAgbWFyZ2luLXRvcDogMTBweDtcXG59XFxuLnBvcG92ZXJbeC1wbGFjZW1lbnRePSdib3R0b20nXSAucG9wb3Zlcl9fYXJyb3cge1xcbiAgICAgIHRvcDogLTEwcHg7XFxuICAgICAgbGVmdDogY2FsYyg1MCUgLSAkYXJyb3ctd2lkdGgpO1xcbiAgICAgIG1hcmdpbi10b3A6IDA7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgICBib3JkZXItd2lkdGg6IDAgMTBweCAxMHB4IDEwcHg7XFxuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi5wb3BvdmVyW3gtcGxhY2VtZW50Xj0ncmlnaHQnXSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xcbn1cXG4ucG9wb3Zlclt4LXBsYWNlbWVudF49J3JpZ2h0J10gLnBvcG92ZXJfX2Fycm93IHtcXG4gICAgICB0b3A6IGNhbGMoNTAlIC0gJGFycm93LXdpZHRoKTtcXG4gICAgICBsZWZ0OiAtMTBweDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgICAgYm9yZGVyLXdpZHRoOiAxMHB4IDEwcHggMTBweCAwO1xcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLnBvcG92ZXJbeC1wbGFjZW1lbnRePSdsZWZ0J10ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XFxufVxcbi5wb3BvdmVyW3gtcGxhY2VtZW50Xj0nbGVmdCddIC5wb3BvdmVyX19hcnJvdyB7XFxuICAgICAgdG9wOiBjYWxjKDUwJSAtICRhcnJvdy13aWR0aCk7XFxuICAgICAgcmlnaHQ6IC0xMHB4O1xcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcXG4gICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICBib3JkZXItd2lkdGg6IDEwcHggMCAxMHB4IDEwcHg7XFxuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLnBvcG92ZXJbYXJpYS1oaWRkZW49J3RydWUnXSB7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1hbmltYXRpb24tcXVpY2spLCB2aXNpYmlsaXR5IHZhcigtLWFuaW1hdGlvbi1xdWljayk7XFxuICAgIG9wYWNpdHk6IDA7XFxufVxcbi5wb3BvdmVyW2FyaWEtaGlkZGVuPSdmYWxzZSddIHtcXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1hbmltYXRpb24tcXVpY2spO1xcbiAgICBvcGFjaXR5OiAxO1xcbn1cXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9Qb3BvdmVyLnZ1ZVwiLFwid2VicGFjazovLy4vLi4vLi4vYXNzZXRzL3ZhcmlhYmxlcy5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBLGdCQUFnQjtBQ0FoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RURxQkU7QUEyRkY7RUFDQyxlQUFlO0VBQ2YseUJBQXlCO0VBRXpCLHVEQUF1RDtBQUFBO0FBRXZEO0lBQ0MsVUFBVTtJQUNWLDZCQUE2QjtJQUM3QixtQ0FBbUM7SUFDbkMsd0NBQXdDO0FBQUE7QUFHekM7SUFDQyxrQkFBa0I7SUFDbEIsVUFBVTtJQUNWLFFBQVE7SUFDUixTQUFTO0lBQ1QsWUFwQmdCO0lBcUJoQixtQkFBbUI7SUFDbkIsMENBQTBDO0FBQUE7QUFwQjVDO0lBd0JFLG1CQTFCZ0I7QUFBQTtBQUVsQjtNQTJCRyxhQTdCZTtNQThCZiw4QkFBOEI7TUFDOUIsYUFBYTtNQUNiLGdCQUFnQjtNQUNoQiw4QkFqQ2U7TUFrQ2YsMENBQTBDO01BQzFDLDJDQUEyQztNQUMzQyx5Q0FBeUM7QUFBQTtBQWxDNUM7SUF1Q0UsZ0JBekNnQjtBQUFBO0FBRWxCO01BMENHLFVBNUNlO01BNkNmLDhCQUE4QjtNQUM5QixhQUFhO01BQ2IsZ0JBQWdCO01BQ2hCLDhCQWhEZTtNQWlEZix3Q0FBd0M7TUFDeEMsMENBQTBDO01BQzFDLHlDQUF5QztBQUFBO0FBakQ1QztJQXNERSxpQkF4RGdCO0FBQUE7QUFFbEI7TUF5REcsNkJBQTZCO01BQzdCLFdBNURlO01BNkRmLGVBQWU7TUFDZixjQUFjO01BQ2QsOEJBQXNEO01BQ3RELHdDQUF3QztNQUN4QywyQ0FBMkM7TUFDM0MseUNBQXlDO0FBQUE7QUFoRTVDO0lBcUVFLGtCQXZFZ0I7QUFBQTtBQUVsQjtNQXdFRyw2QkFBNkI7TUFDN0IsWUEzRWU7TUE0RWYsZUFBZTtNQUNmLGNBQWM7TUFDZCw4QkE5RWU7TUErRWYsd0NBQXdDO01BQ3hDLDBDQUEwQztNQUMxQywyQ0FBMkM7QUFBQTtBQS9FOUM7SUFvRkUsa0JBQWtCO0lBQ2xCLDZFQUE2RTtJQUM3RSxVQUFVO0FBQUE7QUF0Rlo7SUEwRkUsbUJBQW1CO0lBQ25CLDBDQUEwQztJQUMxQyxVQUFVO0FBQUFcIixcInNvdXJjZXNDb250ZW50XCI6W1wiJHNjb3BlX3ZlcnNpb246XFxcIjg0YzQ2MWZcXFwiOyBAaW1wb3J0ICd2YXJpYWJsZXMnO1xcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcblxcbiRhcnJvdy13aWR0aDogMTBweDtcXG5cXG4ucG9wb3ZlciB7XFxuXFx0ei1pbmRleDogMTAwMDAwO1xcblxcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XFxuXFxuXFx0ZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFweCAxMHB4IHZhcigtLWNvbG9yLWJveC1zaGFkb3cpKTtcXG5cXG5cXHQmX19pbm5lciB7XFxuXFx0XFx0cGFkZGluZzogMDtcXG5cXHRcXHRjb2xvcjogdmFyKC0tY29sb3ItbWFpbi10ZXh0KTtcXG5cXHRcXHRib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcXG5cXHRcXHRiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1tYWluLWJhY2tncm91bmQpO1xcblxcdH1cXG5cXG5cXHQmX19hcnJvdyB7XFxuXFx0XFx0cG9zaXRpb246IGFic29sdXRlO1xcblxcdFxcdHotaW5kZXg6IDE7XFxuXFx0XFx0d2lkdGg6IDA7XFxuXFx0XFx0aGVpZ2h0OiAwO1xcblxcdFxcdG1hcmdpbjogJGFycm93LXdpZHRoO1xcblxcdFxcdGJvcmRlci1zdHlsZTogc29saWQ7XFxuXFx0XFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1tYWluLWJhY2tncm91bmQpO1xcblxcdH1cXG5cXG5cXHQmW3gtcGxhY2VtZW50Xj0ndG9wJ10ge1xcblxcdFxcdG1hcmdpbi1ib3R0b206ICRhcnJvdy13aWR0aDtcXG5cXG5cXHRcXHQucG9wb3Zlcl9fYXJyb3cge1xcblxcdFxcdFxcdGJvdHRvbTogLSRhcnJvdy13aWR0aDtcXG5cXHRcXHRcXHRsZWZ0OiBjYWxjKDUwJSAtICRhcnJvdy13aWR0aCk7XFxuXFx0XFx0XFx0bWFyZ2luLXRvcDogMDtcXG5cXHRcXHRcXHRtYXJnaW4tYm90dG9tOiAwO1xcblxcdFxcdFxcdGJvcmRlci13aWR0aDogJGFycm93LXdpZHRoICRhcnJvdy13aWR0aCAwICRhcnJvdy13aWR0aDtcXG5cXHRcXHRcXHRib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxuXFx0XFx0XFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG5cXHRcXHRcXHRib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG5cXHRcXHR9XFxuXFx0fVxcblxcblxcdCZbeC1wbGFjZW1lbnRePSdib3R0b20nXSB7XFxuXFx0XFx0bWFyZ2luLXRvcDogJGFycm93LXdpZHRoO1xcblxcblxcdFxcdC5wb3BvdmVyX19hcnJvdyB7XFxuXFx0XFx0XFx0dG9wOiAtJGFycm93LXdpZHRoO1xcblxcdFxcdFxcdGxlZnQ6IGNhbGMoNTAlIC0gJGFycm93LXdpZHRoKTtcXG5cXHRcXHRcXHRtYXJnaW4tdG9wOiAwO1xcblxcdFxcdFxcdG1hcmdpbi1ib3R0b206IDA7XFxuXFx0XFx0XFx0Ym9yZGVyLXdpZHRoOiAwICRhcnJvdy13aWR0aCAkYXJyb3ctd2lkdGggJGFycm93LXdpZHRoO1xcblxcdFxcdFxcdGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxuXFx0XFx0XFx0Ym9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcblxcdFxcdFxcdGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcblxcdFxcdH1cXG5cXHR9XFxuXFxuXFx0Jlt4LXBsYWNlbWVudF49J3JpZ2h0J10ge1xcblxcdFxcdG1hcmdpbi1sZWZ0OiAkYXJyb3ctd2lkdGg7XFxuXFxuXFx0XFx0LnBvcG92ZXJfX2Fycm93IHtcXG5cXHRcXHRcXHR0b3A6IGNhbGMoNTAlIC0gJGFycm93LXdpZHRoKTtcXG5cXHRcXHRcXHRsZWZ0OiAtJGFycm93LXdpZHRoO1xcblxcdFxcdFxcdG1hcmdpbi1yaWdodDogMDtcXG5cXHRcXHRcXHRtYXJnaW4tbGVmdDogMDtcXG5cXHRcXHRcXHRib3JkZXItd2lkdGg6ICRhcnJvdy13aWR0aCAkYXJyb3ctd2lkdGggJGFycm93LXdpZHRoIDA7XFxuXFx0XFx0XFx0Ym9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG5cXHRcXHRcXHRib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcblxcdFxcdFxcdGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcblxcdFxcdH1cXG5cXHR9XFxuXFxuXFx0Jlt4LXBsYWNlbWVudF49J2xlZnQnXSB7XFxuXFx0XFx0bWFyZ2luLXJpZ2h0OiAkYXJyb3ctd2lkdGg7XFxuXFxuXFx0XFx0LnBvcG92ZXJfX2Fycm93IHtcXG5cXHRcXHRcXHR0b3A6IGNhbGMoNTAlIC0gJGFycm93LXdpZHRoKTtcXG5cXHRcXHRcXHRyaWdodDogLSRhcnJvdy13aWR0aDtcXG5cXHRcXHRcXHRtYXJnaW4tcmlnaHQ6IDA7XFxuXFx0XFx0XFx0bWFyZ2luLWxlZnQ6IDA7XFxuXFx0XFx0XFx0Ym9yZGVyLXdpZHRoOiAkYXJyb3ctd2lkdGggMCAkYXJyb3ctd2lkdGggJGFycm93LXdpZHRoO1xcblxcdFxcdFxcdGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxuXFx0XFx0XFx0Ym9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcblxcdFxcdFxcdGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxuXFx0XFx0fVxcblxcdH1cXG5cXG5cXHQmW2FyaWEtaGlkZGVuPSd0cnVlJ10ge1xcblxcdFxcdHZpc2liaWxpdHk6IGhpZGRlbjtcXG5cXHRcXHR0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLWFuaW1hdGlvbi1xdWljayksIHZpc2liaWxpdHkgdmFyKC0tYW5pbWF0aW9uLXF1aWNrKTtcXG5cXHRcXHRvcGFjaXR5OiAwO1xcblxcdH1cXG5cXG5cXHQmW2FyaWEtaGlkZGVuPSdmYWxzZSddIHtcXG5cXHRcXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xcblxcdFxcdHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tYW5pbWF0aW9uLXF1aWNrKTtcXG5cXHRcXHRvcGFjaXR5OiAxO1xcblxcdH1cXG59XFxuXFxuXCIsXCIvKipcXG4gKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOSBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cXG4gKlxcbiAqIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXFxuICpcXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cXG4gKlxcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXFxuICpcXG4gKi9cXG5cXG4vLyBodHRwczovL3V4cGxhbmV0Lm9yZy83LXJ1bGVzLWZvci1tb2JpbGUtdWktYnV0dG9uLWRlc2lnbi1lOWNmMmVhNTQ1NTZcXG4vLyByZWNvbW1lbmRlZCBpcyA0OHB4XFxuLy8gNDRweCBpcyB3aGF0IHdlIGNob29zZSBhbmQgaGF2ZSB2ZXJ5IGdvb2QgdmlzdWFsLXRvLXVzYWJpbGl0eSByYXRpb1xcbiRjbGlja2FibGUtYXJlYTogNDRweDtcXG5cXG4vLyBiYWNrZ3JvdW5kIGljb24gc2l6ZVxcbi8vIGFsc28gdXNlZCBmb3IgdGhlIHNjc3MgaWNvbiBmb250XFxuJGljb24tc2l6ZTogMTZweDtcXG5cXG4vLyBpY29uIHBhZGRpbmcgZm9yIGEgJGNsaWNrYWJsZS1hcmVhIHdpZHRoIGFuZCBhICRpY29uLXNpemUgaWNvblxcbi8vICggNDRweCAtIDE2cHggKSAvIDJcXG4kaWNvbi1tYXJnaW46ICgkY2xpY2thYmxlLWFyZWEgLSAkaWNvbi1zaXplKSAvIDI7XFxuXFxuLy8gdHJhbnNwYXJlbmN5IGJhY2tncm91bmQgZm9yIGljb25zXFxuJGljb24tZm9jdXMtYmc6IHJnYmEoMTI3LCAxMjcsIDEyNywgLjI1KTtcXG5cXG4vLyBwb3BvdmVybWVudSBhcnJvdyB3aWR0aCBmcm9tIHRoZSB0cmlhbmdsZSBjZW50ZXJcXG4kYXJyb3ctd2lkdGg6IDlweDtcXG5cXG4vLyBvcGFjaXRpZXNcXG4kb3BhY2l0eV9kaXNhYmxlZDogLjU7XFxuJG9wYWNpdHlfbm9ybWFsOiAuNztcXG4kb3BhY2l0eV9mdWxsOiAxO1xcblxcbi8vIG1lbnUgcm91bmQgYmFja2dyb3VuZCBob3ZlciBmZWVkYmFja1xcbi8vIGdvb2QgbG9va2luZyBvbiBkYXJrIEFORCB3aGl0ZSBiZ1xcbiRhY3Rpb24tYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgxMjcsIDEyNywgMTI3LCAuMjUpO1xcblxcbi8vIHZhcmlvdXMgc3RydWN0dXJlIGRhdGEgdXNlZCBpbiB0aGUgXFxuLy8gYEFwcE5hdmlnYXRpb25gIGNvbXBvbmVudFxcbiRoZWFkZXItaGVpZ2h0OiA1MHB4O1xcbiRuYXZpZ2F0aW9uLXdpZHRoOiAzMDBweDtcXG5cXG4vLyBtb2JpbGUgYnJlYWtwb2ludFxcbiRicmVha3BvaW50LW1vYmlsZTogMTAyNHB4O1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbi8vIGNzcyBiYXNlIGNvZGUsIGluamVjdGVkIGJ5IHRoZSBjc3MtbG9hZGVyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY3NzV2l0aE1hcHBpbmdUb1N0cmluZykge1xuICB2YXIgbGlzdCA9IFtdOyAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG5cbiAgbGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgdmFyIGNvbnRlbnQgPSBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0pO1xuXG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICByZXR1cm4gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIikuY29uY2F0KGNvbnRlbnQsIFwifVwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTsgLy8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcblxuXG4gIGxpc3QuaSA9IGZ1bmN0aW9uIChtb2R1bGVzLCBtZWRpYVF1ZXJ5LCBkZWR1cGUpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgXCJcIl1dO1xuICAgIH1cblxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG5cbiAgICBpZiAoZGVkdXBlKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1kZXN0cnVjdHVyaW5nXG4gICAgICAgIHZhciBpZCA9IHRoaXNbaV1bMF07XG5cbiAgICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgICBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2lkXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbW9kdWxlcy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2ldKTtcblxuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250aW51ZVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhUXVlcnk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsyXSA9IFwiXCIuY29uY2F0KG1lZGlhUXVlcnksIFwiIGFuZCBcIikuY29uY2F0KGl0ZW1bMl0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfc2xpY2VkVG9BcnJheShhcnIsIGkpIHsgcmV0dXJuIF9hcnJheVdpdGhIb2xlcyhhcnIpIHx8IF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIsIGkpIHx8IF9ub25JdGVyYWJsZVJlc3QoKTsgfVxuXG5mdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpOyB9XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHsgaWYgKCFvKSByZXR1cm47IGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7IHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTsgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7IGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikgeyBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDsgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7IGFycjJbaV0gPSBhcnJbaV07IH0gcmV0dXJuIGFycjI7IH1cblxuZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgeyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoYXJyKSkpIHJldHVybjsgdmFyIF9hcnIgPSBbXTsgdmFyIF9uID0gdHJ1ZTsgdmFyIF9kID0gZmFsc2U7IHZhciBfZSA9IHVuZGVmaW5lZDsgdHJ5IHsgZm9yICh2YXIgX2kgPSBhcnJbU3ltYm9sLml0ZXJhdG9yXSgpLCBfczsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkgeyBfYXJyLnB1c2goX3MudmFsdWUpOyBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7IH0gfSBjYXRjaCAoZXJyKSB7IF9kID0gdHJ1ZTsgX2UgPSBlcnI7IH0gZmluYWxseSB7IHRyeSB7IGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTsgfSBmaW5hbGx5IHsgaWYgKF9kKSB0aHJvdyBfZTsgfSB9IHJldHVybiBfYXJyOyB9XG5cbmZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHsgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjsgfVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSkge1xuICB2YXIgX2l0ZW0gPSBfc2xpY2VkVG9BcnJheShpdGVtLCA0KSxcbiAgICAgIGNvbnRlbnQgPSBfaXRlbVsxXSxcbiAgICAgIGNzc01hcHBpbmcgPSBfaXRlbVszXTtcblxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgdmFyIHNvdXJjZVVSTHMgPSBjc3NNYXBwaW5nLnNvdXJjZXMubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIHJldHVybiBcIi8qIyBzb3VyY2VVUkw9XCIuY29uY2F0KGNzc01hcHBpbmcuc291cmNlUm9vdCB8fCBcIlwiKS5jb25jYXQoc291cmNlLCBcIiAqL1wiKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG5cbiAgcmV0dXJuIFtjb250ZW50XS5qb2luKFwiXFxuXCIpO1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodXJsLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIG9wdGlvbnMgPSB7fTtcbiAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGUsIG5vLXBhcmFtLXJlYXNzaWduXG5cblxuICB1cmwgPSB1cmwgJiYgdXJsLl9fZXNNb2R1bGUgPyB1cmwuZGVmYXVsdCA6IHVybDtcblxuICBpZiAodHlwZW9mIHVybCAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiB1cmw7XG4gIH0gLy8gSWYgdXJsIGlzIGFscmVhZHkgd3JhcHBlZCBpbiBxdW90ZXMsIHJlbW92ZSB0aGVtXG5cblxuICBpZiAoL15bJ1wiXS4qWydcIl0kLy50ZXN0KHVybCkpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICB1cmwgPSB1cmwuc2xpY2UoMSwgLTEpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuaGFzaCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIHVybCArPSBvcHRpb25zLmhhc2g7XG4gIH0gLy8gU2hvdWxkIHVybCBiZSB3cmFwcGVkP1xuICAvLyBTZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtMy8jdXJsc1xuXG5cbiAgaWYgKC9bXCInKCkgXFx0XFxuXS8udGVzdCh1cmwpIHx8IG9wdGlvbnMubmVlZFF1b3Rlcykge1xuICAgIHJldHVybiBcIlxcXCJcIi5jb25jYXQodXJsLnJlcGxhY2UoL1wiL2csICdcXFxcXCInKS5yZXBsYWNlKC9cXG4vZywgXCJcXFxcblwiKSwgXCJcXFwiXCIpO1xuICB9XG5cbiAgcmV0dXJuIHVybDtcbn07IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZXNvbHZlLXVybC1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FjdGlvbnMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGY0NTg2NGImbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiO1xuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLmluc2VydCA9IFwiaGVhZFwiO1xub3B0aW9ucy5zaW5nbGV0b24gPSBmYWxzZTtcblxudmFyIHVwZGF0ZSA9IGFwaShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRlbnQubG9jYWxzIHx8IHt9OyIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVzb2x2ZS11cmwtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHBTaWRlYmFyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTRhMmE1ZjJmJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Jlc29sdmUtdXJsLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0zIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwU2lkZWJhci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MSZsYW5nPXNjc3MmXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiaW1wb3J0IGFwaSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgICAgICAgaW1wb3J0IGNvbnRlbnQgZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZXNvbHZlLXVybC1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcFNpZGViYXJUYWJzLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTU3NzJlNDRkJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Jlc29sdmUtdXJsLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0zIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vRW1wdHlDb250ZW50LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWE2OGI4NDYyJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Jlc29sdmUtdXJsLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0zIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUG9wb3Zlci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZsYW5nPXNjc3MmXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBpc09sZElFID0gZnVuY3Rpb24gaXNPbGRJRSgpIHtcbiAgdmFyIG1lbW87XG4gIHJldHVybiBmdW5jdGlvbiBtZW1vcml6ZSgpIHtcbiAgICBpZiAodHlwZW9mIG1lbW8gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBUZXN0IGZvciBJRSA8PSA5IGFzIHByb3Bvc2VkIGJ5IEJyb3dzZXJoYWNrc1xuICAgICAgLy8gQHNlZSBodHRwOi8vYnJvd3NlcmhhY2tzLmNvbS8jaGFjay1lNzFkODY5MmY2NTMzNDE3M2ZlZTcxNWMyMjJjYjgwNVxuICAgICAgLy8gVGVzdHMgZm9yIGV4aXN0ZW5jZSBvZiBzdGFuZGFyZCBnbG9iYWxzIGlzIHRvIGFsbG93IHN0eWxlLWxvYWRlclxuICAgICAgLy8gdG8gb3BlcmF0ZSBjb3JyZWN0bHkgaW50byBub24tc3RhbmRhcmQgZW52aXJvbm1lbnRzXG4gICAgICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrLWNvbnRyaWIvc3R5bGUtbG9hZGVyL2lzc3Vlcy8xNzdcbiAgICAgIG1lbW8gPSBCb29sZWFuKHdpbmRvdyAmJiBkb2N1bWVudCAmJiBkb2N1bWVudC5hbGwgJiYgIXdpbmRvdy5hdG9iKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVtbztcbiAgfTtcbn0oKTtcblxudmFyIGdldFRhcmdldCA9IGZ1bmN0aW9uIGdldFRhcmdldCgpIHtcbiAgdmFyIG1lbW8gPSB7fTtcbiAgcmV0dXJuIGZ1bmN0aW9uIG1lbW9yaXplKHRhcmdldCkge1xuICAgIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpOyAvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuXG4gICAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcbiAgICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICAgIHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICAgIHN0eWxlVGFyZ2V0ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBtZW1vW3RhcmdldF0gPSBzdHlsZVRhcmdldDtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVtb1t0YXJnZXRdO1xuICB9O1xufSgpO1xuXG52YXIgc3R5bGVzSW5Eb20gPSBbXTtcblxuZnVuY3Rpb24gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcikge1xuICB2YXIgcmVzdWx0ID0gLTE7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXNJbkRvbS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzdHlsZXNJbkRvbVtpXS5pZGVudGlmaWVyID09PSBpZGVudGlmaWVyKSB7XG4gICAgICByZXN1bHQgPSBpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpIHtcbiAgdmFyIGlkQ291bnRNYXAgPSB7fTtcbiAgdmFyIGlkZW50aWZpZXJzID0gW107XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldO1xuICAgIHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuICAgIHZhciBjb3VudCA9IGlkQ291bnRNYXBbaWRdIHx8IDA7XG4gICAgdmFyIGlkZW50aWZpZXIgPSBcIlwiLmNvbmNhdChpZCwgXCIgXCIpLmNvbmNhdChjb3VudCk7XG4gICAgaWRDb3VudE1hcFtpZF0gPSBjb3VudCArIDE7XG4gICAgdmFyIGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgdmFyIG9iaiA9IHtcbiAgICAgIGNzczogaXRlbVsxXSxcbiAgICAgIG1lZGlhOiBpdGVtWzJdLFxuICAgICAgc291cmNlTWFwOiBpdGVtWzNdXG4gICAgfTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHN0eWxlc0luRG9tW2luZGV4XS5yZWZlcmVuY2VzKys7XG4gICAgICBzdHlsZXNJbkRvbVtpbmRleF0udXBkYXRlcihvYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZXNJbkRvbS5wdXNoKHtcbiAgICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllcixcbiAgICAgICAgdXBkYXRlcjogYWRkU3R5bGUob2JqLCBvcHRpb25zKSxcbiAgICAgICAgcmVmZXJlbmNlczogMVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcbiAgfVxuXG4gIHJldHVybiBpZGVudGlmaWVycztcbn1cblxuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgdmFyIGF0dHJpYnV0ZXMgPSBvcHRpb25zLmF0dHJpYnV0ZXMgfHwge307XG5cbiAgaWYgKHR5cGVvZiBhdHRyaWJ1dGVzLm5vbmNlID09PSAndW5kZWZpbmVkJykge1xuICAgIHZhciBub25jZSA9IHR5cGVvZiBfX3dlYnBhY2tfbm9uY2VfXyAhPT0gJ3VuZGVmaW5lZCcgPyBfX3dlYnBhY2tfbm9uY2VfXyA6IG51bGw7XG5cbiAgICBpZiAobm9uY2UpIHtcbiAgICAgIGF0dHJpYnV0ZXMubm9uY2UgPSBub25jZTtcbiAgICB9XG4gIH1cblxuICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoa2V5LCBhdHRyaWJ1dGVzW2tleV0pO1xuICB9KTtcblxuICBpZiAodHlwZW9mIG9wdGlvbnMuaW5zZXJ0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgb3B0aW9ucy5pbnNlcnQoc3R5bGUpO1xuICB9IGVsc2Uge1xuICAgIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQob3B0aW9ucy5pbnNlcnQgfHwgJ2hlYWQnKTtcblxuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICAgIH1cblxuICAgIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gIH1cblxuICByZXR1cm4gc3R5bGU7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSkge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgaWYgKHN0eWxlLnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdHlsZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlKTtcbn1cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuXG5cbnZhciByZXBsYWNlVGV4dCA9IGZ1bmN0aW9uIHJlcGxhY2VUZXh0KCkge1xuICB2YXIgdGV4dFN0b3JlID0gW107XG4gIHJldHVybiBmdW5jdGlvbiByZXBsYWNlKGluZGV4LCByZXBsYWNlbWVudCkge1xuICAgIHRleHRTdG9yZVtpbmRleF0gPSByZXBsYWNlbWVudDtcbiAgICByZXR1cm4gdGV4dFN0b3JlLmZpbHRlcihCb29sZWFuKS5qb2luKCdcXG4nKTtcbiAgfTtcbn0oKTtcblxuZnVuY3Rpb24gYXBwbHlUb1NpbmdsZXRvblRhZyhzdHlsZSwgaW5kZXgsIHJlbW92ZSwgb2JqKSB7XG4gIHZhciBjc3MgPSByZW1vdmUgPyAnJyA6IG9iai5tZWRpYSA/IFwiQG1lZGlhIFwiLmNvbmNhdChvYmoubWVkaWEsIFwiIHtcIikuY29uY2F0KG9iai5jc3MsIFwifVwiKSA6IG9iai5jc3M7IC8vIEZvciBvbGQgSUVcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG5cbiAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSByZXBsYWNlVGV4dChpbmRleCwgY3NzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcyk7XG4gICAgdmFyIGNoaWxkTm9kZXMgPSBzdHlsZS5jaGlsZE5vZGVzO1xuXG4gICAgaWYgKGNoaWxkTm9kZXNbaW5kZXhdKSB7XG4gICAgICBzdHlsZS5yZW1vdmVDaGlsZChjaGlsZE5vZGVzW2luZGV4XSk7XG4gICAgfVxuXG4gICAgaWYgKGNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICBzdHlsZS5pbnNlcnRCZWZvcmUoY3NzTm9kZSwgY2hpbGROb2Rlc1tpbmRleF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5hcHBlbmRDaGlsZChjc3NOb2RlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXBwbHlUb1RhZyhzdHlsZSwgb3B0aW9ucywgb2JqKSB7XG4gIHZhciBjc3MgPSBvYmouY3NzO1xuICB2YXIgbWVkaWEgPSBvYmoubWVkaWE7XG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwO1xuXG4gIGlmIChtZWRpYSkge1xuICAgIHN0eWxlLnNldEF0dHJpYnV0ZSgnbWVkaWEnLCBtZWRpYSk7XG4gIH0gZWxzZSB7XG4gICAgc3R5bGUucmVtb3ZlQXR0cmlidXRlKCdtZWRpYScpO1xuICB9XG5cbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpLCBcIiAqL1wiKTtcbiAgfSAvLyBGb3Igb2xkIElFXG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqL1xuXG5cbiAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlLmZpcnN0Q2hpbGQpIHtcbiAgICAgIHN0eWxlLnJlbW92ZUNoaWxkKHN0eWxlLmZpcnN0Q2hpbGQpO1xuICAgIH1cblxuICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICB9XG59XG5cbnZhciBzaW5nbGV0b24gPSBudWxsO1xudmFyIHNpbmdsZXRvbkNvdW50ZXIgPSAwO1xuXG5mdW5jdGlvbiBhZGRTdHlsZShvYmosIG9wdGlvbnMpIHtcbiAgdmFyIHN0eWxlO1xuICB2YXIgdXBkYXRlO1xuICB2YXIgcmVtb3ZlO1xuXG4gIGlmIChvcHRpb25zLnNpbmdsZXRvbikge1xuICAgIHZhciBzdHlsZUluZGV4ID0gc2luZ2xldG9uQ291bnRlcisrO1xuICAgIHN0eWxlID0gc2luZ2xldG9uIHx8IChzaW5nbGV0b24gPSBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykpO1xuICAgIHVwZGF0ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZSwgc3R5bGVJbmRleCwgZmFsc2UpO1xuICAgIHJlbW92ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZSwgc3R5bGVJbmRleCwgdHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgc3R5bGUgPSBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XG4gICAgdXBkYXRlID0gYXBwbHlUb1RhZy5iaW5kKG51bGwsIHN0eWxlLCBvcHRpb25zKTtcblxuICAgIHJlbW92ZSA9IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSk7XG4gICAgfTtcbiAgfVxuXG4gIHVwZGF0ZShvYmopO1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlU3R5bGUobmV3T2JqKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZShvYmogPSBuZXdPYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICByZW1vdmUoKTtcbiAgICB9XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGxpc3QsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307IC8vIEZvcmNlIHNpbmdsZS10YWcgc29sdXRpb24gb24gSUU2LTksIHdoaWNoIGhhcyBhIGhhcmQgbGltaXQgb24gdGhlICMgb2YgPHN0eWxlPlxuICAvLyB0YWdzIGl0IHdpbGwgYWxsb3cgb24gYSBwYWdlXG5cbiAgaWYgKCFvcHRpb25zLnNpbmdsZXRvbiAmJiB0eXBlb2Ygb3B0aW9ucy5zaW5nbGV0b24gIT09ICdib29sZWFuJykge1xuICAgIG9wdGlvbnMuc2luZ2xldG9uID0gaXNPbGRJRSgpO1xuICB9XG5cbiAgbGlzdCA9IGxpc3QgfHwgW107XG4gIHZhciBsYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgIG5ld0xpc3QgPSBuZXdMaXN0IHx8IFtdO1xuXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXdMaXN0KSAhPT0gJ1tvYmplY3QgQXJyYXldJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5Eb21baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG5cbiAgICB2YXIgbmV3TGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKG5ld0xpc3QsIG9wdGlvbnMpO1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tfaV07XG5cbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG5cbiAgICAgIGlmIChzdHlsZXNJbkRvbVtfaW5kZXhdLnJlZmVyZW5jZXMgPT09IDApIHtcbiAgICAgICAgc3R5bGVzSW5Eb21bX2luZGV4XS51cGRhdGVyKCk7XG5cbiAgICAgICAgc3R5bGVzSW5Eb20uc3BsaWNlKF9pbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfb2JqLCBfb2JqJDFcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX3ZtLmlzVmFsaWRTaW5nbGVBY3Rpb24gJiYgIV92bS5mb3JjZU1lbnVcbiAgICA/IF9jKFxuICAgICAgICBcImVsZW1lbnRcIixcbiAgICAgICAgX3ZtLl9iKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwidG9vbHRpcFwiLFxuICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi10b29sdGlwLmF1dG9cIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogX3ZtLmZpcnN0QWN0aW9uLnRleHQsXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCJmaXJzdEFjdGlvbi50ZXh0XCIsXG4gICAgICAgICAgICAgICAgbW9kaWZpZXJzOiB7IGF1dG86IHRydWUgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwiYWN0aW9uLWl0ZW0gYWN0aW9uLWl0ZW0tLXNpbmdsZVwiLFxuICAgICAgICAgICAgY2xhc3M6XG4gICAgICAgICAgICAgICgoX29iaiA9IHt9KSxcbiAgICAgICAgICAgICAgKF9vYmpbX3ZtLmZpcnN0QWN0aW9uLmljb25dID0gX3ZtLmZpcnN0QWN0aW9uLmljb24pLFxuICAgICAgICAgICAgICAoX29ialtfdm0uZmlyc3RBY3Rpb25DbGFzc10gPSBfdm0uZmlyc3RBY3Rpb25DbGFzcyksXG4gICAgICAgICAgICAgIF9vYmopLFxuICAgICAgICAgICAgYXR0cnM6IHsgcmVsOiBcIm5vcmVmZXJyZXIgbm9vcGVuZXJcIiwgZGlzYWJsZWQ6IF92bS5kaXNhYmxlZCB9LFxuICAgICAgICAgICAgb246IF92bS5fZCh7IGZvY3VzOiBfdm0ub25Gb2N1cywgYmx1cjogX3ZtLm9uQmx1ciB9LCBbXG4gICAgICAgICAgICAgIF92bS5maXJzdEFjdGlvbkV2ZW50QmluZGluZyxcbiAgICAgICAgICAgICAgX3ZtLmV4ZWNGaXJzdEFjdGlvblxuICAgICAgICAgICAgXSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZWxlbWVudFwiLFxuICAgICAgICAgIF92bS5maXJzdEFjdGlvbkJpbmRpbmcsXG4gICAgICAgICAgZmFsc2VcbiAgICAgICAgKSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwiVk5vZGVzXCIsIHsgYXR0cnM6IHsgdm5vZGVzOiBfdm0uZmlyc3RBY3Rpb25JY29uU2xvdCB9IH0pLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgIHsgYXR0cnM6IHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBoaWRkZW46IFwiXCIgfSB9LFxuICAgICAgICAgICAgW192bS5fdChcImRlZmF1bHRcIildLFxuICAgICAgICAgICAgMlxuICAgICAgICAgIClcbiAgICAgICAgXSxcbiAgICAgICAgMVxuICAgICAgKVxuICAgIDogX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHtcbiAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwic2hvd1wiLFxuICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICB2YWx1ZTogX3ZtLmhhc011bHRpcGxlQWN0aW9ucyB8fCBfdm0uZm9yY2VNZW51LFxuICAgICAgICAgICAgICBleHByZXNzaW9uOiBcImhhc011bHRpcGxlQWN0aW9ucyB8fCBmb3JjZU1lbnVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3RhdGljQ2xhc3M6IFwiYWN0aW9uLWl0ZW1cIixcbiAgICAgICAgICBjbGFzczogeyBcImFjdGlvbi1pdGVtLS1vcGVuXCI6IF92bS5vcGVuZWQgfVxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcIlBvcG92ZXJcIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICBkZWxheTogMCxcbiAgICAgICAgICAgICAgICBcImhhbmRsZS1yZXNpemVcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvcGVuOiBfdm0ub3BlbmVkLFxuICAgICAgICAgICAgICAgIHBsYWNlbWVudDogX3ZtLnBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBcImJvdW5kYXJpZXMtZWxlbWVudFwiOiBfdm0uYm91bmRhcmllc0VsZW1lbnQsXG4gICAgICAgICAgICAgICAgY29udGFpbmVyOiBfdm0uY29udGFpbmVyXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgXCJ1cGRhdGU6b3BlblwiOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgIF92bS5vcGVuZWQgPSAkZXZlbnRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNob3c6IF92bS5vcGVuTWVudSxcbiAgICAgICAgICAgICAgICBcImFmdGVyLXNob3dcIjogX3ZtLm9uT3BlbixcbiAgICAgICAgICAgICAgICBoaWRlOiBfdm0uY2xvc2VNZW51XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcmVmOiBcIm1lbnVCdXR0b25cIixcbiAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImljb24gYWN0aW9uLWl0ZW1fX21lbnV0b2dnbGVcIixcbiAgICAgICAgICAgICAgICAgIGNsYXNzOlxuICAgICAgICAgICAgICAgICAgICAoKF9vYmokMSA9IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgKF9vYmokMVtfdm0uZGVmYXVsdEljb25dID0gIV92bS5pY29uU2xvdElzUG9wdWxhdGVkKSxcbiAgICAgICAgICAgICAgICAgICAgKF9vYmokMVtcImFjdGlvbi1pdGVtX19tZW51dG9nZ2xlLS13aXRoLXRpdGxlXCJdID1cbiAgICAgICAgICAgICAgICAgICAgICBfdm0ubWVudVRpdGxlKSxcbiAgICAgICAgICAgICAgICAgICAgKF9vYmokMVtcImFjdGlvbi1pdGVtX19tZW51dG9nZ2xlLS1wcmltYXJ5XCJdID0gX3ZtLnByaW1hcnkpLFxuICAgICAgICAgICAgICAgICAgICBfb2JqJDEpLFxuICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xvdDogXCJ0cmlnZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBfdm0uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBfdm0uYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICAgICBcImFyaWEtaGFzcG9wdXBcIjogXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1jb250cm9sc1wiOiBfdm0ucmFuZG9tSWQsXG4gICAgICAgICAgICAgICAgICAgIFwidGVzdC1hdHRyXCI6IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICBcImFyaWEtZXhwYW5kZWRcIjogX3ZtLm9wZW5lZCA/IFwidHJ1ZVwiIDogXCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgb246IHsgZm9jdXM6IF92bS5vbkZvY3VzLCBibHVyOiBfdm0ub25CbHVyIH0sXG4gICAgICAgICAgICAgICAgICBzbG90OiBcInRyaWdnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgX3ZtLl90KFwiaWNvblwiKSxcbiAgICAgICAgICAgICAgICAgIF92bS5fdihcIlxcblxcdFxcdFxcdFwiICsgX3ZtLl9zKF92bS5tZW51VGl0bGUpICsgXCJcXG5cXHRcXHRcIilcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInNob3dcIixcbiAgICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0ub3BlbmVkLFxuICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwib3BlbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIHJlZjogXCJtZW51XCIsXG4gICAgICAgICAgICAgICAgICBjbGFzczogeyBvcGVuOiBfdm0ub3BlbmVkIH0sXG4gICAgICAgICAgICAgICAgICBhdHRyczogeyB0YWJpbmRleDogXCItMVwiIH0sXG4gICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICBrZXlkb3duOiBbXG4gICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5faygkZXZlbnQua2V5Q29kZSwgXCJ1cFwiLCAzOCwgJGV2ZW50LmtleSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVXBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycm93VXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5jdHJsS2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5zaGlmdEtleSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQuYWx0S2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5tZXRhS2V5XG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdm0uZm9jdXNQcmV2aW91c0FjdGlvbigkZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcImRvd25cIiwgNDAsICRldmVudC5rZXksIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRvd25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycm93RG93blwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnNoaWZ0S2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5hbHRLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50Lm1ldGFLZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF92bS5mb2N1c05leHRBY3Rpb24oJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5faygkZXZlbnQua2V5Q29kZSwgXCJ0YWJcIiwgOSwgJGV2ZW50LmtleSwgXCJUYWJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQuY3RybEtleSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQuc2hpZnRLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LmFsdEtleSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQubWV0YUtleVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3ZtLmZvY3VzTmV4dEFjdGlvbigkZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcInRhYlwiLCA5LCAkZXZlbnQua2V5LCBcIlRhYlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRldmVudC5jdHJsS2V5IHx8ICRldmVudC5hbHRLZXkgfHwgJGV2ZW50Lm1ldGFLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdm0uZm9jdXNQcmV2aW91c0FjdGlvbigkZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9rKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5rZXlDb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGFnZS11cFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnNoaWZ0S2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5hbHRLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50Lm1ldGFLZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF92bS5mb2N1c0ZpcnN0QWN0aW9uKCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAhJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX2soXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LmtleUNvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYWdlLWRvd25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LmtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5jdHJsS2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5zaGlmdEtleSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQuYWx0S2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5tZXRhS2V5XG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdm0uZm9jdXNMYXN0QWN0aW9uKCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAhJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX2soJGV2ZW50LmtleUNvZGUsIFwiZXNjXCIsIDI3LCAkZXZlbnQua2V5LCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFc2NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkVzY2FwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnNoaWZ0S2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5hbHRLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50Lm1ldGFLZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdm0uY2xvc2VNZW51KCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIG1vdXNlbW92ZTogX3ZtLm9uTW91c2VGb2N1c0FjdGlvblxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICAgIFwidWxcIixcbiAgICAgICAgICAgICAgICAgICAgeyBhdHRyczogeyBpZDogX3ZtLnJhbmRvbUlkLCB0YWJpbmRleDogXCItMVwiIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgW192bS5vcGVuZWQgPyBbX3ZtLl90KFwiZGVmYXVsdFwiKV0gOiBfdm0uX2UoKV0sXG4gICAgICAgICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIF1cbiAgICAgICAgICApXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwidHJhbnNpdGlvblwiLFxuICAgIHtcbiAgICAgIGF0dHJzOiB7IGFwcGVhcjogXCJcIiwgbmFtZTogXCJzbGlkZS1yaWdodFwiIH0sXG4gICAgICBvbjoge1xuICAgICAgICBcImJlZm9yZS1lbnRlclwiOiBfdm0ub25CZWZvcmVFbnRlcixcbiAgICAgICAgXCJhZnRlci1lbnRlclwiOiBfdm0ub25BZnRlckVudGVyLFxuICAgICAgICBcImJlZm9yZS1sZWF2ZVwiOiBfdm0ub25CZWZvcmVMZWF2ZSxcbiAgICAgICAgXCJhZnRlci1sZWF2ZVwiOiBfdm0ub25BZnRlckxlYXZlXG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBfYyhcbiAgICAgICAgXCJhc2lkZVwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImFwcC1zaWRlYmFyXCIsIGF0dHJzOiB7IGlkOiBcImFwcC1zaWRlYmFyLXZ1ZVwiIH0gfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFxuICAgICAgICAgICAgXCJoZWFkZXJcIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwiYXBwLXNpZGViYXItaGVhZGVyXCIsXG4gICAgICAgICAgICAgIGNsYXNzOiB7XG4gICAgICAgICAgICAgICAgXCJhcHAtc2lkZWJhci1oZWFkZXItLXdpdGgtZmlndXJlXCI6IF92bS5oYXNGaWd1cmUsXG4gICAgICAgICAgICAgICAgXCJhcHAtc2lkZWJhci1oZWFkZXItLWNvbXBhY3RcIjogX3ZtLmNvbXBhY3RcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgX2MoXCJhXCIsIHtcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwidG9vbHRpcFwiLFxuICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtdG9vbHRpcC5hdXRvXCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBfdm0uY2xvc2VUcmFuc2xhdGVkLFxuICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOiBcImNsb3NlVHJhbnNsYXRlZFwiLFxuICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnM6IHsgYXV0bzogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJhcHAtc2lkZWJhcl9fY2xvc2UgaWNvbi1jbG9zZVwiLFxuICAgICAgICAgICAgICAgIGF0dHJzOiB7IGhyZWY6IFwiI1wiIH0sXG4gICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF92bS5jbG9zZVNpZGViYXIoJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiYXBwLXNpZGViYXItaGVhZGVyX19pbmZvXCIgfSwgW1xuICAgICAgICAgICAgICAgIF92bS5oYXNGaWd1cmUgJiYgIV92bS5lbXB0eVxuICAgICAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImFwcC1zaWRlYmFyLWhlYWRlcl9fZmlndXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcImFwcC1zaWRlYmFyLWhlYWRlcl9fZmlndXJlLS13aXRoLWFjdGlvblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5oYXNGaWd1cmVDbGlja0xpc3RlbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybChcIiArIF92bS5iYWNrZ3JvdW5kICsgXCIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLm9uRmlndXJlQ2xpY2sgfVxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgW192bS5fdChcImhlYWRlclwiKV0sXG4gICAgICAgICAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgIV92bS5lbXB0eVxuICAgICAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImFwcC1zaWRlYmFyLWhlYWRlcl9fZGVzY1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2MtLXdpdGgtdGVydGlhcnktYWN0aW9uXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmNhblN0YXIgfHwgX3ZtLiRzbG90c1tcInRlcnRpYXJ5LWFjdGlvbnNcIl0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXBwLXNpZGViYXItaGVhZGVyX19kZXNjLS1lZGl0YWJsZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS50aXRsZUVkaXRhYmxlICYmICFfdm0uc3VidGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXBwLXNpZGViYXItaGVhZGVyX19kZXNjLS13aXRoLXN1YnRpdGxlLS1lZGl0YWJsZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS50aXRsZUVkaXRhYmxlICYmIF92bS5zdWJ0aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2MtLXdpdGhvdXQtYWN0aW9uc1wiOiAhX3ZtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLiRzbG90c1tcInNlY29uZGFyeS1hY3Rpb25zXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICBfdm0uY2FuU3RhciB8fCBfdm0uJHNsb3RzW1widGVydGlhcnktYWN0aW9uc1wiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcHAtc2lkZWJhci1oZWFkZXJfX3RlcnRpYXJ5LWFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl90KFwidGVydGlhcnktYWN0aW9uc1wiLCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmNhblN0YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gX2MoXCJhXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJhcHAtc2lkZWJhci1oZWFkZXJfX3N0YXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpY29uLXN0YXJyZWRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmlzU3RhcnJlZCAmJiAhX3ZtLnN0YXJMb2FkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpY29uLXN0YXJcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIV92bS5pc1N0YXJyZWQgJiYgIV92bS5zdGFyTG9hZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaWNvbi1sb2FkaW5nLXNtYWxsXCI6IF92bS5zdGFyTG9hZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF92bS50b2dnbGVTdGFycmVkKCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImFwcC1zaWRlYmFyLWhlYWRlcl9fdGl0bGUtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICFfdm0udGl0bGVFZGl0YWJsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwiIXRpdGxlRWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJsaW5raWZ5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtbGlua2lmeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogX3ZtLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5raWZ5OiBfdm0ubGlua2lmeVRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ7dGV4dDogdGl0bGUsIGxpbmtpZnk6IGxpbmtpZnlUaXRsZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJ0b29sdGlwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtdG9vbHRpcC5hdXRvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogX3ZtLnRpdGxlVG9vbHRpcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwidGl0bGVUb29sdGlwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnM6IHsgYXV0bzogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJhcHAtc2lkZWJhci1oZWFkZXJfX21haW50aXRsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnRhcmdldCAhPT0gJGV2ZW50LmN1cnJlbnRUYXJnZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF92bS5lZGl0VGl0bGUoJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9zKF92bS50aXRsZSkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS50aXRsZUVkaXRhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZm9ybVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJjbGljay1vdXRzaWRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtY2xpY2stb3V0c2lkZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3ZtLm9uU3VibWl0VGl0bGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246IFwiKCkgPT4gb25TdWJtaXRUaXRsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXBwLXNpZGViYXItaGVhZGVyX19tYWludGl0bGUtZm9ybVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdDogZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF92bS5vblN1Ym1pdFRpdGxlKCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJmb2N1c1wiLCByYXdOYW1lOiBcInYtZm9jdXNcIiB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY6IFwidGl0bGVJbnB1dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcHAtc2lkZWJhci1oZWFkZXJfX21haW50aXRsZS1pbnB1dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBfdm0udGl0bGVQbGFjZWhvbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tUHJvcHM6IHsgdmFsdWU6IF92bS50aXRsZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlkb3duOiBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9rKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LmtleUNvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVzY1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiRXNjXCIsIFwiRXNjYXBlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdm0ub25EaXNtaXNzRWRpdGluZygkZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IF92bS5vblRpdGxlSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcImJ1dHRvblwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwiaWNvbi1jb25maXJtXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgdHlwZTogXCJzdWJtaXRcIiB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLnN1YnRpdGxlLnRyaW0oKSAhPT0gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInRvb2x0aXBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtdG9vbHRpcC5hdXRvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IF92bS5zdWJ0aXRsZVRvb2x0aXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCJzdWJ0aXRsZVRvb2x0aXBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnM6IHsgYXV0bzogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJhcHAtc2lkZWJhci1oZWFkZXJfX3N1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9zKF92bS5zdWJ0aXRsZSkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogX3ZtLl9lKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBfdm0uJHNsb3RzW1wic2Vjb25kYXJ5LWFjdGlvbnNcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQWN0aW9uc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJhcHAtc2lkZWJhci1oZWFkZXJfX21lbnVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgXCJmb3JjZS1tZW51XCI6IF92bS5mb3JjZU1lbnUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtfdm0uX3QoXCJzZWNvbmRhcnktYWN0aW9uc1wiKV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IF92bS5fZSgpXG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIDogX3ZtLl9lKClcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgIF92bS4kc2xvdHNbXCJkZXNjcmlwdGlvblwiXSAmJiAhX3ZtLmVtcHR5XG4gICAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJhcHAtc2lkZWJhci1oZWFkZXJfX2Rlc2NyaXB0aW9uXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgW192bS5fdChcImRlc2NyaXB0aW9uXCIpXSxcbiAgICAgICAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogX3ZtLl9lKClcbiAgICAgICAgICAgIF1cbiAgICAgICAgICApLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcIkFwcFNpZGViYXJUYWJzXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBcInNob3dcIixcbiAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogIV92bS5sb2FkaW5nLFxuICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCIhbG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZWY6IFwidGFic1wiLFxuICAgICAgICAgICAgICBhdHRyczogeyBhY3RpdmU6IF92bS5hY3RpdmUgfSxcbiAgICAgICAgICAgICAgb246IHsgXCJ1cGRhdGU6YWN0aXZlXCI6IF92bS5vblVwZGF0ZUFjdGl2ZSB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW192bS5fdChcImRlZmF1bHRcIildLFxuICAgICAgICAgICAgMlxuICAgICAgICAgICksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfdm0ubG9hZGluZ1xuICAgICAgICAgICAgPyBfYyhcIkVtcHR5Q29udGVudFwiLCB7IGF0dHJzOiB7IGljb246IFwiaWNvbi1sb2FkaW5nXCIgfSB9KVxuICAgICAgICAgICAgOiBfdm0uX2UoKVxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApXG4gICAgXVxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImFwcC1zaWRlYmFyLXRhYnNcIiB9LCBbXG4gICAgX3ZtLmhhc011bHRpcGxlVGFic1xuICAgICAgPyBfYyhcbiAgICAgICAgICBcIm5hdlwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImFwcC1zaWRlYmFyLXRhYnNfX25hdlwiLFxuICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAga2V5ZG93bjogW1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAhJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJlxuICAgICAgICAgICAgICAgICAgICBfdm0uX2soJGV2ZW50LmtleUNvZGUsIFwibGVmdFwiLCAzNywgJGV2ZW50LmtleSwgW1xuICAgICAgICAgICAgICAgICAgICAgIFwiTGVmdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXJyb3dMZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaWYgKFwiYnV0dG9uXCIgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnNoaWZ0S2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICRldmVudC5hbHRLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50Lm1ldGFLZXlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgIHJldHVybiBfdm0uZm9jdXNQcmV2aW91c1RhYigkZXZlbnQpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcInJpZ2h0XCIsIDM5LCAkZXZlbnQua2V5LCBbXG4gICAgICAgICAgICAgICAgICAgICAgXCJSaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXJyb3dSaWdodFwiXG4gICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChcImJ1dHRvblwiIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICRldmVudC5jdHJsS2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICRldmVudC5zaGlmdEtleSB8fFxuICAgICAgICAgICAgICAgICAgICAkZXZlbnQuYWx0S2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICRldmVudC5tZXRhS2V5XG4gICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICByZXR1cm4gX3ZtLmZvY3VzTmV4dFRhYigkZXZlbnQpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcInRhYlwiLCA5LCAkZXZlbnQua2V5LCBcIlRhYlwiKVxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICRldmVudC5jdHJsS2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICRldmVudC5zaGlmdEtleSB8fFxuICAgICAgICAgICAgICAgICAgICAkZXZlbnQuYWx0S2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICRldmVudC5tZXRhS2V5XG4gICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICByZXR1cm4gX3ZtLmZvY3VzQWN0aXZlVGFiQ29udGVudCgkZXZlbnQpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgIGlmICghJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJiAkZXZlbnQua2V5Q29kZSAhPT0gMzMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnNoaWZ0S2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICRldmVudC5hbHRLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50Lm1ldGFLZXlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgIHJldHVybiBfdm0uZm9jdXNGaXJzdFRhYigkZXZlbnQpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgIGlmICghJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJiAkZXZlbnQua2V5Q29kZSAhPT0gMzQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnNoaWZ0S2V5IHx8XG4gICAgICAgICAgICAgICAgICAgICRldmVudC5hbHRLZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50Lm1ldGFLZXlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgIHJldHVybiBfdm0uZm9jdXNMYXN0VGFiKCRldmVudClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICBcInVsXCIsXG4gICAgICAgICAgICAgIF92bS5fbChfdm0udGFicywgZnVuY3Rpb24odGFiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgICAgICAgXCJsaVwiLFxuICAgICAgICAgICAgICAgICAgeyBrZXk6IHRhYi5pZCwgc3RhdGljQ2xhc3M6IFwiYXBwLXNpZGViYXItdGFic19fdGFiXCIgfSxcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICAgICAgXCJhXCIsXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IHsgYWN0aXZlOiBfdm0uYWN0aXZlVGFiID09PSB0YWIuaWQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB0YWIuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJpYS1jb250cm9sc1wiOiBcInRhYi1cIiArIHRhYi5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLXNlbGVjdGVkXCI6IF92bS5hY3RpdmVUYWIgPT09IHRhYi5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkYXRhLWlkXCI6IHRhYi5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjogXCIjdGFiLVwiICsgdGFiLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleDogX3ZtLmFjdGl2ZVRhYiA9PT0gdGFiLmlkID8gbnVsbCA6IC0xLFxuICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiBcInRhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF92bS5zZXRBY3RpdmUodGFiLmlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICBfYyhcInNwYW5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJhcHAtc2lkZWJhci10YWJzX190YWItaWNvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogdGFiLmljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiXFxuXFx0XFx0XFx0XFx0XFx0XCIgKyBfdm0uX3ModGFiLm5hbWUpICsgXCJcXG5cXHRcXHRcXHRcXHRcIilcbiAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAwXG4gICAgICAgICAgICApXG4gICAgICAgICAgXVxuICAgICAgICApXG4gICAgICA6IF92bS5fZSgpLFxuICAgIF92bS5fdihcIiBcIiksXG4gICAgX2MoXG4gICAgICBcImRpdlwiLFxuICAgICAge1xuICAgICAgICBzdGF0aWNDbGFzczogXCJhcHAtc2lkZWJhci10YWJzX19jb250ZW50XCIsXG4gICAgICAgIGNsYXNzOiB7IFwiYXBwLXNpZGViYXItdGFic19fY29udGVudC0tbXVsdGlwbGVcIjogX3ZtLmhhc011bHRpcGxlVGFicyB9XG4gICAgICB9LFxuICAgICAgW192bS5fdChcImRlZmF1bHRcIildLFxuICAgICAgMlxuICAgIClcbiAgXSlcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1wdHktY29udGVudFwiLCBhdHRyczogeyByb2xlOiBcIm5vdGVcIiB9IH0sIFtcbiAgICBfYyhcbiAgICAgIFwiZGl2XCIsXG4gICAgICB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiBcImVtcHR5LWNvbnRlbnRfX2ljb25cIixcbiAgICAgICAgY2xhc3M6IF92bS5pY29uLFxuICAgICAgICBhdHRyczogeyByb2xlOiBcImltZ1wiIH1cbiAgICAgIH0sXG4gICAgICBbX3ZtLl90KFwiaWNvblwiKV0sXG4gICAgICAyXG4gICAgKSxcbiAgICBfdm0uX3YoXCIgXCIpLFxuICAgIF9jKFwiaDJcIiwgeyBzdGF0aWNDbGFzczogXCJlbXB0eS1jb250ZW50X190aXRsZVwiIH0sIFtfdm0uX3QoXCJkZWZhdWx0XCIpXSwgMiksXG4gICAgX3ZtLl92KFwiIFwiKSxcbiAgICBfYyhcbiAgICAgIFwicFwiLFxuICAgICAge1xuICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgdmFsdWU6IF92bS4kc2xvdHMuZGVzYyxcbiAgICAgICAgICAgIGV4cHJlc3Npb246IFwiJHNsb3RzLmRlc2NcIlxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFtfdm0uX3QoXCJkZXNjXCIpXSxcbiAgICAgIDJcbiAgICApXG4gIF0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcbiAgICBcIlZQb3BvdmVyXCIsXG4gICAgX3ZtLl9nKFxuICAgICAgX3ZtLl9iKFxuICAgICAgICB7XG4gICAgICAgICAgcmVmOiBcInBvcG92ZXJcIixcbiAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgXCJwb3BvdmVyLWJhc2UtY2xhc3NcIjogXCJwb3BvdmVyXCIsXG4gICAgICAgICAgICBcInBvcG92ZXItd3JhcHBlci1jbGFzc1wiOiBcInBvcG92ZXJfX3dyYXBwZXJcIixcbiAgICAgICAgICAgIFwicG9wb3Zlci1hcnJvdy1jbGFzc1wiOiBcInBvcG92ZXJfX2Fycm93XCIsXG4gICAgICAgICAgICBcInBvcG92ZXItaW5uZXItY2xhc3NcIjogXCJwb3BvdmVyX19pbm5lclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlZQb3BvdmVyXCIsXG4gICAgICAgIF92bS4kYXR0cnMsXG4gICAgICAgIGZhbHNlXG4gICAgICApLFxuICAgICAgX3ZtLiRsaXN0ZW5lcnNcbiAgICApLFxuICAgIFtcbiAgICAgIF92bS5fdChcInRyaWdnZXJcIiksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJ0ZW1wbGF0ZVwiLCB7IHNsb3Q6IFwicG9wb3ZlclwiIH0sIFtfdm0uX3QoXCJkZWZhdWx0XCIpXSwgMilcbiAgICBdLFxuICAgIDJcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIi8qIGdsb2JhbHMgX19WVUVfU1NSX0NPTlRFWFRfXyAqL1xuXG4vLyBJTVBPUlRBTlQ6IERvIE5PVCB1c2UgRVMyMDE1IGZlYXR1cmVzIGluIHRoaXMgZmlsZSAoZXhjZXB0IGZvciBtb2R1bGVzKS5cbi8vIFRoaXMgbW9kdWxlIGlzIGEgcnVudGltZSB1dGlsaXR5IGZvciBjbGVhbmVyIGNvbXBvbmVudCBtb2R1bGUgb3V0cHV0IGFuZCB3aWxsXG4vLyBiZSBpbmNsdWRlZCBpbiB0aGUgZmluYWwgd2VicGFjayB1c2VyIGJ1bmRsZS5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50IChcbiAgc2NyaXB0RXhwb3J0cyxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZ1bmN0aW9uYWxUZW1wbGF0ZSxcbiAgaW5qZWN0U3R5bGVzLFxuICBzY29wZUlkLFxuICBtb2R1bGVJZGVudGlmaWVyLCAvKiBzZXJ2ZXIgb25seSAqL1xuICBzaGFkb3dNb2RlIC8qIHZ1ZS1jbGkgb25seSAqL1xuKSB7XG4gIC8vIFZ1ZS5leHRlbmQgY29uc3RydWN0b3IgZXhwb3J0IGludGVyb3BcbiAgdmFyIG9wdGlvbnMgPSB0eXBlb2Ygc2NyaXB0RXhwb3J0cyA9PT0gJ2Z1bmN0aW9uJ1xuICAgID8gc2NyaXB0RXhwb3J0cy5vcHRpb25zXG4gICAgOiBzY3JpcHRFeHBvcnRzXG5cbiAgLy8gcmVuZGVyIGZ1bmN0aW9uc1xuICBpZiAocmVuZGVyKSB7XG4gICAgb3B0aW9ucy5yZW5kZXIgPSByZW5kZXJcbiAgICBvcHRpb25zLnN0YXRpY1JlbmRlckZucyA9IHN0YXRpY1JlbmRlckZuc1xuICAgIG9wdGlvbnMuX2NvbXBpbGVkID0gdHJ1ZVxuICB9XG5cbiAgLy8gZnVuY3Rpb25hbCB0ZW1wbGF0ZVxuICBpZiAoZnVuY3Rpb25hbFRlbXBsYXRlKSB7XG4gICAgb3B0aW9ucy5mdW5jdGlvbmFsID0gdHJ1ZVxuICB9XG5cbiAgLy8gc2NvcGVkSWRcbiAgaWYgKHNjb3BlSWQpIHtcbiAgICBvcHRpb25zLl9zY29wZUlkID0gJ2RhdGEtdi0nICsgc2NvcGVJZFxuICB9XG5cbiAgdmFyIGhvb2tcbiAgaWYgKG1vZHVsZUlkZW50aWZpZXIpIHsgLy8gc2VydmVyIGJ1aWxkXG4gICAgaG9vayA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICAvLyAyLjMgaW5qZWN0aW9uXG4gICAgICBjb250ZXh0ID1cbiAgICAgICAgY29udGV4dCB8fCAvLyBjYWNoZWQgY2FsbFxuICAgICAgICAodGhpcy4kdm5vZGUgJiYgdGhpcy4kdm5vZGUuc3NyQ29udGV4dCkgfHwgLy8gc3RhdGVmdWxcbiAgICAgICAgKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50LiR2bm9kZSAmJiB0aGlzLnBhcmVudC4kdm5vZGUuc3NyQ29udGV4dCkgLy8gZnVuY3Rpb25hbFxuICAgICAgLy8gMi4yIHdpdGggcnVuSW5OZXdDb250ZXh0OiB0cnVlXG4gICAgICBpZiAoIWNvbnRleHQgJiYgdHlwZW9mIF9fVlVFX1NTUl9DT05URVhUX18gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnRleHQgPSBfX1ZVRV9TU1JfQ09OVEVYVF9fXG4gICAgICB9XG4gICAgICAvLyBpbmplY3QgY29tcG9uZW50IHN0eWxlc1xuICAgICAgaWYgKGluamVjdFN0eWxlcykge1xuICAgICAgICBpbmplY3RTdHlsZXMuY2FsbCh0aGlzLCBjb250ZXh0KVxuICAgICAgfVxuICAgICAgLy8gcmVnaXN0ZXIgY29tcG9uZW50IG1vZHVsZSBpZGVudGlmaWVyIGZvciBhc3luYyBjaHVuayBpbmZlcnJlbmNlXG4gICAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0Ll9yZWdpc3RlcmVkQ29tcG9uZW50cykge1xuICAgICAgICBjb250ZXh0Ll9yZWdpc3RlcmVkQ29tcG9uZW50cy5hZGQobW9kdWxlSWRlbnRpZmllcilcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdXNlZCBieSBzc3IgaW4gY2FzZSBjb21wb25lbnQgaXMgY2FjaGVkIGFuZCBiZWZvcmVDcmVhdGVcbiAgICAvLyBuZXZlciBnZXRzIGNhbGxlZFxuICAgIG9wdGlvbnMuX3NzclJlZ2lzdGVyID0gaG9va1xuICB9IGVsc2UgaWYgKGluamVjdFN0eWxlcykge1xuICAgIGhvb2sgPSBzaGFkb3dNb2RlXG4gICAgICA/IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaW5qZWN0U3R5bGVzLmNhbGwoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAob3B0aW9ucy5mdW5jdGlvbmFsID8gdGhpcy5wYXJlbnQgOiB0aGlzKS4kcm9vdC4kb3B0aW9ucy5zaGFkb3dSb290XG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIDogaW5qZWN0U3R5bGVzXG4gIH1cblxuICBpZiAoaG9vaykge1xuICAgIGlmIChvcHRpb25zLmZ1bmN0aW9uYWwpIHtcbiAgICAgIC8vIGZvciB0ZW1wbGF0ZS1vbmx5IGhvdC1yZWxvYWQgYmVjYXVzZSBpbiB0aGF0IGNhc2UgdGhlIHJlbmRlciBmbiBkb2Vzbid0XG4gICAgICAvLyBnbyB0aHJvdWdoIHRoZSBub3JtYWxpemVyXG4gICAgICBvcHRpb25zLl9pbmplY3RTdHlsZXMgPSBob29rXG4gICAgICAvLyByZWdpc3RlciBmb3IgZnVuY3Rpb25hbCBjb21wb25lbnQgaW4gdnVlIGZpbGVcbiAgICAgIHZhciBvcmlnaW5hbFJlbmRlciA9IG9wdGlvbnMucmVuZGVyXG4gICAgICBvcHRpb25zLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcldpdGhTdHlsZUluamVjdGlvbiAoaCwgY29udGV4dCkge1xuICAgICAgICBob29rLmNhbGwoY29udGV4dClcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVuZGVyKGgsIGNvbnRleHQpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGluamVjdCBjb21wb25lbnQgcmVnaXN0cmF0aW9uIGFzIGJlZm9yZUNyZWF0ZSBob29rXG4gICAgICB2YXIgZXhpc3RpbmcgPSBvcHRpb25zLmJlZm9yZUNyZWF0ZVxuICAgICAgb3B0aW9ucy5iZWZvcmVDcmVhdGUgPSBleGlzdGluZ1xuICAgICAgICA/IFtdLmNvbmNhdChleGlzdGluZywgaG9vaylcbiAgICAgICAgOiBbaG9va11cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGV4cG9ydHM6IHNjcmlwdEV4cG9ydHMsXG4gICAgb3B0aW9uczogb3B0aW9uc1xuICB9XG59XG4iLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL0FjdGlvbnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRmNDU4NjRiJnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FjdGlvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9BY3Rpb25zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9BY3Rpb25zLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTRmNDU4NjRiJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiNGY0NTg2NGJcIixcbiAgbnVsbFxuICBcbilcblxuLyogY3VzdG9tIGJsb2NrcyAqL1xuaW1wb3J0IGJsb2NrMCBmcm9tIFwiLi9BY3Rpb25zLnZ1ZT92dWUmdHlwZT1jdXN0b20maW5kZXg9MCZibG9ja1R5cGU9ZG9jc1wiXG5pZiAodHlwZW9mIGJsb2NrMCA9PT0gJ2Z1bmN0aW9uJykgYmxvY2swKGNvbXBvbmVudClcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvaG9tZS9sb3Vpcy93b3Jrc3BhY2UvbmV4dGNsb3VkL3Rvb2xzL25leHRjbG91ZC12dWUvbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNGY0NTg2NGInKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNGY0NTg2NGInLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNGY0NTg2NGInLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FjdGlvbnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRmNDU4NjRiJnNjb3BlZD10cnVlJlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzRmNDU4NjRiJywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9BY3Rpb25zL0FjdGlvbnMudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FjdGlvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQWN0aW9ucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVzb2x2ZS11cmwtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BY3Rpb25zLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTRmNDU4NjRiJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3RlbXBsYXRlTG9hZGVyLmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BY3Rpb25zLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00ZjQ1ODY0YiZzY29wZWQ9dHJ1ZSZcIiIsIi8qKlxuICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTggSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxuICpcbiAqIEBhdXRob3IgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxuICpcbiAqIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlXG4gKiBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKi9cbmltcG9ydCBBY3Rpb25zIGZyb20gJy4vQWN0aW9ucydcblxuZXhwb3J0IGRlZmF1bHQgQWN0aW9uc1xuIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9BcHBTaWRlYmFyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YTJhNWYyZiZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9BcHBTaWRlYmFyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vQXBwU2lkZWJhci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vQXBwU2lkZWJhci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00YTJhNWYyZiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzdHlsZTEgZnJvbSBcIi4vQXBwU2lkZWJhci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MSZsYW5nPXNjc3MmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjRhMmE1ZjJmXCIsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGN1c3RvbSBibG9ja3MgKi9cbmltcG9ydCBibG9jazAgZnJvbSBcIi4vQXBwU2lkZWJhci52dWU/dnVlJnR5cGU9Y3VzdG9tJmluZGV4PTAmYmxvY2tUeXBlPWRvY3NcIlxuaWYgKHR5cGVvZiBibG9jazAgPT09ICdmdW5jdGlvbicpIGJsb2NrMChjb21wb25lbnQpXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL2hvbWUvbG91aXMvd29ya3NwYWNlL25leHRjbG91ZC90b29scy9uZXh0Y2xvdWQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzRhMmE1ZjJmJykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzRhMmE1ZjJmJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzRhMmE1ZjJmJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9BcHBTaWRlYmFyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YTJhNWYyZiZzY29wZWQ9dHJ1ZSZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc0YTJhNWYyZicsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhci9BcHBTaWRlYmFyLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHBTaWRlYmFyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcFNpZGViYXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Jlc29sdmUtdXJsLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0zIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwU2lkZWJhci52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00YTJhNWYyZiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVzb2x2ZS11cmwtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHBTaWRlYmFyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0xJmxhbmc9c2NzcyZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3RlbXBsYXRlTG9hZGVyLmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHBTaWRlYmFyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YTJhNWYyZiZzY29wZWQ9dHJ1ZSZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vQXBwU2lkZWJhclRhYnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU3NzJlNDRkJnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0FwcFNpZGViYXJUYWJzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vQXBwU2lkZWJhclRhYnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL0FwcFNpZGViYXJUYWJzLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTU3NzJlNDRkJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiNTc3MmU0NGRcIixcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvaG9tZS9sb3Vpcy93b3Jrc3BhY2UvbmV4dGNsb3VkL3Rvb2xzL25leHRjbG91ZC12dWUvbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNTc3MmU0NGQnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNTc3MmU0NGQnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNTc3MmU0NGQnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0FwcFNpZGViYXJUYWJzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01NzcyZTQ0ZCZzY29wZWQ9dHJ1ZSZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc1NzcyZTQ0ZCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhci9BcHBTaWRlYmFyVGFicy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwU2lkZWJhclRhYnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwU2lkZWJhclRhYnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Jlc29sdmUtdXJsLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0zIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwU2lkZWJhclRhYnMudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTc3MmU0NGQmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiIiwiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvdGVtcGxhdGVMb2FkZXIuanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcFNpZGViYXJUYWJzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01NzcyZTQ0ZCZzY29wZWQ9dHJ1ZSZcIiIsIi8qXG4gKiBAY29weXJpZ2h0IDIwMTkgQ2hyaXN0b3BoIFd1cnN0IDxjaHJpc3RvcGhAd2luemVyaG9mLXd1cnN0LmF0PlxuICpcbiAqIEBhdXRob3IgMjAxOSBDaHJpc3RvcGggV3Vyc3QgPGNocmlzdG9waEB3aW56ZXJob2Ytd3Vyc3QuYXQ+XG4gKlxuICogQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuaW1wb3J0IEFwcFNpZGViYXIgZnJvbSAnLi9BcHBTaWRlYmFyJ1xuXG5leHBvcnQgZGVmYXVsdCBBcHBTaWRlYmFyXG4iLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL0VtcHR5Q29udGVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YTY4Yjg0NjImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vRW1wdHlDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vRW1wdHlDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9FbXB0eUNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9YTY4Yjg0NjImbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJhNjhiODQ2MlwiLFxuICBudWxsXG4gIFxuKVxuXG4vKiBjdXN0b20gYmxvY2tzICovXG5pbXBvcnQgYmxvY2swIGZyb20gXCIuL0VtcHR5Q29udGVudC52dWU/dnVlJnR5cGU9Y3VzdG9tJmluZGV4PTAmYmxvY2tUeXBlPWRvY3NcIlxuaWYgKHR5cGVvZiBibG9jazAgPT09ICdmdW5jdGlvbicpIGJsb2NrMChjb21wb25lbnQpXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL2hvbWUvbG91aXMvd29ya3NwYWNlL25leHRjbG91ZC90b29scy9uZXh0Y2xvdWQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJ2E2OGI4NDYyJykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJ2E2OGI4NDYyJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJ2E2OGI4NDYyJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9FbXB0eUNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWE2OGI4NDYyJnNjb3BlZD10cnVlJlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJ2E2OGI4NDYyJywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9FbXB0eUNvbnRlbnQvRW1wdHlDb250ZW50LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9FbXB0eUNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vRW1wdHlDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZXNvbHZlLXVybC1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0VtcHR5Q29udGVudC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hNjhiODQ2MiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vRW1wdHlDb250ZW50LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hNjhiODQ2MiZzY29wZWQ9dHJ1ZSZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vUG9wb3Zlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDUwOTNjY2EmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUG9wb3Zlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL1BvcG92ZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL1BvcG92ZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmbGFuZz1zY3NzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogY3VzdG9tIGJsb2NrcyAqL1xuaW1wb3J0IGJsb2NrMCBmcm9tIFwiLi9Qb3BvdmVyLnZ1ZT92dWUmdHlwZT1jdXN0b20maW5kZXg9MCZibG9ja1R5cGU9ZG9jc1wiXG5pZiAodHlwZW9mIGJsb2NrMCA9PT0gJ2Z1bmN0aW9uJykgYmxvY2swKGNvbXBvbmVudClcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvaG9tZS9sb3Vpcy93b3Jrc3BhY2UvbmV4dGNsb3VkL3Rvb2xzL25leHRjbG91ZC12dWUvbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNDUwOTNjY2EnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNDUwOTNjY2EnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNDUwOTNjY2EnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1BvcG92ZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTQ1MDkzY2NhJlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzQ1MDkzY2NhJywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9Qb3BvdmVyL1BvcG92ZXIudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BvcG92ZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUG9wb3Zlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvcmVzb2x2ZS11cmwtbG9hZGVyL2luZGV4LmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9Qb3BvdmVyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmxhbmc9c2NzcyZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3RlbXBsYXRlTG9hZGVyLmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9Qb3BvdmVyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00NTA5M2NjYSZcIiIsIi8qKlxuICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTkgTWFyY28gQW1icm9zaW5pIDxtYXJjb2FtYnJvc2luaUBwbS5tZT5cbiAqXG4gKiBAYXV0aG9yIE1hcmNvIEFtYnJvc2luaSA8bWFyY29hbWJyb3NpbmlAcG0ubWU+XG4gKlxuICogQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICovXG5cbmltcG9ydCBQb3BvdmVyIGZyb20gJy4vUG9wb3ZlcidcblxuZXhwb3J0IGRlZmF1bHQgUG9wb3ZlclxuIiwiLyoqXG4gKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOSBHZW9yZyBFaHJrZVxuICpcbiAqIEBhdXRob3IgR2VvcmcgRWhya2UgPG9jLmxpc3RAZ2VvcmdlaHJrZS5jb20+XG4gKlxuICogQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqL1xuXG5leHBvcnQgY29uc3QgZGlyZWN0aXZlID0ge1xuXHRpbnNlcnRlZChlbCkge1xuXHRcdGVsLmZvY3VzKClcblx0fSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgZGlyZWN0aXZlXG4iLCIvKipcbiAqIEBhdXRob3IgUmFpbXVuZCBTY2hsw7zDn2xlclxuICogQGNvcHlyaWdodCAyMDIwIFJhaW11bmQgU2NobMO8w59sZXIgPHJhaW11bmQuc2NobHVlc3NsZXJAbWFpbGJveC5vcmc+XG4gKlxuICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vclxuICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFGRkVSTyBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFXG4gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXJcbiAqIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFGRkVSTyBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpY1xuICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKi9cbmltcG9ydCBsaW5raWZ5U3RyIGZyb20gJ2xpbmtpZnlqcy9zdHJpbmcnXG5cbi8vIFVzZSBmdW5jdGlvbiBzaG9ydGhhbmQgZm9yIHNhbWUgYmVoYXZpb3Igb24gYmluZCBhbmQgdXBkYXRlXG4vLyBodHRwczovL3Z1ZWpzLm9yZy92Mi9ndWlkZS9jdXN0b20tZGlyZWN0aXZlLmh0bWwjRnVuY3Rpb24tU2hvcnRoYW5kXG5leHBvcnQgY29uc3QgZGlyZWN0aXZlID0gZnVuY3Rpb24oZWwsIGJpbmRpbmcpIHtcblx0aWYgKGJpbmRpbmcudmFsdWU/LmxpbmtpZnkgPT09IHRydWUpIHtcblx0XHRlbC5pbm5lckhUTUwgPSBsaW5raWZ5U3RyKGJpbmRpbmcudmFsdWUudGV4dCwge1xuXHRcdFx0ZGVmYXVsdFByb3RvY29sOiAnaHR0cHMnLFxuXHRcdH0pXG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZGlyZWN0aXZlXG4iLCIvKipcbiAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDE5IEp1bGl1cyBIw6RydGwgPGp1c0BiaXRncmlkLm5ldD5cbiAqXG4gKiBAYXV0aG9yIEp1bGl1cyBIw6RydGwgPGp1c0BiaXRncmlkLm5ldD5cbiAqIEBhdXRob3IgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxuICpcbiAqIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlXG4gKiBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqL1xuaW1wb3J0IHsgVlRvb2x0aXAgfSBmcm9tICd2LXRvb2x0aXAnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuLy8gZm9yY2Ugc2NvcGUgdGhlIHRvb2x0aXAgYW5kIHVzZSAudnVlLXRvb2x0aXBcbi8vIGluc3RlYWQgb2YgLnRvb2x0aXAgdG8gYXZvaWQgc2VydmVyIGNvbXBhdGliaWxpdHlcbi8vIGlzc3VlcyBhbmQgdGhlIHVzZSBvZiAhaW1wb3J0YW50XG5WVG9vbHRpcC5vcHRpb25zLmRlZmF1bHRUZW1wbGF0ZSA9IGA8ZGl2IGNsYXNzPVwidnVlLXRvb2x0aXBcIiByb2xlPVwidG9vbHRpcFwiIGRhdGEtdi0ke1NDT1BFX1ZFUlNJT059PjxkaXYgY2xhc3M9XCJ0b29sdGlwLWFycm93XCI+PC9kaXY+PGRpdiBjbGFzcz1cInRvb2x0aXAtaW5uZXJcIj48L2Rpdj48L2Rpdj5gXG5WVG9vbHRpcC5vcHRpb25zLmRlZmF1bHRIdG1sID0gZmFsc2VcblxuZXhwb3J0IGRlZmF1bHQgVlRvb2x0aXBcbiIsImltcG9ydCBhcGkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgICAgICAgIGltcG9ydCBjb250ZW50IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZXNvbHZlLXVybC1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMyEuL2luZGV4LnNjc3NcIjtcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5pbnNlcnQgPSBcImhlYWRcIjtcbm9wdGlvbnMuc2luZ2xldG9uID0gZmFsc2U7XG5cbnZhciB1cGRhdGUgPSBhcGkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50LmxvY2FscyB8fCB7fTsiLCJleHBvcnQgZGVmYXVsdCBcImRhdGE6YXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3Q7YmFzZTY0LHJnOEFBT1FPQUFBQkFBSUFBQUFBQUFJQUJRTUFBQUFBQUFBQlFKQUJBQUFBQUV4UUFBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBTy96c1B3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDZ0FBR2tBWXdCdkFHNEFaZ0J2QUc0QWRBQXRBSFlBZFFCbEFDMEFPQUEwQUdNQU5BQTJBREVBWmdBQUFBQUFBQllBQUZZQVpRQnlBSE1BYVFCdkFHNEFJQUF4QUM0QU1BQUFLQUFBYVFCakFHOEFiZ0JtQUc4QWJnQjBBQzBBZGdCMUFHVUFMUUE0QURRQVl3QTBBRFlBTVFCbUFBQUFBQUFCQUFBQUNnQ0FBQU1BSUU5VEx6SjA0NC9SQUFBQXJBQUFBR0JqYldGd0FBM3J1QUFBQVF3QUFBRkNaMng1WnNkSE9Vd0FBQUpRQUFBSC9HaGxZV1FyNnhmM0FBQUtUQUFBQURab2FHVmhKdjBUaFFBQUNvUUFBQUFrYUcxMGVHZSsvLzhBQUFxb0FBQUFOR3h2WTJFTnZBOW1BQUFLM0FBQUFDaHRZWGh3QVNBQVZ3QUFDd1FBQUFBZ2JtRnRaVzNFK1ZRQUFBc2tBQUFDcG5CdmMzUS9WTDdYQUFBTnpBQUFBUllBQkJMS0FaQUFCUUFBREdVTnJBQUFBcndNWlEyc0FBQUpZQUQxQlFvQUFBSUFCUU1BQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQVVHWkZaQUJBNmdIcUVoT0lBQUFCd2hPSUFBQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFEQUFBQUF3QUFBQndBQVFBQUFBQUFQQUFEQUFFQUFBQWNBQVFBSUFBQUFBUUFCQUFCQUFEcUV2Ly9BQURxQWYvL0ZnQUFBUUFBQUFBQUFBRUdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFBT3BnOURBQVVBQ3dBQUNRSVJDUVFSQ1FFT3B2cUNCWDc3dWdSRytvTDZnZ1YrKzdvRVJnOUMrb0w2Z2dFNEJFWUVSZ0U0K29MNmdnRTRCRVlFUmdBQkFBQUFBQTF1RWxBQUJRQUFDUUVSQ1FFUkJoc0hVL2QwQ0l3SnhQaXQvc2dJaXdpTS9zY0FBZ0FBQUFBUDN3OURBQVVBQ3dBQUNRSVJDUVFSQ1FFRTRnVisrb0lFUnZ1NkJYNEZmL3FCQkViN3VnUkdCWDRGZnY3SSs3cjd1djdJQlg0RmZ2N0krN3I3dWdBQkFBQUFBQTZtRWxBQUJRQUFDUUVSQ1FFUkRXNzRyUWlMOTNVSnhBZFRBVG4zZFBkMUFUZ0FBUUFBQUFBR054T0lBQVVBQUJNSENRRVhBWlNVQlhMNmpwUUZveE9JVmZhUjlwRlZDY1FBQUFFQUFBQUFFWWNQZ3dBRkFBQUpCUS9OOS9QNysvNUdCYjhKeHcrRDkvTUVCZjVIK2tFSnhnQUJBQUFBQUJFWEVSY0FDd0FBQ1FzUkYvM3Qrc0Q2d1AzdEJVRDZ3QUlUQlVBRlFBSVQrc0FFaFAzdEJVRDZ3QUlUQlVBRlFBSVQrc0FGUVAzdCtzQUFBZi8vQUFBVGt4THNBRE1BQUFFaUJ3NEJGeFlYQVNFbUJ3WUhCZ2NHRkJjV0Z4WVhGamNoQVFZSEJoY1dGeDRCRnhZWEZqYzJOd0UyTnpZbkppY0JMZ0VLWUdWUFNrWVFFa2dGMS9IZ1RUNDZLU2NVRkJRVUp5azZQazBPSVBvcE54b1lBd01iR1ZZMU56cytPajgxQiswN0ZSVVVGVHo0RXl4MEV1dzVOS3haWUVmNktnRWJHQzRzT1RoNE9Ea3NMaGdiQXZvcE5UODdQam8zTmxZWkdnTURHQms0Qit3OFVWQlBVandIN0MweUFBQUFBZ0FBQUFBT3BoSlFBQmdBUmdBQUFTSUhEZ0VIQmhRWEhnRVhGakkzUGdFM05qUW5MZ0VuSmdFaUJ3WUhCaFFYRmhjV015RVJJU0lIQmdjR0ZCY1dGeFkzSVRJM05qYzJOQ2NtSnlZaklSRTBKeVluSmlNSmRtOW1ZcGdwS3lzcG1HSm0zbVppbHlvckt5cVhZbWI4TmxaSVJ5a3JLeWxIU0ZZQ2NmMlBWa2hIS1NzcktVZElWZ2RUVlVoSEtTc3JLVWRJVmYyUEt5bEhTVlVTVUNzcWwyTmwzMlZpbUNrckt5bVlZbVhmWldPWEtpdjU1U3NwUjBpclNFY3BLL25tS3lsSFNhcEpSeWtyQVNvcFIwbXFTVWNwS3dkVFZVaEhLU3NBQUFNQUFBQUFFUmNSRndBREFBY0FDd0FBQVJFaEVRRVJJUkVCRVNFUkFuRU9wdkZhRHFieFdnNm1FUmY5andKeCtlYjlqd0p4K2VYOWp3SnhBQU1BQUFBQUVwNEw1d0FZQURFQVNnQUFBVElYSGdFWEZoUUhEZ0VIQmlJbkxnRW5KalEzUGdFM05pRXlGeDRCRnhZVUJ3NEJCd1lpSnk0Qkp5WTBOejRCTnpZaE1oY2VBUmNXRkFjT0FRY0dJaWN1QVNjbU5EYytBVGMyQXcxd1pXS1lLU3NyS1poaVpkOW1ZcGNxS3lzcWwySm1CeVp2Wm1LWEtpc3JLcGRpWnQ1bVlwY3FLeXNxbDJKbUJ5WnZabUtYS2lzcktwZGladDlsWXBncEt5c3BtR0psQytjcktwZGladDVtWXBjcUt5c3FsMkptM21aaWx5b3JLeXFYWW1iZVptS1hLaXNyS3BkaVp0NW1ZcGNxS3lzcWwySm0zbVppbHlvckt5cVhZbWJlWm1LWEtpc0FBQUFBQWdBQUFBQVAzdy9mQUFNQUJ3QUFBUkVoRVNFUklSRURxZ1RpQW5FRTRnL2Y4OHNNTmZQTEREVUFBQUFCQUFBQUFCRVhFUmNBQWdBQUNRSUNjUTZtOFZvUkYvaXQrSzBBQVFBQUFBQU9wZ3cxQUFJQUFBa0NCT0lFNGdUaUREWDdIZ1RnQUFILzRBQUFFMmtUYVFBeEFBQUJCQVVFQlFRREFnTUNFUkFURWhNU0JRUUZCQ0VnSlNRbEpCTVNFeElUQmdBRkJDRWdKU1FuSmljbUF3SVJFQk1TQUFocy9waitzZjY2L3UzKzdzYkthMjZBZStubEFUa0JQQUZ5QVg0QmxnRnhBV0VCVmdFdUFTcnI3Sm1jT0x6K0tmNzUvdlArNnY2Ky9zNysyZjM3dUx0aloxQk9BU2NUYVM2WGsrbm4vdGYrMC82ci9wLytqLzVxL29MK2p2N0Uvc2ZsNkh5QWEyakZ3Z0VOQVE0QlF3RkxBV25NL3RwT1VHZGp1N2o3L1FFbkFUSUJRZ0VsQVJNQkRRSExBQUlBQUFBQUU0Z1RpQUFrQUVBQUFBRWdCUVFGQkFNQ0F3SVFFeElURWdVRUJRUWdKU1FsSkJNU0V4SVFBd0lEQWlVa0pTUUJJVElYSGdFWEZoUUhEZ0VIQmlNaElpY3VBU2NtTkRjK0FUYzJDY1QrYXY2Qy9vNyt4UDdINWVoOGdJQjg2T1VCT1FFOEFYSUJmZ01zQVg0QmNnRThBVG5sNkh5QWdIem81ZjdIL3NUK2p2NkMrc0VIVTF0WFZJUWtKaVlraEZSWFcvaXRYRmRVaENRbUppU0VWRmNUaUlCODZPWCt4LzdFL283K2d2elUvb0wranY3RS9zZmw2SHlBZ0h6bzVRRTVBVHdCY2dGK0F5d0JmZ0Z5QVR3Qk9lWG9mSUQ0RVNZbGhGTlh1RmRUaENVbUppV0VVMWU0VjFPRUpTWUFBQUFDQUFBQUFCT0lFNGdBSkFBOUFBQUJJQVVFQlFRREFnTUNFQk1TRXhJRkJBVUVJQ1VrSlNRVEVoTVNFQU1DQXdJbEpDVWtBU0FGQkFBVEVoQURBZ0FGQkNBbEpBQURBaEFURWdBbEpBbkUvbXIrZ3Y2Ty9zVCt4K1hvZklDQWZPamxBVGtCUEFGeUFYNERMQUYrQVhJQlBBRTU1ZWg4Z0lCODZPWCt4LzdFL283K2d2NXFBVGNCRndFUEFadHdkSFJ3L21YKzhmN3AvWkwrNmY3eC9tVndkSFJ3QVpzQkR3RVhFNGlBZk9qbC9zZit4UDZPL29MODFQNkMvbzcreFA3SDVlaDhnSUI4Nk9VQk9RRThBWElCZmdNc0FYNEJjZ0U4QVRubDZIeUEvQmgwY1A1bC92SCs2ZjJTL3VuKzhmNWxjSFIwY0FHYkFROEJGd0p1QVJjQkR3R2JjSFFBQUFBQ0FBQUFBQk9JRTRnQUF3QW9BQUFCSVJFaEFTQUZCQVVFQXdJREFoQVRFaE1TQlFRRkJDQWxKQ1VrRXhJVEVoQURBZ01DSlNRbEpBWGNCOUQ0TUFQby9tcitndjZPL3NUK3grWG9mSUNBZk9qbEFUa0JQQUZ5QVg0RExBRitBWElCUEFFNTVlaDhnSUI4Nk9YK3gvN0UvbzcrZ2dYY0I5QUYzSUI4Nk9YK3gvN0UvbzcrZ3Z6VS9vTCtqdjdFL3NmbDZIeUFnSHpvNVFFNUFUd0JjZ0YrQXl3QmZnRnlBVHdCT2VYb2ZJQUFBQUVBQUFBQkFBQS83UHc3WHc4ODlRQUxFNGdBQUFBQTNOVkg5UUFBQUFEY2hHdjEvK0FBQUJPVEU0Z0FBQUFJQUFJQUFBQUFBQUFBQVFBQUU0Z0FBQUFBRTRqLzRQLzFFNU1BQVFBQUFBQUFBQUFBQUFBQUFBQUFBQWNBQUFBQUU0Z0FBQk9JQUFBVGlBQUFFNGdBQUFZMkFBQVRpQUFBQUFELy93QUFBQUFBQUFBQUFBQUFBUC9nQUFBQUFBQUFBQUFBQUFBaUFEWUFXQUJzQUlBQWxBQzBBUTRCZkFHYUFoQUNKZ0kwQWtJQ3FBTWlBNllEL2dBQkFBQUFFd0JMQUFNQUFBQUFBQUlBQUFBS0FBb0FBQUQvQUFBQUFBQUFBQUFBRUFER0FBRUFBQUFBQUFFQUZBQUFBQUVBQUFBQUFBSUFCd0FVQUFFQUFBQUFBQU1BRkFBYkFBRUFBQUFBQUFRQUZBQXZBQUVBQUFBQUFBVUFDd0JEQUFFQUFBQUFBQVlBRkFCT0FBRUFBQUFBQUFvQUt3QmlBQUVBQUFBQUFBc0FFd0NOQUFNQUFRUUpBQUVBS0FDZ0FBTUFBUVFKQUFJQURnRElBQU1BQVFRSkFBTUFLQURXQUFNQUFRUUpBQVFBS0FEK0FBTUFBUVFKQUFVQUZnRW1BQU1BQVFRSkFBWUFLQUU4QUFNQUFRUUpBQW9BVmdGa0FBTUFBUVFKQUFzQUpnRzZhV052Ym1admJuUXRkblZsTFRnMFl6UTJNV1pTWldkMWJHRnlhV052Ym1admJuUXRkblZsTFRnMFl6UTJNV1pwWTI5dVptOXVkQzEyZFdVdE9EUmpORFl4WmxabGNuTnBiMjRnTVM0d2FXTnZibVp2Ym5RdGRuVmxMVGcwWXpRMk1XWkhaVzVsY21GMFpXUWdZbmtnYzNabk1uUjBaaUJtY205dElFWnZiblJsYkd4dklIQnliMnBsWTNRdWFIUjBjRG92TDJadmJuUmxiR3h2TG1OdmJRQnBBR01BYndCdUFHWUFid0J1QUhRQUxRQjJBSFVBWlFBdEFEZ0FOQUJqQURRQU5nQXhBR1lBVWdCbEFHY0FkUUJzQUdFQWNnQnBBR01BYndCdUFHWUFid0J1QUhRQUxRQjJBSFVBWlFBdEFEZ0FOQUJqQURRQU5nQXhBR1lBYVFCakFHOEFiZ0JtQUc4QWJnQjBBQzBBZGdCMUFHVUFMUUE0QURRQVl3QTBBRFlBTVFCbUFGWUFaUUJ5QUhNQWFRQnZBRzRBSUFBeEFDNEFNQUJwQUdNQWJ3QnVBR1lBYndCdUFIUUFMUUIyQUhVQVpRQXRBRGdBTkFCakFEUUFOZ0F4QUdZQVJ3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCekFIWUFad0F5QUhRQWRBQm1BQ0FBWmdCeUFHOEFiUUFnQUVZQWJ3QnVBSFFBWlFCc0FHd0Fid0FnQUhBQWNnQnZBR29BWlFCakFIUUFMZ0JvQUhRQWRBQndBRG9BTHdBdkFHWUFid0J1QUhRQVpRQnNBR3dBYndBdUFHTUFid0J0QUFBQUFnQUFBQUFBQUFBeUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFd0FUQUFBQkFnRURBUVFCQlFFR0FRY0JDQUVKQVFvQkN3RU1BUTBCRGdFUEFSQUJFUUVTQVJNUllYSnliM2N0YkdWbWRDMWtiM1ZpYkdVS1lYSnliM2N0YkdWbWRCSmhjbkp2ZHkxeWFXZG9kQzFrYjNWaWJHVUxZWEp5YjNjdGNtbG5hSFFLWW5KbFlXUmpjblZ0WWdsamFHVmphMjFoY21zRlkyeHZjMlVIWTI5dVptbHliUVJwYm1adkJHMWxiblVFYlc5eVpRVndZWFZ6WlFSd2JHRjVDblJ5YVdGdVoyeGxMWE1RZFhObGNpMXpkR0YwZFhNdFlYZGhlUTkxYzJWeUxYTjBZWFIxY3kxa2JtUVZkWE5sY2kxemRHRjBkWE10YVc1MmFYTnBZbXhsRW5WelpYSXRjM1JoZEhWekxXOXViR2x1WlFBQVwiIiwiZXhwb3J0IGRlZmF1bHQgXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQnpkR0Z1WkdGc2IyNWxQU0p1YnlJL1Bqd2hSRTlEVkZsUVJTQnpkbWNnVUZWQ1RFbERJQ0l0THk5WE0wTXZMMFJVUkNCVFZrY2dNUzR4THk5RlRpSWdJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MMGR5WVhCb2FXTnpMMU5XUnk4eExqRXZSRlJFTDNOMlp6RXhMbVIwWkNJZ1BqeHpkbWNnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JajQ4YldWMFlXUmhkR0UrUEM5dFpYUmhaR0YwWVQ0OFpHVm1jejQ4Wm05dWRDQnBaRDBpYVdOdmJtWnZiblF0ZG5WbExUZzBZelEyTVdZaUlHaHZjbWw2TFdGa2RpMTRQU0kxTURBd0lqNDhabTl1ZEMxbVlXTmxJR1p2Ym5RdFptRnRhV3g1UFNKcFkyOXVabTl1ZEMxMmRXVXRPRFJqTkRZeFppSWdabTl1ZEMxM1pXbG5hSFE5SWpRd01DSWdabTl1ZEMxemRISmxkR05vUFNKdWIzSnRZV3dpSUhWdWFYUnpMWEJsY2kxbGJUMGlOVEF3TUNJZ2NHRnViM05sTFRFOUlqSWdNQ0ExSURNZ01DQXdJREFnTUNBd0lEQWlJR0Z6WTJWdWREMGlOVEF3TUNJZ1pHVnpZMlZ1ZEQwaU1DSWdlQzFvWldsbmFIUTlJakFpSUdKaWIzZzlJaTB6TWlBd0lEVXdNVEVnTlRBd01DSWdkVzVrWlhKc2FXNWxMWFJvYVdOcmJtVnpjejBpTUNJZ2RXNWtaWEpzYVc1bExYQnZjMmwwYVc5dVBTSTFNQ0lnZFc1cFkyOWtaUzF5WVc1blpUMGlWU3RsWVRBeExXVmhNVElpSUM4K1BHMXBjM05wYm1jdFoyeDVjR2dnYUc5eWFYb3RZV1IyTFhnOUlqQWlJQ0F2UGp4bmJIbHdhQ0JuYkhsd2FDMXVZVzFsUFNKaGNuSnZkeTFzWldaMExXUnZkV0pzWlNJZ2RXNXBZMjlrWlQwaUppTjRaV0V3TVRzaUlHUTlJazB6TnpVd0lETTVNRFlnYkMweE5EQTJJQzB4TkRBMklHd3hOREEySUMweE5EQTJJR3d3SURNeE1pQnNMVEV3T1RRZ01UQTVOQ0JzTVRBNU5DQXhNRGswSUd3d0lETXhNaUJhVFRJek5EUWdNemt3TmlCc0xURTBNRFlnTFRFME1EWWdiREUwTURZZ0xURTBNRFlnYkRBZ016RXlJR3d0TVRBNU5DQXhNRGswSUd3eE1EazBJREV3T1RRZ2JEQWdNekV5SUZvaUlDOCtQR2RzZVhCb0lHZHNlWEJvTFc1aGJXVTlJbUZ5Y205M0xXeGxablFpSUhWdWFXTnZaR1U5SWlZamVHVmhNREk3SWlCa1BTSk5NVFUyTXlBeU5UQXdJR3d4T0RjMUlDMHhPRGMxSUd3d0lDMHpNVElnYkMweU1UZzRJREl4T0RjZ2JESXhPRGdnTWpFNE9DQnNNQ0F0TXpFeklHd3RNVGczTlNBdE1UZzNOU0JhSWlBdlBqeG5iSGx3YUNCbmJIbHdhQzF1WVcxbFBTSmhjbkp2ZHkxeWFXZG9kQzFrYjNWaWJHVWlJSFZ1YVdOdlpHVTlJaVlqZUdWaE1ETTdJaUJrUFNKTk1USTFNQ0F4TURrMElHd3hOREEySURFME1EWWdiQzB4TkRBMklERTBNRFlnYkRBZ0xUTXhNaUJzTVRBNU5DQXRNVEE1TkNCc0xURXdPVFFnTFRFd09UUWdiREFnTFRNeE1pQmFUVEkyTlRZZ01UQTVOQ0JzTVRRd055QXhOREEySUd3dE1UUXdOeUF4TkRBMklHd3dJQzB6TVRJZ2JERXdPVFFnTFRFd09UUWdiQzB4TURrMElDMHhNRGswSUd3d0lDMHpNVElnV2lJZ0x6NDhaMng1Y0dnZ1oyeDVjR2d0Ym1GdFpUMGlZWEp5YjNjdGNtbG5hSFFpSUhWdWFXTnZaR1U5SWlZamVHVmhNRFE3SWlCa1BTSk5NelF6T0NBeU5UQXdJR3d0TVRnM05TQXhPRGMxSUd3d0lETXhNeUJzTWpFNE55QXRNakU0T0NCc0xUSXhPRGNnTFRJeE9EY2diREFnTXpFeUlHd3hPRGMxSURFNE56VWdXaUlnTHo0OFoyeDVjR2dnWjJ4NWNHZ3RibUZ0WlQwaVluSmxZV1JqY25WdFlpSWdkVzVwWTI5a1pUMGlKaU40WldFd05Uc2lJR1E5SWsweE5EZ2dOVEF3TUNCc0xURTBPQ0F0T0RVZ2JERXpPVFFnTFRJME1UVWdiQzB4TXprMElDMHlOREUxSUd3eE5EZ2dMVGcxSUd3eE5EUXpJREkxTURBZ2JDMHhORFF6SURJMU1EQWdXaUlnTHo0OFoyeDVjR2dnWjJ4NWNHZ3RibUZ0WlQwaVkyaGxZMnR0WVhKcklpQjFibWxqYjJSbFBTSW1JM2hsWVRBMk95SWdaRDBpVFRRd05EVWdNemszTVNCc0xUSXdOakVnTFRJd05qRWdiQzB4TURJNUlERXdNamtnYkMwME5ESWdMVFEwTVNCc01UUTNNU0F0TVRRM01TQnNNalV3TXlBeU5UQXlJR3d0TkRReUlEUTBNaUJhSWlBdlBqeG5iSGx3YUNCbmJIbHdhQzF1WVcxbFBTSmpiRzl6WlNJZ2RXNXBZMjlrWlQwaUppTjRaV0V3TnpzaUlHUTlJazAwTXpjMUlERXhOVFlnYkMwMU16RWdMVFV6TVNCc0xURXpORFFnTVRNME5DQnNMVEV6TkRRZ0xURXpORFFnYkMwMU16RWdOVE14SUd3eE16UTBJREV6TkRRZ2JDMHhNelEwSURFek5EUWdiRFV6TVNBMU16RWdiREV6TkRRZ0xURXpORFFnYkRFek5EUWdNVE0wTkNCc05UTXhJQzAxTXpFZ2JDMHhNelEwSUMweE16UTBJR3d4TXpRMElDMHhNelEwSUZvaUlDOCtQR2RzZVhCb0lHZHNlWEJvTFc1aGJXVTlJbU52Ym1acGNtMGlJSFZ1YVdOdlpHVTlJaVlqZUdWaE1EZzdJaUJrUFNKTk1qWTFOaUEwT0RRMElIRXRNVEF4SURBZ0xURTRNQ0F0TlRjZ2NTMDNOQ0F0TlRJZ0xURXdPU0F0TVRNNElIRXRNelVnTFRnMklDMHhPU0F0TVRjMUlIRXhPQ0F0T1RZZ09UQWdMVEUyTnlCc01UUTVOU0F0TVRRNU5DQnNMVE0yTVRZZ01DQnhMVGMzSURFZ0xURXpPU0F0TWpZZ2NTMDFPQ0F0TWpRZ0xUazVJQzAzTUNCeExUTTVJQzAwTkNBdE5Ua2dMVEV3TVNCeExUSXdJQzAxTmlBdE1qQWdMVEV4TmlCeE1DQXROakFnTWpBZ0xURXhOaUJ4TWpBZ0xUVTNJRFU1SUMweE1ERWdjVFF4SUMwME5pQTVPU0F0TnpBZ2NUWXlJQzB5TnlBeE16a2dMVEkxSUd3ek5qRTJJREFnYkMweE5EazFJQzB4TkRrMUlIRXROVFVnTFRVeklDMDRNU0F0TVRFMklIRXRNalFnTFRVNUlDMHlNU0F0TVRJeElIRXpJQzAxT0NBek1DQXRNVEV6SUhFeU5TQXROVFFnTmpnZ0xUazNJSEUwTXlBdE5ETWdPVFlnTFRZNElIRTFOU0F0TWpZZ01URTBJQzB5T1NCeE5qSWdMVE1nTVRJd0lESXhJSEUyTXlBeU5TQXhNVFlnT0RFZ2JESXdNamtnTWpBeU9DQnhOVGtnTmpBZ09EQWdNVFF4SUhFeU1TQTRNQ0F4SURFMU9TQnhMVEl4SURneUlDMDRNU0F4TkRJZ2JDMHlNREk1SURJd01qZ2djUzAwTkNBME5TQXRNVEF5SURjd0lIRXROVGdnTWpVZ0xURXlNaUF5TlNCYUlpQXZQanhuYkhsd2FDQm5iSGx3YUMxdVlXMWxQU0pwYm1adklpQjFibWxqYjJSbFBTSW1JM2hsWVRBNU95SWdaRDBpVFRJME1qSWdORFk0T0NCeExURXhNU0F3SUMweU1UTWdMVFF6SUhFdE9UZ2dMVFF5SUMweE56UWdMVEV4Tnk0MUlIRXROellnTFRjMUxqVWdMVEV4TnlBdE1UYzBMalVnY1MwME15QXRNVEF4SUMwME15QXRNakV5TGpVZ2NUQWdMVEV4TVM0MUlEUXpJQzB5TVRJdU5TQnhOREVnTFRrNElERXhOeUF0TVRjMElIRTNOaUF0TnpZZ01UYzBJQzB4TVRjZ2NURXdNaUF0TkRNZ01qRXpJQzAwTXlCeE1URXhJREFnTWpFeklEUXpJSEU1T0NBME1TQXhOek11TlNBeE1UY2djVGMxTGpVZ056WWdNVEUzTGpVZ01UYzBJSEUwTXlBeE1ERWdORE1nTWpFeUxqVWdjVEFnTVRFeExqVWdMVFF6SURJeE1pNDFJSEV0TkRJZ09Ua2dMVEV4Tnk0MUlERTNOQzQxSUhFdE56VXVOU0EzTlM0MUlDMHhOek11TlNBeE1UY3VOU0J4TFRFd01pQTBNeUF0TWpFeklEUXpJRnBOTVRVMk15QXpNVEkxSUhFdE9EWWdNQ0F0TVRVNElDMDBNeUJ4TFRjeElDMDBNU0F0TVRFeUlDMHhNVElnY1MwME15QXROeklnTFRReklDMHhOVGN1TlNCeE1DQXRPRFV1TlNBME15QXRNVFUzTGpVZ2NUUXhJQzAzTVNBeE1USWdMVEV4TWlCeE56SWdMVFF6SURFMU9DQXRORE1nYkRZeU5TQXdJR3d3SUMweE5UWXlJR3d0TmpJMUlEQWdjUzA0TmlBd0lDMHhOVGdnTFRReklIRXROekVnTFRReElDMHhNVElnTFRFeE1pQnhMVFF6SUMwM015QXRORE1nTFRFMU9DQnhNQ0F0T0RVZ05ETWdMVEUxT0NCeE5ERWdMVGN4SURFeE1pQXRNVEV5SUhFM01pQXRORE1nTVRVNElDMDBNaUJzTVRnM05TQXdJSEU0TlNBd0lERTFOeUEwTWlCeE56RWdOREVnTVRFeUlERXhNaUJ4TkRNZ056TWdORE1nTVRVNElIRXdJRGcxSUMwME15QXhOVGdnY1MwME1TQTNNU0F0TVRFeUlERXhNaUJ4TFRjeUlEUXpJQzB4TlRjZ05ETWdiQzAyTWpVZ01DQnNNQ0F4T0RjMUlIRXdJRGcxSUMwME15QXhOVGNnY1MwME1TQTNNU0F0TVRFeUlERXhNaUJ4TFRjeklEUXpJQzB4TlRnZ05ETWdiQzA1TXpjZ01DQmFJaUF2UGp4bmJIbHdhQ0JuYkhsd2FDMXVZVzFsUFNKdFpXNTFJaUIxYm1samIyUmxQU0ltSTNobFlUQmhPeUlnWkQwaVRUWXlOU0EwTXpjMUlHd3dJQzAyTWpVZ2JETTNOVEFnTUNCc01DQTJNalVnYkMwek56VXdJREFnV2swMk1qVWdNamd4TXlCc01DQXROakkxSUd3ek56VXdJREFnYkRBZ05qSTFJR3d0TXpjMU1DQXdJRnBOTmpJMUlERXlOVEFnYkRBZ0xUWXlOU0JzTXpjMU1DQXdJR3d3SURZeU5TQnNMVE0zTlRBZ01DQmFJaUF2UGp4bmJIbHdhQ0JuYkhsd2FDMXVZVzFsUFNKdGIzSmxJaUIxYm1samIyUmxQU0ltSTNobFlUQmlPeUlnWkQwaVRUYzRNU0F6TURRM0lIRXhNVElnTUNBeU1UTWdMVFF6SUhFNU9DQXRORElnTVRjMElDMHhNVGN1TlNCeE56WWdMVGMxTGpVZ01URTNJQzB4TnpNdU5TQnhORE1nTFRFd01pQTBNeUF0TWpFeklIRXdJQzB4TVRFZ0xUUXpJQzB5TVRNZ2NTMDBNU0F0T1RnZ0xURXhOeUF0TVRjekxqVWdjUzAzTmlBdE56VXVOU0F0TVRjMElDMHhNVGN1TlNCeExURXdNU0F0TkRNZ0xUSXhNaTQxSUMwME15QnhMVEV4TVM0MUlEQWdMVEl4TXk0MUlEUXpJSEV0T1RnZ05ESWdMVEUzTXk0MUlERXhOeTQxSUhFdE56VXVOU0EzTlM0MUlDMHhNVGN1TlNBeE56TXVOU0J4TFRReklERXdNaUF0TkRNZ01qRXpJSEV3SURFeE1TQTBNeUF5TVRNZ2NUUXlJRGs0SURFeE55NDFJREUzTXk0MUlIRTNOUzQxSURjMUxqVWdNVGN6TGpVZ01URTNMalVnY1RFd01pQTBNeUF5TVRNZ05ETWdXazB5TlRBd0lETXdORGNnY1RFeE1TQXdJREl4TXlBdE5ETWdjVGs0SUMwME1pQXhOek11TlNBdE1URTNMalVnY1RjMUxqVWdMVGMxTGpVZ01URTNMalVnTFRFM015NDFJSEUwTXlBdE1UQXlJRFF6SUMweU1UTWdjVEFnTFRFeE1TQXRORE1nTFRJeE15QnhMVFF5SUMwNU9DQXRNVEUzTGpVZ0xURTNNeTQxSUhFdE56VXVOU0F0TnpVdU5TQXRNVGN6TGpVZ0xURXhOeTQxSUhFdE1UQXlJQzAwTXlBdE1qRXpJQzAwTXlCeExURXhNU0F3SUMweU1UTWdORE1nY1MwNU9DQTBNaUF0TVRjekxqVWdNVEUzTGpVZ2NTMDNOUzQxSURjMUxqVWdMVEV4Tnk0MUlERTNNeTQxSUhFdE5ETWdNVEF5SUMwME15QXlNVE1nY1RBZ01URXhJRFF6SURJeE15QnhORElnT1RnZ01URTNMalVnTVRjekxqVWdjVGMxTGpVZ056VXVOU0F4TnpNdU5TQXhNVGN1TlNCeE1UQXlJRFF6SURJeE15QTBNeUJhVFRReU1Ua2dNekEwTnlCeE1URXhJREFnTWpFeklDMDBNeUJ4T1RnZ0xUUXlJREUzTXk0MUlDMHhNVGN1TlNCeE56VXVOU0F0TnpVdU5TQXhNVGN1TlNBdE1UY3pMalVnY1RReklDMHhNRElnTkRNZ0xUSXhNeUJ4TUNBdE1URXhJQzAwTXlBdE1qRXpJSEV0TkRJZ0xUazRJQzB4TVRjdU5TQXRNVGN6TGpVZ2NTMDNOUzQxSUMwM05TNDFJQzB4TnpNdU5TQXRNVEUzTGpVZ2NTMHhNRElnTFRReklDMHlNVE11TlNBdE5ETWdjUzB4TVRFdU5TQXdJQzB5TVRJdU5TQTBNeUJ4TFRrNElEUXlJQzB4TnpRZ01URTNMalVnY1MwM05pQTNOUzQxSUMweE1UY2dNVGN6TGpVZ2NTMDBNeUF4TURJZ0xUUXpJREl4TXlCeE1DQXhNVEVnTkRNZ01qRXpJSEUwTVNBNU9DQXhNVGNnTVRjekxqVWdjVGMySURjMUxqVWdNVGMwSURFeE55NDFJSEV4TURFZ05ETWdNakV6SURReklGb2lJQzgrUEdkc2VYQm9JR2RzZVhCb0xXNWhiV1U5SW5CaGRYTmxJaUIxYm1samIyUmxQU0ltSTNobFlUQmpPeUlnWkQwaVRUa3pPQ0EwTURZeklHd3dJQzB6TVRJMUlHd3hNalV3SURBZ2JEQWdNekV5TlNCc0xURXlOVEFnTUNCYVRUSTRNVE1nTkRBMk15QnNNQ0F0TXpFeU5TQnNNVEkxTUNBd0lHd3dJRE14TWpVZ2JDMHhNalV3SURBZ1dpSWdMejQ4WjJ4NWNHZ2daMng1Y0dndGJtRnRaVDBpY0d4aGVTSWdkVzVwWTI5a1pUMGlKaU40WldFd1pEc2lJR1E5SWswMk1qVWdORE0zTlNCc016YzFNQ0F0TVRnM05TQnNMVE0zTlRBZ0xURTROelVnYkRBZ016YzFNQ0JhSWlBdlBqeG5iSGx3YUNCbmJIbHdhQzF1WVcxbFBTSjBjbWxoYm1kc1pTMXpJaUIxYm1samIyUmxQU0ltSTNobFlUQmxPeUlnWkQwaVRURXlOVEFnTXpFeU5TQnNNVEkxTUNBdE1USTFNQ0JzTVRJMU1DQXhNalE0SUd3dE1qVXdNQ0F5SUZvaUlDOCtQR2RzZVhCb0lHZHNlWEJvTFc1aGJXVTlJblZ6WlhJdGMzUmhkSFZ6TFdGM1lYa2lJSFZ1YVdOdlpHVTlJaVlqZUdWaE1HWTdJaUJrUFNKTk1qRTFOaUEwT1RZNUlIRXRNell3SUMwME5pQXROamsxSUMweE9UY2djUzB6TWpZZ0xURTBOeUF0TmpBeElDMHpPREFnY1MweU56UWdMVEl6TVNBdE5EY3lJQzAxTWpnZ2NTMHlNRElnTFRNd01TQXRNekE1SUMwMk5ESWdjUzB4TVRBZ0xUTTFNeUF0TVRFd0lDMDNNaklnY1RBZ0xUUXdOaUF4TWpnZ0xUYzRPQ0J4TVRJeklDMHpOekFnTXpVMklDMDJPRFlnY1RJeU9TQXRNekV6SURVME1pQXROVFF5SUhFek1UWWdMVEl6TWlBMk9EWWdMVE0xTmlCeE16Z3lJQzB4TWpnZ056ZzRJQzB4TWpnZ2NUTTJPU0F3SURjeU1pQXhNRGNnY1RNME1pQXhNRFFnTmpRMElETXdNU0J4TWprNElERTVOQ0ExTXpNZ05EWXpJSEV5TXpZZ01qY3dJRE00T1NBMU9UTWdjVEUxTmlBek16RWdNakV5SURZNU1pQnhMVEU0T0NBdE1qQTBJQzAwTWpNdU5TQXRNelV4SUhFdE1qTTFMalVnTFRFME55QXRORGs0TGpVZ0xUSXlOU0J4TFRJMk9TQXRPREFnTFRVME55QXRPREFnY1Mwek1qSWdNQ0F0TmpJNElERXdNeUJ4TFRJNU5TQTVPU0F0TlRRNElESTROaUJ4TFRJMU1TQXhPRFFnTFRRek5TQTBNelVnY1MweE9EY2dNalV6SUMweU9EWWdOVFE0SUhFdE1UQXpJRE13TmlBdE1UQXpJRFl5T0NCeE1DQXlPVE1nT0RBZ05UWTRJSEUzT0NBeU5qa2dNakkxTGpVZ05EazRMalVnY1RFME55NDFJREl5T1M0MUlETTFNQzQxSURRd01pNDFJRm9pSUM4K1BHZHNlWEJvSUdkc2VYQm9MVzVoYldVOUluVnpaWEl0YzNSaGRIVnpMV1J1WkNJZ2RXNXBZMjlrWlQwaUppTjRaV0V4TURzaUlHUTlJazB5TlRBd0lEVXdNREFnY1MwME1EWWdNQ0F0TnpnNElDMHhNamdnY1Mwek56QWdMVEV5TkNBdE5qZzJJQzB6TlRZZ2NTMHpNVE1nTFRJeU9TQXROVFF5SUMwMU5ESWdjUzB5TXpJZ0xUTXhOaUF0TXpVMklDMDJPRFlnY1MweE1qZ2dMVE00TWlBdE1USTRJQzAzT0RnZ2NUQWdMVFF3TmlBeE1qZ2dMVGM0T0NCeE1USTBJQzB6TnpBZ016VTJJQzAyT0RZZ2NUSXlPU0F0TXpFeklEVTBNaUF0TlRReUlIRXpNVFlnTFRJek1pQTJPRFlnTFRNMU5pQnhNemd5SUMweE1qZ2dOemc0SUMweE1qZ2djVFF3TmlBd0lEYzRPQ0F4TWpnZ2NUTTNNQ0F4TWpRZ05qZzJJRE0xTmlCeE16RXpJREl5T1NBMU5ESWdOVFF5SUhFeU16SWdNekUySURNMU5pQTJPRFlnY1RFeU9DQXpPRElnTVRJNElEYzRPQ0J4TUNBME1EWWdMVEV5T0NBM09EZ2djUzB4TWpRZ016Y3dJQzB6TlRZZ05qZzJJSEV0TWpJNUlETXhNeUF0TlRReUlEVTBNaUJ4TFRNeE5pQXlNeklnTFRZNE5pQXpOVFlnY1Mwek9ESWdNVEk0SUMwM09EZ2dNVEk0SUZwTk1UVTJNeUF5T1RZNUlHd3hPRGMxSURBZ2NUa3hJREFnTVRjNElDMHpPQ0J4T0RRZ0xUTTNJREUxTUNBdE1UQXpJSEUyTmlBdE5qWWdNVEF5SUMweE5Ea2djVE00SUMwNE55QXpPQ0F0TVRjNUlIRXdJQzA1TWlBdE16Z2dMVEUzT1NCeExUTTJJQzA0TXlBdE1UQXlJQzB4TkRrZ2NTMDJOaUF0TmpZZ0xURTFNQ0F0TVRBeklIRXRPRGNnTFRNNElDMHhOemdnTFRNNElHd3RNVGczTlNBd0lIRXRPVElnTUNBdE1UYzVJRE00SUhFdE9EUWdNemNnTFRFMU1DQXhNRE1nY1MwMk5pQTJOaUF0TVRBeUlERTBPU0J4TFRNNElEZzNJQzB6T0NBeE56a2djVEFnT1RJZ016Z2dNVGM1SUhFek5pQTRNeUF4TURJZ01UUTVJSEUyTmlBMk5pQXhOVEFnTVRBeklIRTROeUF6T0NBeE56a2dNemdnV2lJZ0x6NDhaMng1Y0dnZ1oyeDVjR2d0Ym1GdFpUMGlkWE5sY2kxemRHRjBkWE10YVc1MmFYTnBZbXhsSWlCMWJtbGpiMlJsUFNJbUkzaGxZVEV4T3lJZ1pEMGlUVEkxTURBZ05UQXdNQ0J4TFRRd05pQXdJQzAzT0RnZ0xURXlPQ0J4TFRNM01DQXRNVEkwSUMwMk9EWWdMVE0xTmlCeExUTXhNeUF0TWpJNUlDMDFORElnTFRVME1pQnhMVEl6TWlBdE16RTJJQzB6TlRZZ0xUWTROaUJ4TFRFeU9DQXRNemd5SUMweE1qZ2dMVGM0T0NCeE1DQXROREEySURFeU9DQXROemc0SUhFeE1qUWdMVE0zTUNBek5UWWdMVFk0TmlCeE1qSTVJQzB6TVRNZ05UUXlJQzAxTkRJZ2NUTXhOaUF0TWpNeUlEWTROaUF0TXpVMklIRXpPRElnTFRFeU9DQTNPRGdnTFRFeU9DQnhOREEySURBZ056ZzRJREV5T0NCeE16Y3dJREV5TkNBMk9EWWdNelUySUhFek1UTWdNakk1SURVME1pQTFORElnY1RJek1pQXpNVFlnTXpVMklEWTROaUJ4TVRJNElETTRNaUF4TWpnZ056ZzRJSEV3SURRd05pQXRNVEk0SURjNE9DQnhMVEV5TkNBek56QWdMVE0xTmlBMk9EWWdjUzB5TWprZ016RXpJQzAxTkRJZ05UUXlJSEV0TXpFMklESXpNaUF0TmpnMklETTFOaUJ4TFRNNE1pQXhNamdnTFRjNE9DQXhNamdnV2sweU5UQXdJRFF3TURBZ2NUTXhNU0F3SURVNU1DQXRNVEUySUhFeU56RWdMVEV4TWlBME56WXVOU0F0TXpFM0xqVWdjVEl3TlM0MUlDMHlNRFV1TlNBek1UY3VOU0F0TkRjMkxqVWdjVEV4TmlBdE1qYzVJREV4TmlBdE5Ua3dJSEV3SUMwek1URWdMVEV4TmlBdE5Ua3dJSEV0TVRFeUlDMHlOekVnTFRNeE55NDFJQzAwTnpZdU5TQnhMVEl3TlM0MUlDMHlNRFV1TlNBdE5EYzJMalVnTFRNeE55NDFJSEV0TWpjNUlDMHhNVFlnTFRVNU1DQXRNVEUySUhFdE16RXhJREFnTFRVNU1DQXhNVFlnY1MweU56RWdNVEV5SUMwME56WXVOU0F6TVRjdU5TQnhMVEl3TlM0MUlESXdOUzQxSUMwek1UY3VOU0EwTnpZdU5TQnhMVEV4TmlBeU56a2dMVEV4TmlBMU9UQWdjVEFnTXpFeElERXhOaUExT1RBZ2NURXhNaUF5TnpFZ016RTNMalVnTkRjMkxqVWdjVEl3TlM0MUlESXdOUzQxSURRM05pNDFJRE14Tnk0MUlIRXlOemtnTVRFMklEVTVNQ0F4TVRZZ1dpSWdMejQ4WjJ4NWNHZ2daMng1Y0dndGJtRnRaVDBpZFhObGNpMXpkR0YwZFhNdGIyNXNhVzVsSWlCMWJtbGpiMlJsUFNJbUkzaGxZVEV5T3lJZ1pEMGlUVEUxTURBZ01UVXdNQ0JzTWpBd01DQXdJR3d3SURJd01EQWdiQzB5TURBd0lEQWdiREFnTFRJd01EQWdXazB5TlRBd0lEVXdNREFnY1MwME1EWWdNQ0F0TnpnNElDMHhNamdnY1Mwek56QWdMVEV5TkNBdE5qZzJJQzB6TlRZZ2NTMHpNVE1nTFRJeU9TQXROVFF5SUMwMU5ESWdjUzB5TXpJZ0xUTXhOaUF0TXpVMklDMDJPRFlnY1MweE1qZ2dMVE00TWlBdE1USTRJQzAzT0RnZ2NUQWdMVFF3TmlBeE1qZ2dMVGM0T0NCeE1USTBJQzB6TnpBZ016VTJJQzAyT0RZZ2NUSXlPU0F0TXpFeklEVTBNaUF0TlRReUlIRXpNVFlnTFRJek1pQTJPRFlnTFRNMU5pQnhNemd5SUMweE1qZ2dOemc0SUMweE1qZ2djVFF3TmlBd0lEYzRPQ0F4TWpnZ2NUTTNNQ0F4TWpRZ05qZzJJRE0xTmlCeE16RXpJREl5T1NBMU5ESWdOVFF5SUhFeU16SWdNekUySURNMU5pQTJPRFlnY1RFeU9DQXpPRElnTVRJNElEYzRPQ0J4TUNBME1EWWdMVEV5T0NBM09EZ2djUzB4TWpRZ016Y3dJQzB6TlRZZ05qZzJJSEV0TWpJNUlETXhNeUF0TlRReUlEVTBNaUJ4TFRNeE5pQXlNeklnTFRZNE5pQXpOVFlnY1Mwek9ESWdNVEk0SUMwM09EZ2dNVEk0SUZvaUlDOCtQQzltYjI1MFBqd3ZaR1ZtY3o0OEwzTjJaejQ9XCIiLCJleHBvcnQgZGVmYXVsdCBcImRhdGE6Zm9udC90dGY7YmFzZTY0LEFBRUFBQUFLQUlBQUF3QWdUMU12TW5Uamo5RUFBQUNzQUFBQVlHTnRZWEFBRGV1NEFBQUJEQUFBQVVKbmJIbG14MGM1VEFBQUFsQUFBQWY4YUdWaFpDdnJGL2NBQUFwTUFBQUFObWhvWldFbS9ST0ZBQUFLaEFBQUFDUm9iWFI0Wjc3Ly93QUFDcWdBQUFBMGJHOWpZUTI4RDJZQUFBcmNBQUFBS0cxaGVIQUJJQUJYQUFBTEJBQUFBQ0J1WVcxbGJjVDVWQUFBQ3lRQUFBS21jRzl6ZEQ5VXZ0Y0FBQTNNQUFBQkZnQUVFc29Ca0FBRkFBQU1aUTJzQUFBQ3ZBeGxEYXdBQUFsZ0FQVUZDZ0FBQWdBRkF3QUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUJRWmtWa0FFRHFBZW9TRTRnQUFBSENFNGdBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQ0FBQUFBQUFBTUFBQUFEQUFBQUhBQUJBQUFBQUFBOEFBTUFBUUFBQUJ3QUJBQWdBQUFBQkFBRUFBRUFBT29TLy84QUFPb0IvLzhXQUFBQkFBQUFBQUFBQVFZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBQUFBQTZtRDBNQUJRQUxBQUFKQWhFSkJCRUpBUTZtK29JRmZ2dTZCRWI2Z3ZxQ0JYNzd1Z1JHRDBMNmd2cUNBVGdFUmdSR0FUajZndnFDQVRnRVJnUkdBQUVBQUFBQURXNFNVQUFGQUFBSkFSRUpBUkVHR3dkVDkzUUlqQW5FK0szK3lBaUxDSXoreHdBQ0FBQUFBQS9mRDBNQUJRQUxBQUFKQWhFSkJCRUpBUVRpQlg3NmdnUkcrN29GZmdWLytvRUVSdnU2QkVZRmZnVisvc2o3dXZ1Ni9zZ0ZmZ1YrL3NqN3V2dTZBQUVBQUFBQURxWVNVQUFGQUFBSkFSRUpBUkVOYnZpdENJdjNkUW5FQjFNQk9mZDA5M1VCT0FBQkFBQUFBQVkzRTRnQUJRQUFFd2NKQVJjQmxKUUZjdnFPbEFXakU0aFY5cEgya1ZVSnhBQUFBUUFBQUFBUmh3K0RBQVVBQUFrRkQ4MzM4L3Y3L2tZRnZ3bkhENFAzOHdRRi9rZjZRUW5HQUFFQUFBQUFFUmNSRndBTEFBQUpDeEVYL2UzNndQckEvZTBGUVByQUFoTUZRQVZBQWhQNndBU0UvZTBGUVByQUFoTUZRQVZBQWhQNndBVkEvZTM2d0FBQi8vOEFBQk9URXV3QU13QUFBU0lIRGdFWEZoY0JJU1lIQmdjR0J3WVVGeFlYRmhjV055RUJCZ2NHRnhZWEhnRVhGaGNXTnpZM0FUWTNOaWNtSndFdUFRcGdaVTlLUmhBU1NBWFg4ZUJOUGpvcEp4UVVGQlFuS1RvK1RRNGcraWszR2hnREF4c1pWalUzT3o0NlB6VUg3VHNWRlJRVlBQZ1RMSFFTN0RrMHJGbGdSL29xQVJzWUxpdzVPSGc0T1N3dUdCc0MraWsxUHpzK09qYzJWaGthQXdNWUdUZ0g3RHhSVUU5U1BBZnNMVElBQUFBQ0FBQUFBQTZtRWxBQUdBQkdBQUFCSWdjT0FRY0dGQmNlQVJjV01qYytBVGMyTkNjdUFTY21BU0lIQmdjR0ZCY1dGeFl6SVJFaElnY0dCd1lVRnhZWEZqY2hNamMyTnpZMEp5WW5KaU1oRVRRbkppY21Jd2wyYjJaaW1Da3JLeW1ZWW1iZVptS1hLaXNyS3BkaVp2dzJWa2hIS1NzcktVZElWZ0p4L1k5V1NFY3BLeXNwUjBoV0IxTlZTRWNwS3lzcFIwaFYvWThyS1VkSlZSSlFLeXFYWTJYZlpXS1lLU3NyS1poaVpkOWxZNWNxSy9ubEt5bEhTS3RJUnlrcitlWXJLVWRKcWtsSEtTc0JLaWxIU2FwSlJ5a3JCMU5WU0VjcEt3QUFBd0FBQUFBUkZ4RVhBQU1BQndBTEFBQUJFU0VSQVJFaEVRRVJJUkVDY1E2bThWb09wdkZhRHFZUkYvMlBBbkg1NXYyUEFuSDU1ZjJQQW5FQUF3QUFBQUFTbmd2bkFCZ0FNUUJLQUFBQk1oY2VBUmNXRkFjT0FRY0dJaWN1QVNjbU5EYytBVGMySVRJWEhnRVhGaFFIRGdFSEJpSW5MZ0VuSmpRM1BnRTNOaUV5Rng0QkZ4WVVCdzRCQndZaUp5NEJKeVkwTno0Qk56WUREWEJsWXBncEt5c3BtR0psMzJaaWx5b3JLeXFYWW1ZSEptOW1ZcGNxS3lzcWwySm0zbVppbHlvckt5cVhZbVlISm05bVlwY3FLeXNxbDJKbTMyVmltQ2tyS3ltWVltVUw1eXNxbDJKbTNtWmlseW9yS3lxWFltYmVabUtYS2lzcktwZGladDVtWXBjcUt5c3FsMkptM21aaWx5b3JLeXFYWW1iZVptS1hLaXNyS3BkaVp0NW1ZcGNxS3dBQUFBQUNBQUFBQUEvZkQ5OEFBd0FIQUFBQkVTRVJJUkVoRVFPcUJPSUNjUVRpRDkvenl3dzE4OHNNTlFBQUFBRUFBQUFBRVJjUkZ3QUNBQUFKQWdKeERxYnhXaEVYK0szNHJRQUJBQUFBQUE2bUREVUFBZ0FBQ1FJRTRnVGlCT0lNTmZzZUJPQUFBZi9nQUFBVGFSTnBBREVBQUFFRUJRUUZCQU1DQXdJUkVCTVNFeElGQkFVRUlTQWxKQ1VrRXhJVEVoTUdBQVVFSVNBbEpDY21KeVlEQWhFUUV4SUFDR3orbVA2eC9ycis3Zjd1eHNwcmJvQjc2ZVVCT1FFOEFYSUJmZ0dXQVhFQllRRldBUzRCS3V2c21adzR2UDRwL3ZuKzgvN3EvcjcrenY3Wi9mdTR1Mk5uVUU0Qkp4TnBMcGVUNmVmKzEvN1QvcXYrbi82UC9tcitndjZPL3NUK3grWG9mSUJyYU1YQ0FRMEJEZ0ZEQVVzQmFjeisyazVRWjJPN3VQdjlBU2NCTWdGQ0FTVUJFd0VOQWNzQUFnQUFBQUFUaUJPSUFDUUFRQUFBQVNBRkJBVUVBd0lEQWhBVEVoTVNCUVFGQkNBbEpDVWtFeElURWhBREFnTUNKU1FsSkFFaE1oY2VBUmNXRkFjT0FRY0dJeUVpSnk0Qkp5WTBOejRCTnpZSnhQNXEvb0wranY3RS9zZmw2SHlBZ0h6bzVRRTVBVHdCY2dGK0F5d0JmZ0Z5QVR3Qk9lWG9mSUNBZk9qbC9zZit4UDZPL29MNndRZFRXMWRVaENRbUppU0VWRmRiK0sxY1YxU0VKQ1ltSklSVVZ4T0lnSHpvNWY3SC9zVCtqdjZDL05UK2d2Nk8vc1QreCtYb2ZJQ0FmT2psQVRrQlBBRnlBWDRETEFGK0FYSUJQQUU1NWVoOGdQZ1JKaVdFVTFlNFYxT0VKU1ltSllSVFY3aFhVNFFsSmdBQUFBSUFBQUFBRTRnVGlBQWtBRDBBQUFFZ0JRUUZCQU1DQXdJUUV4SVRFZ1VFQlFRZ0pTUWxKQk1TRXhJUUF3SURBaVVrSlNRQklBVUVBQk1TRUFNQ0FBVUVJQ1VrQUFNQ0VCTVNBQ1VrQ2NUK2F2NkMvbzcreFA3SDVlaDhnSUI4Nk9VQk9RRThBWElCZmdNc0FYNEJjZ0U4QVRubDZIeUFnSHpvNWY3SC9zVCtqdjZDL21vQk53RVhBUThCbTNCMGRIRCtaZjd4L3VuOWt2N3AvdkgrWlhCMGRIQUJtd0VQQVJjVGlJQjg2T1greC83RS9vNytndnpVL29MK2p2N0Uvc2ZsNkh5QWdIem81UUU1QVR3QmNnRitBeXdCZmdGeUFUd0JPZVhvZklEOEdIUncvbVgrOGY3cC9aTCs2Zjd4L21Wd2RIUndBWnNCRHdFWEFtNEJGd0VQQVp0d2RBQUFBQUlBQUFBQUU0Z1RpQUFEQUNnQUFBRWhFU0VCSUFVRUJRUURBZ01DRUJNU0V4SUZCQVVFSUNVa0pTUVRFaE1TRUFNQ0F3SWxKQ1VrQmR3SDBQZ3dBK2orYXY2Qy9vNyt4UDdINWVoOGdJQjg2T1VCT1FFOEFYSUJmZ01zQVg0QmNnRThBVG5sNkh5QWdIem81ZjdIL3NUK2p2NkNCZHdIMEFYY2dIem81ZjdIL3NUK2p2NkMvTlQrZ3Y2Ty9zVCt4K1hvZklDQWZPamxBVGtCUEFGeUFYNERMQUYrQVhJQlBBRTU1ZWg4Z0FBQUFRQUFBQUVBQUQvcy9EdGZEenoxQUFzVGlBQUFBQURjMVVmMUFBQUFBTnlFYS9YLzRBQUFFNU1UaUFBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFUaUFBQUFBQVRpUC9nLy9VVGt3QUJBQUFBQUFBQUFBQUFBQUFBQUFBQUJ3QUFBQUFUaUFBQUU0Z0FBQk9JQUFBVGlBQUFCallBQUJPSUFBQUFBUC8vQUFBQUFBQUFBQUFBQUFBQS8rQUFBQUFBQUFBQUFBQUFBQ0lBTmdCWUFHd0FnQUNVQUxRQkRnRjhBWm9DRUFJbUFqUUNRZ0tvQXlJRHBnUCtBQUVBQUFBVEFFc0FBd0FBQUFBQUFnQUFBQW9BQ2dBQUFQOEFBQUFBQUFBQUFBQVFBTVlBQVFBQUFBQUFBUUFVQUFBQUFRQUFBQUFBQWdBSEFCUUFBUUFBQUFBQUF3QVVBQnNBQVFBQUFBQUFCQUFVQUM4QUFRQUFBQUFBQlFBTEFFTUFBUUFBQUFBQUJnQVVBRTRBQVFBQUFBQUFDZ0FyQUdJQUFRQUFBQUFBQ3dBVEFJMEFBd0FCQkFrQUFRQW9BS0FBQXdBQkJBa0FBZ0FPQU1nQUF3QUJCQWtBQXdBb0FOWUFBd0FCQkFrQUJBQW9BUDRBQXdBQkJBa0FCUUFXQVNZQUF3QUJCQWtBQmdBb0FUd0FBd0FCQkFrQUNnQldBV1FBQXdBQkJBa0FDd0FtQWJwcFkyOXVabTl1ZEMxMmRXVXRPRFJqTkRZeFpsSmxaM1ZzWVhKcFkyOXVabTl1ZEMxMmRXVXRPRFJqTkRZeFptbGpiMjVtYjI1MExYWjFaUzA0TkdNME5qRm1WbVZ5YzJsdmJpQXhMakJwWTI5dVptOXVkQzEyZFdVdE9EUmpORFl4WmtkbGJtVnlZWFJsWkNCaWVTQnpkbWN5ZEhSbUlHWnliMjBnUm05dWRHVnNiRzhnY0hKdmFtVmpkQzVvZEhSd09pOHZabTl1ZEdWc2JHOHVZMjl0QUdrQVl3QnZBRzRBWmdCdkFHNEFkQUF0QUhZQWRRQmxBQzBBT0FBMEFHTUFOQUEyQURFQVpnQlNBR1VBWndCMUFHd0FZUUJ5QUdrQVl3QnZBRzRBWmdCdkFHNEFkQUF0QUhZQWRRQmxBQzBBT0FBMEFHTUFOQUEyQURFQVpnQnBBR01BYndCdUFHWUFid0J1QUhRQUxRQjJBSFVBWlFBdEFEZ0FOQUJqQURRQU5nQXhBR1lBVmdCbEFISUFjd0JwQUc4QWJnQWdBREVBTGdBd0FHa0FZd0J2QUc0QVpnQnZBRzRBZEFBdEFIWUFkUUJsQUMwQU9BQTBBR01BTkFBMkFERUFaZ0JIQUdVQWJnQmxBSElBWVFCMEFHVUFaQUFnQUdJQWVRQWdBSE1BZGdCbkFESUFkQUIwQUdZQUlBQm1BSElBYndCdEFDQUFSZ0J2QUc0QWRBQmxBR3dBYkFCdkFDQUFjQUJ5QUc4QWFnQmxBR01BZEFBdUFHZ0FkQUIwQUhBQU9nQXZBQzhBWmdCdkFHNEFkQUJsQUd3QWJBQnZBQzRBWXdCdkFHMEFBQUFDQUFBQUFBQUFBRElBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVEFCTUFBQUVDQVFNQkJBRUZBUVlCQndFSUFRa0JDZ0VMQVF3QkRRRU9BUThCRUFFUkFSSUJFeEZoY25KdmR5MXNaV1owTFdSdmRXSnNaUXBoY25KdmR5MXNaV1owRW1GeWNtOTNMWEpwWjJoMExXUnZkV0pzWlF0aGNuSnZkeTF5YVdkb2RBcGljbVZoWkdOeWRXMWlDV05vWldOcmJXRnlhd1ZqYkc5elpRZGpiMjVtYVhKdEJHbHVabThFYldWdWRRUnRiM0psQlhCaGRYTmxCSEJzWVhrS2RISnBZVzVuYkdVdGN4QjFjMlZ5TFhOMFlYUjFjeTFoZDJGNUQzVnpaWEl0YzNSaGRIVnpMV1J1WkJWMWMyVnlMWE4wWVhSMWN5MXBiblpwYzJsaWJHVVNkWE5sY2kxemRHRjBkWE10YjI1c2FXNWxBQUE9XCIiLCJleHBvcnQgZGVmYXVsdCBcImRhdGE6Zm9udC93b2ZmO2Jhc2U2NCxkMDlHUmdBQkFBQUFBQThzQUFvQUFBQUFEdVFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlBVeTh5QUFBQTlBQUFBR0FBQUFCZ2RPT1AwV050WVhBQUFBRlVBQUFCUWdBQUFVSUFEZXU0WjJ4NVpnQUFBcGdBQUFmOEFBQUgvTWRIT1V4b1pXRmtBQUFLbEFBQUFEWUFBQUEySytzWDkyaG9aV0VBQUFyTUFBQUFKQUFBQUNRbS9ST0ZhRzEwZUFBQUN2QUFBQUEwQUFBQU5HZSsvLzlzYjJOaEFBQUxKQUFBQUNnQUFBQW9EYndQWm0xaGVIQUFBQXRNQUFBQUlBQUFBQ0FCSUFCWGJtRnRaUUFBQzJ3QUFBS21BQUFDcG0zRStWUndiM04wQUFBT0ZBQUFBUllBQUFFV1AxUysxd0FFRXNvQmtBQUZBQUFNWlEyc0FBQUN2QXhsRGF3QUFBbGdBUFVGQ2dBQUFnQUZBd0FBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFCUVprVmtBRURxQWVvU0U0Z0FBQUhDRTRnQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUNBQUFBQUFBQU1BQUFBREFBQUFIQUFCQUFBQUFBQThBQU1BQVFBQUFCd0FCQUFnQUFBQUJBQUVBQUVBQU9vUy8vOEFBT29CLy84V0FBQUJBQUFBQUFBQUFRWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBQUFBQUE2bUQwTUFCUUFMQUFBSkFoRUpCQkVKQVE2bStvSUZmdnU2QkViNmd2cUNCWDc3dWdSR0QwTDZndnFDQVRnRVJnUkdBVGo2Z3ZxQ0FUZ0VSZ1JHQUFFQUFBQUFEVzRTVUFBRkFBQUpBUkVKQVJFR0d3ZFQ5M1FJakFuRStLMyt5QWlMQ0l6K3h3QUNBQUFBQUEvZkQwTUFCUUFMQUFBSkFoRUpCQkVKQVFUaUJYNzZnZ1JHKzdvRmZnVi8rb0VFUnZ1NkJFWUZmZ1YrL3NqN3V2dTYvc2dGZmdWKy9zajd1dnU2QUFFQUFBQUFEcVlTVUFBRkFBQUpBUkVKQVJFTmJ2aXRDSXYzZFFuRUIxTUJPZmQwOTNVQk9BQUJBQUFBQUFZM0U0Z0FCUUFBRXdjSkFSY0JsSlFGY3ZxT2xBV2pFNGhWOXBIMmtWVUp4QUFBQVFBQUFBQVJodytEQUFVQUFBa0ZEODMzOC92Ny9rWUZ2d25IRDRQMzh3UUYva2Y2UVFuR0FBRUFBQUFBRVJjUkZ3QUxBQUFKQ3hFWC9lMzZ3UHJBL2UwRlFQckFBaE1GUUFWQUFoUDZ3QVNFL2UwRlFQckFBaE1GUUFWQUFoUDZ3QVZBL2UzNndBQUIvLzhBQUJPVEV1d0FNd0FBQVNJSERnRVhGaGNCSVNZSEJnY0dCd1lVRnhZWEZoY1dOeUVCQmdjR0Z4WVhIZ0VYRmhjV056WTNBVFkzTmljbUp3RXVBUXBnWlU5S1JoQVNTQVhYOGVCTlBqb3BKeFFVRkJRbktUbytUUTRnK2lrM0doZ0RBeHNaVmpVM096NDZQelVIN1RzVkZSUVZQUGdUTEhRUzdEazByRmxnUi9vcUFSc1lMaXc1T0hnNE9Td3VHQnNDK2lrMVB6cytPamMyVmhrYUF3TVlHVGdIN0R4UlVFOVNQQWZzTFRJQUFBQUNBQUFBQUE2bUVsQUFHQUJHQUFBQklnY09BUWNHRkJjZUFSY1dNamMrQVRjMk5DY3VBU2NtQVNJSEJnY0dGQmNXRnhZeklSRWhJZ2NHQndZVUZ4WVhGamNoTWpjMk56WTBKeVluSmlNaEVUUW5KaWNtSXdsMmIyWmltQ2tyS3ltWVltYmVabUtYS2lzcktwZGladncyVmtoSEtTc3JLVWRJVmdKeC9ZOVdTRWNwS3lzcFIwaFdCMU5WU0VjcEt5c3BSMGhWL1k4cktVZEpWUkpRS3lxWFkyWGZaV0tZS1NzcktaaGlaZDlsWTVjcUsvbmxLeWxIU0t0SVJ5a3IrZVlyS1VkSnFrbEhLU3NCS2lsSFNhcEpSeWtyQjFOVlNFY3BLd0FBQXdBQUFBQVJGeEVYQUFNQUJ3QUxBQUFCRVNFUkFSRWhFUUVSSVJFQ2NRNm04Vm9PcHZGYURxWVJGLzJQQW5INTV2MlBBbkg1NWYyUEFuRUFBd0FBQUFBU25ndm5BQmdBTVFCS0FBQUJNaGNlQVJjV0ZBY09BUWNHSWljdUFTY21ORGMrQVRjMklUSVhIZ0VYRmhRSERnRUhCaUluTGdFbkpqUTNQZ0UzTmlFeUZ4NEJGeFlVQnc0QkJ3WWlKeTRCSnlZME56NEJOellERFhCbFlwZ3BLeXNwbUdKbDMyWmlseW9yS3lxWFltWUhKbTltWXBjcUt5c3FsMkptM21aaWx5b3JLeXFYWW1ZSEptOW1ZcGNxS3lzcWwySm0zMlZpbUNrckt5bVlZbVVMNXlzcWwySm0zbVppbHlvckt5cVhZbWJlWm1LWEtpc3JLcGRpWnQ1bVlwY3FLeXNxbDJKbTNtWmlseW9yS3lxWFltYmVabUtYS2lzcktwZGladDVtWXBjcUt3QUFBQUFDQUFBQUFBL2ZEOThBQXdBSEFBQUJFU0VSSVJFaEVRT3FCT0lDY1FUaUQ5L3p5d3cxODhzTU5RQUFBQUVBQUFBQUVSY1JGd0FDQUFBSkFnSnhEcWJ4V2hFWCtLMzRyUUFCQUFBQUFBNm1ERFVBQWdBQUNRSUU0Z1RpQk9JTU5mc2VCT0FBQWYvZ0FBQVRhUk5wQURFQUFBRUVCUVFGQkFNQ0F3SVJFQk1TRXhJRkJBVUVJU0FsSkNVa0V4SVRFaE1HQUFVRUlTQWxKQ2NtSnlZREFoRVFFeElBQ0d6K21QNngvcnIrN2Y3dXhzcHJib0I3NmVVQk9RRThBWElCZmdHV0FYRUJZUUZXQVM0Qkt1dnNtWnc0dlA0cC92bis4LzdxL3I3K3p2N1ovZnU0dTJOblVFNEJKeE5wTHBlVDZlZisxLzdUL3F2K24vNlAvbXIrZ3Y2Ty9zVCt4K1hvZklCcmFNWENBUTBCRGdGREFVc0JhY3orMms1UVoyTzd1UHY5QVNjQk1nRkNBU1VCRXdFTkFjc0FBZ0FBQUFBVGlCT0lBQ1FBUUFBQUFTQUZCQVVFQXdJREFoQVRFaE1TQlFRRkJDQWxKQ1VrRXhJVEVoQURBZ01DSlNRbEpBRWhNaGNlQVJjV0ZBY09BUWNHSXlFaUp5NEJKeVkwTno0Qk56WUp4UDVxL29MK2p2N0Uvc2ZsNkh5QWdIem81UUU1QVR3QmNnRitBeXdCZmdGeUFUd0JPZVhvZklDQWZPamwvc2YreFA2Ty9vTDZ3UWRUVzFkVWhDUW1KaVNFVkZkYitLMWNWMVNFSkNZbUpJUlVWeE9JZ0h6bzVmN0gvc1QranY2Qy9OVCtndjZPL3NUK3grWG9mSUNBZk9qbEFUa0JQQUZ5QVg0RExBRitBWElCUEFFNTVlaDhnUGdSSmlXRVUxZTRWMU9FSlNZbUpZUlRWN2hYVTRRbEpnQUFBQUlBQUFBQUU0Z1RpQUFrQUQwQUFBRWdCUVFGQkFNQ0F3SVFFeElURWdVRUJRUWdKU1FsSkJNU0V4SVFBd0lEQWlVa0pTUUJJQVVFQUJNU0VBTUNBQVVFSUNVa0FBTUNFQk1TQUNVa0NjVCthdjZDL283K3hQN0g1ZWg4Z0lCODZPVUJPUUU4QVhJQmZnTXNBWDRCY2dFOEFUbmw2SHlBZ0h6bzVmN0gvc1QranY2Qy9tb0JOd0VYQVE4Qm0zQjBkSEQrWmY3eC91bjlrdjdwL3ZIK1pYQjBkSEFCbXdFUEFSY1RpSUI4Nk9YK3gvN0UvbzcrZ3Z6VS9vTCtqdjdFL3NmbDZIeUFnSHpvNVFFNUFUd0JjZ0YrQXl3QmZnRnlBVHdCT2VYb2ZJRDhHSFJ3L21YKzhmN3AvWkwrNmY3eC9tVndkSFJ3QVpzQkR3RVhBbTRCRndFUEFadHdkQUFBQUFJQUFBQUFFNGdUaUFBREFDZ0FBQUVoRVNFQklBVUVCUVFEQWdNQ0VCTVNFeElGQkFVRUlDVWtKU1FURWhNU0VBTUNBd0lsSkNVa0Jkd0gwUGd3QStqK2F2NkMvbzcreFA3SDVlaDhnSUI4Nk9VQk9RRThBWElCZmdNc0FYNEJjZ0U4QVRubDZIeUFnSHpvNWY3SC9zVCtqdjZDQmR3SDBBWGNnSHpvNWY3SC9zVCtqdjZDL05UK2d2Nk8vc1QreCtYb2ZJQ0FmT2psQVRrQlBBRnlBWDRETEFGK0FYSUJQQUU1NWVoOGdBQUFBUUFBQUFFQUFEL3MvRHRmRHp6MUFBc1RpQUFBQUFEYzFVZjFBQUFBQU55RWEvWC80QUFBRTVNVGlBQUFBQWdBQWdBQUFBQUFBQUFCQUFBVGlBQUFBQUFUaVAvZy8vVVRrd0FCQUFBQUFBQUFBQUFBQUFBQUFBQUFCd0FBQUFBVGlBQUFFNGdBQUJPSUFBQVRpQUFBQmpZQUFCT0lBQUFBQVAvL0FBQUFBQUFBQUFBQUFBQUEvK0FBQUFBQUFBQUFBQUFBQUNJQU5nQllBR3dBZ0FDVUFMUUJEZ0Y4QVpvQ0VBSW1BalFDUWdLb0F5SURwZ1ArQUFFQUFBQVRBRXNBQXdBQUFBQUFBZ0FBQUFvQUNnQUFBUDhBQUFBQUFBQUFBQUFRQU1ZQUFRQUFBQUFBQVFBVUFBQUFBUUFBQUFBQUFnQUhBQlFBQVFBQUFBQUFBd0FVQUJzQUFRQUFBQUFBQkFBVUFDOEFBUUFBQUFBQUJRQUxBRU1BQVFBQUFBQUFCZ0FVQUU0QUFRQUFBQUFBQ2dBckFHSUFBUUFBQUFBQUN3QVRBSTBBQXdBQkJBa0FBUUFvQUtBQUF3QUJCQWtBQWdBT0FNZ0FBd0FCQkFrQUF3QW9BTllBQXdBQkJBa0FCQUFvQVA0QUF3QUJCQWtBQlFBV0FTWUFBd0FCQkFrQUJnQW9BVHdBQXdBQkJBa0FDZ0JXQVdRQUF3QUJCQWtBQ3dBbUFicHBZMjl1Wm05dWRDMTJkV1V0T0RSak5EWXhabEpsWjNWc1lYSnBZMjl1Wm05dWRDMTJkV1V0T0RSak5EWXhabWxqYjI1bWIyNTBMWFoxWlMwNE5HTTBOakZtVm1WeWMybHZiaUF4TGpCcFkyOXVabTl1ZEMxMmRXVXRPRFJqTkRZeFprZGxibVZ5WVhSbFpDQmllU0J6ZG1jeWRIUm1JR1p5YjIwZ1JtOXVkR1ZzYkc4Z2NISnZhbVZqZEM1b2RIUndPaTh2Wm05dWRHVnNiRzh1WTI5dEFHa0FZd0J2QUc0QVpnQnZBRzRBZEFBdEFIWUFkUUJsQUMwQU9BQTBBR01BTkFBMkFERUFaZ0JTQUdVQVp3QjFBR3dBWVFCeUFHa0FZd0J2QUc0QVpnQnZBRzRBZEFBdEFIWUFkUUJsQUMwQU9BQTBBR01BTkFBMkFERUFaZ0JwQUdNQWJ3QnVBR1lBYndCdUFIUUFMUUIyQUhVQVpRQXRBRGdBTkFCakFEUUFOZ0F4QUdZQVZnQmxBSElBY3dCcEFHOEFiZ0FnQURFQUxnQXdBR2tBWXdCdkFHNEFaZ0J2QUc0QWRBQXRBSFlBZFFCbEFDMEFPQUEwQUdNQU5BQTJBREVBWmdCSEFHVUFiZ0JsQUhJQVlRQjBBR1VBWkFBZ0FHSUFlUUFnQUhNQWRnQm5BRElBZEFCMEFHWUFJQUJtQUhJQWJ3QnRBQ0FBUmdCdkFHNEFkQUJsQUd3QWJBQnZBQ0FBY0FCeUFHOEFhZ0JsQUdNQWRBQXVBR2dBZEFCMEFIQUFPZ0F2QUM4QVpnQnZBRzRBZEFCbEFHd0FiQUJ2QUM0QVl3QnZBRzBBQUFBQ0FBQUFBQUFBQURJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVRBQk1BQUFFQ0FRTUJCQUVGQVFZQkJ3RUlBUWtCQ2dFTEFRd0JEUUVPQVE4QkVBRVJBUklCRXhGaGNuSnZkeTFzWldaMExXUnZkV0pzWlFwaGNuSnZkeTFzWldaMEVtRnljbTkzTFhKcFoyaDBMV1J2ZFdKc1pRdGhjbkp2ZHkxeWFXZG9kQXBpY21WaFpHTnlkVzFpQ1dOb1pXTnJiV0Z5YXdWamJHOXpaUWRqYjI1bWFYSnRCR2x1Wm04RWJXVnVkUVJ0YjNKbEJYQmhkWE5sQkhCc1lYa0tkSEpwWVc1bmJHVXRjeEIxYzJWeUxYTjBZWFIxY3kxaGQyRjVEM1Z6WlhJdGMzUmhkSFZ6TFdSdVpCVjFjMlZ5TFhOMFlYUjFjeTFwYm5acGMybGliR1VTZFhObGNpMXpkR0YwZFhNdGIyNXNhVzVsQUFBPVwiIiwiaW1wb3J0IHsgZ2V0R2V0dGV4dEJ1aWxkZXIgfSBmcm9tICdAbmV4dGNsb3VkL2wxMG4vZGlzdC9nZXR0ZXh0J1xuXG5jb25zdCBndEJ1aWxkZXIgPSBnZXRHZXR0ZXh0QnVpbGRlcigpXG5cdC5kZXRlY3RMb2NhbGUoKVxuXG4vLyBEZWNvbXByZXNzIFRyYW5zbGF0aW9ucyB0byBnZXR0ZXh0IGZvcm1hdCBhbmQgYWRkIHRvIGd0QnVpbGRlclxuVFJBTlNMQVRJT05TLmZvckVhY2goKGxhbmcpID0+IHtcblx0Y29uc3QgdHJhbnNsYXRpb25zID0ge31cblxuXHRmb3IgKGNvbnN0IGtleSBpbiBsYW5nLnRyYW5zbGF0aW9ucykge1xuXHRcdC8vIFBsdXJhbFxuXHRcdGlmIChsYW5nLnRyYW5zbGF0aW9uc1trZXldLnBsdXJhbElkKSB7XG5cdFx0XHR0cmFuc2xhdGlvbnNba2V5XSA9IHtcblx0XHRcdFx0bXNnaWQ6IGtleSxcblx0XHRcdFx0bXNnaWRfcGx1cmFsOiBsYW5nLnRyYW5zbGF0aW9uc1trZXldLnBsdXJhbElkLFxuXHRcdFx0XHRtc2dzdHI6IGxhbmcudHJhbnNsYXRpb25zW2tleV0ubXNnc3RyLFxuXHRcdFx0fVxuXHRcdFx0Y29udGludWVcblx0XHR9XG5cblx0XHQvLyBTaW5ndWxhclxuXHRcdHRyYW5zbGF0aW9uc1trZXldID0ge1xuXHRcdFx0bXNnaWQ6IGtleSxcblx0XHRcdG1zZ3N0cjogW1xuXHRcdFx0XHRsYW5nLnRyYW5zbGF0aW9uc1trZXldLFxuXHRcdFx0XSxcblx0XHR9XG5cdH1cblxuXHRndEJ1aWxkZXIuYWRkVHJhbnNsYXRpb24obGFuZy5sb2NhbGUsIHtcblx0XHR0cmFuc2xhdGlvbnM6IHtcblx0XHRcdCcnOiB0cmFuc2xhdGlvbnMsXG5cdFx0fSxcblx0fSlcbn0pXG5cbmNvbnN0IGd0ID0gZ3RCdWlsZGVyLmJ1aWxkKClcblxuY29uc3QgbiA9IGd0Lm5nZXR0ZXh0LmJpbmQoZ3QpXG5jb25zdCB0ID0gZ3QuZ2V0dGV4dC5iaW5kKGd0KVxuXG5leHBvcnQgeyB0LCBuIH1cbiIsIlxuLyoqXG4gKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOCBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gKlxuICogQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gKlxuICogQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICovXG5cbmNvbnN0IEdlblJhbmRvbUlkID0gKGxlbmd0aCkgPT4ge1xuXHRyZXR1cm4gTWF0aC5yYW5kb20oKVxuXHRcdC50b1N0cmluZygzNilcblx0XHQucmVwbGFjZSgvW15hLXpdKy9nLCAnJylcblx0XHQuc3Vic3RyKDAsIGxlbmd0aCB8fCA1KVxufVxuXG5leHBvcnQgZGVmYXVsdCBHZW5SYW5kb21JZFxuIiwiLyoqXG4gKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOCBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gKlxuICogQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gKlxuICogQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFkgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKi9cbmltcG9ydCBWdWUgZnJvbSAndnVlJ1xuXG4vKipcbiAqIFZhbGlkYXRlIGNoaWxkcmVuIG9mIGEgdnVlIGNvbXBvbmVudFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0W119IHNsb3RzIHRoZSB2dWUgY29tcG9uZW50IHNsb3RcbiAqIEBwYXJhbSB7U3RyaW5nW119IGFsbG93ZWQgdGhlIGFsbG93ZWQgY29tcG9uZW50cyBuYW1lXG4gKiBAcGFyYW0ge09iamVjdH0gdm0gdGhlIHZ1ZSBjb21wb25lbnQgaW5zdGFuY2VcbiAqL1xuY29uc3QgVmFsaWRhdGVTbG90ID0gKHNsb3RzLCBhbGxvd2VkLCB2bSkgPT4ge1xuXHRpZiAoc2xvdHMgPT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVyblxuXHR9XG5cblx0Zm9yIChsZXQgaW5kZXggPSBzbG90cy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7XG5cdFx0Y29uc3Qgbm9kZSA9IHNsb3RzW2luZGV4XVxuXHRcdC8vIGFsc28gY2hlY2sgYWdhaW5zdCBhbGxvd2VkIHRvIGF2b2lkIHVuaW5pdGlhdGVkIHZub2RlcyB3aXRoIG5vIGNvbXBvbmVudE9wdGlvbnNcblx0XHRjb25zdCBpc0h0bWxFbGVtZW50ID0gIW5vZGUuY29tcG9uZW50T3B0aW9ucyAmJiBub2RlLnRhZyAmJiBhbGxvd2VkLmluZGV4T2Yobm9kZS50YWcpID09PSAtMVxuXHRcdGNvbnN0IGlzVnVlQ29tcG9uZW50ID0gISFub2RlLmNvbXBvbmVudE9wdGlvbnMgJiYgdHlwZW9mIG5vZGUuY29tcG9uZW50T3B0aW9ucy50YWcgPT09ICdzdHJpbmcnXG5cdFx0Y29uc3QgaXNGb3JiaWRkZW5Db21wb25lbnQgPSBpc1Z1ZUNvbXBvbmVudCAmJiBhbGxvd2VkLmluZGV4T2Yobm9kZS5jb21wb25lbnRPcHRpb25zLnRhZykgPT09IC0xXG5cblx0XHQvLyBpZiBodG1sIGVsZW1lbnQgb3Igbm90IGEgdnVlIGNvbXBvbmVudCBvciB2dWUgY29tcG9uZW50IG5vdCBpbiBhbGxvd2VkIHRhZ3Ncblx0XHRpZiAoaXNIdG1sRWxlbWVudCB8fCAhaXNWdWVDb21wb25lbnQgfHwgaXNGb3JiaWRkZW5Db21wb25lbnQpIHtcblx0XHRcdC8vIG9ubHkgd2FybiB3aGVuIGh0bWwgZWxtZW50IG9yIGZvcmJpZGRlbiBjb21wb25lbnRcblx0XHRcdC8vIHNvbWV0aW1lcyB0ZXh0IG5vZGVzIGFyZSBwcmVzZW50IHdoaWNoIGFyZSBoYXJkbHkgcmVtb3ZlYWJsZSBieSB0aGUgZGV2ZWxvcGVyIGFuZCBzcGFtIHRoZSB3YXJuaW5nc1xuXHRcdFx0aWYgKGlzSHRtbEVsZW1lbnQgfHwgaXNGb3JiaWRkZW5Db21wb25lbnQpIHtcblx0XHRcdFx0VnVlLnV0aWwud2FybihgJHtpc0h0bWxFbGVtZW50ID8gbm9kZS50YWcgOiBub2RlLmNvbXBvbmVudE9wdGlvbnMudGFnfSBpcyBub3QgYWxsb3dlZCBpbnNpZGUgdGhlICR7dm0uJG9wdGlvbnMubmFtZX0gY29tcG9uZW50YCwgdm0pXG5cdFx0XHR9XG5cblx0XHRcdC8vIGNsZWFudXBcblx0XHRcdHNsb3RzLnNwbGljZShpbmRleCwgMSlcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmFsaWRhdGVTbG90XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAbmV4dGNsb3VkL2wxMG4vZGlzdC9nZXR0ZXh0XCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbHRlci5qc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmluZC1pbmRleC5qc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZnJvbS5qc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3IuanNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcudHJpbS5qc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmRlc2NyaXB0aW9uLmpzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wuaXRlcmF0b3IuanNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5qc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5pdGVyYXRvci5qc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJsaW5raWZ5anMvc3RyaW5nXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInYtY2xpY2stb3V0c2lkZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJ2LXRvb2x0aXBcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwidnVlXCIpOyJdLCJzb3VyY2VSb290IjoiIn0=","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Components/AppSidebarTab\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Components/AppSidebarTab\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Components/AppSidebarTab\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./src/components/AppSidebarTab/index.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=script&lang=js&\":\n/*!*******************************************************************************************************************************************************************!*\\\n !*** ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=script&lang=js& ***!\n \\*******************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'AppSidebarTab',\n props: {\n id: {\n type: String,\n required: true\n },\n name: {\n type: String,\n required: true\n },\n icon: {\n type: String,\n required: true\n },\n order: {\n type: Number,\n default: 0\n }\n },\n computed: {\n // TODO: implement a better way to force pass a prop fromm Sidebar\n isActive: function isActive() {\n return this.$parent.activeTab === this.id;\n }\n },\n methods: {\n onScroll: function onScroll(event) {\n // Are we scrolled to the very bottom ?\n if (this.$el.scrollHeight - this.$el.scrollTop === this.$el.clientHeight) {\n /**\n * Bottom scroll is reached\n */\n this.$emit('bottomReached', event);\n }\n\n this.$emit('scroll', event);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true&\":\n/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true& ***!\n \\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js */ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__);\n/* 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\");\n/* 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__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.app-sidebar__tab[data-v-e5dbfd76] {\\n display: none;\\n padding: 10px;\\n min-height: 100%;\\n max-height: 100%;\\n overflow: auto;\\n}\\n.app-sidebar__tab[data-v-e5dbfd76]:focus {\\n border-color: var(--color-primary);\\n box-shadow: 0 0 0.2em var(--color-primary);\\n outline: 0;\\n}\\n.app-sidebar__tab--active[data-v-e5dbfd76] {\\n display: block;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./AppSidebarTab.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;ACAhB;;;;;;;;;;;;;;;;;;;;EDqBE;AAiEF;EACC,aAAa;EACb,aAAa;EACb,gBAAgB;EAChB,gBAAgB;EAChB,cAAc;AAAA;AALf;IAQE,kCAAkC;IAClC,0CAA0C;IAC1C,UAAU;AAAA;AAGX;IACC,cAAc;AAAA\",\"sourcesContent\":[\"$scope_version:\\\"84c461f\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.app-sidebar__tab {\\n\\tdisplay: none;\\n\\tpadding: 10px;\\n\\tmin-height: 100%; // fill available height\\n\\tmax-height: 100%; // scroll inside\\n\\toverflow: auto;\\n\\n\\t&:focus {\\n\\t\\tborder-color: var(--color-primary);\\n\\t\\tbox-shadow: 0 0 0.2em var(--color-primary);\\n\\t\\toutline: 0;\\n\\t}\\n\\n\\t&--active {\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/runtime/api.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/css-loader/dist/runtime/api.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/runtime/cssWithMappingToString.js\":\n/*!************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/runtime/cssWithMappingToString.js ***!\n \\************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true&\":\n/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--1-3!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true& ***!\n \\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* 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\");\n/* 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__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_style_index_0_id_e5dbfd76_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true& */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true&\");\n\n \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_style_index_0_id_e5dbfd76_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_style_index_0_id_e5dbfd76_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\":\n/*!****************************************************************************!*\\\n !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!\n \\****************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = true ? __webpack_require__.nc : undefined;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n/***/ }),\n\n/***/ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=template&id=e5dbfd76&scoped=true&\":\n/*!*********************************************************************************************************************************************************************************************************************************!*\\\n !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=template&id=e5dbfd76&scoped=true& ***!\n \\*********************************************************************************************************************************************************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"section\",\n {\n staticClass: \"app-sidebar__tab\",\n class: { \"app-sidebar__tab--active\": _vm.isActive },\n attrs: {\n id: \"tab-\" + _vm.id,\n \"aria-hidden\": !_vm.isActive,\n \"aria-labelledby\": _vm.id,\n tabindex: \"0\",\n role: \"tabpanel\"\n },\n on: { scroll: _vm.onScroll }\n },\n [_vm._t(\"default\")],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n/***/ }),\n\n/***/ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***!\n \\********************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebarTab/AppSidebarTab.vue\":\n/*!********************************************************!*\\\n !*** ./src/components/AppSidebarTab/AppSidebarTab.vue ***!\n \\********************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AppSidebarTab_vue_vue_type_template_id_e5dbfd76_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppSidebarTab.vue?vue&type=template&id=e5dbfd76&scoped=true& */ \"./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=template&id=e5dbfd76&scoped=true&\");\n/* harmony import */ var _AppSidebarTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppSidebarTab.vue?vue&type=script&lang=js& */ \"./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport *//* harmony import */ var _AppSidebarTab_vue_vue_type_style_index_0_id_e5dbfd76_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true& */ \"./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _AppSidebarTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _AppSidebarTab_vue_vue_type_template_id_e5dbfd76_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _AppSidebarTab_vue_vue_type_template_id_e5dbfd76_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e5dbfd76\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/AppSidebarTab/AppSidebarTab.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=script&lang=js&\":\n/*!*********************************************************************************!*\\\n !*** ./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=script&lang=js& ***!\n \\*********************************************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebarTab.vue?vue&type=script&lang=js& */ \"./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=script&lang=js&\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n/***/ }),\n\n/***/ \"./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true&\":\n/*!******************************************************************************************************************!*\\\n !*** ./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true& ***!\n \\******************************************************************************************************************/\n/*! no exports provided */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_style_index_0_id_e5dbfd76_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true& */ \"./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/resolve-url-loader/index.js!./node_modules/sass-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=style&index=0&id=e5dbfd76&lang=scss&scoped=true&\");\n/* empty/unused harmony star reexport */\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=template&id=e5dbfd76&scoped=true&\":\n/*!***************************************************************************************************!*\\\n !*** ./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=template&id=e5dbfd76&scoped=true& ***!\n \\***************************************************************************************************/\n/*! exports provided: render, staticRenderFns */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_template_id_e5dbfd76_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./AppSidebarTab.vue?vue&type=template&id=e5dbfd76&scoped=true& */ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/AppSidebarTab/AppSidebarTab.vue?vue&type=template&id=e5dbfd76&scoped=true&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_template_id_e5dbfd76_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSidebarTab_vue_vue_type_template_id_e5dbfd76_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n/***/ }),\n\n/***/ \"./src/components/AppSidebarTab/index.js\":\n/*!***********************************************!*\\\n !*** ./src/components/AppSidebarTab/index.js ***!\n \\***********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AppSidebarTab__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppSidebarTab */ \"./src/components/AppSidebarTab/AppSidebarTab.vue\");\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_AppSidebarTab__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n/***/ }),\n\n/***/ \"core-js/modules/es.number.constructor.js\":\n/*!***********************************************************!*\\\n !*** external \"core-js/modules/es.number.constructor.js\" ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"core-js/modules/es.number.constructor.js\");\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhclRhYi9BcHBTaWRlYmFyVGFiLnZ1ZSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhclRhYi9BcHBTaWRlYmFyVGFiLnZ1ZT9hMTUxIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvY3NzV2l0aE1hcHBpbmdUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhclRhYi9BcHBTaWRlYmFyVGFiLnZ1ZT84YWZhIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0FwcFNpZGViYXJUYWIvQXBwU2lkZWJhclRhYi52dWU/NTFmNSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qcyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhclRhYi9BcHBTaWRlYmFyVGFiLnZ1ZSIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhclRhYi9BcHBTaWRlYmFyVGFiLnZ1ZT9mMDdhIiwid2VicGFjazovL05leHRjbG91ZFZ1ZS5bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9BcHBTaWRlYmFyVGFiL0FwcFNpZGViYXJUYWIudnVlPzI3MWIiLCJ3ZWJwYWNrOi8vTmV4dGNsb3VkVnVlLltuYW1lXS8uL3NyYy9jb21wb25lbnRzL0FwcFNpZGViYXJUYWIvQXBwU2lkZWJhclRhYi52dWU/N2Y4NiIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvQXBwU2lkZWJhclRhYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9OZXh0Y2xvdWRWdWUuW25hbWVdL2V4dGVybmFsIFwiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3Rvci5qc1wiIl0sIm5hbWVzIjpbIkFwcFNpZGViYXJUYWIiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQsQ0FBQztBQUNELE87UUNWQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTs7O1FBR0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLDBDQUEwQyxnQ0FBZ0M7UUFDMUU7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSx3REFBd0Qsa0JBQWtCO1FBQzFFO1FBQ0EsaURBQWlELGNBQWM7UUFDL0Q7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLHlDQUF5QyxpQ0FBaUM7UUFDMUUsZ0hBQWdILG1CQUFtQixFQUFFO1FBQ3JJ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dHMvQXBwU2lkZWJhclRhYi5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFwiQ29tcG9uZW50cy9BcHBTaWRlYmFyVGFiXCIsIFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkNvbXBvbmVudHMvQXBwU2lkZWJhclRhYlwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJOZXh0Y2xvdWRWdWVcIl0gPSByb290W1wiTmV4dGNsb3VkVnVlXCJdIHx8IHt9LCByb290W1wiTmV4dGNsb3VkVnVlXCJdW1wiQ29tcG9uZW50cy9BcHBTaWRlYmFyVGFiXCJdID0gZmFjdG9yeSgpO1xufSkod2luZG93LCBmdW5jdGlvbigpIHtcbnJldHVybiAiLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9kaXN0L1wiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gXCIuL3NyYy9jb21wb25lbnRzL0FwcFNpZGViYXJUYWIvaW5kZXguanNcIik7XG4iLCI8IS0tXG4gIC0gQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTkgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxuICAtXG4gIC0gQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gIC1cbiAgLSBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cbiAgLVxuICAtIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gIC0gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAgLSBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAgLSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICAtXG4gIC0gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gIC0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAgLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAgLSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAgLVxuICAtIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICAtIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gIC1cbiAgLS0+XG5cbjwhLS0gRm9sbG93cyB0aGUgdGFiIGFyaWEgZ3VpZGVsaW5lc1xuXHRodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzL2V4YW1wbGVzL3RhYnMvdGFicy0xL3RhYnMuaHRtbCAtLT5cblxuPHRlbXBsYXRlPlxuXHQ8c2VjdGlvblxuXHRcdDppZD1cImB0YWItJHtpZH1gXCJcblx0XHQ6Y2xhc3M9XCJ7J2FwcC1zaWRlYmFyX190YWItLWFjdGl2ZSc6IGlzQWN0aXZlfVwiXG5cdFx0OmFyaWEtaGlkZGVuPVwiIWlzQWN0aXZlXCJcblx0XHQ6YXJpYS1sYWJlbGxlZGJ5PVwiaWRcIlxuXHRcdGNsYXNzPVwiYXBwLXNpZGViYXJfX3RhYlwiXG5cdFx0dGFiaW5kZXg9XCIwXCJcblx0XHRyb2xlPVwidGFicGFuZWxcIlxuXHRcdEBzY3JvbGw9XCJvblNjcm9sbFwiPlxuXHRcdDxzbG90IC8+XG5cdDwvc2VjdGlvbj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG5cdG5hbWU6ICdBcHBTaWRlYmFyVGFiJyxcblxuXHRwcm9wczoge1xuXHRcdGlkOiB7XG5cdFx0XHR0eXBlOiBTdHJpbmcsXG5cdFx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHR9LFxuXHRcdG5hbWU6IHtcblx0XHRcdHR5cGU6IFN0cmluZyxcblx0XHRcdHJlcXVpcmVkOiB0cnVlLFxuXHRcdH0sXG5cdFx0aWNvbjoge1xuXHRcdFx0dHlwZTogU3RyaW5nLFxuXHRcdFx0cmVxdWlyZWQ6IHRydWUsXG5cdFx0fSxcblx0XHRvcmRlcjoge1xuXHRcdFx0dHlwZTogTnVtYmVyLFxuXHRcdFx0ZGVmYXVsdDogMCxcblx0XHR9LFxuXHR9LFxuXG5cdGNvbXB1dGVkOiB7XG5cdFx0Ly8gVE9ETzogaW1wbGVtZW50IGEgYmV0dGVyIHdheSB0byBmb3JjZSBwYXNzIGEgcHJvcCBmcm9tbSBTaWRlYmFyXG5cdFx0aXNBY3RpdmUoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy4kcGFyZW50LmFjdGl2ZVRhYiA9PT0gdGhpcy5pZFxuXHRcdH0sXG5cdH0sXG5cblx0bWV0aG9kczoge1xuXHRcdG9uU2Nyb2xsKGV2ZW50KSB7XG5cdFx0XHQvLyBBcmUgd2Ugc2Nyb2xsZWQgdG8gdGhlIHZlcnkgYm90dG9tID9cblx0XHRcdGlmICh0aGlzLiRlbC5zY3JvbGxIZWlnaHQgLSB0aGlzLiRlbC5zY3JvbGxUb3AgPT09IHRoaXMuJGVsLmNsaWVudEhlaWdodCkge1xuXHRcdFx0XHQvKipcblx0XHRcdFx0ICogQm90dG9tIHNjcm9sbCBpcyByZWFjaGVkXG5cdFx0XHRcdCAqL1xuXHRcdFx0XHR0aGlzLiRlbWl0KCdib3R0b21SZWFjaGVkJywgZXZlbnQpXG5cdFx0XHR9XG5cdFx0XHR0aGlzLiRlbWl0KCdzY3JvbGwnLCBldmVudClcblx0XHR9LFxuXHR9LFxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cbi5hcHAtc2lkZWJhcl9fdGFiIHtcblx0ZGlzcGxheTogbm9uZTtcblx0cGFkZGluZzogMTBweDtcblx0bWluLWhlaWdodDogMTAwJTsgLy8gZmlsbCBhdmFpbGFibGUgaGVpZ2h0XG5cdG1heC1oZWlnaHQ6IDEwMCU7IC8vIHNjcm9sbCBpbnNpZGVcblx0b3ZlcmZsb3c6IGF1dG87XG5cblx0Jjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcblx0XHRib3gtc2hhZG93OiAwIDAgMC4yZW0gdmFyKC0tY29sb3ItcHJpbWFyeSk7XG5cdFx0b3V0bGluZTogMDtcblx0fVxuXG5cdCYtLWFjdGl2ZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cbjwvc3R5bGU+XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2Nzc1dpdGhNYXBwaW5nVG9TdHJpbmcuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBjaGFyc2V0IFxcXCJVVEYtOFxcXCI7XFxuLyoqXFxuICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTkgSm9obiBNb2xha3Zvw6YgPHNram5sZHN2QHByb3Rvbm1haWwuY29tPlxcbiAqXFxuICogQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAbGljZW5zZSBHTlUgQUdQTCB2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb25cXG4gKlxcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XFxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcXG4gKiBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXFxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXFxuICpcXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxcbiAqXFxuICovXFxuLmFwcC1zaWRlYmFyX190YWJbZGF0YS12LWU1ZGJmZDc2XSB7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgcGFkZGluZzogMTBweDtcXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XFxuICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcbi5hcHAtc2lkZWJhcl9fdGFiW2RhdGEtdi1lNWRiZmQ3Nl06Zm9jdXMge1xcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgICBib3gtc2hhZG93OiAwIDAgMC4yZW0gdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxuICAgIG91dGxpbmU6IDA7XFxufVxcbi5hcHAtc2lkZWJhcl9fdGFiLS1hY3RpdmVbZGF0YS12LWU1ZGJmZDc2XSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9BcHBTaWRlYmFyVGFiLnZ1ZVwiLFwid2VicGFjazovLy4vLi4vLi4vYXNzZXRzL3ZhcmlhYmxlcy5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBLGdCQUFnQjtBQ0FoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RURxQkU7QUFpRUY7RUFDQyxhQUFhO0VBQ2IsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsY0FBYztBQUFBO0FBTGY7SUFRRSxrQ0FBa0M7SUFDbEMsMENBQTBDO0lBQzFDLFVBQVU7QUFBQTtBQUdYO0lBQ0MsY0FBYztBQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIiRzY29wZV92ZXJzaW9uOlxcXCI4NGM0NjFmXFxcIjsgQGltcG9ydCAndmFyaWFibGVzJztcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG4uYXBwLXNpZGViYXJfX3RhYiB7XFxuXFx0ZGlzcGxheTogbm9uZTtcXG5cXHRwYWRkaW5nOiAxMHB4O1xcblxcdG1pbi1oZWlnaHQ6IDEwMCU7IC8vIGZpbGwgYXZhaWxhYmxlIGhlaWdodFxcblxcdG1heC1oZWlnaHQ6IDEwMCU7IC8vIHNjcm9sbCBpbnNpZGVcXG5cXHRvdmVyZmxvdzogYXV0bztcXG5cXG5cXHQmOmZvY3VzIHtcXG5cXHRcXHRib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcblxcdFxcdGJveC1zaGFkb3c6IDAgMCAwLjJlbSB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG5cXHRcXHRvdXRsaW5lOiAwO1xcblxcdH1cXG5cXG5cXHQmLS1hY3RpdmUge1xcblxcdFxcdGRpc3BsYXk6IGJsb2NrO1xcblxcdH1cXG59XFxuXCIsXCIvKipcXG4gKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOSBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XFxuICpcXG4gKiBAYXV0aG9yIEpvaG4gTW9sYWt2b8OmIDxza2pubGRzdkBwcm90b25tYWlsLmNvbT5cXG4gKlxcbiAqIEBsaWNlbnNlIEdOVSBBR1BMIHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvblxcbiAqXFxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXFxuICpcXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cXG4gKlxcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXFxuICpcXG4gKi9cXG5cXG4vLyBodHRwczovL3V4cGxhbmV0Lm9yZy83LXJ1bGVzLWZvci1tb2JpbGUtdWktYnV0dG9uLWRlc2lnbi1lOWNmMmVhNTQ1NTZcXG4vLyByZWNvbW1lbmRlZCBpcyA0OHB4XFxuLy8gNDRweCBpcyB3aGF0IHdlIGNob29zZSBhbmQgaGF2ZSB2ZXJ5IGdvb2QgdmlzdWFsLXRvLXVzYWJpbGl0eSByYXRpb1xcbiRjbGlja2FibGUtYXJlYTogNDRweDtcXG5cXG4vLyBiYWNrZ3JvdW5kIGljb24gc2l6ZVxcbi8vIGFsc28gdXNlZCBmb3IgdGhlIHNjc3MgaWNvbiBmb250XFxuJGljb24tc2l6ZTogMTZweDtcXG5cXG4vLyBpY29uIHBhZGRpbmcgZm9yIGEgJGNsaWNrYWJsZS1hcmVhIHdpZHRoIGFuZCBhICRpY29uLXNpemUgaWNvblxcbi8vICggNDRweCAtIDE2cHggKSAvIDJcXG4kaWNvbi1tYXJnaW46ICgkY2xpY2thYmxlLWFyZWEgLSAkaWNvbi1zaXplKSAvIDI7XFxuXFxuLy8gdHJhbnNwYXJlbmN5IGJhY2tncm91bmQgZm9yIGljb25zXFxuJGljb24tZm9jdXMtYmc6IHJnYmEoMTI3LCAxMjcsIDEyNywgLjI1KTtcXG5cXG4vLyBwb3BvdmVybWVudSBhcnJvdyB3aWR0aCBmcm9tIHRoZSB0cmlhbmdsZSBjZW50ZXJcXG4kYXJyb3ctd2lkdGg6IDlweDtcXG5cXG4vLyBvcGFjaXRpZXNcXG4kb3BhY2l0eV9kaXNhYmxlZDogLjU7XFxuJG9wYWNpdHlfbm9ybWFsOiAuNztcXG4kb3BhY2l0eV9mdWxsOiAxO1xcblxcbi8vIG1lbnUgcm91bmQgYmFja2dyb3VuZCBob3ZlciBmZWVkYmFja1xcbi8vIGdvb2QgbG9va2luZyBvbiBkYXJrIEFORCB3aGl0ZSBiZ1xcbiRhY3Rpb24tYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgxMjcsIDEyNywgMTI3LCAuMjUpO1xcblxcbi8vIHZhcmlvdXMgc3RydWN0dXJlIGRhdGEgdXNlZCBpbiB0aGUgXFxuLy8gYEFwcE5hdmlnYXRpb25gIGNvbXBvbmVudFxcbiRoZWFkZXItaGVpZ2h0OiA1MHB4O1xcbiRuYXZpZ2F0aW9uLXdpZHRoOiAzMDBweDtcXG5cXG4vLyBtb2JpbGUgYnJlYWtwb2ludFxcbiRicmVha3BvaW50LW1vYmlsZTogMTAyNHB4O1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbi8vIGNzcyBiYXNlIGNvZGUsIGluamVjdGVkIGJ5IHRoZSBjc3MtbG9hZGVyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY3NzV2l0aE1hcHBpbmdUb1N0cmluZykge1xuICB2YXIgbGlzdCA9IFtdOyAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG5cbiAgbGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgdmFyIGNvbnRlbnQgPSBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0pO1xuXG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICByZXR1cm4gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIikuY29uY2F0KGNvbnRlbnQsIFwifVwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTsgLy8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcblxuXG4gIGxpc3QuaSA9IGZ1bmN0aW9uIChtb2R1bGVzLCBtZWRpYVF1ZXJ5LCBkZWR1cGUpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgXCJcIl1dO1xuICAgIH1cblxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG5cbiAgICBpZiAoZGVkdXBlKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1kZXN0cnVjdHVyaW5nXG4gICAgICAgIHZhciBpZCA9IHRoaXNbaV1bMF07XG5cbiAgICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgICBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2lkXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbW9kdWxlcy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2ldKTtcblxuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250aW51ZVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhUXVlcnk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsyXSA9IFwiXCIuY29uY2F0KG1lZGlhUXVlcnksIFwiIGFuZCBcIikuY29uY2F0KGl0ZW1bMl0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfc2xpY2VkVG9BcnJheShhcnIsIGkpIHsgcmV0dXJuIF9hcnJheVdpdGhIb2xlcyhhcnIpIHx8IF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHx8IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIsIGkpIHx8IF9ub25JdGVyYWJsZVJlc3QoKTsgfVxuXG5mdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpOyB9XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHsgaWYgKCFvKSByZXR1cm47IGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7IHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTsgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7IGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikgeyBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDsgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7IGFycjJbaV0gPSBhcnJbaV07IH0gcmV0dXJuIGFycjI7IH1cblxuZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgeyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoYXJyKSkpIHJldHVybjsgdmFyIF9hcnIgPSBbXTsgdmFyIF9uID0gdHJ1ZTsgdmFyIF9kID0gZmFsc2U7IHZhciBfZSA9IHVuZGVmaW5lZDsgdHJ5IHsgZm9yICh2YXIgX2kgPSBhcnJbU3ltYm9sLml0ZXJhdG9yXSgpLCBfczsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkgeyBfYXJyLnB1c2goX3MudmFsdWUpOyBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7IH0gfSBjYXRjaCAoZXJyKSB7IF9kID0gdHJ1ZTsgX2UgPSBlcnI7IH0gZmluYWxseSB7IHRyeSB7IGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTsgfSBmaW5hbGx5IHsgaWYgKF9kKSB0aHJvdyBfZTsgfSB9IHJldHVybiBfYXJyOyB9XG5cbmZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHsgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjsgfVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSkge1xuICB2YXIgX2l0ZW0gPSBfc2xpY2VkVG9BcnJheShpdGVtLCA0KSxcbiAgICAgIGNvbnRlbnQgPSBfaXRlbVsxXSxcbiAgICAgIGNzc01hcHBpbmcgPSBfaXRlbVszXTtcblxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgdmFyIHNvdXJjZVVSTHMgPSBjc3NNYXBwaW5nLnNvdXJjZXMubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIHJldHVybiBcIi8qIyBzb3VyY2VVUkw9XCIuY29uY2F0KGNzc01hcHBpbmcuc291cmNlUm9vdCB8fCBcIlwiKS5jb25jYXQoc291cmNlLCBcIiAqL1wiKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG5cbiAgcmV0dXJuIFtjb250ZW50XS5qb2luKFwiXFxuXCIpO1xufTsiLCJpbXBvcnQgYXBpIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICAgICAgICBpbXBvcnQgY29udGVudCBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Jlc29sdmUtdXJsLWxvYWRlci9pbmRleC5qcyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0zIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwU2lkZWJhclRhYi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1lNWRiZmQ3NiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCI7XG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gYXBpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY29udGVudC5sb2NhbHMgfHwge307IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBpc09sZElFID0gZnVuY3Rpb24gaXNPbGRJRSgpIHtcbiAgdmFyIG1lbW87XG4gIHJldHVybiBmdW5jdGlvbiBtZW1vcml6ZSgpIHtcbiAgICBpZiAodHlwZW9mIG1lbW8gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBUZXN0IGZvciBJRSA8PSA5IGFzIHByb3Bvc2VkIGJ5IEJyb3dzZXJoYWNrc1xuICAgICAgLy8gQHNlZSBodHRwOi8vYnJvd3NlcmhhY2tzLmNvbS8jaGFjay1lNzFkODY5MmY2NTMzNDE3M2ZlZTcxNWMyMjJjYjgwNVxuICAgICAgLy8gVGVzdHMgZm9yIGV4aXN0ZW5jZSBvZiBzdGFuZGFyZCBnbG9iYWxzIGlzIHRvIGFsbG93IHN0eWxlLWxvYWRlclxuICAgICAgLy8gdG8gb3BlcmF0ZSBjb3JyZWN0bHkgaW50byBub24tc3RhbmRhcmQgZW52aXJvbm1lbnRzXG4gICAgICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrLWNvbnRyaWIvc3R5bGUtbG9hZGVyL2lzc3Vlcy8xNzdcbiAgICAgIG1lbW8gPSBCb29sZWFuKHdpbmRvdyAmJiBkb2N1bWVudCAmJiBkb2N1bWVudC5hbGwgJiYgIXdpbmRvdy5hdG9iKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVtbztcbiAgfTtcbn0oKTtcblxudmFyIGdldFRhcmdldCA9IGZ1bmN0aW9uIGdldFRhcmdldCgpIHtcbiAgdmFyIG1lbW8gPSB7fTtcbiAgcmV0dXJuIGZ1bmN0aW9uIG1lbW9yaXplKHRhcmdldCkge1xuICAgIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpOyAvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuXG4gICAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcbiAgICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICAgIHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICAgIHN0eWxlVGFyZ2V0ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBtZW1vW3RhcmdldF0gPSBzdHlsZVRhcmdldDtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVtb1t0YXJnZXRdO1xuICB9O1xufSgpO1xuXG52YXIgc3R5bGVzSW5Eb20gPSBbXTtcblxuZnVuY3Rpb24gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcikge1xuICB2YXIgcmVzdWx0ID0gLTE7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXNJbkRvbS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzdHlsZXNJbkRvbVtpXS5pZGVudGlmaWVyID09PSBpZGVudGlmaWVyKSB7XG4gICAgICByZXN1bHQgPSBpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpIHtcbiAgdmFyIGlkQ291bnRNYXAgPSB7fTtcbiAgdmFyIGlkZW50aWZpZXJzID0gW107XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldO1xuICAgIHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuICAgIHZhciBjb3VudCA9IGlkQ291bnRNYXBbaWRdIHx8IDA7XG4gICAgdmFyIGlkZW50aWZpZXIgPSBcIlwiLmNvbmNhdChpZCwgXCIgXCIpLmNvbmNhdChjb3VudCk7XG4gICAgaWRDb3VudE1hcFtpZF0gPSBjb3VudCArIDE7XG4gICAgdmFyIGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgdmFyIG9iaiA9IHtcbiAgICAgIGNzczogaXRlbVsxXSxcbiAgICAgIG1lZGlhOiBpdGVtWzJdLFxuICAgICAgc291cmNlTWFwOiBpdGVtWzNdXG4gICAgfTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHN0eWxlc0luRG9tW2luZGV4XS5yZWZlcmVuY2VzKys7XG4gICAgICBzdHlsZXNJbkRvbVtpbmRleF0udXBkYXRlcihvYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZXNJbkRvbS5wdXNoKHtcbiAgICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllcixcbiAgICAgICAgdXBkYXRlcjogYWRkU3R5bGUob2JqLCBvcHRpb25zKSxcbiAgICAgICAgcmVmZXJlbmNlczogMVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcbiAgfVxuXG4gIHJldHVybiBpZGVudGlmaWVycztcbn1cblxuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgdmFyIGF0dHJpYnV0ZXMgPSBvcHRpb25zLmF0dHJpYnV0ZXMgfHwge307XG5cbiAgaWYgKHR5cGVvZiBhdHRyaWJ1dGVzLm5vbmNlID09PSAndW5kZWZpbmVkJykge1xuICAgIHZhciBub25jZSA9IHR5cGVvZiBfX3dlYnBhY2tfbm9uY2VfXyAhPT0gJ3VuZGVmaW5lZCcgPyBfX3dlYnBhY2tfbm9uY2VfXyA6IG51bGw7XG5cbiAgICBpZiAobm9uY2UpIHtcbiAgICAgIGF0dHJpYnV0ZXMubm9uY2UgPSBub25jZTtcbiAgICB9XG4gIH1cblxuICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoa2V5LCBhdHRyaWJ1dGVzW2tleV0pO1xuICB9KTtcblxuICBpZiAodHlwZW9mIG9wdGlvbnMuaW5zZXJ0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgb3B0aW9ucy5pbnNlcnQoc3R5bGUpO1xuICB9IGVsc2Uge1xuICAgIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQob3B0aW9ucy5pbnNlcnQgfHwgJ2hlYWQnKTtcblxuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICAgIH1cblxuICAgIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gIH1cblxuICByZXR1cm4gc3R5bGU7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSkge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgaWYgKHN0eWxlLnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdHlsZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlKTtcbn1cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuXG5cbnZhciByZXBsYWNlVGV4dCA9IGZ1bmN0aW9uIHJlcGxhY2VUZXh0KCkge1xuICB2YXIgdGV4dFN0b3JlID0gW107XG4gIHJldHVybiBmdW5jdGlvbiByZXBsYWNlKGluZGV4LCByZXBsYWNlbWVudCkge1xuICAgIHRleHRTdG9yZVtpbmRleF0gPSByZXBsYWNlbWVudDtcbiAgICByZXR1cm4gdGV4dFN0b3JlLmZpbHRlcihCb29sZWFuKS5qb2luKCdcXG4nKTtcbiAgfTtcbn0oKTtcblxuZnVuY3Rpb24gYXBwbHlUb1NpbmdsZXRvblRhZyhzdHlsZSwgaW5kZXgsIHJlbW92ZSwgb2JqKSB7XG4gIHZhciBjc3MgPSByZW1vdmUgPyAnJyA6IG9iai5tZWRpYSA/IFwiQG1lZGlhIFwiLmNvbmNhdChvYmoubWVkaWEsIFwiIHtcIikuY29uY2F0KG9iai5jc3MsIFwifVwiKSA6IG9iai5jc3M7IC8vIEZvciBvbGQgSUVcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG5cbiAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSByZXBsYWNlVGV4dChpbmRleCwgY3NzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcyk7XG4gICAgdmFyIGNoaWxkTm9kZXMgPSBzdHlsZS5jaGlsZE5vZGVzO1xuXG4gICAgaWYgKGNoaWxkTm9kZXNbaW5kZXhdKSB7XG4gICAgICBzdHlsZS5yZW1vdmVDaGlsZChjaGlsZE5vZGVzW2luZGV4XSk7XG4gICAgfVxuXG4gICAgaWYgKGNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICBzdHlsZS5pbnNlcnRCZWZvcmUoY3NzTm9kZSwgY2hpbGROb2Rlc1tpbmRleF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5hcHBlbmRDaGlsZChjc3NOb2RlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXBwbHlUb1RhZyhzdHlsZSwgb3B0aW9ucywgb2JqKSB7XG4gIHZhciBjc3MgPSBvYmouY3NzO1xuICB2YXIgbWVkaWEgPSBvYmoubWVkaWE7XG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwO1xuXG4gIGlmIChtZWRpYSkge1xuICAgIHN0eWxlLnNldEF0dHJpYnV0ZSgnbWVkaWEnLCBtZWRpYSk7XG4gIH0gZWxzZSB7XG4gICAgc3R5bGUucmVtb3ZlQXR0cmlidXRlKCdtZWRpYScpO1xuICB9XG5cbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpLCBcIiAqL1wiKTtcbiAgfSAvLyBGb3Igb2xkIElFXG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqL1xuXG5cbiAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlLmZpcnN0Q2hpbGQpIHtcbiAgICAgIHN0eWxlLnJlbW92ZUNoaWxkKHN0eWxlLmZpcnN0Q2hpbGQpO1xuICAgIH1cblxuICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICB9XG59XG5cbnZhciBzaW5nbGV0b24gPSBudWxsO1xudmFyIHNpbmdsZXRvbkNvdW50ZXIgPSAwO1xuXG5mdW5jdGlvbiBhZGRTdHlsZShvYmosIG9wdGlvbnMpIHtcbiAgdmFyIHN0eWxlO1xuICB2YXIgdXBkYXRlO1xuICB2YXIgcmVtb3ZlO1xuXG4gIGlmIChvcHRpb25zLnNpbmdsZXRvbikge1xuICAgIHZhciBzdHlsZUluZGV4ID0gc2luZ2xldG9uQ291bnRlcisrO1xuICAgIHN0eWxlID0gc2luZ2xldG9uIHx8IChzaW5nbGV0b24gPSBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykpO1xuICAgIHVwZGF0ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZSwgc3R5bGVJbmRleCwgZmFsc2UpO1xuICAgIHJlbW92ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZSwgc3R5bGVJbmRleCwgdHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgc3R5bGUgPSBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XG4gICAgdXBkYXRlID0gYXBwbHlUb1RhZy5iaW5kKG51bGwsIHN0eWxlLCBvcHRpb25zKTtcblxuICAgIHJlbW92ZSA9IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSk7XG4gICAgfTtcbiAgfVxuXG4gIHVwZGF0ZShvYmopO1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlU3R5bGUobmV3T2JqKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZShvYmogPSBuZXdPYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICByZW1vdmUoKTtcbiAgICB9XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGxpc3QsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307IC8vIEZvcmNlIHNpbmdsZS10YWcgc29sdXRpb24gb24gSUU2LTksIHdoaWNoIGhhcyBhIGhhcmQgbGltaXQgb24gdGhlICMgb2YgPHN0eWxlPlxuICAvLyB0YWdzIGl0IHdpbGwgYWxsb3cgb24gYSBwYWdlXG5cbiAgaWYgKCFvcHRpb25zLnNpbmdsZXRvbiAmJiB0eXBlb2Ygb3B0aW9ucy5zaW5nbGV0b24gIT09ICdib29sZWFuJykge1xuICAgIG9wdGlvbnMuc2luZ2xldG9uID0gaXNPbGRJRSgpO1xuICB9XG5cbiAgbGlzdCA9IGxpc3QgfHwgW107XG4gIHZhciBsYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgIG5ld0xpc3QgPSBuZXdMaXN0IHx8IFtdO1xuXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXdMaXN0KSAhPT0gJ1tvYmplY3QgQXJyYXldJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5Eb21baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG5cbiAgICB2YXIgbmV3TGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKG5ld0xpc3QsIG9wdGlvbnMpO1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tfaV07XG5cbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG5cbiAgICAgIGlmIChzdHlsZXNJbkRvbVtfaW5kZXhdLnJlZmVyZW5jZXMgPT09IDApIHtcbiAgICAgICAgc3R5bGVzSW5Eb21bX2luZGV4XS51cGRhdGVyKCk7XG5cbiAgICAgICAgc3R5bGVzSW5Eb20uc3BsaWNlKF9pbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwic2VjdGlvblwiLFxuICAgIHtcbiAgICAgIHN0YXRpY0NsYXNzOiBcImFwcC1zaWRlYmFyX190YWJcIixcbiAgICAgIGNsYXNzOiB7IFwiYXBwLXNpZGViYXJfX3RhYi0tYWN0aXZlXCI6IF92bS5pc0FjdGl2ZSB9LFxuICAgICAgYXR0cnM6IHtcbiAgICAgICAgaWQ6IFwidGFiLVwiICsgX3ZtLmlkLFxuICAgICAgICBcImFyaWEtaGlkZGVuXCI6ICFfdm0uaXNBY3RpdmUsXG4gICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IF92bS5pZCxcbiAgICAgICAgdGFiaW5kZXg6IFwiMFwiLFxuICAgICAgICByb2xlOiBcInRhYnBhbmVsXCJcbiAgICAgIH0sXG4gICAgICBvbjogeyBzY3JvbGw6IF92bS5vblNjcm9sbCB9XG4gICAgfSxcbiAgICBbX3ZtLl90KFwiZGVmYXVsdFwiKV0sXG4gICAgMlxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiLyogZ2xvYmFscyBfX1ZVRV9TU1JfQ09OVEVYVF9fICovXG5cbi8vIElNUE9SVEFOVDogRG8gTk9UIHVzZSBFUzIwMTUgZmVhdHVyZXMgaW4gdGhpcyBmaWxlIChleGNlcHQgZm9yIG1vZHVsZXMpLlxuLy8gVGhpcyBtb2R1bGUgaXMgYSBydW50aW1lIHV0aWxpdHkgZm9yIGNsZWFuZXIgY29tcG9uZW50IG1vZHVsZSBvdXRwdXQgYW5kIHdpbGxcbi8vIGJlIGluY2x1ZGVkIGluIHRoZSBmaW5hbCB3ZWJwYWNrIHVzZXIgYnVuZGxlLlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBub3JtYWxpemVDb21wb25lbnQgKFxuICBzY3JpcHRFeHBvcnRzLFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZnVuY3Rpb25hbFRlbXBsYXRlLFxuICBpbmplY3RTdHlsZXMsXG4gIHNjb3BlSWQsXG4gIG1vZHVsZUlkZW50aWZpZXIsIC8qIHNlcnZlciBvbmx5ICovXG4gIHNoYWRvd01vZGUgLyogdnVlLWNsaSBvbmx5ICovXG4pIHtcbiAgLy8gVnVlLmV4dGVuZCBjb25zdHJ1Y3RvciBleHBvcnQgaW50ZXJvcFxuICB2YXIgb3B0aW9ucyA9IHR5cGVvZiBzY3JpcHRFeHBvcnRzID09PSAnZnVuY3Rpb24nXG4gICAgPyBzY3JpcHRFeHBvcnRzLm9wdGlvbnNcbiAgICA6IHNjcmlwdEV4cG9ydHNcblxuICAvLyByZW5kZXIgZnVuY3Rpb25zXG4gIGlmIChyZW5kZXIpIHtcbiAgICBvcHRpb25zLnJlbmRlciA9IHJlbmRlclxuICAgIG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zID0gc3RhdGljUmVuZGVyRm5zXG4gICAgb3B0aW9ucy5fY29tcGlsZWQgPSB0cnVlXG4gIH1cblxuICAvLyBmdW5jdGlvbmFsIHRlbXBsYXRlXG4gIGlmIChmdW5jdGlvbmFsVGVtcGxhdGUpIHtcbiAgICBvcHRpb25zLmZ1bmN0aW9uYWwgPSB0cnVlXG4gIH1cblxuICAvLyBzY29wZWRJZFxuICBpZiAoc2NvcGVJZCkge1xuICAgIG9wdGlvbnMuX3Njb3BlSWQgPSAnZGF0YS12LScgKyBzY29wZUlkXG4gIH1cblxuICB2YXIgaG9va1xuICBpZiAobW9kdWxlSWRlbnRpZmllcikgeyAvLyBzZXJ2ZXIgYnVpbGRcbiAgICBob29rID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIC8vIDIuMyBpbmplY3Rpb25cbiAgICAgIGNvbnRleHQgPVxuICAgICAgICBjb250ZXh0IHx8IC8vIGNhY2hlZCBjYWxsXG4gICAgICAgICh0aGlzLiR2bm9kZSAmJiB0aGlzLiR2bm9kZS5zc3JDb250ZXh0KSB8fCAvLyBzdGF0ZWZ1bFxuICAgICAgICAodGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQuJHZub2RlICYmIHRoaXMucGFyZW50LiR2bm9kZS5zc3JDb250ZXh0KSAvLyBmdW5jdGlvbmFsXG4gICAgICAvLyAyLjIgd2l0aCBydW5Jbk5ld0NvbnRleHQ6IHRydWVcbiAgICAgIGlmICghY29udGV4dCAmJiB0eXBlb2YgX19WVUVfU1NSX0NPTlRFWFRfXyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29udGV4dCA9IF9fVlVFX1NTUl9DT05URVhUX19cbiAgICAgIH1cbiAgICAgIC8vIGluamVjdCBjb21wb25lbnQgc3R5bGVzXG4gICAgICBpZiAoaW5qZWN0U3R5bGVzKSB7XG4gICAgICAgIGluamVjdFN0eWxlcy5jYWxsKHRoaXMsIGNvbnRleHQpXG4gICAgICB9XG4gICAgICAvLyByZWdpc3RlciBjb21wb25lbnQgbW9kdWxlIGlkZW50aWZpZXIgZm9yIGFzeW5jIGNodW5rIGluZmVycmVuY2VcbiAgICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQuX3JlZ2lzdGVyZWRDb21wb25lbnRzKSB7XG4gICAgICAgIGNvbnRleHQuX3JlZ2lzdGVyZWRDb21wb25lbnRzLmFkZChtb2R1bGVJZGVudGlmaWVyKVxuICAgICAgfVxuICAgIH1cbiAgICAvLyB1c2VkIGJ5IHNzciBpbiBjYXNlIGNvbXBvbmVudCBpcyBjYWNoZWQgYW5kIGJlZm9yZUNyZWF0ZVxuICAgIC8vIG5ldmVyIGdldHMgY2FsbGVkXG4gICAgb3B0aW9ucy5fc3NyUmVnaXN0ZXIgPSBob29rXG4gIH0gZWxzZSBpZiAoaW5qZWN0U3R5bGVzKSB7XG4gICAgaG9vayA9IHNoYWRvd01vZGVcbiAgICAgID8gZnVuY3Rpb24gKCkge1xuICAgICAgICBpbmplY3RTdHlsZXMuY2FsbChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIChvcHRpb25zLmZ1bmN0aW9uYWwgPyB0aGlzLnBhcmVudCA6IHRoaXMpLiRyb290LiRvcHRpb25zLnNoYWRvd1Jvb3RcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgOiBpbmplY3RTdHlsZXNcbiAgfVxuXG4gIGlmIChob29rKSB7XG4gICAgaWYgKG9wdGlvbnMuZnVuY3Rpb25hbCkge1xuICAgICAgLy8gZm9yIHRlbXBsYXRlLW9ubHkgaG90LXJlbG9hZCBiZWNhdXNlIGluIHRoYXQgY2FzZSB0aGUgcmVuZGVyIGZuIGRvZXNuJ3RcbiAgICAgIC8vIGdvIHRocm91Z2ggdGhlIG5vcm1hbGl6ZXJcbiAgICAgIG9wdGlvbnMuX2luamVjdFN0eWxlcyA9IGhvb2tcbiAgICAgIC8vIHJlZ2lzdGVyIGZvciBmdW5jdGlvbmFsIGNvbXBvbmVudCBpbiB2dWUgZmlsZVxuICAgICAgdmFyIG9yaWdpbmFsUmVuZGVyID0gb3B0aW9ucy5yZW5kZXJcbiAgICAgIG9wdGlvbnMucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyV2l0aFN0eWxlSW5qZWN0aW9uIChoLCBjb250ZXh0KSB7XG4gICAgICAgIGhvb2suY2FsbChjb250ZXh0KVxuICAgICAgICByZXR1cm4gb3JpZ2luYWxSZW5kZXIoaCwgY29udGV4dClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaW5qZWN0IGNvbXBvbmVudCByZWdpc3RyYXRpb24gYXMgYmVmb3JlQ3JlYXRlIGhvb2tcbiAgICAgIHZhciBleGlzdGluZyA9IG9wdGlvbnMuYmVmb3JlQ3JlYXRlXG4gICAgICBvcHRpb25zLmJlZm9yZUNyZWF0ZSA9IGV4aXN0aW5nXG4gICAgICAgID8gW10uY29uY2F0KGV4aXN0aW5nLCBob29rKVxuICAgICAgICA6IFtob29rXVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZXhwb3J0czogc2NyaXB0RXhwb3J0cyxcbiAgICBvcHRpb25zOiBvcHRpb25zXG4gIH1cbn1cbiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vQXBwU2lkZWJhclRhYi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZTVkYmZkNzYmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vQXBwU2lkZWJhclRhYi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0FwcFNpZGViYXJUYWIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL0FwcFNpZGViYXJUYWIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ZTVkYmZkNzYmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJlNWRiZmQ3NlwiLFxuICBudWxsXG4gIFxuKVxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICB2YXIgYXBpID0gcmVxdWlyZShcIi9ob21lL2xvdWlzL3dvcmtzcGFjZS9uZXh0Y2xvdWQvdG9vbHMvbmV4dGNsb3VkLXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCdlNWRiZmQ3NicpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCdlNWRiZmQ3NicsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCdlNWRiZmQ3NicsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vQXBwU2lkZWJhclRhYi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZTVkYmZkNzYmc2NvcGVkPXRydWUmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignZTVkYmZkNzYnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL0FwcFNpZGViYXJUYWIvQXBwU2lkZWJhclRhYi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQXBwU2lkZWJhclRhYi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9BcHBTaWRlYmFyVGFiLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZXNvbHZlLXVybC1sb2FkZXIvaW5kZXguanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcFNpZGViYXJUYWIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ZTVkYmZkNzYmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiIiwiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvdGVtcGxhdGVMb2FkZXIuanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0FwcFNpZGViYXJUYWIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWU1ZGJmZDc2JnNjb3BlZD10cnVlJlwiIiwiLyoqXG4gKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxOSBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gKlxuICogQGF1dGhvciBKb2huIE1vbGFrdm/DpiA8c2tqbmxkc3ZAcHJvdG9ubWFpbC5jb20+XG4gKlxuICogQGxpY2Vuc2UgR05VIEFHUEwgdmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuaW1wb3J0IEFwcFNpZGViYXJUYWIgZnJvbSAnLi9BcHBTaWRlYmFyVGFiJ1xuXG5leHBvcnQgZGVmYXVsdCBBcHBTaWRlYmFyVGFiXG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzXCIpOyJdLCJzb3VyY2VSb290IjoiIn0=","'use strict';\nconst Queue = require('yocto-queue');\n\nconst pLimit = concurrency => {\n\tif (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, ...args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, ...args) => {\n\t\tqueue.enqueue(run.bind(null, fn, resolve, ...args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, ...args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t}\n\t\t}\n\t});\n\n\treturn generator;\n};\n\nmodule.exports = pLimit;\n","class Node {\n\t/// value;\n\t/// next;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\n\t\t// TODO: Remove this when targeting Node.js 12.\n\t\tthis.next = undefined;\n\t}\n}\n\nclass Queue {\n\t// TODO: Use private class fields when targeting Node.js 12.\n\t// #_head;\n\t// #_tail;\n\t// #_size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this._head) {\n\t\t\tthis._tail.next = node;\n\t\t\tthis._tail = node;\n\t\t} else {\n\t\t\tthis._head = node;\n\t\t\tthis._tail = node;\n\t\t}\n\n\t\tthis._size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this._head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._head = this._head.next;\n\t\tthis._size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis._head = undefined;\n\t\tthis._tail = undefined;\n\t\tthis._size = 0;\n\t}\n\n\tget size() {\n\t\treturn this._size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this._head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n\nmodule.exports = Queue;\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2021, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.marked = factory());\n}(this, (function () { 'use strict';\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n }\n\n function createCommonjsModule(fn) {\n var module = { exports: {} };\n \treturn fn(module, module.exports), module.exports;\n }\n\n var defaults = createCommonjsModule(function (module) {\n function getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n }\n\n function changeDefaults(newDefaults) {\n module.exports.defaults = newDefaults;\n }\n\n module.exports = {\n defaults: getDefaults(),\n getDefaults: getDefaults,\n changeDefaults: changeDefaults\n };\n });\n\n /**\n * Helpers\n */\n var escapeTest = /[&<>\"']/;\n var escapeReplace = /[&<>\"']/g;\n var escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\n var escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n var escapeReplacements = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;'\n };\n\n var getEscapeReplacement = function getEscapeReplacement(ch) {\n return escapeReplacements[ch];\n };\n\n function escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n }\n\n var unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\n function unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, function (_, n) {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));\n }\n\n return '';\n });\n }\n\n var caret = /(^|[^\\[])\\^/g;\n\n function edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n var obj = {\n replace: function replace(name, val) {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: function getRegex() {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n }\n\n var nonWordAndColonTest = /[^\\w:]/g;\n var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n\n function cleanUrl(sanitize, base, href) {\n if (sanitize) {\n var prot;\n\n try {\n prot = decodeURIComponent(unescape(href)).replace(nonWordAndColonTest, '').toLowerCase();\n } catch (e) {\n return null;\n }\n\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n\n return href;\n }\n\n var baseUrls = {};\n var justDomain = /^[^:]+:\\/*[^/]*$/;\n var protocol = /^([^:]+:)[\\s\\S]*$/;\n var domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\n function resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n\n base = baseUrls[' ' + base];\n var relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n }\n\n var noopTest = {\n exec: function noopTest() {}\n };\n\n function merge(obj) {\n var i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n }\n\n function splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n var row = tableRow.replace(/\\|/g, function (match, offset, str) {\n var escaped = false,\n curr = offset;\n\n while (--curr >= 0 && str[curr] === '\\\\') {\n escaped = !escaped;\n }\n\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n var i = 0;\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) {\n cells.push('');\n }\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n\n return cells;\n } // Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n // /c*$/ is vulnerable to REDOS.\n // invert: Remove suffix of non-c chars instead. Default falsey.\n\n\n function rtrim(str, c, invert) {\n var l = str.length;\n\n if (l === 0) {\n return '';\n } // Length of suffix matching the invert condition.\n\n\n var suffLen = 0; // Step left until we fail to match the invert condition.\n\n while (suffLen < l) {\n var currChar = str.charAt(l - suffLen - 1);\n\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n }\n\n function findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n\n var l = str.length;\n var level = 0,\n i = 0;\n\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n\n if (level < 0) {\n return i;\n }\n }\n }\n\n return -1;\n }\n\n function checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n } // copied from https://stackoverflow.com/a/5450113/806777\n\n\n function repeatString(pattern, count) {\n if (count < 1) {\n return '';\n }\n\n var result = '';\n\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n\n count >>= 1;\n pattern += pattern;\n }\n\n return result + pattern;\n }\n\n var helpers = {\n escape: escape,\n unescape: unescape,\n edit: edit,\n cleanUrl: cleanUrl,\n resolveUrl: resolveUrl,\n noopTest: noopTest,\n merge: merge,\n splitCells: splitCells,\n rtrim: rtrim,\n findClosingBracket: findClosingBracket,\n checkSanitizeDeprecation: checkSanitizeDeprecation,\n repeatString: repeatString\n };\n\n var defaults$1 = defaults.defaults;\n var rtrim$1 = helpers.rtrim,\n splitCells$1 = helpers.splitCells,\n _escape = helpers.escape,\n findClosingBracket$1 = helpers.findClosingBracket;\n\n function outputLink(cap, link, raw) {\n var href = link.href;\n var title = link.title ? _escape(link.title) : null;\n var text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n return {\n type: 'link',\n raw: raw,\n href: href,\n title: title,\n text: text\n };\n } else {\n return {\n type: 'image',\n raw: raw,\n href: href,\n title: title,\n text: _escape(text)\n };\n }\n }\n\n function indentCodeCompensation(raw, text) {\n var matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n var indentToCode = matchIndentToCode[1];\n return text.split('\\n').map(function (node) {\n var matchIndentInNode = node.match(/^\\s+/);\n\n if (matchIndentInNode === null) {\n return node;\n }\n\n var indentInNode = matchIndentInNode[0];\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n }).join('\\n');\n }\n /**\n * Tokenizer\n */\n\n\n var Tokenizer_1 = /*#__PURE__*/function () {\n function Tokenizer(options) {\n this.options = options || defaults$1;\n }\n\n var _proto = Tokenizer.prototype;\n\n _proto.space = function space(src) {\n var cap = this.rules.block.newline.exec(src);\n\n if (cap) {\n if (cap[0].length > 1) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n\n return {\n raw: '\\n'\n };\n }\n };\n\n _proto.code = function code(src) {\n var cap = this.rules.block.code.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic ? rtrim$1(text, '\\n') : text\n };\n }\n };\n\n _proto.fences = function fences(src) {\n var cap = this.rules.block.fences.exec(src);\n\n if (cap) {\n var raw = cap[0];\n var text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw: raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: text\n };\n }\n };\n\n _proto.heading = function heading(src) {\n var cap = this.rules.block.heading.exec(src);\n\n if (cap) {\n var text = cap[2].trim(); // remove trailing #s\n\n if (/#$/.test(text)) {\n var trimmed = rtrim$1(text, '#');\n\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text\n };\n }\n };\n\n _proto.nptable = function nptable(src) {\n var cap = this.rules.block.nptable.exec(src);\n\n if (cap) {\n var item = {\n type: 'table',\n header: splitCells$1(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : [],\n raw: cap[0]\n };\n\n if (item.header.length === item.align.length) {\n var l = item.align.length;\n var i;\n\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.cells.length;\n\n for (i = 0; i < l; i++) {\n item.cells[i] = splitCells$1(item.cells[i], item.header.length);\n }\n\n return item;\n }\n }\n };\n\n _proto.hr = function hr(src) {\n var cap = this.rules.block.hr.exec(src);\n\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n };\n\n _proto.blockquote = function blockquote(src) {\n var cap = this.rules.block.blockquote.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ *> ?/gm, '');\n return {\n type: 'blockquote',\n raw: cap[0],\n text: text\n };\n }\n };\n\n _proto.list = function list(src) {\n var cap = this.rules.block.list.exec(src);\n\n if (cap) {\n var raw = cap[0];\n var bull = cap[2];\n var isordered = bull.length > 1;\n var list = {\n type: 'list',\n raw: raw,\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n }; // Get each top-level item.\n\n var itemMatch = cap[0].match(this.rules.block.item);\n var next = false,\n item,\n space,\n bcurr,\n bnext,\n addBack,\n loose,\n istask,\n ischecked,\n endMatch;\n var l = itemMatch.length;\n bcurr = this.rules.block.listItemStart.exec(itemMatch[0]);\n\n for (var i = 0; i < l; i++) {\n item = itemMatch[i];\n raw = item;\n\n if (!this.options.pedantic) {\n // Determine if current item contains the end of the list\n endMatch = item.match(new RegExp('\\\\n\\\\s*\\\\n {0,' + (bcurr[0].length - 1) + '}\\\\S'));\n\n if (endMatch) {\n addBack = item.length - endMatch.index + itemMatch.slice(i + 1).join('\\n').length;\n list.raw = list.raw.substring(0, list.raw.length - addBack);\n item = item.substring(0, endMatch.index);\n raw = item;\n l = i + 1;\n }\n } // Determine whether the next list item belongs here.\n // Backpedal if it does not belong in this list.\n\n\n if (i !== l - 1) {\n bnext = this.rules.block.listItemStart.exec(itemMatch[i + 1]);\n\n if (!this.options.pedantic ? bnext[1].length >= bcurr[0].length || bnext[1].length > 3 : bnext[1].length > bcurr[1].length) {\n // nested list or continuation\n itemMatch.splice(i, 2, itemMatch[i] + (!this.options.pedantic && bnext[1].length < bcurr[0].length && !itemMatch[i].match(/\\n$/) ? '' : '\\n') + itemMatch[i + 1]);\n i--;\n l--;\n continue;\n } else if ( // different bullet style\n !this.options.pedantic || this.options.smartLists ? bnext[2][bnext[2].length - 1] !== bull[bull.length - 1] : isordered === (bnext[2].length === 1)) {\n addBack = itemMatch.slice(i + 1).join('\\n').length;\n list.raw = list.raw.substring(0, list.raw.length - addBack);\n i = l - 1;\n }\n\n bcurr = bnext;\n } // Remove the list item's bullet\n // so it is seen as the next token.\n\n\n space = item.length;\n item = item.replace(/^ *([*+-]|\\d+[.)]) ?/, ''); // Outdent whatever the\n // list item contains. Hacky.\n\n if (~item.indexOf('\\n ')) {\n space -= item.length;\n item = !this.options.pedantic ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') : item.replace(/^ {1,4}/gm, '');\n } // trim item newlines at end\n\n\n item = rtrim$1(item, '\\n');\n\n if (i !== l - 1) {\n raw = raw + '\\n';\n } // Determine whether item is loose or not.\n // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\n // for discount behavior.\n\n\n loose = next || /\\n\\n(?!\\s*$)/.test(raw);\n\n if (i !== l - 1) {\n next = raw.slice(-2) === '\\n\\n';\n if (!loose) loose = next;\n }\n\n if (loose) {\n list.loose = true;\n } // Check for task list items\n\n\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.test(item);\n ischecked = undefined;\n\n if (istask) {\n ischecked = item[1] !== ' ';\n item = item.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: istask,\n checked: ischecked,\n loose: loose,\n text: item\n });\n }\n\n return list;\n }\n };\n\n _proto.html = function html(src) {\n var cap = this.rules.block.html.exec(src);\n\n if (cap) {\n return {\n type: this.options.sanitize ? 'paragraph' : 'html',\n raw: cap[0],\n pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]\n };\n }\n };\n\n _proto.def = function def(src) {\n var cap = this.rules.block.def.exec(src);\n\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n var tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n tag: tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n };\n\n _proto.table = function table(src) {\n var cap = this.rules.block.table.exec(src);\n\n if (cap) {\n var item = {\n type: 'table',\n header: splitCells$1(cap[1].replace(/^ *| *\\| *$/g, '')),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n cells: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n var l = item.align.length;\n var i;\n\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.cells.length;\n\n for (i = 0; i < l; i++) {\n item.cells[i] = splitCells$1(item.cells[i].replace(/^ *\\| *| *\\| *$/g, ''), item.header.length);\n }\n\n return item;\n }\n }\n };\n\n _proto.lheading = function lheading(src) {\n var cap = this.rules.block.lheading.exec(src);\n\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1]\n };\n }\n };\n\n _proto.paragraph = function paragraph(src) {\n var cap = this.rules.block.paragraph.exec(src);\n\n if (cap) {\n return {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n' ? cap[1].slice(0, -1) : cap[1]\n };\n }\n };\n\n _proto.text = function text(src) {\n var cap = this.rules.block.text.exec(src);\n\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0]\n };\n }\n };\n\n _proto.escape = function escape(src) {\n var cap = this.rules.inline.escape.exec(src);\n\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: _escape(cap[1])\n };\n }\n };\n\n _proto.tag = function tag(src, inLink, inRawBlock) {\n var cap = this.rules.inline.tag.exec(src);\n\n if (cap) {\n if (!inLink && /^<a /i.test(cap[0])) {\n inLink = true;\n } else if (inLink && /^<\\/a>/i.test(cap[0])) {\n inLink = false;\n }\n\n if (!inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n inRawBlock = true;\n } else if (inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize ? 'text' : 'html',\n raw: cap[0],\n inLink: inLink,\n inRawBlock: inRawBlock,\n text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]\n };\n }\n };\n\n _proto.link = function link(src) {\n var cap = this.rules.inline.link.exec(src);\n\n if (cap) {\n var trimmedUrl = cap[2].trim();\n\n if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!/>$/.test(trimmedUrl)) {\n return;\n } // ending angle bracket cannot be escaped\n\n\n var rtrimSlash = rtrim$1(trimmedUrl.slice(0, -1), '\\\\');\n\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n var lastParenIndex = findClosingBracket$1(cap[2], '()');\n\n if (lastParenIndex > -1) {\n var start = cap[0].indexOf('!') === 0 ? 5 : 4;\n var linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n\n var href = cap[2];\n var title = '';\n\n if (this.options.pedantic) {\n // split pedantic href and title\n var link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n\n if (/^</.test(href)) {\n if (this.options.pedantic && !/>$/.test(trimmedUrl)) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0]);\n }\n };\n\n _proto.reflink = function reflink(src, links) {\n var cap;\n\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n var link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n\n if (!link || !link.href) {\n var text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text: text\n };\n }\n\n return outputLink(cap, link, cap[0]);\n }\n };\n\n _proto.emStrong = function emStrong(src, maskedSrc, prevChar) {\n if (prevChar === void 0) {\n prevChar = '';\n }\n\n var match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return;\n if (match[3] && prevChar.match(/(?:[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08C7\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\u9FFC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7BF\\uA7C2-\\uA7CA\\uA7F5-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82C[\\uDC00-\\uDD1E\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDD\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/)) return; // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n\n var nextChar = match[1] || match[2] || '';\n\n if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {\n var lLength = match[0].length - 1;\n var rDelim,\n rLength,\n delimTotal = lLength,\n midDelimTotal = 0;\n var endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength); // Bump maskedSrc to same section of string as src (move to lexer?)\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue; // matched the first alternative in rules.js (skip the * in __abc*abc__)\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) {\n // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n // If this is the last rDelimiter, remove extra characters. *a*** -> *a*\n\n if (delimTotal + midDelimTotal - rLength <= 0 && !maskedSrc.slice(endReg.lastIndex).match(endReg)) {\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n }\n\n if (Math.min(lLength, rLength) % 2) {\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: src.slice(1, lLength + match.index + rLength)\n };\n }\n\n if (Math.min(lLength, rLength) % 2 === 0) {\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: src.slice(2, lLength + match.index + rLength - 1)\n };\n }\n }\n }\n };\n\n _proto.codespan = function codespan(src) {\n var cap = this.rules.inline.code.exec(src);\n\n if (cap) {\n var text = cap[2].replace(/\\n/g, ' ');\n var hasNonSpaceChars = /[^ ]/.test(text);\n var hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n\n text = _escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text: text\n };\n }\n };\n\n _proto.br = function br(src) {\n var cap = this.rules.inline.br.exec(src);\n\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n };\n\n _proto.del = function del(src) {\n var cap = this.rules.inline.del.exec(src);\n\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2]\n };\n }\n };\n\n _proto.autolink = function autolink(src, mangle) {\n var cap = this.rules.inline.autolink.exec(src);\n\n if (cap) {\n var text, href;\n\n if (cap[2] === '@') {\n text = _escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = _escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n };\n\n _proto.url = function url(src, mangle) {\n var cap;\n\n if (cap = this.rules.inline.url.exec(src)) {\n var text, href;\n\n if (cap[2] === '@') {\n text = _escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n var prevCapZero;\n\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n\n text = _escape(cap[0]);\n\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n };\n\n _proto.inlineText = function inlineText(src, inRawBlock, smartypants) {\n var cap = this.rules.inline.text.exec(src);\n\n if (cap) {\n var text;\n\n if (inRawBlock) {\n text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0];\n } else {\n text = _escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n\n return {\n type: 'text',\n raw: cap[0],\n text: text\n };\n }\n };\n\n return Tokenizer;\n }();\n\n var noopTest$1 = helpers.noopTest,\n edit$1 = helpers.edit,\n merge$1 = helpers.merge;\n /**\n * Block-Level Grammar\n */\n\n var block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?! {0,3}bull )\\n*|\\s*$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (6)\n + '|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) open tag\n + '|</(?!script|pre|style)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *<?([^\\s>]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n nptable: noopTest$1,\n table: noopTest$1,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n };\n block._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\n block._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\n block.def = edit$1(block.def).replace('label', block._label).replace('title', block._title).getRegex();\n block.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\n block.item = /^( *)(bull) ?[^\\n]*(?:\\n(?! *bull ?)[^\\n]*)*/;\n block.item = edit$1(block.item, 'gm').replace(/bull/g, block.bullet).getRegex();\n block.listItemStart = edit$1(/^( *)(bull) */).replace('bull', block.bullet).getRegex();\n block.list = edit$1(block.list).replace(/bull/g, block.bullet).replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))').replace('def', '\\\\n+(?=' + block.def.source + ')').getRegex();\n block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';\n block._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/;\n block.html = edit$1(block.html, 'i').replace('comment', block._comment).replace('tag', block._tag).replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\n block.paragraph = edit$1(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n block.blockquote = edit$1(block.blockquote).replace('paragraph', block.paragraph).getRegex();\n /**\n * Normal Block Grammar\n */\n\n block.normal = merge$1({}, block);\n /**\n * GFM Block Grammar\n */\n\n block.gfm = merge$1({}, block.normal, {\n nptable: '^ *([^|\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}([-:]+ *\\\\|[-| :]*)' // Align\n + '(?:\\\\n((?:(?!\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)',\n // Cells\n table: '^ *\\\\|(.+)\\\\n' // Header\n + ' {0,3}\\\\|?( *[-:]+[-| :]*)' // Align\n + '(?:\\\\n *((?:(?!\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n\n });\n block.gfm.nptable = edit$1(block.gfm.nptable).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n block.gfm.table = edit$1(block.gfm.table).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n /**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\n block.pedantic = merge$1({}, block.normal, {\n html: edit$1('^ *(?:comment *(?:\\\\n|\\\\s*$)' + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))').replace('comment', block._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b').getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest$1,\n // fences not supported\n paragraph: edit$1(block.normal._paragraph).replace('hr', block.hr).replace('heading', ' *#{1,6} *[^\\n]').replace('lheading', block.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()\n });\n /**\n * Inline-Level Grammar\n */\n\n var inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest$1,\n tag: '^comment' + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>',\n // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip other delimiter (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /\\_\\_[^_]*?\\*[^_]*?\\_\\_|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /\\*\\*[^*]*?\\_[^*]*?\\*\\*|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest$1,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n punctuation: /^([\\spunctuation])/\n }; // list of punctuation marks from CommonMark spec\n // without * and _ to handle the different emphasis markers * and _\n\n inline._punctuation = '!\"#$%&\\'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~';\n inline.punctuation = edit$1(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, <html>\n\n inline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\n inline.escapedEmSt = /\\\\\\*|\\\\_/g;\n inline._comment = edit$1(block._comment).replace('(?:-->|$)', '-->').getRegex();\n inline.emStrong.lDelim = edit$1(inline.emStrong.lDelim).replace(/punct/g, inline._punctuation).getRegex();\n inline.emStrong.rDelimAst = edit$1(inline.emStrong.rDelimAst, 'g').replace(/punct/g, inline._punctuation).getRegex();\n inline.emStrong.rDelimUnd = edit$1(inline.emStrong.rDelimUnd, 'g').replace(/punct/g, inline._punctuation).getRegex();\n inline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\n inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\n inline.autolink = edit$1(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();\n inline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n inline.tag = edit$1(inline.tag).replace('comment', inline._comment).replace('attribute', inline._attribute).getRegex();\n inline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\n inline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\n inline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n inline.link = edit$1(inline.link).replace('label', inline._label).replace('href', inline._href).replace('title', inline._title).getRegex();\n inline.reflink = edit$1(inline.reflink).replace('label', inline._label).getRegex();\n inline.reflinkSearch = edit$1(inline.reflinkSearch, 'g').replace('reflink', inline.reflink).replace('nolink', inline.nolink).getRegex();\n /**\n * Normal Inline Grammar\n */\n\n inline.normal = merge$1({}, inline);\n /**\n * Pedantic Inline Grammar\n */\n\n inline.pedantic = merge$1({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit$1(/^!?\\[(label)\\]\\((.*?)\\)/).replace('label', inline._label).getRegex(),\n reflink: edit$1(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace('label', inline._label).getRegex()\n });\n /**\n * GFM Inline Grammar\n */\n\n inline.gfm = merge$1({}, inline.normal, {\n escape: edit$1(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@))/\n });\n inline.gfm.url = edit$1(inline.gfm.url, 'i').replace('email', inline.gfm._extended_email).getRegex();\n /**\n * GFM + Line Breaks Inline Grammar\n */\n\n inline.breaks = merge$1({}, inline.gfm, {\n br: edit$1(inline.br).replace('{2,}', '*').getRegex(),\n text: edit$1(inline.gfm.text).replace('\\\\b_', '\\\\b_| {2,}\\\\n').replace(/\\{2,\\}/g, '*').getRegex()\n });\n var rules = {\n block: block,\n inline: inline\n };\n\n var defaults$2 = defaults.defaults;\n var block$1 = rules.block,\n inline$1 = rules.inline;\n var repeatString$1 = helpers.repeatString;\n /**\n * smartypants text replacement\n */\n\n function smartypants(text) {\n return text // em-dashes\n .replace(/---/g, \"\\u2014\") // en-dashes\n .replace(/--/g, \"\\u2013\") // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, \"$1\\u2018\") // closing singles & apostrophes\n .replace(/'/g, \"\\u2019\") // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, \"$1\\u201C\") // closing doubles\n .replace(/\"/g, \"\\u201D\") // ellipses\n .replace(/\\.{3}/g, \"\\u2026\");\n }\n /**\n * mangle email addresses\n */\n\n\n function mangle(text) {\n var out = '',\n i,\n ch;\n var l = text.length;\n\n for (i = 0; i < l; i++) {\n ch = text.charCodeAt(i);\n\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n\n out += '&#' + ch + ';';\n }\n\n return out;\n }\n /**\n * Block Lexer\n */\n\n\n var Lexer_1 = /*#__PURE__*/function () {\n function Lexer(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults$2;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer_1();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n var rules = {\n block: block$1.normal,\n inline: inline$1.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block$1.pedantic;\n rules.inline = inline$1.pedantic;\n } else if (this.options.gfm) {\n rules.block = block$1.gfm;\n\n if (this.options.breaks) {\n rules.inline = inline$1.breaks;\n } else {\n rules.inline = inline$1.gfm;\n }\n }\n\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n\n\n /**\n * Static Lex Method\n */\n Lexer.lex = function lex(src, options) {\n var lexer = new Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n ;\n\n Lexer.lexInline = function lexInline(src, options) {\n var lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n ;\n\n var _proto = Lexer.prototype;\n\n _proto.lex = function lex(src) {\n src = src.replace(/\\r\\n|\\r/g, '\\n').replace(/\\t/g, ' ');\n this.blockTokens(src, this.tokens, true);\n this.inline(this.tokens);\n return this.tokens;\n }\n /**\n * Lexing\n */\n ;\n\n _proto.blockTokens = function blockTokens(src, tokens, top) {\n if (tokens === void 0) {\n tokens = [];\n }\n\n if (top === void 0) {\n top = true;\n }\n\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n\n var token, i, l, lastToken;\n\n while (src) {\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n\n if (token.type) {\n tokens.push(token);\n }\n\n continue;\n } // code\n\n\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.\n\n if (lastToken && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // fences\n\n\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // heading\n\n\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // table no leading pipe (gfm)\n\n\n if (token = this.tokenizer.nptable(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // hr\n\n\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // blockquote\n\n\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n token.tokens = this.blockTokens(token.text, [], top);\n tokens.push(token);\n continue;\n } // list\n\n\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n l = token.items.length;\n\n for (i = 0; i < l; i++) {\n token.items[i].tokens = this.blockTokens(token.items[i].text, [], false);\n }\n\n tokens.push(token);\n continue;\n } // html\n\n\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // def\n\n\n if (top && (token = this.tokenizer.def(src))) {\n src = src.substring(token.raw.length);\n\n if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n\n continue;\n } // table (gfm)\n\n\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // lheading\n\n\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // top-level paragraph\n\n\n if (top && (token = this.tokenizer.paragraph(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // text\n\n\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n };\n\n _proto.inline = function inline(tokens) {\n var i, j, k, l2, row, token;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n switch (token.type) {\n case 'paragraph':\n case 'text':\n case 'heading':\n {\n token.tokens = [];\n this.inlineTokens(token.text, token.tokens);\n break;\n }\n\n case 'table':\n {\n token.tokens = {\n header: [],\n cells: []\n }; // header\n\n l2 = token.header.length;\n\n for (j = 0; j < l2; j++) {\n token.tokens.header[j] = [];\n this.inlineTokens(token.header[j], token.tokens.header[j]);\n } // cells\n\n\n l2 = token.cells.length;\n\n for (j = 0; j < l2; j++) {\n row = token.cells[j];\n token.tokens.cells[j] = [];\n\n for (k = 0; k < row.length; k++) {\n token.tokens.cells[j][k] = [];\n this.inlineTokens(row[k], token.tokens.cells[j][k]);\n }\n }\n\n break;\n }\n\n case 'blockquote':\n {\n this.inline(token.tokens);\n break;\n }\n\n case 'list':\n {\n l2 = token.items.length;\n\n for (j = 0; j < l2; j++) {\n this.inline(token.items[j].tokens);\n }\n\n break;\n }\n }\n }\n\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n ;\n\n _proto.inlineTokens = function inlineTokens(src, tokens, inLink, inRawBlock) {\n if (tokens === void 0) {\n tokens = [];\n }\n\n if (inLink === void 0) {\n inLink = false;\n }\n\n if (inRawBlock === void 0) {\n inRawBlock = false;\n }\n\n var token, lastToken; // String with links masked to avoid interference with em and strong\n\n var maskedSrc = src;\n var match;\n var keepPrevChar, prevChar; // Mask out reflinks\n\n if (this.tokens.links) {\n var links = Object.keys(this.tokens.links);\n\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString$1('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n } // Mask out other blocks\n\n\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString$1('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n } // Mask out escaped em & strong delimiters\n\n\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n\n keepPrevChar = false; // escape\n\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // tag\n\n\n if (token = this.tokenizer.tag(src, inLink, inRawBlock)) {\n src = src.substring(token.raw.length);\n inLink = token.inLink;\n inRawBlock = token.inRawBlock;\n var _lastToken = tokens[tokens.length - 1];\n\n if (_lastToken && token.type === 'text' && _lastToken.type === 'text') {\n _lastToken.raw += token.raw;\n _lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // link\n\n\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n\n if (token.type === 'link') {\n token.tokens = this.inlineTokens(token.text, [], true, inRawBlock);\n }\n\n tokens.push(token);\n continue;\n } // reflink, nolink\n\n\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n var _lastToken2 = tokens[tokens.length - 1];\n\n if (token.type === 'link') {\n token.tokens = this.inlineTokens(token.text, [], true, inRawBlock);\n tokens.push(token);\n } else if (_lastToken2 && token.type === 'text' && _lastToken2.type === 'text') {\n _lastToken2.raw += token.raw;\n _lastToken2.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // em & strong\n\n\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n token.tokens = this.inlineTokens(token.text, [], inLink, inRawBlock);\n tokens.push(token);\n continue;\n } // code\n\n\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // br\n\n\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // del (gfm)\n\n\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n token.tokens = this.inlineTokens(token.text, [], inLink, inRawBlock);\n tokens.push(token);\n continue;\n } // autolink\n\n\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // url (gfm)\n\n\n if (!inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // text\n\n\n if (token = this.tokenizer.inlineText(src, inRawBlock, smartypants)) {\n src = src.substring(token.raw.length);\n\n if (token.raw.slice(-1) !== '_') {\n // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n };\n\n _createClass(Lexer, null, [{\n key: \"rules\",\n get: function get() {\n return {\n block: block$1,\n inline: inline$1\n };\n }\n }]);\n\n return Lexer;\n }();\n\n var defaults$3 = defaults.defaults;\n var cleanUrl$1 = helpers.cleanUrl,\n escape$1 = helpers.escape;\n /**\n * Renderer\n */\n\n var Renderer_1 = /*#__PURE__*/function () {\n function Renderer(options) {\n this.options = options || defaults$3;\n }\n\n var _proto = Renderer.prototype;\n\n _proto.code = function code(_code, infostring, escaped) {\n var lang = (infostring || '').match(/\\S*/)[0];\n\n if (this.options.highlight) {\n var out = this.options.highlight(_code, lang);\n\n if (out != null && out !== _code) {\n escaped = true;\n _code = out;\n }\n }\n\n _code = _code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '<pre><code>' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\\n';\n }\n\n return '<pre><code class=\"' + this.options.langPrefix + escape$1(lang, true) + '\">' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\\n';\n };\n\n _proto.blockquote = function blockquote(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n };\n\n _proto.html = function html(_html) {\n return _html;\n };\n\n _proto.heading = function heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h' + level + ' id=\"' + this.options.headerPrefix + slugger.slug(raw) + '\">' + text + '</h' + level + '>\\n';\n } // ignore IDs\n\n\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n };\n\n _proto.hr = function hr() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\n';\n };\n\n _proto.list = function list(body, ordered, start) {\n var type = ordered ? 'ol' : 'ul',\n startatt = ordered && start !== 1 ? ' start=\"' + start + '\"' : '';\n return '<' + type + startatt + '>\\n' + body + '</' + type + '>\\n';\n };\n\n _proto.listitem = function listitem(text) {\n return '<li>' + text + '</li>\\n';\n };\n\n _proto.checkbox = function checkbox(checked) {\n return '<input ' + (checked ? 'checked=\"\" ' : '') + 'disabled=\"\" type=\"checkbox\"' + (this.options.xhtml ? ' /' : '') + '> ';\n };\n\n _proto.paragraph = function paragraph(text) {\n return '<p>' + text + '</p>\\n';\n };\n\n _proto.table = function table(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n return '<table>\\n' + '<thead>\\n' + header + '</thead>\\n' + body + '</table>\\n';\n };\n\n _proto.tablerow = function tablerow(content) {\n return '<tr>\\n' + content + '</tr>\\n';\n };\n\n _proto.tablecell = function tablecell(content, flags) {\n var type = flags.header ? 'th' : 'td';\n var tag = flags.align ? '<' + type + ' align=\"' + flags.align + '\">' : '<' + type + '>';\n return tag + content + '</' + type + '>\\n';\n } // span level renderer\n ;\n\n _proto.strong = function strong(text) {\n return '<strong>' + text + '</strong>';\n };\n\n _proto.em = function em(text) {\n return '<em>' + text + '</em>';\n };\n\n _proto.codespan = function codespan(text) {\n return '<code>' + text + '</code>';\n };\n\n _proto.br = function br() {\n return this.options.xhtml ? '<br/>' : '<br>';\n };\n\n _proto.del = function del(text) {\n return '<del>' + text + '</del>';\n };\n\n _proto.link = function link(href, title, text) {\n href = cleanUrl$1(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = '<a href=\"' + escape$1(href) + '\"';\n\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n\n out += '>' + text + '</a>';\n return out;\n };\n\n _proto.image = function image(href, title, text) {\n href = cleanUrl$1(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n\n out += this.options.xhtml ? '/>' : '>';\n return out;\n };\n\n _proto.text = function text(_text) {\n return _text;\n };\n\n return Renderer;\n }();\n\n /**\n * TextRenderer\n * returns only the textual part of the token\n */\n var TextRenderer_1 = /*#__PURE__*/function () {\n function TextRenderer() {}\n\n var _proto = TextRenderer.prototype;\n\n // no need for block level renderers\n _proto.strong = function strong(text) {\n return text;\n };\n\n _proto.em = function em(text) {\n return text;\n };\n\n _proto.codespan = function codespan(text) {\n return text;\n };\n\n _proto.del = function del(text) {\n return text;\n };\n\n _proto.html = function html(text) {\n return text;\n };\n\n _proto.text = function text(_text) {\n return _text;\n };\n\n _proto.link = function link(href, title, text) {\n return '' + text;\n };\n\n _proto.image = function image(href, title, text) {\n return '' + text;\n };\n\n _proto.br = function br() {\n return '';\n };\n\n return TextRenderer;\n }();\n\n /**\n * Slugger generates header id\n */\n var Slugger_1 = /*#__PURE__*/function () {\n function Slugger() {\n this.seen = {};\n }\n\n var _proto = Slugger.prototype;\n\n _proto.serialize = function serialize(value) {\n return value.toLowerCase().trim() // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '') // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '').replace(/\\s/g, '-');\n }\n /**\n * Finds the next safe (unique) slug to use\n */\n ;\n\n _proto.getNextSafeSlug = function getNextSafeSlug(originalSlug, isDryRun) {\n var slug = originalSlug;\n var occurenceAccumulator = 0;\n\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n\n return slug;\n }\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n ;\n\n _proto.slug = function slug(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n };\n\n return Slugger;\n }();\n\n var defaults$4 = defaults.defaults;\n var unescape$1 = helpers.unescape;\n /**\n * Parsing & Compiling\n */\n\n var Parser_1 = /*#__PURE__*/function () {\n function Parser(options) {\n this.options = options || defaults$4;\n this.options.renderer = this.options.renderer || new Renderer_1();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer_1();\n this.slugger = new Slugger_1();\n }\n /**\n * Static Parse Method\n */\n\n\n Parser.parse = function parse(tokens, options) {\n var parser = new Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n ;\n\n Parser.parseInline = function parseInline(tokens, options) {\n var parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n ;\n\n var _proto = Parser.prototype;\n\n _proto.parse = function parse(tokens, top) {\n if (top === void 0) {\n top = true;\n }\n\n var out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n switch (token.type) {\n case 'space':\n {\n continue;\n }\n\n case 'hr':\n {\n out += this.renderer.hr();\n continue;\n }\n\n case 'heading':\n {\n out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape$1(this.parseInline(token.tokens, this.textRenderer)), this.slugger);\n continue;\n }\n\n case 'code':\n {\n out += this.renderer.code(token.text, token.lang, token.escaped);\n continue;\n }\n\n case 'table':\n {\n header = ''; // header\n\n cell = '';\n l2 = token.header.length;\n\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(this.parseInline(token.tokens.header[j]), {\n header: true,\n align: token.align[j]\n });\n }\n\n header += this.renderer.tablerow(cell);\n body = '';\n l2 = token.cells.length;\n\n for (j = 0; j < l2; j++) {\n row = token.tokens.cells[j];\n cell = '';\n l3 = row.length;\n\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(this.parseInline(row[k]), {\n header: false,\n align: token.align[k]\n });\n }\n\n body += this.renderer.tablerow(cell);\n }\n\n out += this.renderer.table(header, body);\n continue;\n }\n\n case 'blockquote':\n {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n\n case 'list':\n {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n body = '';\n\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n itemBody = '';\n\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'text') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n\n case 'html':\n {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n\n case 'paragraph':\n {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n\n case 'text':\n {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n ;\n\n _proto.parseInline = function parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n var out = '',\n i,\n token;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n switch (token.type) {\n case 'escape':\n {\n out += renderer.text(token.text);\n break;\n }\n\n case 'html':\n {\n out += renderer.html(token.text);\n break;\n }\n\n case 'link':\n {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'image':\n {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n\n case 'strong':\n {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'em':\n {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'codespan':\n {\n out += renderer.codespan(token.text);\n break;\n }\n\n case 'br':\n {\n out += renderer.br();\n break;\n }\n\n case 'del':\n {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'text':\n {\n out += renderer.text(token.text);\n break;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n };\n\n return Parser;\n }();\n\n var merge$2 = helpers.merge,\n checkSanitizeDeprecation$1 = helpers.checkSanitizeDeprecation,\n escape$2 = helpers.escape;\n var getDefaults = defaults.getDefaults,\n changeDefaults = defaults.changeDefaults,\n defaults$5 = defaults.defaults;\n /**\n * Marked\n */\n\n function marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge$2({}, marked.defaults, opt || {});\n checkSanitizeDeprecation$1(opt);\n\n if (callback) {\n var highlight = opt.highlight;\n var tokens;\n\n try {\n tokens = Lexer_1.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n var done = function done(err) {\n var out;\n\n if (!err) {\n try {\n out = Parser_1.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n return err ? callback(err) : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n if (!tokens.length) return done();\n var pending = 0;\n marked.walkTokens(tokens, function (token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(function () {\n highlight(token.text, token.lang, function (err, code) {\n if (err) {\n return done(err);\n }\n\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n var _tokens = Lexer_1.lex(src, opt);\n\n if (opt.walkTokens) {\n marked.walkTokens(_tokens, opt.walkTokens);\n }\n\n return Parser_1.parse(_tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>' + escape$2(e.message + '', true) + '</pre>';\n }\n\n throw e;\n }\n }\n /**\n * Options\n */\n\n\n marked.options = marked.setOptions = function (opt) {\n merge$2(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n };\n\n marked.getDefaults = getDefaults;\n marked.defaults = defaults$5;\n /**\n * Use Extension\n */\n\n marked.use = function (extension) {\n var opts = merge$2({}, extension);\n\n if (extension.renderer) {\n (function () {\n var renderer = marked.defaults.renderer || new Renderer_1();\n\n var _loop = function _loop(prop) {\n var prevRenderer = renderer[prop];\n\n renderer[prop] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var ret = extension.renderer[prop].apply(renderer, args);\n\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in extension.renderer) {\n _loop(prop);\n }\n\n opts.renderer = renderer;\n })();\n }\n\n if (extension.tokenizer) {\n (function () {\n var tokenizer = marked.defaults.tokenizer || new Tokenizer_1();\n\n var _loop2 = function _loop2(prop) {\n var prevTokenizer = tokenizer[prop];\n\n tokenizer[prop] = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var ret = extension.tokenizer[prop].apply(tokenizer, args);\n\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in extension.tokenizer) {\n _loop2(prop);\n }\n\n opts.tokenizer = tokenizer;\n })();\n }\n\n if (extension.walkTokens) {\n var walkTokens = marked.defaults.walkTokens;\n\n opts.walkTokens = function (token) {\n extension.walkTokens(token);\n\n if (walkTokens) {\n walkTokens(token);\n }\n };\n }\n\n marked.setOptions(opts);\n };\n /**\n * Run callback for every token\n */\n\n\n marked.walkTokens = function (tokens, callback) {\n for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {\n var token = _step.value;\n callback(token);\n\n switch (token.type) {\n case 'table':\n {\n for (var _iterator2 = _createForOfIteratorHelperLoose(token.tokens.header), _step2; !(_step2 = _iterator2()).done;) {\n var cell = _step2.value;\n marked.walkTokens(cell, callback);\n }\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(token.tokens.cells), _step3; !(_step3 = _iterator3()).done;) {\n var row = _step3.value;\n\n for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {\n var _cell = _step4.value;\n marked.walkTokens(_cell, callback);\n }\n }\n\n break;\n }\n\n case 'list':\n {\n marked.walkTokens(token.items, callback);\n break;\n }\n\n default:\n {\n if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n };\n /**\n * Parse Inline\n */\n\n\n marked.parseInline = function (src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge$2({}, marked.defaults, opt || {});\n checkSanitizeDeprecation$1(opt);\n\n try {\n var tokens = Lexer_1.lexInline(src, opt);\n\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n\n return Parser_1.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>' + escape$2(e.message + '', true) + '</pre>';\n }\n\n throw e;\n }\n };\n /**\n * Expose\n */\n\n\n marked.Parser = Parser_1;\n marked.parser = Parser_1.parse;\n marked.Renderer = Renderer_1;\n marked.TextRenderer = TextRenderer_1;\n marked.Lexer = Lexer_1;\n marked.lexer = Lexer_1.lex;\n marked.Tokenizer = Tokenizer_1;\n marked.Slugger = Slugger_1;\n marked.parse = marked;\n var marked_1 = marked;\n\n return marked_1;\n\n})));\n","/*! @license DOMPurify | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.2.2/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.DOMPurify = factory());\n}(this, function () { 'use strict';\n\n function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n\n var regExpTest = unapply(RegExp.prototype.test);\n\n var typeErrorCreate = unconstruct(TypeError);\n\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n\n /* Shallow clone an object */\n function clone(object) {\n var newObject = create(null);\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n var svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'feimage', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n\n var mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n\n var text = freeze(['#text']);\n\n var html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns']);\n\n var svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\n var mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.2.7';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n\n var ElementPrototype = Element.prototype;\n\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n getElementsByTagName = _document.getElementsByTagName,\n createDocumentFragment = _document.createDocumentFragment;\n var importNode = originalDocument.importNode;\n\n\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify.\n *\n * This defaults to `true` starting DOMPurify 2.2.0. Note that setting it to `false`\n * might cause XSS from attacks hidden in closed shadowroots in case the browser\n * supports Declarative Shadow: DOM https://web.dev/declarative-shadow-dom/\n */\n var RETURN_DOM_IMPORT = true;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT !== false; // Default true\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n\n var ALL_MATHML_TAGS = addToSet({}, mathMl);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erronously deleted from\n // HTML namespace.\n var commonSvgAndHTMLElements = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /* Use the DOMParser API by default, fallback later if needs be */\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, 'text/html');\n } catch (_) {}\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createHTMLDocument('');\n var _doc = doc,\n body = _doc.body;\n\n body.parentNode.removeChild(body.parentNode.firstElementChild);\n body.outerHTML = dirtyPayload;\n }\n\n if (dirty && leadingWhitespace) {\n doc.body.insertBefore(document.createTextNode(leadingWhitespace), doc.body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, function () {\n return NodeFilter.FILTER_ACCEPT;\n }, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function') {\n return true;\n }\n\n return false;\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (stringMatch(currentNode.nodeName, /[\\u0080-\\uFFFF]/)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = stringToLowerCase(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n var parentNode = getParentNode(currentNode);\n var childNodes = getChildNodes(currentNode);\n\n if (childNodes && parentNode) {\n var childCount = childNodes.length;\n\n for (var i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$$1, ' ');\n content = stringReplace(content, ERB_EXPR$$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n return false;\n\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if (!value) ; else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = stringTrim(attr.value);\n lcName = stringToLowerCase(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$$1, ' ');\n value = stringReplace(value, ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = currentNode.nodeName.toLowerCase();\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n if (!dirty) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) ; else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (RETURN_DOM_IMPORT) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = stringToLowerCase(tag);\n var lcName = stringToLowerCase(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n }\n\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n"],"sourceRoot":""}