-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path3451.b1754900.iframe.bundle.js
3 lines (3 loc) · 94.9 KB
/
3451.b1754900.iframe.bundle.js
1
2
3
/*! For license information please see 3451.b1754900.iframe.bundle.js.LICENSE.txt */
(self.webpackChunkblockly_mooc=self.webpackChunkblockly_mooc||[]).push([[3451],{"./node_modules/classnames/index.js":(module,exports)=>{var __WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";var hasOwn={}.hasOwnProperty;function classNames(){for(var classes=[],i=0;i<arguments.length;i++){var arg=arguments[i];if(arg){var argType=typeof arg;if("string"===argType||"number"===argType)classes.push(arg);else if(Array.isArray(arg)){if(arg.length){var inner=classNames.apply(null,arg);inner&&classes.push(inner)}}else if("object"===argType){if(arg.toString!==Object.prototype.toString&&!arg.toString.toString().includes("[native code]")){classes.push(arg.toString());continue}for(var key in arg)hasOwn.call(arg,key)&&arg[key]&&classes.push(key)}}}return classes.join(" ")}module.exports?(classNames.default=classNames,module.exports=classNames):void 0===(__WEBPACK_AMD_DEFINE_RESULT__=function(){return classNames}.apply(exports,[]))||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}()},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./src/componentLibrary/common/styles/primitiveColors.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,'/* This is a collection of Primitive Colors.\n Unlike Semantic colors (color.css) these variables will be equal to the same color value in all themes.\n Ideally, these colors should be used for components that are not theme dependent.\n In the future it\'s possible that we will only need to use these colors in Semantic colors (colors.css).\n */\n\n/* Colors are taken from DISCO Variables New Figma File - Primitive colors variables collection\n via variables2css plugin that generates css code based on Figma variables values and names.\n We\'re using css here in order to support not only scss, but also css files.\n :root is used here instead of "[data-theme="Mode 1"]" to define css variables\n that can be used in the entire app. \n Also, stylelint fix might be required for autogenerated colors, which can be done in one command.\n */\n\n/* Primitive Colors */\n:root {\n --accent-orange-10: #fff6e5;\n --accent-orange-100: #5c3b00;\n --accent-orange-20: #ffe5b7;\n --accent-orange-30: #ffd58a;\n --accent-orange-40: #ffc55c;\n --accent-orange-50: #ffb42e;\n --accent-orange-60: #ffa400;\n --accent-orange-70: #d68a00;\n --accent-orange-80: #ad7000;\n --accent-orange-90: #855500;\n --accent-strawberry-10: #ffe3e3;\n --accent-strawberry-100: #430d0d;\n --accent-strawberry-20: #ffcdcd;\n --accent-strawberry-30: #ffabab;\n --accent-strawberry-40: #f88585;\n --accent-strawberry-50: #ed6060;\n --accent-strawberry-60: #cb4a4a;\n --accent-strawberry-70: #a93737;\n --accent-strawberry-80: #872626;\n --accent-strawberry-90: #651818;\n --brand-aqua-10: #ebfffe;\n --brand-aqua-100: #005552;\n --brand-aqua-20: #bffffc;\n --brand-aqua-30: #94fffb;\n --brand-aqua-40: #68fff9;\n --brand-aqua-50: #3cfff7;\n --brand-aqua-60: #29ddd6;\n --brand-aqua-70: #19bbb5;\n --brand-aqua-80: #0d9994;\n --brand-aqua-90: #047773;\n --brand-purple-10: #e2d4ee;\n --brand-purple-100: #2f1c3e;\n --brand-purple-20: #decaee;\n --brand-purple-30: #d0b6e5;\n --brand-purple-40: #b592d2;\n --brand-purple-5: #f6edfd;\n --brand-purple-50: #8c52ba;\n --brand-purple-60: #7f4aa9;\n --brand-purple-70: #6c468a;\n --brand-purple-80: #5c3778;\n --brand-purple-90: #46295c;\n --brand-teal-10: #bfe4e8;\n --brand-teal-100: #00383f;\n --brand-teal-20: #aed8dc;\n --brand-teal-30: #85cad1;\n --brand-teal-40: #50b2bd;\n --brand-teal-5: #e0f8f9;\n --brand-teal-50: #0093a4;\n --brand-teal-60: #008493;\n --brand-teal-70: #007785;\n --brand-teal-80: #00636e;\n --brand-teal-90: #004b54;\n --neutral-base-black: #292f36;\n --neutral-base-white: #fff;\n --neutral-black-alpha-10: #292f361a;\n --neutral-black-alpha-20: #292f3633;\n --neutral-black-alpha-30: #292f364d;\n --neutral-black-alpha-40: #292f3666;\n --neutral-black-alpha-5: #292f360d;\n --neutral-black-alpha-50: #292f3680;\n --neutral-black-alpha-60: #292f3699;\n --neutral-black-alpha-70: #292f36b2;\n --neutral-black-alpha-80: #292f36cc;\n --neutral-black-alpha-90: #292f36e5;\n --neutral-black-alpha-95: #292f36f2;\n --neutral-gray-10: #e4e6e9;\n --neutral-gray-20: #d1d4d8;\n --neutral-gray-30: #bec2c7;\n --neutral-gray-40: #abb0b6;\n --neutral-gray-5: #f7f8fa;\n --neutral-gray-50: #989ea5;\n --neutral-gray-60: #858c94;\n --neutral-gray-70: #727a83;\n --neutral-gray-80: #5f6872;\n --neutral-gray-90: #4c5661;\n --neutral-gray-95: #394450;\n --neutral-white-alpha-10: #ffffff1a;\n --neutral-white-alpha-20: #fff3;\n --neutral-white-alpha-30: #ffffff4d;\n --neutral-white-alpha-40: #fff6;\n --neutral-white-alpha-5: #ffffff0d;\n --neutral-white-alpha-50: #ffffff80;\n --neutral-white-alpha-60: #fff9;\n --neutral-white-alpha-70: #ffffffb2;\n --neutral-white-alpha-80: #fffc;\n --neutral-white-alpha-90: #ffffffe5;\n --neutral-white-alpha-95: #fffffff2;\n --sentiment-error-10: #ffe1dd;\n --sentiment-error-100: #480e07;\n --sentiment-error-20: #ffbfb6;\n --sentiment-error-30: #ff8677;\n --sentiment-error-40: #f95d4a;\n --sentiment-error-50: #e02d16;\n --sentiment-error-60: #c12814;\n --sentiment-error-70: #aa2513;\n --sentiment-error-80: #842418;\n --sentiment-error-90: #6a1b11;\n --sentiment-information-10: #dceffb;\n --sentiment-information-100: #0b2946;\n --sentiment-information-20: #bde0fa;\n --sentiment-information-30: #83c7f6;\n --sentiment-information-40: #40aaf0;\n --sentiment-information-50: #1892e3;\n --sentiment-information-60: #0b71be;\n --sentiment-information-70: #0a5a9a;\n --sentiment-information-80: #0d4d7f;\n --sentiment-information-90: #10416a;\n --sentiment-success-10: #e2f6e2;\n --sentiment-success-100: #0e360f;\n --sentiment-success-20: #c7ecc6;\n --sentiment-success-30: #9adc99;\n --sentiment-success-40: #66c365;\n --sentiment-success-50: #3ea33e;\n --sentiment-success-60: #308930;\n --sentiment-success-70: #286d29;\n --sentiment-success-80: #245724;\n --sentiment-success-90: #1f4820;\n --sentiment-warning-10: #fefce8;\n --sentiment-warning-100: #5e330f;\n --sentiment-warning-20: #fef8c3;\n --sentiment-warning-30: #fded8b;\n --sentiment-warning-40: #fcdc48;\n --sentiment-warning-50: #f9cb28;\n --sentiment-warning-60: #e9ae09;\n --sentiment-warning-70: #c88504;\n --sentiment-warning-80: #a05f08;\n --sentiment-warning-90: #7d4b07;\n}\n',"",{version:3,sources:["webpack://./src/componentLibrary/common/styles/primitiveColors.css"],names:[],mappings:"AAAA;;;;EAIE;;AAEF;;;;;;EAME;;AAEF,qBAAqB;AACrB;IACI,2BAA2B;IAC3B,4BAA4B;IAC5B,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAC3B,2BAA2B;IAC3B,+BAA+B;IAC/B,gCAAgC;IAChC,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,wBAAwB;IACxB,yBAAyB;IACzB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,0BAA0B;IAC1B,2BAA2B;IAC3B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,yBAAyB;IACzB,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,wBAAwB;IACxB,yBAAyB;IACzB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,6BAA6B;IAC7B,0BAA0B;IAC1B,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,kCAAkC;IAClC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,yBAAyB;IACzB,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,mCAAmC;IACnC,+BAA+B;IAC/B,mCAAmC;IACnC,+BAA+B;IAC/B,kCAAkC;IAClC,mCAAmC;IACnC,+BAA+B;IAC/B,mCAAmC;IACnC,+BAA+B;IAC/B,mCAAmC;IACnC,mCAAmC;IACnC,6BAA6B;IAC7B,8BAA8B;IAC9B,6BAA6B;IAC7B,6BAA6B;IAC7B,6BAA6B;IAC7B,6BAA6B;IAC7B,6BAA6B;IAC7B,6BAA6B;IAC7B,6BAA6B;IAC7B,6BAA6B;IAC7B,mCAAmC;IACnC,oCAAoC;IACpC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,+BAA+B;IAC/B,gCAAgC;IAChC,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,gCAAgC;IAChC,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;AACnC",sourcesContent:['/* This is a collection of Primitive Colors.\n Unlike Semantic colors (color.css) these variables will be equal to the same color value in all themes.\n Ideally, these colors should be used for components that are not theme dependent.\n In the future it\'s possible that we will only need to use these colors in Semantic colors (colors.css).\n */\n\n/* Colors are taken from DISCO Variables New Figma File - Primitive colors variables collection\n via variables2css plugin that generates css code based on Figma variables values and names.\n We\'re using css here in order to support not only scss, but also css files.\n :root is used here instead of "[data-theme="Mode 1"]" to define css variables\n that can be used in the entire app. \n Also, stylelint fix might be required for autogenerated colors, which can be done in one command.\n */\n\n/* Primitive Colors */\n:root {\n --accent-orange-10: #fff6e5;\n --accent-orange-100: #5c3b00;\n --accent-orange-20: #ffe5b7;\n --accent-orange-30: #ffd58a;\n --accent-orange-40: #ffc55c;\n --accent-orange-50: #ffb42e;\n --accent-orange-60: #ffa400;\n --accent-orange-70: #d68a00;\n --accent-orange-80: #ad7000;\n --accent-orange-90: #855500;\n --accent-strawberry-10: #ffe3e3;\n --accent-strawberry-100: #430d0d;\n --accent-strawberry-20: #ffcdcd;\n --accent-strawberry-30: #ffabab;\n --accent-strawberry-40: #f88585;\n --accent-strawberry-50: #ed6060;\n --accent-strawberry-60: #cb4a4a;\n --accent-strawberry-70: #a93737;\n --accent-strawberry-80: #872626;\n --accent-strawberry-90: #651818;\n --brand-aqua-10: #ebfffe;\n --brand-aqua-100: #005552;\n --brand-aqua-20: #bffffc;\n --brand-aqua-30: #94fffb;\n --brand-aqua-40: #68fff9;\n --brand-aqua-50: #3cfff7;\n --brand-aqua-60: #29ddd6;\n --brand-aqua-70: #19bbb5;\n --brand-aqua-80: #0d9994;\n --brand-aqua-90: #047773;\n --brand-purple-10: #e2d4ee;\n --brand-purple-100: #2f1c3e;\n --brand-purple-20: #decaee;\n --brand-purple-30: #d0b6e5;\n --brand-purple-40: #b592d2;\n --brand-purple-5: #f6edfd;\n --brand-purple-50: #8c52ba;\n --brand-purple-60: #7f4aa9;\n --brand-purple-70: #6c468a;\n --brand-purple-80: #5c3778;\n --brand-purple-90: #46295c;\n --brand-teal-10: #bfe4e8;\n --brand-teal-100: #00383f;\n --brand-teal-20: #aed8dc;\n --brand-teal-30: #85cad1;\n --brand-teal-40: #50b2bd;\n --brand-teal-5: #e0f8f9;\n --brand-teal-50: #0093a4;\n --brand-teal-60: #008493;\n --brand-teal-70: #007785;\n --brand-teal-80: #00636e;\n --brand-teal-90: #004b54;\n --neutral-base-black: #292f36;\n --neutral-base-white: #fff;\n --neutral-black-alpha-10: #292f361a;\n --neutral-black-alpha-20: #292f3633;\n --neutral-black-alpha-30: #292f364d;\n --neutral-black-alpha-40: #292f3666;\n --neutral-black-alpha-5: #292f360d;\n --neutral-black-alpha-50: #292f3680;\n --neutral-black-alpha-60: #292f3699;\n --neutral-black-alpha-70: #292f36b2;\n --neutral-black-alpha-80: #292f36cc;\n --neutral-black-alpha-90: #292f36e5;\n --neutral-black-alpha-95: #292f36f2;\n --neutral-gray-10: #e4e6e9;\n --neutral-gray-20: #d1d4d8;\n --neutral-gray-30: #bec2c7;\n --neutral-gray-40: #abb0b6;\n --neutral-gray-5: #f7f8fa;\n --neutral-gray-50: #989ea5;\n --neutral-gray-60: #858c94;\n --neutral-gray-70: #727a83;\n --neutral-gray-80: #5f6872;\n --neutral-gray-90: #4c5661;\n --neutral-gray-95: #394450;\n --neutral-white-alpha-10: #ffffff1a;\n --neutral-white-alpha-20: #fff3;\n --neutral-white-alpha-30: #ffffff4d;\n --neutral-white-alpha-40: #fff6;\n --neutral-white-alpha-5: #ffffff0d;\n --neutral-white-alpha-50: #ffffff80;\n --neutral-white-alpha-60: #fff9;\n --neutral-white-alpha-70: #ffffffb2;\n --neutral-white-alpha-80: #fffc;\n --neutral-white-alpha-90: #ffffffe5;\n --neutral-white-alpha-95: #fffffff2;\n --sentiment-error-10: #ffe1dd;\n --sentiment-error-100: #480e07;\n --sentiment-error-20: #ffbfb6;\n --sentiment-error-30: #ff8677;\n --sentiment-error-40: #f95d4a;\n --sentiment-error-50: #e02d16;\n --sentiment-error-60: #c12814;\n --sentiment-error-70: #aa2513;\n --sentiment-error-80: #842418;\n --sentiment-error-90: #6a1b11;\n --sentiment-information-10: #dceffb;\n --sentiment-information-100: #0b2946;\n --sentiment-information-20: #bde0fa;\n --sentiment-information-30: #83c7f6;\n --sentiment-information-40: #40aaf0;\n --sentiment-information-50: #1892e3;\n --sentiment-information-60: #0b71be;\n --sentiment-information-70: #0a5a9a;\n --sentiment-information-80: #0d4d7f;\n --sentiment-information-90: #10416a;\n --sentiment-success-10: #e2f6e2;\n --sentiment-success-100: #0e360f;\n --sentiment-success-20: #c7ecc6;\n --sentiment-success-30: #9adc99;\n --sentiment-success-40: #66c365;\n --sentiment-success-50: #3ea33e;\n --sentiment-success-60: #308930;\n --sentiment-success-70: #286d29;\n --sentiment-success-80: #245724;\n --sentiment-success-90: #1f4820;\n --sentiment-warning-10: #fefce8;\n --sentiment-warning-100: #5e330f;\n --sentiment-warning-20: #fef8c3;\n --sentiment-warning-30: #fded8b;\n --sentiment-warning-40: #fcdc48;\n --sentiment-warning-50: #f9cb28;\n --sentiment-warning-60: #e9ae09;\n --sentiment-warning-70: #c88504;\n --sentiment-warning-80: #a05f08;\n --sentiment-warning-90: #7d4b07;\n}\n'],sourceRoot:""}]);const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k<this.length;k++){var id=this[k][0];null!=id&&(alreadyImportedModules[id]=!0)}for(var _k=0;_k<modules.length;_k++){var item=[].concat(modules[_k]);dedupe&&alreadyImportedModules[item[0]]||(void 0!==layer&&(void 0===item[5]||(item[1]="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/getUrl.js":module=>{"use strict";module.exports=function(url,options){return options||(options={}),url?(url=String(url.__esModule?url.default:url),/^['"].*['"]$/.test(url)&&(url=url.slice(1,-1)),options.hash&&(url+=options.hash),/["'() \t\n]|(%20)/.test(url)||options.needQuotes?'"'.concat(url.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):url):url}},"./node_modules/css-loader/dist/runtime/sourceMaps.js":module=>{"use strict";module.exports=function(item){var content=item[1],cssMapping=item[3];if(!cssMapping)return content;if("function"==typeof btoa){var base64=btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping)))),data="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64),sourceMapping="/*# ".concat(data," */"),sourceURLs=cssMapping.sources.map((function(source){return"/*# sourceURL=".concat(cssMapping.sourceRoot||"").concat(source," */")}));return[content].concat(sourceURLs).concat([sourceMapping]).join("\n")}return[content].join("\n")}},"./node_modules/react/cjs/react-jsx-runtime.production.min.js":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";__webpack_require__("./node_modules/object-assign/index.js");var f=__webpack_require__("./node_modules/react/index.js"),g=60103;if(exports.Fragment=60107,"function"==typeof Symbol&&Symbol.for){var h=Symbol.for;g=h("react.element"),exports.Fragment=h("react.fragment")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};function q(c,a,k){var b,d={},e=null,l=null;for(b in void 0!==k&&(e=""+k),void 0!==a.key&&(e=""+a.key),void 0!==a.ref&&(l=a.ref),a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q,exports.jsxs=q},"./node_modules/react/jsx-runtime.js":(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";module.exports=__webpack_require__("./node_modules/react/cjs/react-jsx-runtime.production.min.js")},"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":module=>{"use strict";var stylesInDOM=[];function getIndexByIdentifier(identifier){for(var result=-1,i=0;i<stylesInDOM.length;i++)if(stylesInDOM[i].identifier===identifier){result=i;break}return result}function modulesToDom(list,options){for(var idCountMap={},identifiers=[],i=0;i<list.length;i++){var item=list[i],id=options.base?item[0]+options.base:item[0],count=idCountMap[id]||0,identifier="".concat(id," ").concat(count);idCountMap[id]=count+1;var indexByIdentifier=getIndexByIdentifier(identifier),obj={css:item[1],media:item[2],sourceMap:item[3],supports:item[4],layer:item[5]};if(-1!==indexByIdentifier)stylesInDOM[indexByIdentifier].references++,stylesInDOM[indexByIdentifier].updater(obj);else{var updater=addElementStyle(obj,options);options.byIndex=i,stylesInDOM.splice(i,0,{identifier,updater,references:1})}identifiers.push(identifier)}return identifiers}function addElementStyle(obj,options){var api=options.domAPI(options);api.update(obj);return function updater(newObj){if(newObj){if(newObj.css===obj.css&&newObj.media===obj.media&&newObj.sourceMap===obj.sourceMap&&newObj.supports===obj.supports&&newObj.layer===obj.layer)return;api.update(obj=newObj)}else api.remove()}}module.exports=function(list,options){var lastIdentifiers=modulesToDom(list=list||[],options=options||{});return function update(newList){newList=newList||[];for(var i=0;i<lastIdentifiers.length;i++){var index=getIndexByIdentifier(lastIdentifiers[i]);stylesInDOM[index].references--}for(var newLastIdentifiers=modulesToDom(newList,options),_i=0;_i<lastIdentifiers.length;_i++){var _index=getIndexByIdentifier(lastIdentifiers[_i]);0===stylesInDOM[_index].references&&(stylesInDOM[_index].updater(),stylesInDOM.splice(_index,1))}lastIdentifiers=newLastIdentifiers}}},"./node_modules/style-loader/dist/runtime/insertBySelector.js":module=>{"use strict";var memo={};module.exports=function insertBySelector(insert,style){var target=function getTarget(target){if(void 0===memo[target]){var styleTarget=document.querySelector(target);if(window.HTMLIFrameElement&&styleTarget instanceof window.HTMLIFrameElement)try{styleTarget=styleTarget.contentDocument.head}catch(e){styleTarget=null}memo[target]=styleTarget}return memo[target]}(insert);if(!target)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");target.appendChild(style)}},"./node_modules/style-loader/dist/runtime/insertStyleElement.js":module=>{"use strict";module.exports=function insertStyleElement(options){var element=document.createElement("style");return options.setAttributes(element,options.attributes),options.insert(element,options.options),element}},"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";module.exports=function setAttributesWithoutAttributes(styleElement){var nonce=__webpack_require__.nc;nonce&&styleElement.setAttribute("nonce",nonce)}},"./node_modules/style-loader/dist/runtime/styleDomAPI.js":module=>{"use strict";module.exports=function domAPI(options){var styleElement=options.insertStyleElement(options);return{update:function update(obj){!function apply(styleElement,options,obj){var css="";obj.supports&&(css+="@supports (".concat(obj.supports,") {")),obj.media&&(css+="@media ".concat(obj.media," {"));var needLayer=void 0!==obj.layer;needLayer&&(css+="@layer".concat(obj.layer.length>0?" ".concat(obj.layer):""," {")),css+=obj.css,needLayer&&(css+="}"),obj.media&&(css+="}"),obj.supports&&(css+="}");var sourceMap=obj.sourceMap;sourceMap&&"undefined"!=typeof btoa&&(css+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))))," */")),options.styleTagTransform(css,styleElement,options.options)}(styleElement,options,obj)},remove:function remove(){!function removeStyleElement(styleElement){if(null===styleElement.parentNode)return!1;styleElement.parentNode.removeChild(styleElement)}(styleElement)}}}},"./node_modules/style-loader/dist/runtime/styleTagTransform.js":module=>{"use strict";module.exports=function styleTagTransform(css,styleElement){if(styleElement.styleSheet)styleElement.styleSheet.cssText=css;else{for(;styleElement.firstChild;)styleElement.removeChild(styleElement.firstChild);styleElement.appendChild(document.createTextNode(css))}}},"../frontend/packages/component-library/dist/cjs/common/helpers/index.js":module=>{"use strict";var mod,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,helpers_exports={};((target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})})(helpers_exports,{calculatePositionedElementStyles:()=>calculatePositionedElementStyles,checkIfURLIsBlocked:()=>checkIfURLIsBlocked,checkIfYouTubeIsBlocked:()=>checkIfYouTubeIsBlocked,getAriaPropsFromProps:()=>getAriaPropsFromProps,updatePositionedElementStyles:()=>updatePositionedElementStyles}),module.exports=(mod=helpers_exports,((to,from,except,desc)=>{if(from&&"object"==typeof from||"function"==typeof from)for(let key of __getOwnPropNames(from))__hasOwnProp.call(to,key)||key===except||__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to})(__defProp({},"__esModule",{value:!0}),mod));var getAriaPropsFromProps=props=>{const ariaProps={};return Object.keys(props).forEach((key=>{key.startsWith("aria-")&&(ariaProps[key]=props[key])})),ariaProps},calculatePositionedElementStyles=({nodePosition,positionedElementRef,direction,tailOffset,tailLength,isPositionFixed=!1})=>{const styles={};if(nodePosition&&positionedElementRef.current&&"none"!==direction){const rect=nodePosition.getBoundingClientRect(),tooltipRect=positionedElementRef.current.getBoundingClientRect(),scrollY=isPositionFixed?0:window.scrollY,scrollX=isPositionFixed?0:window.scrollX,isLtr="ltr"===(document.documentElement.dir||"ltr"),verticalMiddlePosition=rect.top+scrollY+rect.height/2-tooltipRect.height/2,verticalTopPosition=rect.top+scrollY-tooltipRect.height-tailOffset-tailLength,verticalBottomPosition=rect.top+rect.height+scrollY+tailOffset+tailLength,horizontalMiddlePosition=rect.left+scrollX+rect.width/2-tooltipRect.width/2,horizontalLeftPosition=rect.left+scrollX-tooltipRect.width-tailOffset-tailLength,horizontalRightPosition=rect.right+scrollX+tailOffset+tailLength;switch(direction){case"onRight":styles.top=verticalMiddlePosition,styles.left=isLtr?horizontalRightPosition:horizontalLeftPosition;break;case"onBottom":styles.top=verticalBottomPosition,styles.left=horizontalMiddlePosition;break;case"onLeft":styles.top=verticalMiddlePosition,styles.left=isLtr?horizontalLeftPosition:horizontalRightPosition;break;default:styles.top=verticalTopPosition,styles.left=horizontalMiddlePosition}}return styles},updatePositionedElementStyles=({nodePosition,positionedElementRef,direction,setPositionedElementStyles,tailOffset,tailLength,isPositionFixed=!1})=>{setPositionedElementStyles(calculatePositionedElementStyles({nodePosition,positionedElementRef,direction,tailOffset,tailLength,isPositionFixed}))},checkIfURLIsBlocked=url=>new Promise((resolve=>{const img=new Image;img.onload=()=>resolve(!1),img.onerror=()=>resolve(!0),img.src=`${url}?_=${Math.random()}`})),checkIfYouTubeIsBlocked=async()=>{const[isYouTubeBlocked,isYouTubeNoCookieBlocked]=await Promise.all([checkIfURLIsBlocked("https://www.youtube.com/favicon.ico"),checkIfURLIsBlocked("https://www.youtube-nocookie.com/favicon.ico")]);return isYouTubeBlocked||isYouTubeNoCookieBlocked}},"../frontend/packages/component-library/dist/cjs/fontAwesomeV6Icon/index.js":(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";var mod,__create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__copyProps=(to,from,except,desc)=>{if(from&&"object"==typeof from||"function"==typeof from)for(let key of __getOwnPropNames(from))__hasOwnProp.call(to,key)||key===except||__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},fontAwesomeV6Icon_exports={};((target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})})(fontAwesomeV6Icon_exports,{default:()=>FontAwesomeV6Icon_default}),module.exports=(mod=fontAwesomeV6Icon_exports,__copyProps(__defProp({},"__esModule",{value:!0}),mod));var import_classnames=((mod,isNodeMode,target)=>(target=null!=mod?__create(__getProtoOf(mod)):{},__copyProps(!isNodeMode&&mod&&mod.__esModule?target:__defProp(target,"default",{value:mod,enumerable:!0}),mod)))(__webpack_require__("../frontend/node_modules/classnames/index.js")),import_jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js"),FontAwesomeV6Icon_default=({iconStyle,iconFamily,iconName,className,title,animationType,...HTMLAttributes})=>(0,import_jsx_runtime.jsx)("i",{"data-testid":"font-awesome-v6-icon",className:(0,import_classnames.default)(iconFamily&&`fa-${iconFamily}`,iconStyle&&`fa-${iconStyle}`,iconName&&`fa-${iconName}`,!iconFamily&&!iconStyle&&"fa-solid",animationType&&`fa-${animationType}`,className),title,...HTMLAttributes})},"../shared/fonts/barlowSemiCondensed/BarlowSemiCondensed-Medium.ttf":(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";module.exports=__webpack_require__.p+"98a7f00b2ee77813a131.ttf"},"../shared/fonts/barlowSemiCondensed/BarlowSemiCondensed-SemiBold.ttf":(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";module.exports=__webpack_require__.p+"c0e9a01d31a5aecb006f.ttf"},"../frontend/node_modules/classnames/index.js":(module,exports)=>{var __WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";var hasOwn={}.hasOwnProperty;function classNames(){for(var classes="",i=0;i<arguments.length;i++){var arg=arguments[i];arg&&(classes=appendClass(classes,parseValue(arg)))}return classes}function parseValue(arg){if("string"==typeof arg||"number"==typeof arg)return arg;if("object"!=typeof arg)return"";if(Array.isArray(arg))return classNames.apply(null,arg);if(arg.toString!==Object.prototype.toString&&!arg.toString.toString().includes("[native code]"))return arg.toString();var classes="";for(var key in arg)hasOwn.call(arg,key)&&arg[key]&&(classes=appendClass(classes,key));return classes}function appendClass(value,newClass){return newClass?value?value+" "+newClass:value+newClass:value}module.exports?(classNames.default=classNames,module.exports=classNames):void 0===(__WEBPACK_AMD_DEFINE_RESULT__=function(){return classNames}.apply(exports,[]))||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}()}}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LE9BQUtBLFNBSUQvRCxNQUNJQSxNQUFRLElBQU0rRCxTQUdmL0QsTUFBUStELFNBUFAvRCxLQVFULENBRXFDOUosT0FBT0MsU0FDM0NwQixXQUFXcUIsUUFBVXJCLFdBQ3JCbUIsT0FBT0MsUUFBVXBCLGlCQUtoQixLQUZ3Qiw4QkFBRixXQUN0QixPQUFPQSxVQUNQLGdCQUZvQixPQUVwQiw2Q0FJSCxDQXJFQSIsInNvdXJjZXMiOlsid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2luZGV4LmpzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9jb21wb25lbnRMaWJyYXJ5L2NvbW1vbi9zdHlsZXMvcHJpbWl0aXZlQ29sb3JzLmNzcyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanMiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qcyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanMiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanMiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qcyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qcyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50LWxpYnJhcnkvZGlzdC9janMvY29tbW9uL2hlbHBlcnMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4uL2Zyb250ZW5kL3BhY2thZ2VzL2NvbXBvbmVudC1saWJyYXJ5L2Rpc3QvY2pzL2ZvbnRBd2Vzb21lVjZJY29uL2luZGV4LmpzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uLi9mcm9udGVuZC9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcblx0Q29weXJpZ2h0IChjKSAyMDE4IEplZCBXYXRzb24uXG5cdExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAoTUlUKSwgc2VlXG5cdGh0dHA6Ly9qZWR3YXRzb24uZ2l0aHViLmlvL2NsYXNzbmFtZXNcbiovXG4vKiBnbG9iYWwgZGVmaW5lICovXG5cbihmdW5jdGlvbiAoKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuXHR2YXIgaGFzT3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cdHZhciBuYXRpdmVDb2RlU3RyaW5nID0gJ1tuYXRpdmUgY29kZV0nO1xuXG5cdGZ1bmN0aW9uIGNsYXNzTmFtZXMoKSB7XG5cdFx0dmFyIGNsYXNzZXMgPSBbXTtcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgYXJnID0gYXJndW1lbnRzW2ldO1xuXHRcdFx0aWYgKCFhcmcpIGNvbnRpbnVlO1xuXG5cdFx0XHR2YXIgYXJnVHlwZSA9IHR5cGVvZiBhcmc7XG5cblx0XHRcdGlmIChhcmdUeXBlID09PSAnc3RyaW5nJyB8fCBhcmdUeXBlID09PSAnbnVtYmVyJykge1xuXHRcdFx0XHRjbGFzc2VzLnB1c2goYXJnKTtcblx0XHRcdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhcmcpKSB7XG5cdFx0XHRcdGlmIChhcmcubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dmFyIGlubmVyID0gY2xhc3NOYW1lcy5hcHBseShudWxsLCBhcmcpO1xuXHRcdFx0XHRcdGlmIChpbm5lcikge1xuXHRcdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGlubmVyKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoYXJnVHlwZSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0aWYgKGFyZy50b1N0cmluZyAhPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyAmJiAhYXJnLnRvU3RyaW5nLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ1tuYXRpdmUgY29kZV0nKSkge1xuXHRcdFx0XHRcdGNsYXNzZXMucHVzaChhcmcudG9TdHJpbmcoKSk7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmb3IgKHZhciBrZXkgaW4gYXJnKSB7XG5cdFx0XHRcdFx0aWYgKGhhc093bi5jYWxsKGFyZywga2V5KSAmJiBhcmdba2V5XSkge1xuXHRcdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGtleSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0Y2xhc3NOYW1lcy5kZWZhdWx0ID0gY2xhc3NOYW1lcztcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGNsYXNzTmFtZXM7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIHJlZ2lzdGVyIGFzICdjbGFzc25hbWVzJywgY29uc2lzdGVudCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVcblx0XHRkZWZpbmUoJ2NsYXNzbmFtZXMnLCBbXSwgZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGNsYXNzTmFtZXM7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0d2luZG93LmNsYXNzTmFtZXMgPSBjbGFzc05hbWVzO1xuXHR9XG59KCkpO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBQcmltaXRpdmUgQ29sb3JzLlxcbiBVbmxpa2UgU2VtYW50aWMgY29sb3JzIChjb2xvci5jc3MpIHRoZXNlIHZhcmlhYmxlcyB3aWxsIGJlIGVxdWFsIHRvIHRoZSBzYW1lIGNvbG9yIHZhbHVlIGluIGFsbCB0aGVtZXMuXFxuIElkZWFsbHksIHRoZXNlIGNvbG9ycyBzaG91bGQgYmUgdXNlZCBmb3IgY29tcG9uZW50cyB0aGF0IGFyZSBub3QgdGhlbWUgZGVwZW5kZW50LlxcbiBJbiB0aGUgZnV0dXJlIGl0J3MgcG9zc2libGUgdGhhdCB3ZSB3aWxsIG9ubHkgbmVlZCB0byB1c2UgdGhlc2UgY29sb3JzIGluIFNlbWFudGljIGNvbG9ycyAoY29sb3JzLmNzcykuXFxuICovXFxuXFxuLyogQ29sb3JzIGFyZSB0YWtlbiBmcm9tIERJU0NPIFZhcmlhYmxlcyBOZXcgRmlnbWEgRmlsZSAtIFByaW1pdGl2ZSBjb2xvcnMgdmFyaWFibGVzIGNvbGxlY3Rpb25cXG4gdmlhIHZhcmlhYmxlczJjc3MgcGx1Z2luIHRoYXQgZ2VuZXJhdGVzIGNzcyBjb2RlIGJhc2VkIG9uIEZpZ21hIHZhcmlhYmxlcyB2YWx1ZXMgYW5kIG5hbWVzLlxcbiBXZSdyZSB1c2luZyBjc3MgaGVyZSBpbiBvcmRlciB0byBzdXBwb3J0IG5vdCBvbmx5IHNjc3MsIGJ1dCBhbHNvIGNzcyBmaWxlcy5cXG4gOnJvb3QgaXMgdXNlZCBoZXJlIGluc3RlYWQgb2YgXFxcIltkYXRhLXRoZW1lPVxcXCJNb2RlIDFcXFwiXVxcXCIgdG8gZGVmaW5lIGNzcyB2YXJpYWJsZXNcXG4gdGhhdCBjYW4gYmUgdXNlZCBpbiB0aGUgZW50aXJlIGFwcC4gXFxuIEFsc28sIHN0eWxlbGludCBmaXggbWlnaHQgYmUgcmVxdWlyZWQgZm9yIGF1dG9nZW5lcmF0ZWQgY29sb3JzLCB3aGljaCBjYW4gYmUgZG9uZSBpbiBvbmUgY29tbWFuZC5cXG4gKi9cXG5cXG4vKiBQcmltaXRpdmUgQ29sb3JzICovXFxuOnJvb3Qge1xcbiAgICAtLWFjY2VudC1vcmFuZ2UtMTA6ICNmZmY2ZTU7XFxuICAgIC0tYWNjZW50LW9yYW5nZS0xMDA6ICM1YzNiMDA7XFxuICAgIC0tYWNjZW50LW9yYW5nZS0yMDogI2ZmZTViNztcXG4gICAgLS1hY2NlbnQtb3JhbmdlLTMwOiAjZmZkNThhO1xcbiAgICAtLWFjY2VudC1vcmFuZ2UtNDA6ICNmZmM1NWM7XFxuICAgIC0tYWNjZW50LW9yYW5nZS01MDogI2ZmYjQyZTtcXG4gICAgLS1hY2NlbnQtb3JhbmdlLTYwOiAjZmZhNDAwO1xcbiAgICAtLWFjY2VudC1vcmFuZ2UtNzA6ICNkNjhhMDA7XFxuICAgIC0tYWNjZW50LW9yYW5nZS04MDogI2FkNzAwMDtcXG4gICAgLS1hY2NlbnQtb3JhbmdlLTkwOiAjODU1NTAwO1xcbiAgICAtLWFjY2VudC1zdHJhd2JlcnJ5LTEwOiAjZmZlM2UzO1xcbiAgICAtLWFjY2VudC1zdHJhd2JlcnJ5LTEwMDogIzQzMGQwZDtcXG4gICAgLS1hY2NlbnQtc3RyYXdiZXJyeS0yMDogI2ZmY2RjZDtcXG4gICAgLS1hY2NlbnQtc3RyYXdiZXJyeS0zMDogI2ZmYWJhYjtcXG4gICAgLS1hY2NlbnQtc3RyYXdiZXJyeS00MDogI2Y4ODU4NTtcXG4gICAgLS1hY2NlbnQtc3RyYXdiZXJyeS01MDogI2VkNjA2MDtcXG4gICAgLS1hY2NlbnQtc3RyYXdiZXJyeS02MDogI2NiNGE0YTtcXG4gICAgLS1hY2NlbnQtc3RyYXdiZXJyeS03MDogI2E5MzczNztcXG4gICAgLS1hY2NlbnQtc3RyYXdiZXJyeS04MDogIzg3MjYyNjtcXG4gICAgLS1hY2NlbnQtc3RyYXdiZXJyeS05MDogIzY1MTgxODtcXG4gICAgLS1icmFuZC1hcXVhLTEwOiAjZWJmZmZlO1xcbiAgICAtLWJyYW5kLWFxdWEtMTAwOiAjMDA1NTUyO1xcbiAgICAtLWJyYW5kLWFxdWEtMjA6ICNiZmZmZmM7XFxuICAgIC0tYnJhbmQtYXF1YS0zMDogIzk0ZmZmYjtcXG4gICAgLS1icmFuZC1hcXVhLTQwOiAjNjhmZmY5O1xcbiAgICAtLWJyYW5kLWFxdWEtNTA6ICMzY2ZmZjc7XFxuICAgIC0tYnJhbmQtYXF1YS02MDogIzI5ZGRkNjtcXG4gICAgLS1icmFuZC1hcXVhLTcwOiAjMTliYmI1O1xcbiAgICAtLWJyYW5kLWFxdWEtODA6ICMwZDk5OTQ7XFxuICAgIC0tYnJhbmQtYXF1YS05MDogIzA0Nzc3MztcXG4gICAgLS1icmFuZC1wdXJwbGUtMTA6ICNlMmQ0ZWU7XFxuICAgIC0tYnJhbmQtcHVycGxlLTEwMDogIzJmMWMzZTtcXG4gICAgLS1icmFuZC1wdXJwbGUtMjA6ICNkZWNhZWU7XFxuICAgIC0tYnJhbmQtcHVycGxlLTMwOiAjZDBiNmU1O1xcbiAgICAtLWJyYW5kLXB1cnBsZS00MDogI2I1OTJkMjtcXG4gICAgLS1icmFuZC1wdXJwbGUtNTogI2Y2ZWRmZDtcXG4gICAgLS1icmFuZC1wdXJwbGUtNTA6ICM4YzUyYmE7XFxuICAgIC0tYnJhbmQtcHVycGxlLTYwOiAjN2Y0YWE5O1xcbiAgICAtLWJyYW5kLXB1cnBsZS03MDogIzZjNDY4YTtcXG4gICAgLS1icmFuZC1wdXJwbGUtODA6ICM1YzM3Nzg7XFxuICAgIC0tYnJhbmQtcHVycGxlLTkwOiAjNDYyOTVjO1xcbiAgICAtLWJyYW5kLXRlYWwtMTA6ICNiZmU0ZTg7XFxuICAgIC0tYnJhbmQtdGVhbC0xMDA6ICMwMDM4M2Y7XFxuICAgIC0tYnJhbmQtdGVhbC0yMDogI2FlZDhkYztcXG4gICAgLS1icmFuZC10ZWFsLTMwOiAjODVjYWQxO1xcbiAgICAtLWJyYW5kLXRlYWwtNDA6ICM1MGIyYmQ7XFxuICAgIC0tYnJhbmQtdGVhbC01OiAjZTBmOGY5O1xcbiAgICAtLWJyYW5kLXRlYWwtNTA6ICMwMDkzYTQ7XFxuICAgIC0tYnJhbmQtdGVhbC02MDogIzAwODQ5MztcXG4gICAgLS1icmFuZC10ZWFsLTcwOiAjMDA3Nzg1O1xcbiAgICAtLWJyYW5kLXRlYWwtODA6ICMwMDYzNmU7XFxuICAgIC0tYnJhbmQtdGVhbC05MDogIzAwNGI1NDtcXG4gICAgLS1uZXV0cmFsLWJhc2UtYmxhY2s6ICMyOTJmMzY7XFxuICAgIC0tbmV1dHJhbC1iYXNlLXdoaXRlOiAjZmZmO1xcbiAgICAtLW5ldXRyYWwtYmxhY2stYWxwaGEtMTA6ICMyOTJmMzYxYTtcXG4gICAgLS1uZXV0cmFsLWJsYWNrLWFscGhhLTIwOiAjMjkyZjM2MzM7XFxuICAgIC0tbmV1dHJhbC1ibGFjay1hbHBoYS0zMDogIzI5MmYzNjRkO1xcbiAgICAtLW5ldXRyYWwtYmxhY2stYWxwaGEtNDA6ICMyOTJmMzY2NjtcXG4gICAgLS1uZXV0cmFsLWJsYWNrLWFscGhhLTU6ICMyOTJmMzYwZDtcXG4gICAgLS1uZXV0cmFsLWJsYWNrLWFscGhhLTUwOiAjMjkyZjM2ODA7XFxuICAgIC0tbmV1dHJhbC1ibGFjay1hbHBoYS02MDogIzI5MmYzNjk5O1xcbiAgICAtLW5ldXRyYWwtYmxhY2stYWxwaGEtNzA6ICMyOTJmMzZiMjtcXG4gICAgLS1uZXV0cmFsLWJsYWNrLWFscGhhLTgwOiAjMjkyZjM2Y2M7XFxuICAgIC0tbmV1dHJhbC1ibGFjay1hbHBoYS05MDogIzI5MmYzNmU1O1xcbiAgICAtLW5ldXRyYWwtYmxhY2stYWxwaGEtOTU6ICMyOTJmMzZmMjtcXG4gICAgLS1uZXV0cmFsLWdyYXktMTA6ICNlNGU2ZTk7XFxuICAgIC0tbmV1dHJhbC1ncmF5LTIwOiAjZDFkNGQ4O1xcbiAgICAtLW5ldXRyYWwtZ3JheS0zMDogI2JlYzJjNztcXG4gICAgLS1uZXV0cmFsLWdyYXktNDA6ICNhYmIwYjY7XFxuICAgIC0tbmV1dHJhbC1ncmF5LTU6ICNmN2Y4ZmE7XFxuICAgIC0tbmV1dHJhbC1ncmF5LTUwOiAjOTg5ZWE1O1xcbiAgICAtLW5ldXRyYWwtZ3JheS02MDogIzg1OGM5NDtcXG4gICAgLS1uZXV0cmFsLWdyYXktNzA6ICM3MjdhODM7XFxuICAgIC0tbmV1dHJhbC1ncmF5LTgwOiAjNWY2ODcyO1xcbiAgICAtLW5ldXRyYWwtZ3JheS05MDogIzRjNTY2MTtcXG4gICAgLS1uZXV0cmFsLWdyYXktOTU6ICMzOTQ0NTA7XFxuICAgIC0tbmV1dHJhbC13aGl0ZS1hbHBoYS0xMDogI2ZmZmZmZjFhO1xcbiAgICAtLW5ldXRyYWwtd2hpdGUtYWxwaGEtMjA6ICNmZmYzO1xcbiAgICAtLW5ldXRyYWwtd2hpdGUtYWxwaGEtMzA6ICNmZmZmZmY0ZDtcXG4gICAgLS1uZXV0cmFsLXdoaXRlLWFscGhhLTQwOiAjZmZmNjtcXG4gICAgLS1uZXV0cmFsLXdoaXRlLWFscGhhLTU6ICNmZmZmZmYwZDtcXG4gICAgLS1uZXV0cmFsLXdoaXRlLWFscGhhLTUwOiAjZmZmZmZmODA7XFxuICAgIC0tbmV1dHJhbC13aGl0ZS1hbHBoYS02MDogI2ZmZjk7XFxuICAgIC0tbmV1dHJhbC13aGl0ZS1hbHBoYS03MDogI2ZmZmZmZmIyO1xcbiAgICAtLW5ldXRyYWwtd2hpdGUtYWxwaGEtODA6ICNmZmZjO1xcbiAgICAtLW5ldXRyYWwtd2hpdGUtYWxwaGEtOTA6ICNmZmZmZmZlNTtcXG4gICAgLS1uZXV0cmFsLXdoaXRlLWFscGhhLTk1OiAjZmZmZmZmZjI7XFxuICAgIC0tc2VudGltZW50LWVycm9yLTEwOiAjZmZlMWRkO1xcbiAgICAtLXNlbnRpbWVudC1lcnJvci0xMDA6ICM0ODBlMDc7XFxuICAgIC0tc2VudGltZW50LWVycm9yLTIwOiAjZmZiZmI2O1xcbiAgICAtLXNlbnRpbWVudC1lcnJvci0zMDogI2ZmODY3NztcXG4gICAgLS1zZW50aW1lbnQtZXJyb3ItNDA6ICNmOTVkNGE7XFxuICAgIC0tc2VudGltZW50LWVycm9yLTUwOiAjZTAyZDE2O1xcbiAgICAtLXNlbnRpbWVudC1lcnJvci02MDogI2MxMjgxNDtcXG4gICAgLS1zZW50aW1lbnQtZXJyb3ItNzA6ICNhYTI1MTM7XFxuICAgIC0tc2VudGltZW50LWVycm9yLTgwOiAjODQyNDE4O1xcbiAgICAtLXNlbnRpbWVudC1lcnJvci05MDogIzZhMWIxMTtcXG4gICAgLS1zZW50aW1lbnQtaW5mb3JtYXRpb24tMTA6ICNkY2VmZmI7XFxuICAgIC0tc2VudGltZW50LWluZm9ybWF0aW9uLTEwMDogIzBiMjk0NjtcXG4gICAgLS1zZW50aW1lbnQtaW5mb3JtYXRpb24tMjA6ICNiZGUwZmE7XFxuICAgIC0tc2VudGltZW50LWluZm9ybWF0aW9uLTMwOiAjODNjN2Y2O1xcbiAgICAtLXNlbnRpbWVudC1pbmZvcm1hdGlvbi00MDogIzQwYWFmMDtcXG4gICAgLS1zZW50aW1lbnQtaW5mb3JtYXRpb24tNTA6ICMxODkyZTM7XFxuICAgIC0tc2VudGltZW50LWluZm9ybWF0aW9uLTYwOiAjMGI3MWJlO1xcbiAgICAtLXNlbnRpbWVudC1pbmZvcm1hdGlvbi03MDogIzBhNWE5YTtcXG4gICAgLS1zZW50aW1lbnQtaW5mb3JtYXRpb24tODA6ICMwZDRkN2Y7XFxuICAgIC0tc2VudGltZW50LWluZm9ybWF0aW9uLTkwOiAjMTA0MTZhO1xcbiAgICAtLXNlbnRpbWVudC1zdWNjZXNzLTEwOiAjZTJmNmUyO1xcbiAgICAtLXNlbnRpbWVudC1zdWNjZXNzLTEwMDogIzBlMzYwZjtcXG4gICAgLS1zZW50aW1lbnQtc3VjY2Vzcy0yMDogI2M3ZWNjNjtcXG4gICAgLS1zZW50aW1lbnQtc3VjY2Vzcy0zMDogIzlhZGM5OTtcXG4gICAgLS1zZW50aW1lbnQtc3VjY2Vzcy00MDogIzY2YzM2NTtcXG4gICAgLS1zZW50aW1lbnQtc3VjY2Vzcy01MDogIzNlYTMzZTtcXG4gICAgLS1zZW50aW1lbnQtc3VjY2Vzcy02MDogIzMwODkzMDtcXG4gICAgLS1zZW50aW1lbnQtc3VjY2Vzcy03MDogIzI4NmQyOTtcXG4gICAgLS1zZW50aW1lbnQtc3VjY2Vzcy04MDogIzI0NTcyNDtcXG4gICAgLS1zZW50aW1lbnQtc3VjY2Vzcy05MDogIzFmNDgyMDtcXG4gICAgLS1zZW50aW1lbnQtd2FybmluZy0xMDogI2ZlZmNlODtcXG4gICAgLS1zZW50aW1lbnQtd2FybmluZy0xMDA6ICM1ZTMzMGY7XFxuICAgIC0tc2VudGltZW50LXdhcm5pbmctMjA6ICNmZWY4YzM7XFxuICAgIC0tc2VudGltZW50LXdhcm5pbmctMzA6ICNmZGVkOGI7XFxuICAgIC0tc2VudGltZW50LXdhcm5pbmctNDA6ICNmY2RjNDg7XFxuICAgIC0tc2VudGltZW50LXdhcm5pbmctNTA6ICNmOWNiMjg7XFxuICAgIC0tc2VudGltZW50LXdhcm5pbmctNjA6ICNlOWFlMDk7XFxuICAgIC0tc2VudGltZW50LXdhcm5pbmctNzA6ICNjODg1MDQ7XFxuICAgIC0tc2VudGltZW50LXdhcm5pbmctODA6ICNhMDVmMDg7XFxuICAgIC0tc2VudGltZW50LXdhcm5pbmctOTA6ICM3ZDRiMDc7XFxufVxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3NyYy9jb21wb25lbnRMaWJyYXJ5L2NvbW1vbi9zdHlsZXMvcHJpbWl0aXZlQ29sb3JzLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTs7OztFQUlFOztBQUVGOzs7Ozs7RUFNRTs7QUFFRixxQkFBcUI7QUFDckI7SUFDSSwyQkFBMkI7SUFDM0IsNEJBQTRCO0lBQzVCLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsK0JBQStCO0lBQy9CLGdDQUFnQztJQUNoQywrQkFBK0I7SUFDL0IsK0JBQStCO0lBQy9CLCtCQUErQjtJQUMvQiwrQkFBK0I7SUFDL0IsK0JBQStCO0lBQy9CLCtCQUErQjtJQUMvQiwrQkFBK0I7SUFDL0IsK0JBQStCO0lBQy9CLHdCQUF3QjtJQUN4Qix5QkFBeUI7SUFDekIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLHlCQUF5QjtJQUN6QiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLHdCQUF3QjtJQUN4Qix5QkFBeUI7SUFDekIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsNkJBQTZCO0lBQzdCLDBCQUEwQjtJQUMxQixtQ0FBbUM7SUFDbkMsbUNBQW1DO0lBQ25DLG1DQUFtQztJQUNuQyxtQ0FBbUM7SUFDbkMsa0NBQWtDO0lBQ2xDLG1DQUFtQztJQUNuQyxtQ0FBbUM7SUFDbkMsbUNBQW1DO0lBQ25DLG1DQUFtQztJQUNuQyxtQ0FBbUM7SUFDbkMsbUNBQW1DO0lBQ25DLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQix5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsbUNBQW1DO0lBQ25DLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsK0JBQStCO0lBQy9CLGtDQUFrQztJQUNsQyxtQ0FBbUM7SUFDbkMsK0JBQStCO0lBQy9CLG1DQUFtQztJQUNuQywrQkFBK0I7SUFDL0IsbUNBQW1DO0lBQ25DLG1DQUFtQztJQUNuQyw2QkFBNkI7SUFDN0IsOEJBQThCO0lBQzlCLDZCQUE2QjtJQUM3Qiw2QkFBNkI7SUFDN0IsNkJBQTZCO0lBQzdCLDZCQUE2QjtJQUM3Qiw2QkFBNkI7SUFDN0IsNkJBQTZCO0lBQzdCLDZCQUE2QjtJQUM3Qiw2QkFBNkI7SUFDN0IsbUNBQW1DO0lBQ25DLG9DQUFvQztJQUNwQyxtQ0FBbUM7SUFDbkMsbUNBQW1DO0lBQ25DLG1DQUFtQztJQUNuQyxtQ0FBbUM7SUFDbkMsbUNBQW1DO0lBQ25DLG1DQUFtQztJQUNuQyxtQ0FBbUM7SUFDbkMsbUNBQW1DO0lBQ25DLCtCQUErQjtJQUMvQixnQ0FBZ0M7SUFDaEMsK0JBQStCO0lBQy9CLCtCQUErQjtJQUMvQiwrQkFBK0I7SUFDL0IsK0JBQStCO0lBQy9CLCtCQUErQjtJQUMvQiwrQkFBK0I7SUFDL0IsK0JBQStCO0lBQy9CLCtCQUErQjtJQUMvQiwrQkFBK0I7SUFDL0IsZ0NBQWdDO0lBQ2hDLCtCQUErQjtJQUMvQiwrQkFBK0I7SUFDL0IsK0JBQStCO0lBQy9CLCtCQUErQjtJQUMvQiwrQkFBK0I7SUFDL0IsK0JBQStCO0lBQy9CLCtCQUErQjtJQUMvQiwrQkFBK0I7QUFDbkNcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLyogVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgUHJpbWl0aXZlIENvbG9ycy5cXG4gVW5saWtlIFNlbWFudGljIGNvbG9ycyAoY29sb3IuY3NzKSB0aGVzZSB2YXJpYWJsZXMgd2lsbCBiZSBlcXVhbCB0byB0aGUgc2FtZSBjb2xvciB2YWx1ZSBpbiBhbGwgdGhlbWVzLlxcbiBJZGVhbGx5LCB0aGVzZSBjb2xvcnMgc2hvdWxkIGJlIHVzZWQgZm9yIGNvbXBvbmVudHMgdGhhdCBhcmUgbm90IHRoZW1lIGRlcGVuZGVudC5cXG4gSW4gdGhlIGZ1dHVyZSBpdCdzIHBvc3NpYmxlIHRoYXQgd2Ugd2lsbCBvbmx5IG5lZWQgdG8gdXNlIHRoZXNlIGNvbG9ycyBpbiBTZW1hbnRpYyBjb2xvcnMgKGNvbG9ycy5jc3MpLlxcbiAqL1xcblxcbi8qIENvbG9ycyBhcmUgdGFrZW4gZnJvbSBESVNDTyBWYXJpYWJsZXMgTmV3IEZpZ21hIEZpbGUgLSBQcmltaXRpdmUgY29sb3JzIHZhcmlhYmxlcyBjb2xsZWN0aW9uXFxuIHZpYSB2YXJpYWJsZXMyY3NzIHBsdWdpbiB0aGF0IGdlbmVyYXRlcyBjc3MgY29kZSBiYXNlZCBvbiBGaWdtYSB2YXJpYWJsZXMgdmFsdWVzIGFuZCBuYW1lcy5cXG4gV2UncmUgdXNpbmcgY3NzIGhlcmUgaW4gb3JkZXIgdG8gc3VwcG9ydCBub3Qgb25seSBzY3NzLCBidXQgYWxzbyBjc3MgZmlsZXMuXFxuIDpyb290IGlzIHVzZWQgaGVyZSBpbnN0ZWFkIG9mIFxcXCJbZGF0YS10aGVtZT1cXFwiTW9kZSAxXFxcIl1cXFwiIHRvIGRlZmluZSBjc3MgdmFyaWFibGVzXFxuIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIGVudGlyZSBhcHAuIFxcbiBBbHNvLCBzdHlsZWxpbnQgZml4IG1pZ2h0IGJlIHJlcXVpcmVkIGZvciBhdXRvZ2VuZXJhdGVkIGNvbG9ycywgd2hpY2ggY2FuIGJlIGRvbmUgaW4gb25lIGNvbW1hbmQuXFxuICovXFxuXFxuLyogUHJpbWl0aXZlIENvbG9ycyAqL1xcbjpyb290IHtcXG4gICAgLS1hY2NlbnQtb3JhbmdlLTEwOiAjZmZmNmU1O1xcbiAgICAtLWFjY2VudC1vcmFuZ2UtMTAwOiAjNWMzYjAwO1xcbiAgICAtLWFjY2VudC1vcmFuZ2UtMjA6ICNmZmU1Yjc7XFxuICAgIC0tYWNjZW50LW9yYW5nZS0zMDogI2ZmZDU4YTtcXG4gICAgLS1hY2NlbnQtb3JhbmdlLTQwOiAjZmZjNTVjO1xcbiAgICAtLWFjY2VudC1vcmFuZ2UtNTA6ICNmZmI0MmU7XFxuICAgIC0tYWNjZW50LW9yYW5nZS02MDogI2ZmYTQwMDtcXG4gICAgLS1hY2NlbnQtb3JhbmdlLTcwOiAjZDY4YTAwO1xcbiAgICAtLWFjY2VudC1vcmFuZ2UtODA6ICNhZDcwMDA7XFxuICAgIC0tYWNjZW50LW9yYW5nZS05MDogIzg1NTUwMDtcXG4gICAgLS1hY2NlbnQtc3RyYXdiZXJyeS0xMDogI2ZmZTNlMztcXG4gICAgLS1hY2NlbnQtc3RyYXdiZXJyeS0xMDA6ICM0MzBkMGQ7XFxuICAgIC0tYWNjZW50LXN0cmF3YmVycnktMjA6ICNmZmNkY2Q7XFxuICAgIC0tYWNjZW50LXN0cmF3YmVycnktMzA6ICNmZmFiYWI7XFxuICAgIC0tYWNjZW50LXN0cmF3YmVycnktNDA6ICNmODg1ODU7XFxuICAgIC0tYWNjZW50LXN0cmF3YmVycnktNTA6ICNlZDYwNjA7XFxuICAgIC0tYWNjZW50LXN0cmF3YmVycnktNjA6ICNjYjRhNGE7XFxuICAgIC0tYWNjZW50LXN0cmF3YmVycnktNzA6ICNhOTM3Mzc7XFxuICAgIC0tYWNjZW50LXN0cmF3YmVycnktODA6ICM4NzI2MjY7XFxuICAgIC0tYWNjZW50LXN0cmF3YmVycnktOTA6ICM2NTE4MTg7XFxuICAgIC0tYnJhbmQtYXF1YS0xMDogI2ViZmZmZTtcXG4gICAgLS1icmFuZC1hcXVhLTEwMDogIzAwNTU1MjtcXG4gICAgLS1icmFuZC1hcXVhLTIwOiAjYmZmZmZjO1xcbiAgICAtLWJyYW5kLWFxdWEtMzA6ICM5NGZmZmI7XFxuICAgIC0tYnJhbmQtYXF1YS00MDogIzY4ZmZmOTtcXG4gICAgLS1icmFuZC1hcXVhLTUwOiAjM2NmZmY3O1xcbiAgICAtLWJyYW5kLWFxdWEtNjA6ICMyOWRkZDY7XFxuICAgIC0tYnJhbmQtYXF1YS03MDogIzE5YmJiNTtcXG4gICAgLS1icmFuZC1hcXVhLTgwOiAjMGQ5OTk0O1xcbiAgICAtLWJyYW5kLWFxdWEtOTA6ICMwNDc3NzM7XFxuICAgIC0tYnJhbmQtcHVycGxlLTEwOiAjZTJkNGVlO1xcbiAgICAtLWJyYW5kLXB1cnBsZS0xMDA6ICMyZjFjM2U7XFxuICAgIC0tYnJhbmQtcHVycGxlLTIwOiAjZGVjYWVlO1xcbiAgICAtLWJyYW5kLXB1cnBsZS0zMDogI2QwYjZlNTtcXG4gICAgLS1icmFuZC1wdXJwbGUtNDA6ICNiNTkyZDI7XFxuICAgIC0tYnJhbmQtcHVycGxlLTU6ICNmNmVkZmQ7XFxuICAgIC0tYnJhbmQtcHVycGxlLTUwOiAjOGM1MmJhO1xcbiAgICAtLWJyYW5kLXB1cnBsZS02MDogIzdmNGFhOTtcXG4gICAgLS1icmFuZC1wdXJwbGUtNzA6ICM2YzQ2OGE7XFxuICAgIC0tYnJhbmQtcHVycGxlLTgwOiAjNWMzNzc4O1xcbiAgICAtLWJyYW5kLXB1cnBsZS05MDogIzQ2Mjk1YztcXG4gICAgLS1icmFuZC10ZWFsLTEwOiAjYmZlNGU4O1xcbiAgICAtLWJyYW5kLXRlYWwtMTAwOiAjMDAzODNmO1xcbiAgICAtLWJyYW5kLXRlYWwtMjA6ICNhZWQ4ZGM7XFxuICAgIC0tYnJhbmQtdGVhbC0zMDogIzg1Y2FkMTtcXG4gICAgLS1icmFuZC10ZWFsLTQwOiAjNTBiMmJkO1xcbiAgICAtLWJyYW5kLXRlYWwtNTogI2UwZjhmOTtcXG4gICAgLS1icmFuZC10ZWFsLTUwOiAjMDA5M2E0O1xcbiAgICAtLWJyYW5kLXRlYWwtNjA6ICMwMDg0OTM7XFxuICAgIC0tYnJhbmQtdGVhbC03MDogIzAwNzc4NTtcXG4gICAgLS1icmFuZC10ZWFsLTgwOiAjMDA2MzZlO1xcbiAgICAtLWJyYW5kLXRlYWwtOTA6ICMwMDRiNTQ7XFxuICAgIC0tbmV1dHJhbC1iYXNlLWJsYWNrOiAjMjkyZjM2O1xcbiAgICAtLW5ldXRyYWwtYmFzZS13aGl0ZTogI2ZmZjtcXG4gICAgLS1uZXV0cmFsLWJsYWNrLWFscGhhLTEwOiAjMjkyZjM2MWE7XFxuICAgIC0tbmV1dHJhbC1ibGFjay1hbHBoYS0yMDogIzI5MmYzNjMzO1xcbiAgICAtLW5ldXRyYWwtYmxhY2stYWxwaGEtMzA6ICMyOTJmMzY0ZDtcXG4gICAgLS1uZXV0cmFsLWJsYWNrLWFscGhhLTQwOiAjMjkyZjM2NjY7XFxuICAgIC0tbmV1dHJhbC1ibGFjay1hbHBoYS01OiAjMjkyZjM2MGQ7XFxuICAgIC0tbmV1dHJhbC1ibGFjay1hbHBoYS01MDogIzI5MmYzNjgwO1xcbiAgICAtLW5ldXRyYWwtYmxhY2stYWxwaGEtNjA6ICMyOTJmMzY5OTtcXG4gICAgLS1uZXV0cmFsLWJsYWNrLWFscGhhLTcwOiAjMjkyZjM2YjI7XFxuICAgIC0tbmV1dHJhbC1ibGFjay1hbHBoYS04MDogIzI5MmYzNmNjO1xcbiAgICAtLW5ldXRyYWwtYmxhY2stYWxwaGEtOTA6ICMyOTJmMzZlNTtcXG4gICAgLS1uZXV0cmFsLWJsYWNrLWFscGhhLTk1OiAjMjkyZjM2ZjI7XFxuICAgIC0tbmV1dHJhbC1ncmF5LTEwOiAjZTRlNmU5O1xcbiAgICAtLW5ldXRyYWwtZ3JheS0yMDogI2QxZDRkODtcXG4gICAgLS1uZXV0cmFsLWdyYXktMzA6ICNiZWMyYzc7XFxuICAgIC0tbmV1dHJhbC1ncmF5LTQwOiAjYWJiMGI2O1xcbiAgICAtLW5ldXRyYWwtZ3JheS01OiAjZjdmOGZhO1xcbiAgICAtLW5ldXRyYWwtZ3JheS01MDogIzk4OWVhNTtcXG4gICAgLS1uZXV0cmFsLWdyYXktNjA6ICM4NThjOTQ7XFxuICAgIC0tbmV1dHJhbC1ncmF5LTcwOiAjNzI3YTgzO1xcbiAgICAtLW5ldXRyYWwtZ3JheS04MDogIzVmNjg3MjtcXG4gICAgLS1uZXV0cmFsLWdyYXktOTA6ICM0YzU2NjE7XFxuICAgIC0tbmV1dHJhbC1ncmF5LTk1OiAjMzk0NDUwO1xcbiAgICAtLW5ldXRyYWwtd2hpdGUtYWxwaGEtMTA6ICNmZmZmZmYxYTtcXG4gICAgLS1uZXV0cmFsLXdoaXRlLWFscGhhLTIwOiAjZmZmMztcXG4gICAgLS1uZXV0cmFsLXdoaXRlLWFscGhhLTMwOiAjZmZmZmZmNGQ7XFxuICAgIC0tbmV1dHJhbC13aGl0ZS1hbHBoYS00MDogI2ZmZjY7XFxuICAgIC0tbmV1dHJhbC13aGl0ZS1hbHBoYS01OiAjZmZmZmZmMGQ7XFxuICAgIC0tbmV1dHJhbC13aGl0ZS1hbHBoYS01MDogI2ZmZmZmZjgwO1xcbiAgICAtLW5ldXRyYWwtd2hpdGUtYWxwaGEtNjA6ICNmZmY5O1xcbiAgICAtLW5ldXRyYWwtd2hpdGUtYWxwaGEtNzA6ICNmZmZmZmZiMjtcXG4gICAgLS1uZXV0cmFsLXdoaXRlLWFscGhhLTgwOiAjZmZmYztcXG4gICAgLS1uZXV0cmFsLXdoaXRlLWFscGhhLTkwOiAjZmZmZmZmZTU7XFxuICAgIC0tbmV1dHJhbC13aGl0ZS1hbHBoYS05NTogI2ZmZmZmZmYyO1xcbiAgICAtLXNlbnRpbWVudC1lcnJvci0xMDogI2ZmZTFkZDtcXG4gICAgLS1zZW50aW1lbnQtZXJyb3ItMTAwOiAjNDgwZTA3O1xcbiAgICAtLXNlbnRpbWVudC1lcnJvci0yMDogI2ZmYmZiNjtcXG4gICAgLS1zZW50aW1lbnQtZXJyb3ItMzA6ICNmZjg2Nzc7XFxuICAgIC0tc2VudGltZW50LWVycm9yLTQwOiAjZjk1ZDRhO1xcbiAgICAtLXNlbnRpbWVudC1lcnJvci01MDogI2UwMmQxNjtcXG4gICAgLS1zZW50aW1lbnQtZXJyb3ItNjA6ICNjMTI4MTQ7XFxuICAgIC0tc2VudGltZW50LWVycm9yLTcwOiAjYWEyNTEzO1xcbiAgICAtLXNlbnRpbWVudC1lcnJvci04MDogIzg0MjQxODtcXG4gICAgLS1zZW50aW1lbnQtZXJyb3ItOTA6ICM2YTFiMTE7XFxuICAgIC0tc2VudGltZW50LWluZm9ybWF0aW9uLTEwOiAjZGNlZmZiO1xcbiAgICAtLXNlbnRpbWVudC1pbmZvcm1hdGlvbi0xMDA6ICMwYjI5NDY7XFxuICAgIC0tc2VudGltZW50LWluZm9ybWF0aW9uLTIwOiAjYmRlMGZhO1xcbiAgICAtLXNlbnRpbWVudC1pbmZvcm1hdGlvbi0zMDogIzgzYzdmNjtcXG4gICAgLS1zZW50aW1lbnQtaW5mb3JtYXRpb24tNDA6ICM0MGFhZjA7XFxuICAgIC0tc2VudGltZW50LWluZm9ybWF0aW9uLTUwOiAjMTg5MmUzO1xcbiAgICAtLXNlbnRpbWVudC1pbmZvcm1hdGlvbi02MDogIzBiNzFiZTtcXG4gICAgLS1zZW50aW1lbnQtaW5mb3JtYXRpb24tNzA6ICMwYTVhOWE7XFxuICAgIC0tc2VudGltZW50LWluZm9ybWF0aW9uLTgwOiAjMGQ0ZDdmO1xcbiAgICAtLXNlbnRpbWVudC1pbmZvcm1hdGlvbi05MDogIzEwNDE2YTtcXG4gICAgLS1zZW50aW1lbnQtc3VjY2Vzcy0xMDogI2UyZjZlMjtcXG4gICAgLS1zZW50aW1lbnQtc3VjY2Vzcy0xMDA6ICMwZTM2MGY7XFxuICAgIC0tc2VudGltZW50LXN1Y2Nlc3MtMjA6ICNjN2VjYzY7XFxuICAgIC0tc2VudGltZW50LXN1Y2Nlc3MtMzA6ICM5YWRjOTk7XFxuICAgIC0tc2VudGltZW50LXN1Y2Nlc3MtNDA6ICM2NmMzNjU7XFxuICAgIC0tc2VudGltZW50LXN1Y2Nlc3MtNTA6ICMzZWEzM2U7XFxuICAgIC0tc2VudGltZW50LXN1Y2Nlc3MtNjA6ICMzMDg5MzA7XFxuICAgIC0tc2VudGltZW50LXN1Y2Nlc3MtNzA6ICMyODZkMjk7XFxuICAgIC0tc2VudGltZW50LXN1Y2Nlc3MtODA6ICMyNDU3MjQ7XFxuICAgIC0tc2VudGltZW50LXN1Y2Nlc3MtOTA6ICMxZjQ4MjA7XFxuICAgIC0tc2VudGltZW50LXdhcm5pbmctMTA6ICNmZWZjZTg7XFxuICAgIC0tc2VudGltZW50LXdhcm5pbmctMTAwOiAjNWUzMzBmO1xcbiAgICAtLXNlbnRpbWVudC13YXJuaW5nLTIwOiAjZmVmOGMzO1xcbiAgICAtLXNlbnRpbWVudC13YXJuaW5nLTMwOiAjZmRlZDhiO1xcbiAgICAtLXNlbnRpbWVudC13YXJuaW5nLTQwOiAjZmNkYzQ4O1xcbiAgICAtLXNlbnRpbWVudC13YXJuaW5nLTUwOiAjZjljYjI4O1xcbiAgICAtLXNlbnRpbWVudC13YXJuaW5nLTYwOiAjZTlhZTA5O1xcbiAgICAtLXNlbnRpbWVudC13YXJuaW5nLTcwOiAjYzg4NTA0O1xcbiAgICAtLXNlbnRpbWVudC13YXJuaW5nLTgwOiAjYTA1ZjA4O1xcbiAgICAtLXNlbnRpbWVudC13YXJuaW5nLTkwOiAjN2Q0YjA3O1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKSB7XG4gIHZhciBsaXN0ID0gW107IC8vIHJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGVzIGFzIGNzcyBzdHJpbmdcblxuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IFwiXCI7XG4gICAgICB2YXIgbmVlZExheWVyID0gdHlwZW9mIGl0ZW1bNV0gIT09IFwidW5kZWZpbmVkXCI7XG5cbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW1bMl0pIHtcbiAgICAgICAgY29udGVudCArPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIik7XG4gICAgICB9XG5cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcblxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9KS5qb2luKFwiXCIpO1xuICB9OyAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuXG5cbiAgbGlzdC5pID0gZnVuY3Rpb24gaShtb2R1bGVzLCBtZWRpYSwgZGVkdXBlLCBzdXBwb3J0cywgbGF5ZXIpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIHVuZGVmaW5lZF1dO1xuICAgIH1cblxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG5cbiAgICBpZiAoZGVkdXBlKSB7XG4gICAgICBmb3IgKHZhciBrID0gMDsgayA8IHRoaXMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgdmFyIGlkID0gdGhpc1trXVswXTtcblxuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuXG4gICAgICBpZiAoZGVkdXBlICYmIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgbGF5ZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtWzVdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBsYXllclwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQoaXRlbVs1XSkgOiBcIlwiLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdXBwb3J0cykge1xuICAgICAgICBpZiAoIWl0ZW1bNF0pIHtcbiAgICAgICAgICBpdGVtWzRdID0gXCJcIi5jb25jYXQoc3VwcG9ydHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KGl0ZW1bNF0sIFwiKSB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVs0XSA9IHN1cHBvcnRzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh1cmwsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgaWYgKCF1cmwpIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgdXJsID0gU3RyaW5nKHVybC5fX2VzTW9kdWxlID8gdXJsLmRlZmF1bHQgOiB1cmwpOyAvLyBJZiB1cmwgaXMgYWxyZWFkeSB3cmFwcGVkIGluIHF1b3RlcywgcmVtb3ZlIHRoZW1cblxuICBpZiAoL15bJ1wiXS4qWydcIl0kLy50ZXN0KHVybCkpIHtcbiAgICB1cmwgPSB1cmwuc2xpY2UoMSwgLTEpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuaGFzaCkge1xuICAgIHVybCArPSBvcHRpb25zLmhhc2g7XG4gIH0gLy8gU2hvdWxkIHVybCBiZSB3cmFwcGVkP1xuICAvLyBTZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtMy8jdXJsc1xuXG5cbiAgaWYgKC9bXCInKCkgXFx0XFxuXXwoJTIwKS8udGVzdCh1cmwpIHx8IG9wdGlvbnMubmVlZFF1b3Rlcykge1xuICAgIHJldHVybiBcIlxcXCJcIi5jb25jYXQodXJsLnJlcGxhY2UoL1wiL2csICdcXFxcXCInKS5yZXBsYWNlKC9cXG4vZywgXCJcXFxcblwiKSwgXCJcXFwiXCIpO1xuICB9XG5cbiAgcmV0dXJuIHVybDtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgdmFyIGNvbnRlbnQgPSBpdGVtWzFdO1xuICB2YXIgY3NzTWFwcGluZyA9IGl0ZW1bM107XG5cbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgdmFyIHNvdXJjZVVSTHMgPSBjc3NNYXBwaW5nLnNvdXJjZXMubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIHJldHVybiBcIi8qIyBzb3VyY2VVUkw9XCIuY29uY2F0KGNzc01hcHBpbmcuc291cmNlUm9vdCB8fCBcIlwiKS5jb25jYXQoc291cmNlLCBcIiAqL1wiKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG5cbiAgcmV0dXJuIFtjb250ZW50XS5qb2luKFwiXFxuXCIpO1xufTsiLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjE3LjAuMlxuICogcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO3JlcXVpcmUoXCJvYmplY3QtYXNzaWduXCIpO3ZhciBmPXJlcXVpcmUoXCJyZWFjdFwiKSxnPTYwMTAzO2V4cG9ydHMuRnJhZ21lbnQ9NjAxMDc7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcil7dmFyIGg9U3ltYm9sLmZvcjtnPWgoXCJyZWFjdC5lbGVtZW50XCIpO2V4cG9ydHMuRnJhZ21lbnQ9aChcInJlYWN0LmZyYWdtZW50XCIpfXZhciBtPWYuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQuUmVhY3RDdXJyZW50T3duZXIsbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHA9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtcbmZ1bmN0aW9uIHEoYyxhLGspe3ZhciBiLGQ9e30sZT1udWxsLGw9bnVsbDt2b2lkIDAhPT1rJiYoZT1cIlwiK2spO3ZvaWQgMCE9PWEua2V5JiYoZT1cIlwiK2Eua2V5KTt2b2lkIDAhPT1hLnJlZiYmKGw9YS5yZWYpO2ZvcihiIGluIGEpbi5jYWxsKGEsYikmJiFwLmhhc093blByb3BlcnR5KGIpJiYoZFtiXT1hW2JdKTtpZihjJiZjLmRlZmF1bHRQcm9wcylmb3IoYiBpbiBhPWMuZGVmYXVsdFByb3BzLGEpdm9pZCAwPT09ZFtiXSYmKGRbYl09YVtiXSk7cmV0dXJueyQkdHlwZW9mOmcsdHlwZTpjLGtleTplLHJlZjpsLHByb3BzOmQsX293bmVyOm0uY3VycmVudH19ZXhwb3J0cy5qc3g9cTtleHBvcnRzLmpzeHM9cTtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBzdHlsZXNJbkRPTSA9IFtdO1xuXG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XG4gIHZhciByZXN1bHQgPSAtMTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRE9NLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRE9NW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucykge1xuICB2YXIgaWRDb3VudE1hcCA9IHt9O1xuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXhCeUlkZW50aWZpZXIgPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM10sXG4gICAgICBzdXBwb3J0czogaXRlbVs0XSxcbiAgICAgIGxheWVyOiBpdGVtWzVdXG4gICAgfTtcblxuICAgIGlmIChpbmRleEJ5SWRlbnRpZmllciAhPT0gLTEpIHtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS5yZWZlcmVuY2VzKys7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0udXBkYXRlcihvYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdXBkYXRlciA9IGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpO1xuICAgICAgb3B0aW9ucy5ieUluZGV4ID0gaTtcbiAgICAgIHN0eWxlc0luRE9NLnNwbGljZShpLCAwLCB7XG4gICAgICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXIsXG4gICAgICAgIHVwZGF0ZXI6IHVwZGF0ZXIsXG4gICAgICAgIHJlZmVyZW5jZXM6IDFcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlkZW50aWZpZXJzLnB1c2goaWRlbnRpZmllcik7XG4gIH1cblxuICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5cbmZ1bmN0aW9uIGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpIHtcbiAgdmFyIGFwaSA9IG9wdGlvbnMuZG9tQVBJKG9wdGlvbnMpO1xuICBhcGkudXBkYXRlKG9iaik7XG5cbiAgdmFyIHVwZGF0ZXIgPSBmdW5jdGlvbiB1cGRhdGVyKG5ld09iaikge1xuICAgIGlmIChuZXdPYmopIHtcbiAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXAgJiYgbmV3T2JqLnN1cHBvcnRzID09PSBvYmouc3VwcG9ydHMgJiYgbmV3T2JqLmxheWVyID09PSBvYmoubGF5ZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBhcGkudXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHVwZGF0ZXI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGxpc3QsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGxpc3QgPSBsaXN0IHx8IFtdO1xuICB2YXIgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlKG5ld0xpc3QpIHtcbiAgICBuZXdMaXN0ID0gbmV3TGlzdCB8fCBbXTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG5cbiAgICB2YXIgbmV3TGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKG5ld0xpc3QsIG9wdGlvbnMpO1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tfaV07XG5cbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG5cbiAgICAgIGlmIChzdHlsZXNJbkRPTVtfaW5kZXhdLnJlZmVyZW5jZXMgPT09IDApIHtcbiAgICAgICAgc3R5bGVzSW5ET01bX2luZGV4XS51cGRhdGVyKCk7XG5cbiAgICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKF9pbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIG1lbW8gPSB7fTtcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuXG5mdW5jdGlvbiBnZXRUYXJnZXQodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpOyAvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuXG4gICAgaWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcbiAgICAgICAgLy8gZHVlIHRvIGNyb3NzLW9yaWdpbiByZXN0cmljdGlvbnNcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBzdHlsZVRhcmdldC5jb250ZW50RG9jdW1lbnQuaGVhZDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICB9XG5cbiAgcmV0dXJuIG1lbW9bdGFyZ2V0XTtcbn1cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuXG5cbmZ1bmN0aW9uIGluc2VydEJ5U2VsZWN0b3IoaW5zZXJ0LCBzdHlsZSkge1xuICB2YXIgdGFyZ2V0ID0gZ2V0VGFyZ2V0KGluc2VydCk7XG5cbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICB9XG5cbiAgdGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbnNlcnRCeVNlbGVjdG9yOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKSB7XG4gIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICBvcHRpb25zLnNldEF0dHJpYnV0ZXMoZWxlbWVudCwgb3B0aW9ucy5hdHRyaWJ1dGVzKTtcbiAgb3B0aW9ucy5pbnNlcnQoZWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcyhzdHlsZUVsZW1lbnQpIHtcbiAgdmFyIG5vbmNlID0gdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSBcInVuZGVmaW5lZFwiID8gX193ZWJwYWNrX25vbmNlX18gOiBudWxsO1xuXG4gIGlmIChub25jZSkge1xuICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLCBub25jZSk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXM7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopIHtcbiAgdmFyIGNzcyA9IFwiXCI7XG5cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KG9iai5zdXBwb3J0cywgXCIpIHtcIik7XG4gIH1cblxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwiQG1lZGlhIFwiLmNvbmNhdChvYmoubWVkaWEsIFwiIHtcIik7XG4gIH1cblxuICB2YXIgbmVlZExheWVyID0gdHlwZW9mIG9iai5sYXllciAhPT0gXCJ1bmRlZmluZWRcIjtcblxuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwiQGxheWVyXCIuY29uY2F0KG9iai5sYXllci5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KG9iai5sYXllcikgOiBcIlwiLCBcIiB7XCIpO1xuICB9XG5cbiAgY3NzICs9IG9iai5jc3M7XG5cbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuXG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cblxuICBpZiAob2JqLnN1cHBvcnRzKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG5cbiAgdmFyIHNvdXJjZU1hcCA9IG9iai5zb3VyY2VNYXA7XG5cbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9IC8vIEZvciBvbGQgSUVcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG5cblxuICBvcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KSB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoc3R5bGVFbGVtZW50LnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdHlsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQpO1xufVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5cblxuZnVuY3Rpb24gZG9tQVBJKG9wdGlvbnMpIHtcbiAgdmFyIHN0eWxlRWxlbWVudCA9IG9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpO1xuICByZXR1cm4ge1xuICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKG9iaikge1xuICAgICAgYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopO1xuICAgIH0sXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7XG4gICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KTtcbiAgICB9XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZG9tQVBJOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cblxuICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0eWxlVGFnVHJhbnNmb3JtOyIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2dldE93blByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBfX2dldE93blByb3BOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19leHBvcnQgPSAodGFyZ2V0LCBhbGwpID0+IHtcbiAgZm9yICh2YXIgbmFtZSBpbiBhbGwpXG4gICAgX19kZWZQcm9wKHRhcmdldCwgbmFtZSwgeyBnZXQ6IGFsbFtuYW1lXSwgZW51bWVyYWJsZTogdHJ1ZSB9KTtcbn07XG52YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4ge1xuICBpZiAoZnJvbSAmJiB0eXBlb2YgZnJvbSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgZnJvbSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKVxuICAgICAgaWYgKCFfX2hhc093blByb3AuY2FsbCh0bywga2V5KSAmJiBrZXkgIT09IGV4Y2VwdClcbiAgICAgICAgX19kZWZQcm9wKHRvLCBrZXksIHsgZ2V0OiAoKSA9PiBmcm9tW2tleV0sIGVudW1lcmFibGU6ICEoZGVzYyA9IF9fZ2V0T3duUHJvcERlc2MoZnJvbSwga2V5KSkgfHwgZGVzYy5lbnVtZXJhYmxlIH0pO1xuICB9XG4gIHJldHVybiB0bztcbn07XG52YXIgX190b0NvbW1vbkpTID0gKG1vZCkgPT4gX19jb3B5UHJvcHMoX19kZWZQcm9wKHt9LCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KSwgbW9kKTtcblxuLy8gc3JjL2NvbW1vbi9oZWxwZXJzL2luZGV4LnRzXG52YXIgaGVscGVyc19leHBvcnRzID0ge307XG5fX2V4cG9ydChoZWxwZXJzX2V4cG9ydHMsIHtcbiAgY2FsY3VsYXRlUG9zaXRpb25lZEVsZW1lbnRTdHlsZXM6ICgpID0+IGNhbGN1bGF0ZVBvc2l0aW9uZWRFbGVtZW50U3R5bGVzLFxuICBjaGVja0lmVVJMSXNCbG9ja2VkOiAoKSA9PiBjaGVja0lmVVJMSXNCbG9ja2VkLFxuICBjaGVja0lmWW91VHViZUlzQmxvY2tlZDogKCkgPT4gY2hlY2tJZllvdVR1YmVJc0Jsb2NrZWQsXG4gIGdldEFyaWFQcm9wc0Zyb21Qcm9wczogKCkgPT4gZ2V0QXJpYVByb3BzRnJvbVByb3BzLFxuICB1cGRhdGVQb3NpdGlvbmVkRWxlbWVudFN0eWxlczogKCkgPT4gdXBkYXRlUG9zaXRpb25lZEVsZW1lbnRTdHlsZXNcbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBfX3RvQ29tbW9uSlMoaGVscGVyc19leHBvcnRzKTtcbnZhciBnZXRBcmlhUHJvcHNGcm9tUHJvcHMgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgYXJpYVByb3BzID0ge307XG4gIE9iamVjdC5rZXlzKHByb3BzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoXCJhcmlhLVwiKSkge1xuICAgICAgYXJpYVByb3BzW2tleV0gPSBwcm9wc1trZXldO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBhcmlhUHJvcHM7XG59O1xudmFyIGNhbGN1bGF0ZVBvc2l0aW9uZWRFbGVtZW50U3R5bGVzID0gKHtcbiAgbm9kZVBvc2l0aW9uLFxuICBwb3NpdGlvbmVkRWxlbWVudFJlZixcbiAgZGlyZWN0aW9uLFxuICB0YWlsT2Zmc2V0LFxuICB0YWlsTGVuZ3RoLFxuICBpc1Bvc2l0aW9uRml4ZWQgPSBmYWxzZVxufSkgPT4ge1xuICBjb25zdCBzdHlsZXMgPSB7fTtcbiAgaWYgKG5vZGVQb3NpdGlvbiAmJiBwb3NpdGlvbmVkRWxlbWVudFJlZi5jdXJyZW50ICYmIGRpcmVjdGlvbiAhPT0gXCJub25lXCIpIHtcbiAgICBjb25zdCByZWN0ID0gbm9kZVBvc2l0aW9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHRvb2x0aXBSZWN0ID0gcG9zaXRpb25lZEVsZW1lbnRSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzY3JvbGxZID0gaXNQb3NpdGlvbkZpeGVkID8gMCA6IHdpbmRvdy5zY3JvbGxZO1xuICAgIGNvbnN0IHNjcm9sbFggPSBpc1Bvc2l0aW9uRml4ZWQgPyAwIDogd2luZG93LnNjcm9sbFg7XG4gICAgY29uc3QgdGV4dERpcmVjdGlvbiA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXIgfHwgXCJsdHJcIjtcbiAgICBjb25zdCBpc0x0ciA9IHRleHREaXJlY3Rpb24gPT09IFwibHRyXCI7XG4gICAgY29uc3QgdmVydGljYWxNaWRkbGVQb3NpdGlvbiA9IHJlY3QudG9wICsgc2Nyb2xsWSArIHJlY3QuaGVpZ2h0IC8gMiAtIHRvb2x0aXBSZWN0LmhlaWdodCAvIDI7XG4gICAgY29uc3QgdmVydGljYWxUb3BQb3NpdGlvbiA9IHJlY3QudG9wICsgc2Nyb2xsWSAtIHRvb2x0aXBSZWN0LmhlaWdodCAtIHRhaWxPZmZzZXQgLSB0YWlsTGVuZ3RoO1xuICAgIGNvbnN0IHZlcnRpY2FsQm90dG9tUG9zaXRpb24gPSByZWN0LnRvcCArIHJlY3QuaGVpZ2h0ICsgc2Nyb2xsWSArIHRhaWxPZmZzZXQgKyB0YWlsTGVuZ3RoO1xuICAgIGNvbnN0IGhvcml6b250YWxNaWRkbGVQb3NpdGlvbiA9IHJlY3QubGVmdCArIHNjcm9sbFggKyByZWN0LndpZHRoIC8gMiAtIHRvb2x0aXBSZWN0LndpZHRoIC8gMjtcbiAgICBjb25zdCBob3Jpem9udGFsTGVmdFBvc2l0aW9uID0gcmVjdC5sZWZ0ICsgc2Nyb2xsWCAtIHRvb2x0aXBSZWN0LndpZHRoIC0gdGFpbE9mZnNldCAtIHRhaWxMZW5ndGg7XG4gICAgY29uc3QgaG9yaXpvbnRhbFJpZ2h0UG9zaXRpb24gPSByZWN0LnJpZ2h0ICsgc2Nyb2xsWCArIHRhaWxPZmZzZXQgKyB0YWlsTGVuZ3RoO1xuICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICBjYXNlIFwib25SaWdodFwiOlxuICAgICAgICBzdHlsZXMudG9wID0gdmVydGljYWxNaWRkbGVQb3NpdGlvbjtcbiAgICAgICAgc3R5bGVzLmxlZnQgPSBpc0x0ciA/IGhvcml6b250YWxSaWdodFBvc2l0aW9uIDogaG9yaXpvbnRhbExlZnRQb3NpdGlvbjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwib25Cb3R0b21cIjpcbiAgICAgICAgc3R5bGVzLnRvcCA9IHZlcnRpY2FsQm90dG9tUG9zaXRpb247XG4gICAgICAgIHN0eWxlcy5sZWZ0ID0gaG9yaXpvbnRhbE1pZGRsZVBvc2l0aW9uO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJvbkxlZnRcIjpcbiAgICAgICAgc3R5bGVzLnRvcCA9IHZlcnRpY2FsTWlkZGxlUG9zaXRpb247XG4gICAgICAgIHN0eWxlcy5sZWZ0ID0gaXNMdHIgPyBob3Jpem9udGFsTGVmdFBvc2l0aW9uIDogaG9yaXpvbnRhbFJpZ2h0UG9zaXRpb247XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm9uVG9wXCI6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBzdHlsZXMudG9wID0gdmVydGljYWxUb3BQb3NpdGlvbjtcbiAgICAgICAgc3R5bGVzLmxlZnQgPSBob3Jpem9udGFsTWlkZGxlUG9zaXRpb247XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc3R5bGVzO1xufTtcbnZhciB1cGRhdGVQb3NpdGlvbmVkRWxlbWVudFN0eWxlcyA9ICh7XG4gIG5vZGVQb3NpdGlvbixcbiAgcG9zaXRpb25lZEVsZW1lbnRSZWYsXG4gIGRpcmVjdGlvbixcbiAgc2V0UG9zaXRpb25lZEVsZW1lbnRTdHlsZXMsXG4gIHRhaWxPZmZzZXQsXG4gIHRhaWxMZW5ndGgsXG4gIGlzUG9zaXRpb25GaXhlZCA9IGZhbHNlXG59KSA9PiB7XG4gIHNldFBvc2l0aW9uZWRFbGVtZW50U3R5bGVzKFxuICAgIGNhbGN1bGF0ZVBvc2l0aW9uZWRFbGVtZW50U3R5bGVzKHtcbiAgICAgIG5vZGVQb3NpdGlvbixcbiAgICAgIHBvc2l0aW9uZWRFbGVtZW50UmVmLFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgdGFpbE9mZnNldCxcbiAgICAgIHRhaWxMZW5ndGgsXG4gICAgICBpc1Bvc2l0aW9uRml4ZWRcbiAgICB9KVxuICApO1xufTtcbnZhciBjaGVja0lmVVJMSXNCbG9ja2VkID0gKHVybCkgPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICBpbWcub25sb2FkID0gKCkgPT4gcmVzb2x2ZShmYWxzZSk7XG4gICAgaW1nLm9uZXJyb3IgPSAoKSA9PiByZXNvbHZlKHRydWUpO1xuICAgIGltZy5zcmMgPSBgJHt1cmx9P189JHtNYXRoLnJhbmRvbSgpfWA7XG4gIH0pO1xufTtcbnZhciBjaGVja0lmWW91VHViZUlzQmxvY2tlZCA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgW2lzWW91VHViZUJsb2NrZWQsIGlzWW91VHViZU5vQ29va2llQmxvY2tlZF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgY2hlY2tJZlVSTElzQmxvY2tlZChcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2Zhdmljb24uaWNvXCIpLFxuICAgIGNoZWNrSWZVUkxJc0Jsb2NrZWQoXCJodHRwczovL3d3dy55b3V0dWJlLW5vY29va2llLmNvbS9mYXZpY29uLmljb1wiKVxuICBdKTtcbiAgcmV0dXJuIGlzWW91VHViZUJsb2NrZWQgfHwgaXNZb3VUdWJlTm9Db29raWVCbG9ja2VkO1xufTtcbi8vIEFubm90YXRlIHRoZSBDb21tb25KUyBleHBvcnQgbmFtZXMgZm9yIEVTTSBpbXBvcnQgaW4gbm9kZTpcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICBjYWxjdWxhdGVQb3NpdGlvbmVkRWxlbWVudFN0eWxlcyxcbiAgY2hlY2tJZlVSTElzQmxvY2tlZCxcbiAgY2hlY2tJZllvdVR1YmVJc0Jsb2NrZWQsXG4gIGdldEFyaWFQcm9wc0Zyb21Qcm9wcyxcbiAgdXBkYXRlUG9zaXRpb25lZEVsZW1lbnRTdHlsZXNcbn0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGUgPSBPYmplY3QuY3JlYXRlO1xudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2dldE93blByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBfX2dldE93blByb3BOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIF9fZ2V0UHJvdG9PZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7XG4gIGZvciAodmFyIG5hbWUgaW4gYWxsKVxuICAgIF9fZGVmUHJvcCh0YXJnZXQsIG5hbWUsIHsgZ2V0OiBhbGxbbmFtZV0sIGVudW1lcmFibGU6IHRydWUgfSk7XG59O1xudmFyIF9fY29weVByb3BzID0gKHRvLCBmcm9tLCBleGNlcHQsIGRlc2MpID0+IHtcbiAgaWYgKGZyb20gJiYgdHlwZW9mIGZyb20gPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGZyb20gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGZvciAobGV0IGtleSBvZiBfX2dldE93blByb3BOYW1lcyhmcm9tKSlcbiAgICAgIGlmICghX19oYXNPd25Qcm9wLmNhbGwodG8sIGtleSkgJiYga2V5ICE9PSBleGNlcHQpXG4gICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTtcbiAgfVxuICByZXR1cm4gdG87XG59O1xudmFyIF9fdG9FU00gPSAobW9kLCBpc05vZGVNb2RlLCB0YXJnZXQpID0+ICh0YXJnZXQgPSBtb2QgIT0gbnVsbCA/IF9fY3JlYXRlKF9fZ2V0UHJvdG9PZihtb2QpKSA6IHt9LCBfX2NvcHlQcm9wcyhcbiAgLy8gSWYgdGhlIGltcG9ydGVyIGlzIGluIG5vZGUgY29tcGF0aWJpbGl0eSBtb2RlIG9yIHRoaXMgaXMgbm90IGFuIEVTTVxuICAvLyBmaWxlIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgQ29tbW9uSlMgZmlsZSB1c2luZyBhIEJhYmVsLVxuICAvLyBjb21wYXRpYmxlIHRyYW5zZm9ybSAoaS5lLiBcIl9fZXNNb2R1bGVcIiBoYXMgbm90IGJlZW4gc2V0KSwgdGhlbiBzZXRcbiAgLy8gXCJkZWZhdWx0XCIgdG8gdGhlIENvbW1vbkpTIFwibW9kdWxlLmV4cG9ydHNcIiBmb3Igbm9kZSBjb21wYXRpYmlsaXR5LlxuICBpc05vZGVNb2RlIHx8ICFtb2QgfHwgIW1vZC5fX2VzTW9kdWxlID8gX19kZWZQcm9wKHRhcmdldCwgXCJkZWZhdWx0XCIsIHsgdmFsdWU6IG1vZCwgZW51bWVyYWJsZTogdHJ1ZSB9KSA6IHRhcmdldCxcbiAgbW9kXG4pKTtcbnZhciBfX3RvQ29tbW9uSlMgPSAobW9kKSA9PiBfX2NvcHlQcm9wcyhfX2RlZlByb3Aoe30sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pLCBtb2QpO1xuXG4vLyBzcmMvZm9udEF3ZXNvbWVWNkljb24vaW5kZXgudHNcbnZhciBmb250QXdlc29tZVY2SWNvbl9leHBvcnRzID0ge307XG5fX2V4cG9ydChmb250QXdlc29tZVY2SWNvbl9leHBvcnRzLCB7XG4gIGRlZmF1bHQ6ICgpID0+IEZvbnRBd2Vzb21lVjZJY29uX2RlZmF1bHRcbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBfX3RvQ29tbW9uSlMoZm9udEF3ZXNvbWVWNkljb25fZXhwb3J0cyk7XG5cbi8vIHNyYy9mb250QXdlc29tZVY2SWNvbi9Gb250QXdlc29tZVY2SWNvbi50c3hcbnZhciBpbXBvcnRfY2xhc3NuYW1lcyA9IF9fdG9FU00ocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xudmFyIGltcG9ydF9qc3hfcnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbnZhciBGb250QXdlc29tZVY2SWNvbiA9ICh7XG4gIGljb25TdHlsZSxcbiAgaWNvbkZhbWlseSxcbiAgaWNvbk5hbWUsXG4gIGNsYXNzTmFtZSxcbiAgdGl0bGUsXG4gIGFuaW1hdGlvblR5cGUsXG4gIC4uLkhUTUxBdHRyaWJ1dGVzXG59KSA9PiAvKiBAX19QVVJFX18gKi8gKDAsIGltcG9ydF9qc3hfcnVudGltZS5qc3gpKFxuICBcImlcIixcbiAge1xuICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmb250LWF3ZXNvbWUtdjYtaWNvblwiLFxuICAgIGNsYXNzTmFtZTogKDAsIGltcG9ydF9jbGFzc25hbWVzLmRlZmF1bHQpKFxuICAgICAgaWNvbkZhbWlseSAmJiBgZmEtJHtpY29uRmFtaWx5fWAsXG4gICAgICBpY29uU3R5bGUgJiYgYGZhLSR7aWNvblN0eWxlfWAsXG4gICAgICBpY29uTmFtZSAmJiBgZmEtJHtpY29uTmFtZX1gLFxuICAgICAgLy8gRGVmYXVsdCBpY29uIHN0eWxlIGlzIHNvbGlkLCBidXQgb25seSB3aGVuIG5vIGljb25GYW1pbHkgcHJvcCBpcyBwcm92aWRlZFxuICAgICAgIWljb25GYW1pbHkgJiYgIWljb25TdHlsZSAmJiBcImZhLXNvbGlkXCIsXG4gICAgICBhbmltYXRpb25UeXBlICYmIGBmYS0ke2FuaW1hdGlvblR5cGV9YCxcbiAgICAgIGNsYXNzTmFtZVxuICAgICksXG4gICAgdGl0bGUsXG4gICAgLi4uSFRNTEF0dHJpYnV0ZXNcbiAgfVxuKTtcbnZhciBGb250QXdlc29tZVY2SWNvbl9kZWZhdWx0ID0gRm9udEF3ZXNvbWVWNkljb247XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCIvKiFcblx0Q29weXJpZ2h0IChjKSAyMDE4IEplZCBXYXRzb24uXG5cdExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAoTUlUKSwgc2VlXG5cdGh0dHA6Ly9qZWR3YXRzb24uZ2l0aHViLmlvL2NsYXNzbmFtZXNcbiovXG4vKiBnbG9iYWwgZGVmaW5lICovXG5cbihmdW5jdGlvbiAoKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuXHR2YXIgaGFzT3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cblx0ZnVuY3Rpb24gY2xhc3NOYW1lcyAoKSB7XG5cdFx0dmFyIGNsYXNzZXMgPSAnJztcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgYXJnID0gYXJndW1lbnRzW2ldO1xuXHRcdFx0aWYgKGFyZykge1xuXHRcdFx0XHRjbGFzc2VzID0gYXBwZW5kQ2xhc3MoY2xhc3NlcywgcGFyc2VWYWx1ZShhcmcpKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gY2xhc3Nlcztcblx0fVxuXG5cdGZ1bmN0aW9uIHBhcnNlVmFsdWUgKGFyZykge1xuXHRcdGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgYXJnID09PSAnbnVtYmVyJykge1xuXHRcdFx0cmV0dXJuIGFyZztcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIGFyZyAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHJldHVybiAnJztcblx0XHR9XG5cblx0XHRpZiAoQXJyYXkuaXNBcnJheShhcmcpKSB7XG5cdFx0XHRyZXR1cm4gY2xhc3NOYW1lcy5hcHBseShudWxsLCBhcmcpO1xuXHRcdH1cblxuXHRcdGlmIChhcmcudG9TdHJpbmcgIT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcgJiYgIWFyZy50b1N0cmluZy50b1N0cmluZygpLmluY2x1ZGVzKCdbbmF0aXZlIGNvZGVdJykpIHtcblx0XHRcdHJldHVybiBhcmcudG9TdHJpbmcoKTtcblx0XHR9XG5cblx0XHR2YXIgY2xhc3NlcyA9ICcnO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGFyZykge1xuXHRcdFx0aWYgKGhhc093bi5jYWxsKGFyZywga2V5KSAmJiBhcmdba2V5XSkge1xuXHRcdFx0XHRjbGFzc2VzID0gYXBwZW5kQ2xhc3MoY2xhc3Nlcywga2V5KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gY2xhc3Nlcztcblx0fVxuXG5cdGZ1bmN0aW9uIGFwcGVuZENsYXNzICh2YWx1ZSwgbmV3Q2xhc3MpIHtcblx0XHRpZiAoIW5ld0NsYXNzKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHRcblx0XHRpZiAodmFsdWUpIHtcblx0XHRcdHJldHVybiB2YWx1ZSArICcgJyArIG5ld0NsYXNzO1xuXHRcdH1cblx0XG5cdFx0cmV0dXJuIHZhbHVlICsgbmV3Q2xhc3M7XG5cdH1cblxuXHRpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0XHRjbGFzc05hbWVzLmRlZmF1bHQgPSBjbGFzc05hbWVzO1xuXHRcdG1vZHVsZS5leHBvcnRzID0gY2xhc3NOYW1lcztcblx0fSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkZWZpbmUuYW1kID09PSAnb2JqZWN0JyAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gcmVnaXN0ZXIgYXMgJ2NsYXNzbmFtZXMnLCBjb25zaXN0ZW50IHdpdGggbnBtIHBhY2thZ2UgbmFtZVxuXHRcdGRlZmluZSgnY2xhc3NuYW1lcycsIFtdLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRyZXR1cm4gY2xhc3NOYW1lcztcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR3aW5kb3cuY2xhc3NOYW1lcyA9IGNsYXNzTmFtZXM7XG5cdH1cbn0oKSk7XG4iXSwibmFtZXMiOlsiaGFzT3duIiwiaGFzT3duUHJvcGVydHkiLCJjbGFzc05hbWVzIiwiY2xhc3NlcyIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmciLCJhcmdUeXBlIiwicHVzaCIsIkFycmF5IiwiaXNBcnJheSIsImlubmVyIiwiYXBwbHkiLCJ0b1N0cmluZyIsIk9iamVjdCIsInByb3RvdHlwZSIsImluY2x1ZGVzIiwia2V5IiwiY2FsbCIsImpvaW4iLCJtb2R1bGUiLCJleHBvcnRzIiwiZGVmYXVsdCIsIl9fX0NTU19MT0FERVJfRVhQT1JUX19fIiwiaWQiLCJjc3NXaXRoTWFwcGluZ1RvU3RyaW5nIiwibGlzdCIsInRoaXMiLCJtYXAiLCJpdGVtIiwiY29udGVudCIsIm5lZWRMYXllciIsImNvbmNhdCIsIm1vZHVsZXMiLCJtZWRpYSIsImRlZHVwZSIsInN1cHBvcnRzIiwibGF5ZXIiLCJ1bmRlZmluZWQiLCJhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzIiwiayIsIl9rIiwidXJsIiwib3B0aW9ucyIsIlN0cmluZyIsIl9fZXNNb2R1bGUiLCJ0ZXN0Iiwic2xpY2UiLCJoYXNoIiwibmVlZFF1b3RlcyIsInJlcGxhY2UiLCJjc3NNYXBwaW5nIiwiYnRvYSIsImJhc2U2NCIsInVuZXNjYXBlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsImRhdGEiLCJzb3VyY2VNYXBwaW5nIiwic291cmNlVVJMcyIsInNvdXJjZXMiLCJzb3VyY2UiLCJzb3VyY2VSb290IiwiZiIsImciLCJGcmFnbWVudCIsIlN5bWJvbCIsImZvciIsImgiLCJtIiwiX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCJSZWFjdEN1cnJlbnRPd25lciIsIm4iLCJwIiwicmVmIiwiX19zZWxmIiwiX19zb3VyY2UiLCJxIiwiYyIsImEiLCJiIiwiZCIsImUiLCJsIiwiZGVmYXVsdFByb3BzIiwiJCR0eXBlb2YiLCJ0eXBlIiwicHJvcHMiLCJfb3duZXIiLCJjdXJyZW50IiwianN4IiwianN4cyIsInN0eWxlc0luRE9NIiwiZ2V0SW5kZXhCeUlkZW50aWZpZXIiLCJpZGVudGlmaWVyIiwicmVzdWx0IiwibW9kdWxlc1RvRG9tIiwiaWRDb3VudE1hcCIsImlkZW50aWZpZXJzIiwiYmFzZSIsImNvdW50IiwiaW5kZXhCeUlkZW50aWZpZXIiLCJvYmoiLCJjc3MiLCJzb3VyY2VNYXAiLCJyZWZlcmVuY2VzIiwidXBkYXRlciIsImFkZEVsZW1lbnRTdHlsZSIsImJ5SW5kZXgiLCJzcGxpY2UiLCJhcGkiLCJkb21BUEkiLCJ1cGRhdGUiLCJuZXdPYmoiLCJyZW1vdmUiLCJsYXN0SWRlbnRpZmllcnMiLCJuZXdMaXN0IiwiaW5kZXgiLCJuZXdMYXN0SWRlbnRpZmllcnMiLCJfaSIsIl9pbmRleCIsIm1lbW8iLCJpbnNlcnRCeVNlbGVjdG9yIiwiaW5zZXJ0Iiwic3R5bGUiLCJ0YXJnZXQiLCJnZXRUYXJnZXQiLCJzdHlsZVRhcmdldCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIndpbmRvdyIsIkhUTUxJRnJhbWVFbGVtZW50IiwiY29udGVudERvY3VtZW50IiwiaGVhZCIsIkVycm9yIiwiYXBwZW5kQ2hpbGQiLCJpbnNlcnRTdHlsZUVsZW1lbnQiLCJlbGVtZW50IiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZXMiLCJhdHRyaWJ1dGVzIiwic2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzIiwic3R5bGVFbGVtZW50Iiwibm9uY2UiLCJzZXRBdHRyaWJ1dGUiLCJzdHlsZVRhZ1RyYW5zZm9ybSIsInJlbW92ZVN0eWxlRWxlbWVudCIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsInN0eWxlU2hlZXQiLCJjc3NUZXh0IiwiZmlyc3RDaGlsZCIsImNyZWF0ZVRleHROb2RlIiwibW9kIiwiX19kZWZQcm9wIiwiZGVmaW5lUHJvcGVydHkiLCJfX2dldE93blByb3BEZXNjIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX19nZXRPd25Qcm9wTmFtZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiX19oYXNPd25Qcm9wIiwiaGVscGVyc19leHBvcnRzIiwiYWxsIiwibmFtZSIsImdldCIsImVudW1lcmFibGUiLCJfX2V4cG9ydCIsImNhbGN1bGF0ZVBvc2l0aW9uZWRFbGVtZW50U3R5bGVzIiwiY2hlY2tJZlVSTElzQmxvY2tlZCIsImNoZWNrSWZZb3VUdWJlSXNCbG9ja2VkIiwiZ2V0QXJpYVByb3BzRnJvbVByb3BzIiwidXBkYXRlUG9zaXRpb25lZEVsZW1lbnRTdHlsZXMiLCJ0byIsImZyb20iLCJleGNlcHQiLCJkZXNjIiwiX19jb3B5UHJvcHMiLCJ2YWx1ZSIsImFyaWFQcm9wcyIsImtleXMiLCJmb3JFYWNoIiwic3RhcnRzV2l0aCIsIm5vZGVQb3NpdGlvbiIsInBvc2l0aW9uZWRFbGVtZW50UmVmIiwiZGlyZWN0aW9uIiwidGFpbE9mZnNldCIsInRhaWxMZW5ndGgiLCJpc1Bvc2l0aW9uRml4ZWQiLCJzdHlsZXMiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9vbHRpcFJlY3QiLCJzY3JvbGxZIiwic2Nyb2xsWCIsImlzTHRyIiwiZG9jdW1lbnRFbGVtZW50IiwiZGlyIiwidmVydGljYWxNaWRkbGVQb3NpdGlvbiIsInRvcCIsImhlaWdodCIsInZlcnRpY2FsVG9wUG9zaXRpb24iLCJ2ZXJ0aWNhbEJvdHRvbVBvc2l0aW9uIiwiaG9yaXpvbnRhbE1pZGRsZVBvc2l0aW9uIiwibGVmdCIsIndpZHRoIiwiaG9yaXpvbnRhbExlZnRQb3NpdGlvbiIsImhvcml6b250YWxSaWdodFBvc2l0aW9uIiwicmlnaHQiLCJzZXRQb3NpdGlvbmVkRWxlbWVudFN0eWxlcyIsIlByb21pc2UiLCJyZXNvbHZlIiwiaW1nIiwiSW1hZ2UiLCJvbmxvYWQiLCJvbmVycm9yIiwic3JjIiwiTWF0aCIsInJhbmRvbSIsImFzeW5jIiwiaXNZb3VUdWJlQmxvY2tlZCIsImlzWW91VHViZU5vQ29va2llQmxvY2tlZCIsIl9fY3JlYXRlIiwiY3JlYXRlIiwiX19nZXRQcm90b09mIiwiZ2V0UHJvdG90eXBlT2YiLCJmb250QXdlc29tZVY2SWNvbl9leHBvcnRzIiwiRm9udEF3ZXNvbWVWNkljb25fZGVmYXVsdCIsImltcG9ydF9jbGFzc25hbWVzIiwiaXNOb2RlTW9kZSIsIl9fdG9FU00iLCJpbXBvcnRfanN4X3J1bnRpbWUiLCJpY29uU3R5bGUiLCJpY29uRmFtaWx5IiwiaWNvbk5hbWUiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImFuaW1hdGlvblR5cGUiLCJIVE1MQXR0cmlidXRlcyIsImFwcGVuZENsYXNzIiwicGFyc2VWYWx1ZSIsIm5ld0NsYXNzIl0sInNvdXJjZVJvb3QiOiIifQ==