| Server IP : 82.208.35.60 / Your IP : 216.73.216.89 Web Server : Apache/2.4.55 (FreeBSD) OpenSSL/1.1.1q-freebsd PHP/7.3.31 System : FreeBSD server7.d2m.cz 12.4-RELEASE-p9 FreeBSD 12.4-RELEASE-p9 GENERIC amd64 User : studiokobylisy_cz ( 1008) PHP Version : 7.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/air-sport_cz/www/admin939wizxmp/themes/new-theme/public/ |
Upload File : |
/*! For license information please see combination_edit.bundle.js.LICENSE.txt */
(()=>{var e={14322:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=u(r(99663)),n=u(r(22600)),o=u(r(26141));function u(e){return e&&e.__esModule?e:{default:e}}var a=window.$,p=function(){function e(){(0,i.default)(this,e),this.$selectorContainer=a(o.default.combinations.images.selectorContainer),this.init()}return(0,n.default)(e,[{key:"init",value:function(){a(o.default.combinations.images.checkboxContainer,this.$selectorContainer).hide(),this.$selectorContainer.on("click",o.default.combinations.images.imageChoice,(function(e){var t=a(e.currentTarget),r=a(o.default.combinations.images.checkbox,t),i=r.prop("checked");t.toggleClass("selected",!i),r.prop("checked",!i)}))}}]),e}();t.default=p},8690:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a(r(85861)),n=a(r(99663)),o=a(r(22600)),u=a(r(67285));function a(e){return e&&e.__esModule?e:{default:e}}var p=window.$,l=function(){function e(t,r){return(0,n.default)(this,e),this.forceUpdateDefault=r,this.suppliersMap=(0,u.default)(t),this.$productSuppliersCollection=p(this.suppliersMap.productSuppliersCollection),this.$supplierIdsGroup=p(this.suppliersMap.supplierIdsInput).closest(".form-group"),this.$defaultSupplierGroup=p(this.suppliersMap.defaultSupplierInput).closest(".form-group"),this.$productsTable=p(this.suppliersMap.productSuppliersTable),this.$productsTableBody=p(this.suppliersMap.productsSuppliersTableBody),this.suppliers=[],this.prototypeTemplate=this.$productSuppliersCollection.data("prototype"),this.prototypeName=this.$productSuppliersCollection.data("prototypeName"),this.defaultDataForSupplier=this.getDefaultDataForSupplier(),this.init(),{}}return(0,o.default)(e,[{key:"init",value:function(){var e=this;this.memorizeCurrentSuppliers(),this.toggleTableVisibility(),this.refreshDefaultSupplierBlock(),this.$initialDefault=this.$defaultSupplierGroup.find("input:checked").first(),this.$initialDefault.length&&this.$initialDefault.closest(this.suppliersMap.checkboxContainer).addClass(this.suppliersMap.defaultSupplierClass),this.$productsTable.on("change","input",(function(){e.memorizeCurrentSuppliers()})),this.$supplierIdsGroup.on("change","input",(function(t){var r=t.currentTarget;r.checked?e.addSupplier({supplierId:r.value,supplierName:r.dataset.label}):e.removeSupplier(r.value),e.renderSuppliers(),e.toggleTableVisibility(),e.refreshDefaultSupplierBlock()}))}},{key:"toggleTableVisibility",value:function(){0!==this.getSelectedSuppliers().length?this.showTable():this.hideTable()}},{key:"addSupplier",value:function(e){if(void 0===this.suppliers[e.supplierId]){var t=(0,i.default)(this.defaultDataForSupplier);t.supplierId=e.supplierId,t.supplierName=e.supplierName,this.suppliers[e.supplierId]=t}else this.suppliers[e.supplierId].removed=!1}},{key:"removeSupplier",value:function(e){this.suppliers[e].removed=!0}},{key:"renderSuppliers",value:function(){var e=this;this.$productsTableBody.empty(),this.getSelectedSuppliers().forEach((function(t){var r=e.suppliers[t.supplierId];if(!r.removed){var i=e.prototypeTemplate.replace(new RegExp(e.prototypeName,"g"),r.supplierId);e.$productsTableBody.append(i);var n=e.suppliersMap.productSupplierRow;p(n.supplierIdInput(r.supplierId)).val(r.supplierId),p(n.supplierNamePreview(r.supplierId)).html(r.supplierName),p(n.supplierNameInput(r.supplierId)).val(r.supplierName),p(n.productSupplierIdInput(r.supplierId)).val(r.productSupplierId),p(n.referenceInput(r.supplierId)).val(r.reference),p(n.priceInput(r.supplierId)).val(r.price),p(n.currencyIdInput(r.supplierId)).val(r.currencyId)}}))}},{key:"getSelectedSuppliers",value:function(){var e=[];return this.$supplierIdsGroup.find("input:checked").each((function(t,r){e.push({supplierName:r.dataset.label,supplierId:r.value})})),e}},{key:"refreshDefaultSupplierBlock",value:function(){var e=this,t=this.getSelectedSuppliers();if(0===t.length)return this.forceUpdateDefault&&this.$defaultSupplierGroup.find("input").prop("checked",!1),void this.hideDefaultSuppliers();this.showDefaultSuppliers();var r=t.map((function(e){return e.supplierId}));this.$defaultSupplierGroup.find("input").each((function(t,i){var n=r.includes(i.value);e.forceUpdateDefault&&!n&&(i.checked=!1),i.disabled=!n})),0===this.$defaultSupplierGroup.find("input:checked").length&&this.forceUpdateDefault&&this.checkFirstAvailableDefaultSupplier(r)}},{key:"hideDefaultSuppliers",value:function(){this.$defaultSupplierGroup.addClass("d-none")}},{key:"showDefaultSuppliers",value:function(){this.$defaultSupplierGroup.removeClass("d-none")}},{key:"checkFirstAvailableDefaultSupplier",value:function(e){var t=e[0];this.$defaultSupplierGroup.find('input[value="'+t+'"]').prop("checked",!0)}},{key:"showTable",value:function(){this.$productsTable.removeClass("d-none")}},{key:"hideTable",value:function(){this.$productsTable.addClass("d-none")}},{key:"memorizeCurrentSuppliers",value:function(){var e=this;this.getSelectedSuppliers().forEach((function(t){e.suppliers[t.supplierId]={supplierId:t.supplierId,productSupplierId:p(e.suppliersMap.productSupplierRow.productSupplierIdInput(t.supplierId)).val(),supplierName:p(e.suppliersMap.productSupplierRow.supplierNameInput(t.supplierId)).val(),reference:p(e.suppliersMap.productSupplierRow.referenceInput(t.supplierId)).val(),price:p(e.suppliersMap.productSupplierRow.priceInput(t.supplierId)).val(),currencyId:p(e.suppliersMap.productSupplierRow.currencyIdInput(t.supplierId)).val(),removed:!1}}))}},{key:"getDefaultDataForSupplier",value:function(){var e=(new DOMParser).parseFromString(this.prototypeTemplate,"text/html");return{removed:!1,productSupplierId:this.getDataFromRow(this.suppliersMap.productSupplierRow.productSupplierIdInput,e),reference:this.getDataFromRow(this.suppliersMap.productSupplierRow.referenceInput,e),price:this.getDataFromRow(this.suppliersMap.productSupplierRow.priceInput,e),currencyId:this.getDataFromRow(this.suppliersMap.productSupplierRow.currencyIdInput,e)}}},{key:"getDataFromRow",value:function(e,t){return t.querySelector(e(this.prototypeName)).value}}]),e}();t.default=l},26141:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={productForm:"form[name=product]",productTypeSelector:"#product_header_type",productType:{STANDARD:"standard",PACK:"pack",VIRTUAL:"virtual",COMBINATIONS:"combinations"},invalidField:".is-invalid",productFormSubmitButton:".product-form-save-button",navigationBar:"#form-nav",dropzoneImagesContainer:".product-image-dropzone",featureValues:{collectionContainer:".feature-values-collection",collectionRowsContainer:".feature-values-collection > .col-sm",collectionRow:"div.row.product-feature",featureSelect:"select.feature-selector",featureValueSelect:"select.feature-value-selector",customValueInput:".custom-values input",customFeatureIdInput:"input.custom-value-id",deleteFeatureValue:"button.delete-feature-value",addFeatureValue:".feature-value-add-button"},customizations:{customizationsContainer:".product-customizations-collection",customizationFieldsList:".product-customizations-collection ul",addCustomizationBtn:".add-customization-btn",removeCustomizationBtn:".remove-customization-btn",customizationFieldRow:".customization-field-row"},combinations:{navigationTab:"#combinations-tab-nav",externalCombinationTab:"#external-combination-tab",preloader:"#combinations-preloader",emptyState:"#combinations-empty-state",combinationsPaginatedList:"#combinations-paginated-list",combinationsContainer:"#combination_list",combinationsFiltersContainer:"#combinations_filters",combinationsGeneratorContainer:"#product_combinations_generator",combinationsTable:"#combination_list table",combinationsTableBody:"#combination_list table tbody",combinationIdInputsSelector:".combination-id-input",isDefaultInputsSelector:".combination-is-default-input",removeCombinationSelector:".remove-combination-item",combinationName:"form .card-header span",paginationContainer:"#combinations-pagination",loadingSpinner:"#productCombinationsLoading",quantityInputWrapper:".combination-quantity",impactOnPriceInputWrapper:".combination-impact-on-price",referenceInputWrapper:".combination-reference",sortableColumns:".ps-sortable-column",combinationItemForm:{quantityKey:"combination_item[quantity][value]",impactOnPriceKey:"combination_item[impact_on_price][value]",referenceKey:"combination_item[reference][value]",tokenKey:"combination_item[_token]"},editionForm:'form[name="combination_form"]',editionFormInputs:'form[name="combination_form"] input, form[name="combination_form"] textarea, form[name="combination_form"] select',editCombinationButtons:".edit-combination-item",tableRow:{combinationImg:".combination-image",combinationCheckbox:function(e){return"#combination_list_combinations_"+e+"_is_selected"},combinationIdInput:function(e){return"#combination_list_combinations_"+e+"_combination_id"},combinationNameInput:function(e){return"#combination_list_combinations_"+e+"_name"},referenceInput:function(e){return"#combination_list_combinations_"+e+"_reference_value"},impactOnPriceInput:function(e){return"#combination_list_combinations_"+e+"_impact_on_price_value"},finalPriceTeInput:function(e){return"#combination_list_combinations_"+e+"_final_price_te"},quantityInput:function(e){return"#combination_list_combinations_"+e+"_quantity_value"},isDefaultInput:function(e){return"#combination_list_combinations_"+e+"_is_default"},editButton:function(e){return"#combination_list_combinations_"+e+"_edit"},deleteButton:function(e){return"#combination_list_combinations_"+e+"_delete"}},editModal:"#combination-edit-modal",images:{selectorContainer:".combination-images-selector",imageChoice:".combination-image-choice",checkboxContainer:".form-check",checkbox:"input[type=checkbox]"},scrollBar:".attributes-list-overflow",searchInput:"#product-combinations-generate .attributes-search",generateCombinationsButton:".generate-combinations-button"},virtualProduct:{container:".virtual-product-file-container",fileContentContainer:".virtual-product-file-content"},dropzone:{configuration:{fileManager:".openfilemanager"},photoswipe:{element:".pswp"},dzTemplate:".dz-template",dzPreview:".dz-preview",sortableContainer:"#product-images-dropzone",sortableItems:"div.dz-preview:not(.disabled)",dropzoneContainer:".dropzone-container",checkbox:".md-checkbox input",shownTooltips:".tooltip.show",savedImageContainer:function(e){return'.dz-preview[data-id="'+e+'"]'},savedImage:function(e){return'.dz-preview[data-id="'+e+'"] img'},coveredPreview:".dz-preview.is-cover",windowFileManager:".dropzone-window-filemanager"},suppliers:{productSuppliers:"#product_options_suppliers",combinationSuppliers:"#combination_form_suppliers"},seo:{container:"#product_seo_serp",defaultTitle:".serp-default-title:input",watchedTitle:".serp-watched-title:input",defaultDescription:".serp-default-description",watchedDescription:".serp-watched-description",watchedMetaUrl:".serp-watched-url:input",redirectOption:{typeInput:"#product_seo_redirect_option_type",targetInput:"#product_seo_redirect_option_target"}},jsTabs:".js-tabs",jsArrow:".js-arrow",jsNavTabs:".js-nav-tabs",toggleTab:'[data-toggle="tab"]',formContentTab:"#form_content > .form-contenttab",leftArrow:".left-arrow",rightArrow:".right-arrow",footer:{previewUrlButton:".preview-url-button",deleteProductButton:".delete-product-button"},categories:{categoriesContainer:".js-categories-container",categoryTree:".js-categories-tree",treeElement:".category-tree-element",treeElementInputs:".category-tree-inputs",checkboxInput:"[type=checkbox]",checkedCheckboxInputs:"[type=checkbox]:checked",checkboxName:function(e){return"product[categories][product_categories]["+e+"][is_associated]"},materialCheckbox:".md-checkbox",radioInput:"[type=radio]",defaultRadioInput:"[type=radio]:checked",radioName:function(e){return"product[categories][product_categories]["+e+"][is_default]"},tagsContainer:"#categories-tags-container",searchInput:"#ps-select-product-category",fieldset:".tree-fieldset",loader:".categories-tree-loader",childrenList:".children-list",everyItems:".less, .more",expandAllButton:"#categories-tree-expand",reduceAllButton:"#categories-tree-reduce"},modules:{previewContainer:".module-render-container.all-modules",previewButton:".modules-list-button",selectorContainer:".module-selection",moduleSelector:".modules-list-select",selectorPreviews:".module-selection .module-render-container",selectorPreview:function(e){return".module-selection .module-render-container."+e},contentContainer:".module-contents",moduleContents:".module-contents .module-render-container",moduleContent:function(e){return".module-contents .module-render-container."+e}}}},67285:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e+"_product_suppliers",r=function(e,r){return t+"_"+e+"_"+r};return{productSuppliersCollection:""+t,supplierIdsInput:e+"_supplier_ids",defaultSupplierInput:e+"_default_supplier_id",productSuppliersTable:t+" table",productsSuppliersTableBody:t+" table tbody",defaultSupplierClass:"default-supplier",productSupplierRow:{supplierIdInput:function(e){return r(e,"supplier_id")},supplierNameInput:function(e){return r(e,"supplier_name")},productSupplierIdInput:function(e){return r(e,"product_supplier_id")},referenceInput:function(e){return r(e,"reference")},priceInput:function(e){return r(e,"price_tax_excluded")},currencyIdInput:function(e){return r(e,"currency_id")},supplierNamePreview:function(e){return"#product_supplier_row_"+e+" .supplier_name .preview"}},checkboxContainer:".form-check"}}},85861:(e,t,r)=>{e.exports={default:r(45627),__esModule:!0}},32242:(e,t,r)=>{e.exports={default:r(33391),__esModule:!0}},99663:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},22600:(e,t,r)=>{"use strict";t.__esModule=!0;var i,n=(i=r(32242))&&i.__esModule?i:{default:i};t.default=function(){function e(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),(0,n.default)(e,i.key,i)}}return function(t,r,i){return r&&e(t.prototype,r),i&&e(t,i),t}}()},45627:(e,t,r)=>{r(86760);var i=r(34579).Object;e.exports=function(e,t){return i.create(e,t)}},33391:(e,t,r)=>{r(31477);var i=r(34579).Object;e.exports=function(e,t,r){return i.defineProperty(e,t,r)}},85663:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},12159:(e,t,r)=>{var i=r(36727);e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},57428:(e,t,r)=>{var i=r(7932),n=r(78728),o=r(16531);e.exports=function(e){return function(t,r,u){var a,p=i(t),l=n(p.length),c=o(u,l);if(e&&r!=r){for(;l>c;)if((a=p[c++])!=a)return!0}else for(;l>c;c++)if((e||c in p)&&p[c]===r)return e||c||0;return!e&&-1}}},32894:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},34579:e=>{var t=e.exports={version:"2.6.11"};"number"==typeof __e&&(__e=t)},19216:(e,t,r)=>{var i=r(85663);e.exports=function(e,t,r){if(i(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,i){return e.call(t,r,i)};case 3:return function(r,i,n){return e.call(t,r,i,n)}}return function(){return e.apply(t,arguments)}}},8333:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},89666:(e,t,r)=>{e.exports=!r(7929)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},97467:(e,t,r)=>{var i=r(36727),n=r(33938).document,o=i(n)&&i(n.createElement);e.exports=function(e){return o?n.createElement(e):{}}},73338:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},83856:(e,t,r)=>{var i=r(33938),n=r(34579),o=r(19216),u=r(41818),a=r(27069),p=function(e,t,r){var l,c,s,d=e&p.F,f=e&p.G,m=e&p.S,b=e&p.P,h=e&p.B,v=e&p.W,_=f?n:n[t]||(n[t]={}),y=_.prototype,g=f?i:m?i[t]:(i[t]||{}).prototype;for(l in f&&(r=t),r)(c=!d&&g&&void 0!==g[l])&&a(_,l)||(s=c?g[l]:r[l],_[l]=f&&"function"!=typeof g[l]?r[l]:h&&c?o(s,i):v&&g[l]==s?function(e){var t=function(t,r,i){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,i)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(s):b&&"function"==typeof s?o(Function.call,s):s,b&&((_.virtual||(_.virtual={}))[l]=s,e&p.R&&y&&!y[l]&&u(y,l,s)))};p.F=1,p.G=2,p.S=4,p.P=8,p.B=16,p.W=32,p.U=64,p.R=128,e.exports=p},7929:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},33938:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},27069:e=>{var t={}.hasOwnProperty;e.exports=function(e,r){return t.call(e,r)}},41818:(e,t,r)=>{var i=r(4743),n=r(83101);e.exports=r(89666)?function(e,t,r){return i.f(e,t,n(1,r))}:function(e,t,r){return e[t]=r,e}},54881:(e,t,r)=>{var i=r(33938).document;e.exports=i&&i.documentElement},33758:(e,t,r)=>{e.exports=!r(89666)&&!r(7929)((function(){return 7!=Object.defineProperty(r(97467)("div"),"a",{get:function(){return 7}}).a}))},50799:(e,t,r)=>{var i=r(32894);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},36727:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},16227:e=>{e.exports=!0},98989:(e,t,r)=>{var i=r(12159),n=r(57856),o=r(73338),u=r(58989)("IE_PROTO"),a=function(){},p=function(){var e,t=r(97467)("iframe"),i=o.length;for(t.style.display="none",r(54881).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),p=e.F;i--;)delete p.prototype[o[i]];return p()};e.exports=Object.create||function(e,t){var r;return null!==e?(a.prototype=i(e),r=new a,a.prototype=null,r[u]=e):r=p(),void 0===t?r:n(r,t)}},4743:(e,t,r)=>{var i=r(12159),n=r(33758),o=r(33206),u=Object.defineProperty;t.f=r(89666)?Object.defineProperty:function(e,t,r){if(i(e),t=o(t,!0),i(r),n)try{return u(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},57856:(e,t,r)=>{var i=r(4743),n=r(12159),o=r(46162);e.exports=r(89666)?Object.defineProperties:function(e,t){n(e);for(var r,u=o(t),a=u.length,p=0;a>p;)i.f(e,r=u[p++],t[r]);return e}},12963:(e,t,r)=>{var i=r(27069),n=r(7932),o=r(57428)(!1),u=r(58989)("IE_PROTO");e.exports=function(e,t){var r,a=n(e),p=0,l=[];for(r in a)r!=u&&i(a,r)&&l.push(r);for(;t.length>p;)i(a,r=t[p++])&&(~o(l,r)||l.push(r));return l}},46162:(e,t,r)=>{var i=r(12963),n=r(73338);e.exports=Object.keys||function(e){return i(e,n)}},83101:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},58989:(e,t,r)=>{var i=r(20250)("keys"),n=r(65730);e.exports=function(e){return i[e]||(i[e]=n(e))}},20250:(e,t,r)=>{var i=r(34579),n=r(33938),o="__core-js_shared__",u=n[o]||(n[o]={});(e.exports=function(e,t){return u[e]||(u[e]=void 0!==t?t:{})})("versions",[]).push({version:i.version,mode:r(16227)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},16531:(e,t,r)=>{var i=r(11052),n=Math.max,o=Math.min;e.exports=function(e,t){return(e=i(e))<0?n(e+t,0):o(e,t)}},11052:e=>{var t=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:t)(e)}},7932:(e,t,r)=>{var i=r(50799),n=r(8333);e.exports=function(e){return i(n(e))}},78728:(e,t,r)=>{var i=r(11052),n=Math.min;e.exports=function(e){return e>0?n(i(e),9007199254740991):0}},33206:(e,t,r)=>{var i=r(36727);e.exports=function(e,t){if(!i(e))return e;var r,n;if(t&&"function"==typeof(r=e.toString)&&!i(n=r.call(e)))return n;if("function"==typeof(r=e.valueOf)&&!i(n=r.call(e)))return n;if(!t&&"function"==typeof(r=e.toString)&&!i(n=r.call(e)))return n;throw TypeError("Can't convert object to primitive value")}},65730:e=>{var t=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+r).toString(36))}},86760:(e,t,r)=>{var i=r(83856);i(i.S,"Object",{create:r(98989)})},31477:(e,t,r)=>{var i=r(83856);i(i.S+i.F*!r(89666),"Object",{defineProperty:r(4743).f})}},t={};function r(i){var n=t[i];if(void 0!==n)return n.exports;var o=t[i]={exports:{}};return e[i](o,o.exports,r),o.exports}(()=>{"use strict";var e=n(r(8690)),t=n(r(14322)),i=n(r(26141));function n(e){return e&&e.__esModule?e:{default:e}}(0,window.$)((function(){window.prestashop.component.initComponents(["TranslatableField","TinyMCEEditor","TranslatableInput","EventEmitter","TextWithLengthCounter"]),new e.default(i.default.suppliers.combinationSuppliers,!1),new t.default}))})(),window.combination_edit={}})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9wYWdlcy9wcm9kdWN0L2NvbWJpbmF0aW9uL2ltYWdlLXNlbGVjdG9yLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL3BhZ2VzL3Byb2R1Y3QvZWRpdC9wcm9kdWN0LXN1cHBsaWVycy1tYW5hZ2VyLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL3BhZ2VzL3Byb2R1Y3QvcHJvZHVjdC1tYXAuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvcGFnZXMvcHJvZHVjdC9zdXBwbGllcnMtbWFwLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvb2JqZWN0L2NyZWF0ZS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2NyZWF0ZS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hLWZ1bmN0aW9uLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYW4tb2JqZWN0LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYXJyYXktaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb2YuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb3JlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3R4LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2Rlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZG9tLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19leHBvcnQuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19mYWlscy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hhcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hpZGUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19odG1sLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pb2JqZWN0LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtb2JqZWN0LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbGlicmFyeS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZHAuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZHBzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qta2V5cy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zaGFyZWQta2V5LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2hhcmVkLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5vYmplY3QuZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovL1tuYW1lXS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9wYWdlcy9wcm9kdWN0L2NvbWJpbmF0aW9uL2VkaXQuanMiXSwibmFtZXMiOlsiJCIsIndpbmRvdyIsIkltYWdlU2VsZWN0b3IiLCJ0aGlzIiwiJHNlbGVjdG9yQ29udGFpbmVyIiwiUHJvZHVjdE1hcCIsImNvbWJpbmF0aW9ucyIsImltYWdlcyIsInNlbGVjdG9yQ29udGFpbmVyIiwiaW5pdCIsImNoZWNrYm94Q29udGFpbmVyIiwiaGlkZSIsIm9uIiwiaW1hZ2VDaG9pY2UiLCJldmVudCIsIiRpbWFnZUNob2ljZSIsImN1cnJlbnRUYXJnZXQiLCIkY2hlY2tib3giLCJjaGVja2JveCIsImlzQ2hlY2tlZCIsInByb3AiLCJ0b2dnbGVDbGFzcyIsIlByb2R1Y3RTdXBwbGllcnNNYW5hZ2VyIiwic3VwcGxpZXJzRm9ybUlkIiwiZm9yY2VVcGRhdGVEZWZhdWx0Iiwic3VwcGxpZXJzTWFwIiwiJHByb2R1Y3RTdXBwbGllcnNDb2xsZWN0aW9uIiwicHJvZHVjdFN1cHBsaWVyc0NvbGxlY3Rpb24iLCIkc3VwcGxpZXJJZHNHcm91cCIsInN1cHBsaWVySWRzSW5wdXQiLCJjbG9zZXN0IiwiJGRlZmF1bHRTdXBwbGllckdyb3VwIiwiZGVmYXVsdFN1cHBsaWVySW5wdXQiLCIkcHJvZHVjdHNUYWJsZSIsInByb2R1Y3RTdXBwbGllcnNUYWJsZSIsIiRwcm9kdWN0c1RhYmxlQm9keSIsInByb2R1Y3RzU3VwcGxpZXJzVGFibGVCb2R5Iiwic3VwcGxpZXJzIiwicHJvdG90eXBlVGVtcGxhdGUiLCJkYXRhIiwicHJvdG90eXBlTmFtZSIsImRlZmF1bHREYXRhRm9yU3VwcGxpZXIiLCJnZXREZWZhdWx0RGF0YUZvclN1cHBsaWVyIiwibWVtb3JpemVDdXJyZW50U3VwcGxpZXJzIiwidG9nZ2xlVGFibGVWaXNpYmlsaXR5IiwicmVmcmVzaERlZmF1bHRTdXBwbGllckJsb2NrIiwiJGluaXRpYWxEZWZhdWx0IiwiZmluZCIsImZpcnN0IiwibGVuZ3RoIiwiYWRkQ2xhc3MiLCJkZWZhdWx0U3VwcGxpZXJDbGFzcyIsImUiLCJpbnB1dCIsImNoZWNrZWQiLCJhZGRTdXBwbGllciIsInN1cHBsaWVySWQiLCJ2YWx1ZSIsInN1cHBsaWVyTmFtZSIsImRhdGFzZXQiLCJsYWJlbCIsInJlbW92ZVN1cHBsaWVyIiwicmVuZGVyU3VwcGxpZXJzIiwiZ2V0U2VsZWN0ZWRTdXBwbGllcnMiLCJzaG93VGFibGUiLCJoaWRlVGFibGUiLCJzdXBwbGllciIsIm5ld1N1cHBsaWVyIiwicmVtb3ZlZCIsImVtcHR5IiwiZm9yRWFjaCIsInNlbGVjdGVkU3VwcGxpZXIiLCJwcm9kdWN0U3VwcGxpZXJSb3ciLCJyZXBsYWNlIiwiUmVnRXhwIiwiYXBwZW5kIiwicm93TWFwIiwic3VwcGxpZXJJZElucHV0IiwidmFsIiwic3VwcGxpZXJOYW1lUHJldmlldyIsImh0bWwiLCJzdXBwbGllck5hbWVJbnB1dCIsInByb2R1Y3RTdXBwbGllcklkSW5wdXQiLCJwcm9kdWN0U3VwcGxpZXJJZCIsInJlZmVyZW5jZUlucHV0IiwicmVmZXJlbmNlIiwicHJpY2VJbnB1dCIsInByaWNlIiwiY3VycmVuY3lJZElucHV0IiwiY3VycmVuY3lJZCIsInNlbGVjdGVkU3VwcGxpZXJzIiwiZWFjaCIsImluZGV4IiwicHVzaCIsImhpZGVEZWZhdWx0U3VwcGxpZXJzIiwic2hvd0RlZmF1bHRTdXBwbGllcnMiLCJzZWxlY3RlZFN1cHBsaWVySWRzIiwibWFwIiwia2V5IiwiaXNWYWxpZCIsImluY2x1ZGVzIiwiZGlzYWJsZWQiLCJjaGVja0ZpcnN0QXZhaWxhYmxlRGVmYXVsdFN1cHBsaWVyIiwicmVtb3ZlQ2xhc3MiLCJmaXJzdFN1cHBsaWVySWQiLCJyb3dQcm90b3R5cGUiLCJET01QYXJzZXIiLCJwYXJzZUZyb21TdHJpbmciLCJnZXREYXRhRnJvbVJvdyIsInNlbGVjdG9yR2VuZXJhdG9yIiwicXVlcnlTZWxlY3RvciIsInByb2R1Y3RGb3JtIiwicHJvZHVjdFR5cGVTZWxlY3RvciIsInByb2R1Y3RUeXBlIiwiU1RBTkRBUkQiLCJQQUNLIiwiVklSVFVBTCIsIkNPTUJJTkFUSU9OUyIsImludmFsaWRGaWVsZCIsInByb2R1Y3RGb3JtU3VibWl0QnV0dG9uIiwibmF2aWdhdGlvbkJhciIsImRyb3B6b25lSW1hZ2VzQ29udGFpbmVyIiwiZmVhdHVyZVZhbHVlcyIsImNvbGxlY3Rpb25Db250YWluZXIiLCJjb2xsZWN0aW9uUm93c0NvbnRhaW5lciIsImNvbGxlY3Rpb25Sb3ciLCJmZWF0dXJlU2VsZWN0IiwiZmVhdHVyZVZhbHVlU2VsZWN0IiwiY3VzdG9tVmFsdWVJbnB1dCIsImN1c3RvbUZlYXR1cmVJZElucHV0IiwiZGVsZXRlRmVhdHVyZVZhbHVlIiwiYWRkRmVhdHVyZVZhbHVlIiwiY3VzdG9taXphdGlvbnMiLCJjdXN0b21pemF0aW9uc0NvbnRhaW5lciIsImN1c3RvbWl6YXRpb25GaWVsZHNMaXN0IiwiYWRkQ3VzdG9taXphdGlvbkJ0biIsInJlbW92ZUN1c3RvbWl6YXRpb25CdG4iLCJjdXN0b21pemF0aW9uRmllbGRSb3ciLCJuYXZpZ2F0aW9uVGFiIiwiZXh0ZXJuYWxDb21iaW5hdGlvblRhYiIsInByZWxvYWRlciIsImVtcHR5U3RhdGUiLCJjb21iaW5hdGlvbnNQYWdpbmF0ZWRMaXN0IiwiY29tYmluYXRpb25zQ29udGFpbmVyIiwiY29tYmluYXRpb25zRmlsdGVyc0NvbnRhaW5lciIsImNvbWJpbmF0aW9uc0dlbmVyYXRvckNvbnRhaW5lciIsImNvbWJpbmF0aW9uc1RhYmxlIiwiY29tYmluYXRpb25MaXN0SWQiLCJjb21iaW5hdGlvbnNUYWJsZUJvZHkiLCJjb21iaW5hdGlvbklkSW5wdXRzU2VsZWN0b3IiLCJpc0RlZmF1bHRJbnB1dHNTZWxlY3RvciIsInJlbW92ZUNvbWJpbmF0aW9uU2VsZWN0b3IiLCJjb21iaW5hdGlvbk5hbWUiLCJwYWdpbmF0aW9uQ29udGFpbmVyIiwibG9hZGluZ1NwaW5uZXIiLCJxdWFudGl0eUlucHV0V3JhcHBlciIsImltcGFjdE9uUHJpY2VJbnB1dFdyYXBwZXIiLCJyZWZlcmVuY2VJbnB1dFdyYXBwZXIiLCJzb3J0YWJsZUNvbHVtbnMiLCJjb21iaW5hdGlvbkl0ZW1Gb3JtIiwicXVhbnRpdHlLZXkiLCJpbXBhY3RPblByaWNlS2V5IiwicmVmZXJlbmNlS2V5IiwidG9rZW5LZXkiLCJlZGl0aW9uRm9ybSIsImVkaXRpb25Gb3JtSW5wdXRzIiwiZWRpdENvbWJpbmF0aW9uQnV0dG9ucyIsInRhYmxlUm93IiwiY29tYmluYXRpb25JbWciLCJjb21iaW5hdGlvbkNoZWNrYm94Iiwicm93SW5kZXgiLCJjb21iaW5hdGlvbklkSW5wdXQiLCJjb21iaW5hdGlvbk5hbWVJbnB1dCIsImltcGFjdE9uUHJpY2VJbnB1dCIsImZpbmFsUHJpY2VUZUlucHV0IiwicXVhbnRpdHlJbnB1dCIsImlzRGVmYXVsdElucHV0IiwiZWRpdEJ1dHRvbiIsImRlbGV0ZUJ1dHRvbiIsImVkaXRNb2RhbCIsInNjcm9sbEJhciIsInNlYXJjaElucHV0IiwiZ2VuZXJhdGVDb21iaW5hdGlvbnNCdXR0b24iLCJ2aXJ0dWFsUHJvZHVjdCIsImNvbnRhaW5lciIsImZpbGVDb250ZW50Q29udGFpbmVyIiwiZHJvcHpvbmUiLCJjb25maWd1cmF0aW9uIiwiZmlsZU1hbmFnZXIiLCJwaG90b3N3aXBlIiwiZWxlbWVudCIsImR6VGVtcGxhdGUiLCJkelByZXZpZXciLCJzb3J0YWJsZUNvbnRhaW5lciIsInNvcnRhYmxlSXRlbXMiLCJkcm9wem9uZUNvbnRhaW5lciIsInNob3duVG9vbHRpcHMiLCJzYXZlZEltYWdlQ29udGFpbmVyIiwiaW1hZ2VJZCIsInNhdmVkSW1hZ2UiLCJjb3ZlcmVkUHJldmlldyIsIndpbmRvd0ZpbGVNYW5hZ2VyIiwicHJvZHVjdFN1cHBsaWVycyIsImNvbWJpbmF0aW9uU3VwcGxpZXJzIiwic2VvIiwiZGVmYXVsdFRpdGxlIiwid2F0Y2hlZFRpdGxlIiwiZGVmYXVsdERlc2NyaXB0aW9uIiwid2F0Y2hlZERlc2NyaXB0aW9uIiwid2F0Y2hlZE1ldGFVcmwiLCJyZWRpcmVjdE9wdGlvbiIsInR5cGVJbnB1dCIsInRhcmdldElucHV0IiwianNUYWJzIiwianNBcnJvdyIsImpzTmF2VGFicyIsInRvZ2dsZVRhYiIsImZvcm1Db250ZW50VGFiIiwibGVmdEFycm93IiwicmlnaHRBcnJvdyIsImZvb3RlciIsInByZXZpZXdVcmxCdXR0b24iLCJkZWxldGVQcm9kdWN0QnV0dG9uIiwiY2F0ZWdvcmllcyIsImNhdGVnb3JpZXNDb250YWluZXIiLCJjYXRlZ29yeVRyZWUiLCJ0cmVlRWxlbWVudCIsInRyZWVFbGVtZW50SW5wdXRzIiwiY2hlY2tib3hJbnB1dCIsImNoZWNrZWRDaGVja2JveElucHV0cyIsImNoZWNrYm94TmFtZSIsImNhdGVnb3J5SWQiLCJtYXRlcmlhbENoZWNrYm94IiwicmFkaW9JbnB1dCIsImRlZmF1bHRSYWRpb0lucHV0IiwicmFkaW9OYW1lIiwidGFnc0NvbnRhaW5lciIsImZpZWxkc2V0IiwibG9hZGVyIiwiY2hpbGRyZW5MaXN0IiwiZXZlcnlJdGVtcyIsImV4cGFuZEFsbEJ1dHRvbiIsInJlZHVjZUFsbEJ1dHRvbiIsIm1vZHVsZXMiLCJwcmV2aWV3Q29udGFpbmVyIiwicHJldmlld0J1dHRvbiIsIm1vZHVsZVNlbGVjdG9yIiwic2VsZWN0b3JQcmV2aWV3cyIsInNlbGVjdG9yUHJldmlldyIsIm1vZHVsZUlkIiwiY29udGVudENvbnRhaW5lciIsIm1vZHVsZUNvbnRlbnRzIiwibW9kdWxlQ29udGVudCIsInByb2R1Y3RTdXBwbGllcnNJZCIsInByb2R1Y3RTdXBwbGllcklucHV0SWQiLCJzdXBwbGllckluZGV4IiwiaW5wdXROYW1lIiwibW9kdWxlIiwiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaW5zdGFuY2UiLCJDb25zdHJ1Y3RvciIsIlR5cGVFcnJvciIsIm9iaiIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwicHJvcHMiLCJpIiwiZGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsInByb3RvdHlwZSIsIiRPYmplY3QiLCJQIiwiRCIsImNyZWF0ZSIsIml0IiwiZGVzYyIsImRlZmluZVByb3BlcnR5IiwiaXNPYmplY3QiLCJ0b0lPYmplY3QiLCJ0b0xlbmd0aCIsInRvQWJzb2x1dGVJbmRleCIsIklTX0lOQ0xVREVTIiwiJHRoaXMiLCJlbCIsImZyb21JbmRleCIsIk8iLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvcmUiLCJ2ZXJzaW9uIiwiX19lIiwiYUZ1bmN0aW9uIiwiZm4iLCJ0aGF0IiwidW5kZWZpbmVkIiwiYSIsImIiLCJjIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJPYmplY3QiLCJnZXQiLCJkb2N1bWVudCIsImlzIiwiY3JlYXRlRWxlbWVudCIsInNwbGl0IiwiZ2xvYmFsIiwiY3R4IiwiaGFzIiwiJGV4cG9ydCIsInR5cGUiLCJuYW1lIiwic291cmNlIiwib3duIiwib3V0IiwiSVNfRk9SQ0VEIiwiRiIsIklTX0dMT0JBTCIsIkciLCJJU19TVEFUSUMiLCJTIiwiSVNfUFJPVE8iLCJJU19CSU5EIiwiQiIsIklTX1dSQVAiLCJXIiwiZXhwUHJvdG8iLCJDIiwiRnVuY3Rpb24iLCJ2aXJ0dWFsIiwiUiIsIlUiLCJleGVjIiwiTWF0aCIsInNlbGYiLCJfX2ciLCJoYXNPd25Qcm9wZXJ0eSIsImRQIiwiY3JlYXRlRGVzYyIsIm9iamVjdCIsImYiLCJkb2N1bWVudEVsZW1lbnQiLCJjb2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImFuT2JqZWN0IiwiZFBzIiwiZW51bUJ1Z0tleXMiLCJJRV9QUk9UTyIsIkVtcHR5IiwiY3JlYXRlRGljdCIsImlmcmFtZURvY3VtZW50IiwiaWZyYW1lIiwic3R5bGUiLCJkaXNwbGF5Iiwic3JjIiwiY29udGVudFdpbmRvdyIsIm9wZW4iLCJ3cml0ZSIsImx0IiwiY2xvc2UiLCJQcm9wZXJ0aWVzIiwicmVzdWx0IiwiSUU4X0RPTV9ERUZJTkUiLCJ0b1ByaW1pdGl2ZSIsIkF0dHJpYnV0ZXMiLCJnZXRLZXlzIiwia2V5cyIsImFycmF5SW5kZXhPZiIsIm5hbWVzIiwiJGtleXMiLCJiaXRtYXAiLCJzaGFyZWQiLCJ1aWQiLCJTSEFSRUQiLCJzdG9yZSIsIm1vZGUiLCJjb3B5cmlnaHQiLCJ0b0ludGVnZXIiLCJtYXgiLCJtaW4iLCJjZWlsIiwiZmxvb3IiLCJpc05hTiIsIklPYmplY3QiLCJkZWZpbmVkIiwidmFsdWVPZiIsImlkIiwicHgiLCJyYW5kb20iLCJjb25jYXQiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwiY2FjaGVkTW9kdWxlIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsInByZXN0YXNob3AiLCJjb21wb25lbnQiLCJpbml0Q29tcG9uZW50cyJdLCJtYXBwaW5ncyI6IjsrSEF5QkEsVSx1REFFT0EsRUFBS0MsT0FBTEQsRUFFY0UsRSxXQUNuQixjQUFjLHFCQUNaQyxLQUFLQyxtQkFBcUJKLEVBQUVLLFVBQVdDLGFBQWFDLE9BQU9DLG1CQUMzREwsS0FBS00sTyxvREFJTFQsRUFBRUssVUFBV0MsYUFBYUMsT0FBT0csa0JBQW1CUCxLQUFLQyxvQkFBb0JPLE9BQzdFUixLQUFLQyxtQkFBbUJRLEdBQUcsUUFBU1AsVUFBV0MsYUFBYUMsT0FBT00sYUFBYSxTQUFDQyxHQUMvRSxJQUFNQyxFQUFlZixFQUFFYyxFQUFNRSxlQUN2QkMsRUFBWWpCLEVBQUVLLFVBQVdDLGFBQWFDLE9BQU9XLFNBQVVILEdBRXZESSxFQUFZRixFQUFVRyxLQUFLLFdBQ2pDTCxFQUFhTSxZQUFZLFlBQWFGLEdBQ3RDRixFQUFVRyxLQUFLLFdBQVlELFUsZUFkWmpCLEcsK0hDSnJCLFUsdURBRU9GLEVBQUtDLE9BQUxELEVBRWNzQixFLFdBUW5CLFdBQVlDLEVBQWlCQyxHQWdCM0IsT0FoQitDLHFCQUMvQ3JCLEtBQUtxQixtQkFBcUJBLEVBQzFCckIsS0FBS3NCLGNBQWUsYUFBYUYsR0FDakNwQixLQUFLdUIsNEJBQThCMUIsRUFBRUcsS0FBS3NCLGFBQWFFLDRCQUN2RHhCLEtBQUt5QixrQkFBb0I1QixFQUFFRyxLQUFLc0IsYUFBYUksa0JBQWtCQyxRQUFRLGVBQ3ZFM0IsS0FBSzRCLHNCQUF3Qi9CLEVBQUVHLEtBQUtzQixhQUFhTyxzQkFBc0JGLFFBQVEsZUFDL0UzQixLQUFLOEIsZUFBaUJqQyxFQUFFRyxLQUFLc0IsYUFBYVMsdUJBQzFDL0IsS0FBS2dDLG1CQUFxQm5DLEVBQUVHLEtBQUtzQixhQUFhVyw0QkFFOUNqQyxLQUFLa0MsVUFBWSxH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UUFHckIsSUFBSUQsRUFBUzZJLEVBQXlCckosR0FBWSxDQUdqRFMsUUFBUyxJQU9WLE9BSEErSSxFQUFvQnhKLEdBQVVRLEVBQVFBLEVBQU9DLFFBQVM2SSxHQUcvQzlJLEVBQU9DLFEsbUJDSWYsSSxJQUFBLFMsSUFDQSxVLElBQ0EsVSxvREFJQWxRLEVBRllDLE9BQUxELElBRUwsV0FDQUMsT0FBT2laLFdBQVdDLFVBQVVDLGVBQWUsQ0FDekMsb0JBQ0EsZ0JBQ0Esb0JBQ0EsZUFDQSwwQkFHRixJQUFJOVgsVUFBd0JqQixVQUFXZ0MsVUFBVXNLLHNCQUFzQixHQUN2RSxJQUFJek0sYyIsImZpbGUiOiJjb21iaW5hdGlvbl9lZGl0LmJ1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cblxuaW1wb3J0IFByb2R1Y3RNYXAgZnJvbSAnQHBhZ2VzL3Byb2R1Y3QvcHJvZHVjdC1tYXAnO1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEltYWdlU2VsZWN0b3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiRzZWxlY3RvckNvbnRhaW5lciA9ICQoUHJvZHVjdE1hcC5jb21iaW5hdGlvbnMuaW1hZ2VzLnNlbGVjdG9yQ29udGFpbmVyKTtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIGluaXQoKSB7XG4gICAgJChQcm9kdWN0TWFwLmNvbWJpbmF0aW9ucy5pbWFnZXMuY2hlY2tib3hDb250YWluZXIsIHRoaXMuJHNlbGVjdG9yQ29udGFpbmVyKS5oaWRlKCk7XG4gICAgdGhpcy4kc2VsZWN0b3JDb250YWluZXIub24oJ2NsaWNrJywgUHJvZHVjdE1hcC5jb21iaW5hdGlvbnMuaW1hZ2VzLmltYWdlQ2hvaWNlLCAoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0ICRpbWFnZUNob2ljZSA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICBjb25zdCAkY2hlY2tib3ggPSAkKFByb2R1Y3RNYXAuY29tYmluYXRpb25zLmltYWdlcy5jaGVja2JveCwgJGltYWdlQ2hvaWNlKTtcblxuICAgICAgY29uc3QgaXNDaGVja2VkID0gJGNoZWNrYm94LnByb3AoJ2NoZWNrZWQnKTtcbiAgICAgICRpbWFnZUNob2ljZS50b2dnbGVDbGFzcygnc2VsZWN0ZWQnLCAhaXNDaGVja2VkKTtcbiAgICAgICRjaGVja2JveC5wcm9wKCdjaGVja2VkJywgIWlzQ2hlY2tlZCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cblxuaW1wb3J0IFN1cHBsaWVyc01hcCBmcm9tICdAcGFnZXMvcHJvZHVjdC9zdXBwbGllcnMtbWFwJztcblxuY29uc3QgeyR9ID0gd2luZG93O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm9kdWN0U3VwcGxpZXJzTWFuYWdlciB7XG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3VwcGxpZXJzRm9ybUlkXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZm9yY2VVcGRhdGVEZWZhdWx0XG4gICAqXG4gICAqIEByZXR1cm5zIHt7fX1cbiAgICovXG4gIGNvbnN0cnVjdG9yKHN1cHBsaWVyc0Zvcm1JZCwgZm9yY2VVcGRhdGVEZWZhdWx0KSB7XG4gICAgdGhpcy5mb3JjZVVwZGF0ZURlZmF1bHQgPSBmb3JjZVVwZGF0ZURlZmF1bHQ7XG4gICAgdGhpcy5zdXBwbGllcnNNYXAgPSBTdXBwbGllcnNNYXAoc3VwcGxpZXJzRm9ybUlkKTtcbiAgICB0aGlzLiRwcm9kdWN0U3VwcGxpZXJzQ29sbGVjdGlvbiA9ICQodGhpcy5zdXBwbGllcnNNYXAucHJvZHVjdFN1cHBsaWVyc0NvbGxlY3Rpb24pO1xuICAgIHRoaXMuJHN1cHBsaWVySWRzR3JvdXAgPSAkKHRoaXMuc3VwcGxpZXJzTWFwLnN1cHBsaWVySWRzSW5wdXQpLmNsb3Nlc3QoJy5mb3JtLWdyb3VwJyk7XG4gICAgdGhpcy4kZGVmYXVsdFN1cHBsaWVyR3JvdXAgPSAkKHRoaXMuc3VwcGxpZXJzTWFwLmRlZmF1bHRTdXBwbGllcklucHV0KS5jbG9zZXN0KCcuZm9ybS1ncm91cCcpO1xuICAgIHRoaXMuJHByb2R1Y3RzVGFibGUgPSAkKHRoaXMuc3VwcGxpZXJzTWFwLnByb2R1Y3RTdXBwbGllcnNUYWJsZSk7XG4gICAgdGhpcy4kcHJvZHVjdHNUYWJsZUJvZHkgPSAkKHRoaXMuc3VwcGxpZXJzTWFwLnByb2R1Y3RzU3VwcGxpZXJzVGFibGVCb2R5KTtcblxuICAgIHRoaXMuc3VwcGxpZXJzID0gW107XG4gICAgdGhpcy5wcm90b3R5cGVUZW1wbGF0ZSA9IHRoaXMuJHByb2R1Y3RTdXBwbGllcnNDb2xsZWN0aW9uLmRhdGEoJ3Byb3RvdHlwZScpO1xuICAgIHRoaXMucHJvdG90eXBlTmFtZSA9IHRoaXMuJHByb2R1Y3RTdXBwbGllcnNDb2xsZWN0aW9uLmRhdGEoJ3Byb3RvdHlwZU5hbWUnKTtcbiAgICB0aGlzLmRlZmF1bHREYXRhRm9yU3VwcGxpZXIgPSB0aGlzLmdldERlZmF1bHREYXRhRm9yU3VwcGxpZXIoKTtcblxuICAgIHRoaXMuaW5pdCgpO1xuXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgaW5pdCgpIHtcbiAgICB0aGlzLm1lbW9yaXplQ3VycmVudFN1cHBsaWVycygpO1xuICAgIHRoaXMudG9nZ2xlVGFibGVWaXNpYmlsaXR5KCk7XG4gICAgdGhpcy5yZWZyZXNoRGVmYXVsdFN1cHBsaWVyQmxvY2soKTtcblxuICAgIHRoaXMuJGluaXRpYWxEZWZhdWx0ID0gdGhpcy4kZGVmYXVsdFN1cHBsaWVyR3JvdXAuZmluZCgnaW5wdXQ6Y2hlY2tlZCcpLmZpcnN0KCk7XG4gICAgaWYgKHRoaXMuJGluaXRpYWxEZWZhdWx0Lmxlbmd0aCkge1xuICAgICAgdGhpcy4kaW5pdGlhbERlZmF1bHRcbiAgICAgICAgLmNsb3Nlc3QodGhpcy5zdXBwbGllcnNNYXAuY2hlY2tib3hDb250YWluZXIpXG4gICAgICAgIC5hZGRDbGFzcyh0aGlzLnN1cHBsaWVyc01hcC5kZWZhdWx0U3VwcGxpZXJDbGFzcyk7XG4gICAgfVxuXG4gICAgdGhpcy4kcHJvZHVjdHNUYWJsZS5vbignY2hhbmdlJywgJ2lucHV0JywgKCkgPT4ge1xuICAgICAgdGhpcy5tZW1vcml6ZUN1cnJlbnRTdXBwbGllcnMoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuJHN1cHBsaWVySWRzR3JvdXAub24oJ2NoYW5nZScsICdpbnB1dCcsIChlKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IGUuY3VycmVudFRhcmdldDtcblxuICAgICAgaWYgKGlucHV0LmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5hZGRTdXBwbGllcih7XG4gICAgICAgICAgc3VwcGxpZXJJZDogaW5wdXQudmFsdWUsXG4gICAgICAgICAgc3VwcGxpZXJOYW1lOiBpbnB1dC5kYXRhc2V0LmxhYmVsLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlU3VwcGxpZXIoaW5wdXQudmFsdWUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlbmRlclN1cHBsaWVycygpO1xuICAgICAgdGhpcy50b2dnbGVUYWJsZVZpc2liaWxpdHkoKTtcbiAgICAgIHRoaXMucmVmcmVzaERlZmF1bHRTdXBwbGllckJsb2NrKCk7XG4gICAgfSk7XG4gIH1cblxuICB0b2dnbGVUYWJsZVZpc2liaWxpdHkoKSB7XG4gICAgaWYgKHRoaXMuZ2V0U2VsZWN0ZWRTdXBwbGllcnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuaGlkZVRhYmxlKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dUYWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzdXBwbGllclxuICAgKi9cbiAgYWRkU3VwcGxpZXIoc3VwcGxpZXIpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuc3VwcGxpZXJzW3N1cHBsaWVyLnN1cHBsaWVySWRdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3QgbmV3U3VwcGxpZXIgPSBPYmplY3QuY3JlYXRlKHRoaXMuZGVmYXVsdERhdGFGb3JTdXBwbGllcik7XG4gICAgICBuZXdTdXBwbGllci5zdXBwbGllcklkID0gc3VwcGxpZXIuc3VwcGxpZXJJZDtcbiAgICAgIG5ld1N1cHBsaWVyLnN1cHBsaWVyTmFtZSA9IHN1cHBsaWVyLnN1cHBsaWVyTmFtZTtcblxuICAgICAgdGhpcy5zdXBwbGllcnNbc3VwcGxpZXIuc3VwcGxpZXJJZF0gPSBuZXdTdXBwbGllcjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdXBwbGllcnNbc3VwcGxpZXIuc3VwcGxpZXJJZF0ucmVtb3ZlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2ludH0gc3VwcGxpZXJJZFxuICAgKi9cbiAgcmVtb3ZlU3VwcGxpZXIoc3VwcGxpZXJJZCkge1xuICAgIHRoaXMuc3VwcGxpZXJzW3N1cHBsaWVySWRdLnJlbW92ZWQgPSB0cnVlO1xuICB9XG5cbiAgcmVuZGVyU3VwcGxpZXJzKCkge1xuICAgIHRoaXMuJHByb2R1Y3RzVGFibGVCb2R5LmVtcHR5KCk7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggc2VsZWN0IHN1cHBsaWVycyBzbyB0aGF0IHdlIHVzZSB0aGUgc2FtZSBvcmRlciBhcyBpbiB0aGUgc2VsZWN0IGxpc3RcbiAgICB0aGlzLmdldFNlbGVjdGVkU3VwcGxpZXJzKCkuZm9yRWFjaCgoc2VsZWN0ZWRTdXBwbGllcikgPT4ge1xuICAgICAgY29uc3Qgc3VwcGxpZXIgPSB0aGlzLnN1cHBsaWVyc1tzZWxlY3RlZFN1cHBsaWVyLnN1cHBsaWVySWRdO1xuXG4gICAgICBpZiAoc3VwcGxpZXIucmVtb3ZlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb2R1Y3RTdXBwbGllclJvdyA9IHRoaXMucHJvdG90eXBlVGVtcGxhdGUucmVwbGFjZShcbiAgICAgICAgbmV3IFJlZ0V4cCh0aGlzLnByb3RvdHlwZU5hbWUsICdnJyksXG4gICAgICAgIHN1cHBsaWVyLnN1cHBsaWVySWQsXG4gICAgICApO1xuXG4gICAgICB0aGlzLiRwcm9kdWN0c1RhYmxlQm9keS5hcHBlbmQocHJvZHVjdFN1cHBsaWVyUm93KTtcbiAgICAgIC8vIEZpbGwgaW5wdXRzXG4gICAgICBjb25zdCByb3dNYXAgPSB0aGlzLnN1cHBsaWVyc01hcC5wcm9kdWN0U3VwcGxpZXJSb3c7XG4gICAgICAkKHJvd01hcC5zdXBwbGllcklkSW5wdXQoc3VwcGxpZXIuc3VwcGxpZXJJZCkpLnZhbChzdXBwbGllci5zdXBwbGllcklkKTtcbiAgICAgICQocm93TWFwLnN1cHBsaWVyTmFtZVByZXZpZXcoc3VwcGxpZXIuc3VwcGxpZXJJZCkpLmh0bWwoc3VwcGxpZXIuc3VwcGxpZXJOYW1lKTtcbiAgICAgICQocm93TWFwLnN1cHBsaWVyTmFtZUlucHV0KHN1cHBsaWVyLnN1cHBsaWVySWQpKS52YWwoc3VwcGxpZXIuc3VwcGxpZXJOYW1lKTtcbiAgICAgICQocm93TWFwLnByb2R1Y3RTdXBwbGllcklkSW5wdXQoc3VwcGxpZXIuc3VwcGxpZXJJZCkpLnZhbChzdXBwbGllci5wcm9kdWN0U3VwcGxpZXJJZCk7XG4gICAgICAkKHJvd01hcC5yZWZlcmVuY2VJbnB1dChzdXBwbGllci5zdXBwbGllcklkKSkudmFsKHN1cHBsaWVyLnJlZmVyZW5jZSk7XG4gICAgICAkKHJvd01hcC5wcmljZUlucHV0KHN1cHBsaWVyLnN1cHBsaWVySWQpKS52YWwoc3VwcGxpZXIucHJpY2UpO1xuICAgICAgJChyb3dNYXAuY3VycmVuY3lJZElucHV0KHN1cHBsaWVyLnN1cHBsaWVySWQpKS52YWwoc3VwcGxpZXIuY3VycmVuY3lJZCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRTZWxlY3RlZFN1cHBsaWVycygpIHtcbiAgICBjb25zdCBzZWxlY3RlZFN1cHBsaWVycyA9IFtdO1xuICAgIHRoaXMuJHN1cHBsaWVySWRzR3JvdXAuZmluZCgnaW5wdXQ6Y2hlY2tlZCcpLmVhY2goKGluZGV4LCBpbnB1dCkgPT4ge1xuICAgICAgc2VsZWN0ZWRTdXBwbGllcnMucHVzaCh7XG4gICAgICAgIHN1cHBsaWVyTmFtZTogaW5wdXQuZGF0YXNldC5sYWJlbCxcbiAgICAgICAgc3VwcGxpZXJJZDogaW5wdXQudmFsdWUsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzZWxlY3RlZFN1cHBsaWVycztcbiAgfVxuXG4gIHJlZnJlc2hEZWZhdWx0U3VwcGxpZXJCbG9jaygpIHtcbiAgICBjb25zdCBzdXBwbGllcnMgPSB0aGlzLmdldFNlbGVjdGVkU3VwcGxpZXJzKCk7XG5cbiAgICBpZiAoc3VwcGxpZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKHRoaXMuZm9yY2VVcGRhdGVEZWZhdWx0KSB7XG4gICAgICAgIHRoaXMuJGRlZmF1bHRTdXBwbGllckdyb3VwLmZpbmQoJ2lucHV0JykucHJvcCgnY2hlY2tlZCcsIGZhbHNlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaGlkZURlZmF1bHRTdXBwbGllcnMoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd0RlZmF1bHRTdXBwbGllcnMoKTtcbiAgICBjb25zdCBzZWxlY3RlZFN1cHBsaWVySWRzID0gc3VwcGxpZXJzLm1hcCgoc3VwcGxpZXIpID0+IHN1cHBsaWVyLnN1cHBsaWVySWQpO1xuXG4gICAgdGhpcy4kZGVmYXVsdFN1cHBsaWVyR3JvdXAuZmluZCgnaW5wdXQnKS5lYWNoKChrZXksIGlucHV0KSA9PiB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gc2VsZWN0ZWRTdXBwbGllcklkcy5pbmNsdWRlcyhpbnB1dC52YWx1ZSk7XG5cbiAgICAgIGlmICh0aGlzLmZvcmNlVXBkYXRlRGVmYXVsdCAmJiAhaXNWYWxpZCkge1xuICAgICAgICBpbnB1dC5jaGVja2VkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpbnB1dC5kaXNhYmxlZCA9ICFpc1ZhbGlkO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuJGRlZmF1bHRTdXBwbGllckdyb3VwLmZpbmQoJ2lucHV0OmNoZWNrZWQnKS5sZW5ndGggPT09IDAgJiYgdGhpcy5mb3JjZVVwZGF0ZURlZmF1bHQpIHtcbiAgICAgIHRoaXMuY2hlY2tGaXJzdEF2YWlsYWJsZURlZmF1bHRTdXBwbGllcihzZWxlY3RlZFN1cHBsaWVySWRzKTtcbiAgICB9XG4gIH1cblxuICBoaWRlRGVmYXVsdFN1cHBsaWVycygpIHtcbiAgICB0aGlzLiRkZWZhdWx0U3VwcGxpZXJHcm91cC5hZGRDbGFzcygnZC1ub25lJyk7XG4gIH1cblxuICBzaG93RGVmYXVsdFN1cHBsaWVycygpIHtcbiAgICB0aGlzLiRkZWZhdWx0U3VwcGxpZXJHcm91cC5yZW1vdmVDbGFzcygnZC1ub25lJyk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbnRbXX0gc2VsZWN0ZWRTdXBwbGllcklkc1xuICAgKi9cbiAgY2hlY2tGaXJzdEF2YWlsYWJsZURlZmF1bHRTdXBwbGllcihzZWxlY3RlZFN1cHBsaWVySWRzKSB7XG4gICAgY29uc3QgZmlyc3RTdXBwbGllcklkID0gc2VsZWN0ZWRTdXBwbGllcklkc1swXTtcbiAgICB0aGlzLiRkZWZhdWx0U3VwcGxpZXJHcm91cC5maW5kKGBpbnB1dFt2YWx1ZT1cIiR7Zmlyc3RTdXBwbGllcklkfVwiXWApLnByb3AoJ2NoZWNrZWQnLCB0cnVlKTtcbiAgfVxuXG4gIHNob3dUYWJsZSgpIHtcbiAgICB0aGlzLiRwcm9kdWN0c1RhYmxlLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTtcbiAgfVxuXG4gIGhpZGVUYWJsZSgpIHtcbiAgICB0aGlzLiRwcm9kdWN0c1RhYmxlLmFkZENsYXNzKCdkLW5vbmUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZW1vcml6ZSBzdXBwbGllcnMgdG8gYmUgYWJsZSB0byByZS1yZW5kZXIgdGhlbSBsYXRlci5cbiAgICogRmxhZyBgcmVtb3ZlZGAgYWxsb3dzIGlkZW50aWZ5aW5nIHdoZXRoZXIgc3VwcGxpZXIgd2FzIHJlbW92ZWQgZnJvbSBsaXN0IG9yIHNob3VsZCBiZSByZW5kZXJlZFxuICAgKi9cbiAgbWVtb3JpemVDdXJyZW50U3VwcGxpZXJzKCkge1xuICAgIHRoaXMuZ2V0U2VsZWN0ZWRTdXBwbGllcnMoKS5mb3JFYWNoKChzdXBwbGllcikgPT4ge1xuICAgICAgdGhpcy5zdXBwbGllcnNbc3VwcGxpZXIuc3VwcGxpZXJJZF0gPSB7XG4gICAgICAgIHN1cHBsaWVySWQ6IHN1cHBsaWVyLnN1cHBsaWVySWQsXG4gICAgICAgIHByb2R1Y3RTdXBwbGllcklkOiAkKHRoaXMuc3VwcGxpZXJzTWFwLnByb2R1Y3RTdXBwbGllclJvdy5wcm9kdWN0U3VwcGxpZXJJZElucHV0KHN1cHBsaWVyLnN1cHBsaWVySWQpKS52YWwoKSxcbiAgICAgICAgc3VwcGxpZXJOYW1lOiAkKHRoaXMuc3VwcGxpZXJzTWFwLnByb2R1Y3RTdXBwbGllclJvdy5zdXBwbGllck5hbWVJbnB1dChzdXBwbGllci5zdXBwbGllcklkKSkudmFsKCksXG4gICAgICAgIHJlZmVyZW5jZTogJCh0aGlzLnN1cHBsaWVyc01hcC5wcm9kdWN0U3VwcGxpZXJSb3cucmVmZXJlbmNlSW5wdXQoc3VwcGxpZXIuc3VwcGxpZXJJZCkpLnZhbCgpLFxuICAgICAgICBwcmljZTogJCh0aGlzLnN1cHBsaWVyc01hcC5wcm9kdWN0U3VwcGxpZXJSb3cucHJpY2VJbnB1dChzdXBwbGllci5zdXBwbGllcklkKSkudmFsKCksXG4gICAgICAgIGN1cnJlbmN5SWQ6ICQodGhpcy5zdXBwbGllcnNNYXAucHJvZHVjdFN1cHBsaWVyUm93LmN1cnJlbmN5SWRJbnB1dChzdXBwbGllci5zdXBwbGllcklkKSkudmFsKCksXG4gICAgICAgIHJlbW92ZWQ6IGZhbHNlLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBcInNoYWRvd1wiIHByb3RvdHlwZSBqdXN0IHRvIHBhcnNlIGRlZmF1bHQgdmFsdWVzIHNldCBpbnNpZGUgdGhlIGlucHV0IGZpZWxkcyxcbiAgICogdGhpcyBhbGxvdyB0byBidWlsZCBhbiBvYmplY3Qgd2l0aCBkZWZhdWx0IHZhbHVlcyBzZXQgaW4gdGhlIEZvcm1UeXBlXG4gICAqXG4gICAqIEByZXR1cm5zIHt7cmVmZXJlbmNlLCByZW1vdmVkOiBib29sZWFuLCBwcmljZSwgY3VycmVuY3lJZCwgcHJvZHVjdFN1cHBsaWVySWR9fVxuICAgKi9cbiAgZ2V0RGVmYXVsdERhdGFGb3JTdXBwbGllcigpIHtcbiAgICBjb25zdCByb3dQcm90b3R5cGUgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgICAgdGhpcy5wcm90b3R5cGVUZW1wbGF0ZSxcbiAgICAgICd0ZXh0L2h0bWwnLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVtb3ZlZDogZmFsc2UsXG4gICAgICBwcm9kdWN0U3VwcGxpZXJJZDogdGhpcy5nZXREYXRhRnJvbVJvdyh0aGlzLnN1cHBsaWVyc01hcC5wcm9kdWN0U3VwcGxpZXJSb3cucHJvZHVjdFN1cHBsaWVySWRJbnB1dCwgcm93UHJvdG90eXBlKSxcbiAgICAgIHJlZmVyZW5jZTogdGhpcy5nZXREYXRhRnJvbVJvdyh0aGlzLnN1cHBsaWVyc01hcC5wcm9kdWN0U3VwcGxpZXJSb3cucmVmZXJlbmNlSW5wdXQsIHJvd1Byb3RvdHlwZSksXG4gICAgICBwcmljZTogdGhpcy5nZXREYXRhRnJvbVJvdyh0aGlzLnN1cHBsaWVyc01hcC5wcm9kdWN0U3VwcGxpZXJSb3cucHJpY2VJbnB1dCwgcm93UHJvdG90eXBlKSxcbiAgICAgIGN1cnJlbmN5SWQ6IHRoaXMuZ2V0RGF0YUZyb21Sb3codGhpcy5zdXBwbGllcnNNYXAucHJvZHVjdFN1cHBsaWVyUm93LmN1cnJlbmN5SWRJbnB1dCwgcm93UHJvdG90eXBlKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBzZWxlY3RvckdlbmVyYXRvciB7ZnVuY3Rpb259XG4gICAqIEBwYXJhbSByb3dQcm90b3R5cGUge0RvY3VtZW50fVxuICAgKlxuICAgKiBAcmV0dXJucyB7Kn1cbiAgICovXG4gIGdldERhdGFGcm9tUm93KHNlbGVjdG9yR2VuZXJhdG9yLCByb3dQcm90b3R5cGUpIHtcbiAgICByZXR1cm4gcm93UHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3JHZW5lcmF0b3IodGhpcy5wcm90b3R5cGVOYW1lKSkudmFsdWU7XG4gIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cblxuY29uc3QgY29tYmluYXRpb25MaXN0SWQgPSAnI2NvbWJpbmF0aW9uX2xpc3QnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHByb2R1Y3RGb3JtOiAnZm9ybVtuYW1lPXByb2R1Y3RdJyxcbiAgcHJvZHVjdFR5cGVTZWxlY3RvcjogJyNwcm9kdWN0X2hlYWRlcl90eXBlJyxcbiAgcHJvZHVjdFR5cGU6IHtcbiAgICBTVEFOREFSRDogJ3N0YW5kYXJkJyxcbiAgICBQQUNLOiAncGFjaycsXG4gICAgVklSVFVBTDogJ3ZpcnR1YWwnLFxuICAgIENPTUJJTkFUSU9OUzogJ2NvbWJpbmF0aW9ucycsXG4gIH0sXG4gIGludmFsaWRGaWVsZDogJy5pcy1pbnZhbGlkJyxcbiAgcHJvZHVjdEZvcm1TdWJtaXRCdXR0b246ICcucHJvZHVjdC1mb3JtLXNhdmUtYnV0dG9uJyxcbiAgbmF2aWdhdGlvbkJhcjogJyNmb3JtLW5hdicsXG4gIGRyb3B6b25lSW1hZ2VzQ29udGFpbmVyOiAnLnByb2R1Y3QtaW1hZ2UtZHJvcHpvbmUnLFxuICBmZWF0dXJlVmFsdWVzOiB7XG4gICAgY29sbGVjdGlvbkNvbnRhaW5lcjogJy5mZWF0dXJlLXZhbHVlcy1jb2xsZWN0aW9uJyxcbiAgICBjb2xsZWN0aW9uUm93c0NvbnRhaW5lcjogJy5mZWF0dXJlLXZhbHVlcy1jb2xsZWN0aW9uID4gLmNvbC1zbScsXG4gICAgY29sbGVjdGlvblJvdzogJ2Rpdi5yb3cucHJvZHVjdC1mZWF0dXJlJyxcbiAgICBmZWF0dXJlU2VsZWN0OiAnc2VsZWN0LmZlYXR1cmUtc2VsZWN0b3InLFxuICAgIGZlYXR1cmVWYWx1ZVNlbGVjdDogJ3NlbGVjdC5mZWF0dXJlLXZhbHVlLXNlbGVjdG9yJyxcbiAgICBjdXN0b21WYWx1ZUlucHV0OiAnLmN1c3RvbS12YWx1ZXMgaW5wdXQnLFxuICAgIGN1c3RvbUZlYXR1cmVJZElucHV0OiAnaW5wdXQuY3VzdG9tLXZhbHVlLWlkJyxcbiAgICBkZWxldGVGZWF0dXJlVmFsdWU6ICdidXR0b24uZGVsZXRlLWZlYXR1cmUtdmFsdWUnLFxuICAgIGFkZEZlYXR1cmVWYWx1ZTogJy5mZWF0dXJlLXZhbHVlLWFkZC1idXR0b24nLFxuICB9LFxuICBjdXN0b21pemF0aW9uczoge1xuICAgIGN1c3RvbWl6YXRpb25zQ29udGFpbmVyOiAnLnByb2R1Y3QtY3VzdG9taXphdGlvbnMtY29sbGVjdGlvbicsXG4gICAgY3VzdG9taXphdGlvbkZpZWxkc0xpc3Q6ICcucHJvZHVjdC1jdXN0b21pemF0aW9ucy1jb2xsZWN0aW9uIHVsJyxcbiAgICBhZGRDdXN0b21pemF0aW9uQnRuOiAnLmFkZC1jdXN0b21pemF0aW9uLWJ0bicsXG4gICAgcmVtb3ZlQ3VzdG9taXphdGlvbkJ0bjogJy5yZW1vdmUtY3VzdG9taXphdGlvbi1idG4nLFxuICAgIGN1c3RvbWl6YXRpb25GaWVsZFJvdzogJy5jdXN0b21pemF0aW9uLWZpZWxkLXJvdycsXG4gIH0sXG4gIGNvbWJpbmF0aW9uczoge1xuICAgIG5hdmlnYXRpb25UYWI6ICcjY29tYmluYXRpb25zLXRhYi1uYXYnLFxuICAgIGV4dGVybmFsQ29tYmluYXRpb25UYWI6ICcjZXh0ZXJuYWwtY29tYmluYXRpb24tdGFiJyxcbiAgICBwcmVsb2FkZXI6ICcjY29tYmluYXRpb25zLXByZWxvYWRlcicsXG4gICAgZW1wdHlTdGF0ZTogJyNjb21iaW5hdGlvbnMtZW1wdHktc3RhdGUnLFxuICAgIGNvbWJpbmF0aW9uc1BhZ2luYXRlZExpc3Q6ICcjY29tYmluYXRpb25zLXBhZ2luYXRlZC1saXN0JyxcbiAgICBjb21iaW5hdGlvbnNDb250YWluZXI6IGAke2NvbWJpbmF0aW9uTGlzdElkfWAsXG4gICAgY29tYmluYXRpb25zRmlsdGVyc0NvbnRhaW5lcjogJyNjb21iaW5hdGlvbnNfZmlsdGVycycsXG4gICAgY29tYmluYXRpb25zR2VuZXJhdG9yQ29udGFpbmVyOiAnI3Byb2R1Y3RfY29tYmluYXRpb25zX2dlbmVyYXRvcicsXG4gICAgY29tYmluYXRpb25zVGFibGU6IGAke2NvbWJpbmF0aW9uTGlzdElkfSB0YWJsZWAsXG4gICAgY29tYmluYXRpb25zVGFibGVCb2R5OiBgJHtjb21iaW5hdGlvbkxpc3RJZH0gdGFibGUgdGJvZHlgLFxuICAgIGNvbWJpbmF0aW9uSWRJbnB1dHNTZWxlY3RvcjogJy5jb21iaW5hdGlvbi1pZC1pbnB1dCcsXG4gICAgaXNEZWZhdWx0SW5wdXRzU2VsZWN0b3I6ICcuY29tYmluYXRpb24taXMtZGVmYXVsdC1pbnB1dCcsXG4gICAgcmVtb3ZlQ29tYmluYXRpb25TZWxlY3RvcjogJy5yZW1vdmUtY29tYmluYXRpb24taXRlbScsXG4gICAgY29tYmluYXRpb25OYW1lOiAnZm9ybSAuY2FyZC1oZWFkZXIgc3BhbicsXG4gICAgcGFnaW5hdGlvbkNvbnRhaW5lcjogJyNjb21iaW5hdGlvbnMtcGFnaW5hdGlvbicsXG4gICAgbG9hZGluZ1NwaW5uZXI6ICcjcHJvZHVjdENvbWJpbmF0aW9uc0xvYWRpbmcnLFxuICAgIHF1YW50aXR5SW5wdXRXcmFwcGVyOiAnLmNvbWJpbmF0aW9uLXF1YW50aXR5JyxcbiAgICBpbXBhY3RPblByaWNlSW5wdXRXcmFwcGVyOiAnLmNvbWJpbmF0aW9uLWltcGFjdC1vbi1wcmljZScsXG4gICAgcmVmZXJlbmNlSW5wdXRXcmFwcGVyOiAnLmNvbWJpbmF0aW9uLXJlZmVyZW5jZScsXG4gICAgc29ydGFibGVDb2x1bW5zOiAnLnBzLXNvcnRhYmxlLWNvbHVtbicsXG4gICAgY29tYmluYXRpb25JdGVtRm9ybToge1xuICAgICAgcXVhbnRpdHlLZXk6ICdjb21iaW5hdGlvbl9pdGVtW3F1YW50aXR5XVt2YWx1ZV0nLFxuICAgICAgaW1wYWN0T25QcmljZUtleTogJ2NvbWJpbmF0aW9uX2l0ZW1baW1wYWN0X29uX3ByaWNlXVt2YWx1ZV0nLFxuICAgICAgcmVmZXJlbmNlS2V5OiAnY29tYmluYXRpb25faXRlbVtyZWZlcmVuY2VdW3ZhbHVlXScsXG4gICAgICB0b2tlbktleTogJ2NvbWJpbmF0aW9uX2l0ZW1bX3Rva2VuXScsXG4gICAgfSxcbiAgICBlZGl0aW9uRm9ybTogJ2Zvcm1bbmFtZT1cImNvbWJpbmF0aW9uX2Zvcm1cIl0nLFxuICAgIGVkaXRpb25Gb3JtSW5wdXRzOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAnZm9ybVtuYW1lPVwiY29tYmluYXRpb25fZm9ybVwiXSBpbnB1dCwgZm9ybVtuYW1lPVwiY29tYmluYXRpb25fZm9ybVwiXSB0ZXh0YXJlYSwgZm9ybVtuYW1lPVwiY29tYmluYXRpb25fZm9ybVwiXSBzZWxlY3QnLFxuICAgIGVkaXRDb21iaW5hdGlvbkJ1dHRvbnM6ICcuZWRpdC1jb21iaW5hdGlvbi1pdGVtJyxcbiAgICB0YWJsZVJvdzoge1xuICAgICAgY29tYmluYXRpb25JbWc6ICcuY29tYmluYXRpb24taW1hZ2UnLFxuICAgICAgY29tYmluYXRpb25DaGVja2JveDogKHJvd0luZGV4KSA9PiBgJHtjb21iaW5hdGlvbkxpc3RJZH1fY29tYmluYXRpb25zXyR7cm93SW5kZXh9X2lzX3NlbGVjdGVkYCxcbiAgICAgIGNvbWJpbmF0aW9uSWRJbnB1dDogKHJvd0luZGV4KSA9PiBgJHtjb21iaW5hdGlvbkxpc3RJZH1fY29tYmluYXRpb25zXyR7cm93SW5kZXh9X2NvbWJpbmF0aW9uX2lkYCxcbiAgICAgIGNvbWJpbmF0aW9uTmFtZUlucHV0OiAocm93SW5kZXgpID0+IGAke2NvbWJpbmF0aW9uTGlzdElkfV9jb21iaW5hdGlvbnNfJHtyb3dJbmRleH1fbmFtZWAsXG4gICAgICByZWZlcmVuY2VJbnB1dDogKHJvd0luZGV4KSA9PiBgJHtjb21iaW5hdGlvbkxpc3RJZH1fY29tYmluYXRpb25zXyR7cm93SW5kZXh9X3JlZmVyZW5jZV92YWx1ZWAsXG4gICAgICBpbXBhY3RPblByaWNlSW5wdXQ6IChyb3dJbmRleCkgPT4gYCR7Y29tYmluYXRpb25MaXN0SWR9X2NvbWJpbmF0aW9uc18ke3Jvd0luZGV4fV9pbXBhY3Rfb25fcHJpY2VfdmFsdWVgLFxuICAgICAgZmluYWxQcmljZVRlSW5wdXQ6IChyb3dJbmRleCkgPT4gYCR7Y29tYmluYXRpb25MaXN0SWR9X2NvbWJpbmF0aW9uc18ke3Jvd0luZGV4fV9maW5hbF9wcmljZV90ZWAsXG4gICAgICBxdWFudGl0eUlucHV0OiAocm93SW5kZXgpID0+IGAke2NvbWJpbmF0aW9uTGlzdElkfV9jb21iaW5hdGlvbnNfJHtyb3dJbmRleH1fcXVhbnRpdHlfdmFsdWVgLFxuICAgICAgaXNEZWZhdWx0SW5wdXQ6IChyb3dJbmRleCkgPT4gYCR7Y29tYmluYXRpb25MaXN0SWR9X2NvbWJpbmF0aW9uc18ke3Jvd0luZGV4fV9pc19kZWZhdWx0YCxcbiAgICAgIGVkaXRCdXR0b246IChyb3dJbmRleCkgPT4gYCR7Y29tYmluYXRpb25MaXN0SWR9X2NvbWJpbmF0aW9uc18ke3Jvd0luZGV4fV9lZGl0YCxcbiAgICAgIGRlbGV0ZUJ1dHRvbjogKHJvd0luZGV4KSA9PiBgJHtjb21iaW5hdGlvbkxpc3RJZH1fY29tYmluYXRpb25zXyR7cm93SW5kZXh9X2RlbGV0ZWAsXG4gICAgfSxcbiAgICBlZGl0TW9kYWw6ICcjY29tYmluYXRpb24tZWRpdC1tb2RhbCcsXG4gICAgaW1hZ2VzOiB7XG4gICAgICBzZWxlY3RvckNvbnRhaW5lcjogJy5jb21iaW5hdGlvbi1pbWFnZXMtc2VsZWN0b3InLFxuICAgICAgaW1hZ2VDaG9pY2U6ICcuY29tYmluYXRpb24taW1hZ2UtY2hvaWNlJyxcbiAgICAgIGNoZWNrYm94Q29udGFpbmVyOiAnLmZvcm0tY2hlY2snLFxuICAgICAgY2hlY2tib3g6ICdpbnB1dFt0eXBlPWNoZWNrYm94XScsXG4gICAgfSxcbiAgICBzY3JvbGxCYXI6ICcuYXR0cmlidXRlcy1saXN0LW92ZXJmbG93JyxcbiAgICBzZWFyY2hJbnB1dDogJyNwcm9kdWN0LWNvbWJpbmF0aW9ucy1nZW5lcmF0ZSAuYXR0cmlidXRlcy1zZWFyY2gnLFxuICAgIGdlbmVyYXRlQ29tYmluYXRpb25zQnV0dG9uOiAnLmdlbmVyYXRlLWNvbWJpbmF0aW9ucy1idXR0b24nLFxuICB9LFxuICB2aXJ0dWFsUHJvZHVjdDoge1xuICAgIGNvbnRhaW5lcjogJy52aXJ0dWFsLXByb2R1Y3QtZmlsZS1jb250YWluZXInLFxuICAgIGZpbGVDb250ZW50Q29udGFpbmVyOiAnLnZpcnR1YWwtcHJvZHVjdC1maWxlLWNvbnRlbnQnLFxuICB9LFxuICBkcm9wem9uZToge1xuICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgIGZpbGVNYW5hZ2VyOiAnLm9wZW5maWxlbWFuYWdlcicsXG4gICAgfSxcbiAgICBwaG90b3N3aXBlOiB7XG4gICAgICBlbGVtZW50OiAnLnBzd3AnLFxuICAgIH0sXG4gICAgZHpUZW1wbGF0ZTogJy5kei10ZW1wbGF0ZScsXG4gICAgZHpQcmV2aWV3OiAnLmR6LXByZXZpZXcnLFxuICAgIHNvcnRhYmxlQ29udGFpbmVyOiAnI3Byb2R1Y3QtaW1hZ2VzLWRyb3B6b25lJyxcbiAgICBzb3J0YWJsZUl0ZW1zOiAnZGl2LmR6LXByZXZpZXc6bm90KC5kaXNhYmxlZCknLFxuICAgIGRyb3B6b25lQ29udGFpbmVyOiAnLmRyb3B6b25lLWNvbnRhaW5lcicsXG4gICAgY2hlY2tib3g6ICcubWQtY2hlY2tib3ggaW5wdXQnLFxuICAgIHNob3duVG9vbHRpcHM6ICcudG9vbHRpcC5zaG93JyxcbiAgICBzYXZlZEltYWdlQ29udGFpbmVyOiAoaW1hZ2VJZCkgPT4gYC5kei1wcmV2aWV3W2RhdGEtaWQ9XCIke2ltYWdlSWR9XCJdYCxcbiAgICBzYXZlZEltYWdlOiAoaW1hZ2VJZCkgPT4gYC5kei1wcmV2aWV3W2RhdGEtaWQ9XCIke2ltYWdlSWR9XCJdIGltZ2AsXG4gICAgY292ZXJlZFByZXZpZXc6ICcuZHotcHJldmlldy5pcy1jb3ZlcicsXG4gICAgd2luZG93RmlsZU1hbmFnZXI6ICcuZHJvcHpvbmUtd2luZG93LWZpbGVtYW5hZ2VyJyxcbiAgfSxcbiAgc3VwcGxpZXJzOiB7XG4gICAgcHJvZHVjdFN1cHBsaWVyczogJyNwcm9kdWN0X29wdGlvbnNfc3VwcGxpZXJzJyxcbiAgICBjb21iaW5hdGlvblN1cHBsaWVyczogJyNjb21iaW5hdGlvbl9mb3JtX3N1cHBsaWVycycsXG4gIH0sXG4gIHNlbzoge1xuICAgIGNvbnRhaW5lcjogJyNwcm9kdWN0X3Nlb19zZXJwJyxcbiAgICBkZWZhdWx0VGl0bGU6ICcuc2VycC1kZWZhdWx0LXRpdGxlOmlucHV0JyxcbiAgICB3YXRjaGVkVGl0bGU6ICcuc2VycC13YXRjaGVkLXRpdGxlOmlucHV0JyxcbiAgICBkZWZhdWx0RGVzY3JpcHRpb246ICcuc2VycC1kZWZhdWx0LWRlc2NyaXB0aW9uJyxcbiAgICB3YXRjaGVkRGVzY3JpcHRpb246ICcuc2VycC13YXRjaGVkLWRlc2NyaXB0aW9uJyxcbiAgICB3YXRjaGVkTWV0YVVybDogJy5zZXJwLXdhdGNoZWQtdXJsOmlucHV0JyxcbiAgICByZWRpcmVjdE9wdGlvbjoge1xuICAgICAgdHlwZUlucHV0OiAnI3Byb2R1Y3Rfc2VvX3JlZGlyZWN0X29wdGlvbl90eXBlJyxcbiAgICAgIHRhcmdldElucHV0OiAnI3Byb2R1Y3Rfc2VvX3JlZGlyZWN0X29wdGlvbl90YXJnZXQnLFxuICAgIH0sXG4gIH0sXG4gIGpzVGFiczogJy5qcy10YWJzJyxcbiAganNBcnJvdzogJy5qcy1hcnJvdycsXG4gIGpzTmF2VGFiczogJy5qcy1uYXYtdGFicycsXG4gIHRvZ2dsZVRhYjogJ1tkYXRhLXRvZ2dsZT1cInRhYlwiXScsXG4gIGZvcm1Db250ZW50VGFiOiAnI2Zvcm1fY29udGVudCA+IC5mb3JtLWNvbnRlbnR0YWInLFxuICBsZWZ0QXJyb3c6ICcubGVmdC1hcnJvdycsXG4gIHJpZ2h0QXJyb3c6ICcucmlnaHQtYXJyb3cnLFxuICBmb290ZXI6IHtcbiAgICBwcmV2aWV3VXJsQnV0dG9uOiAnLnByZXZpZXctdXJsLWJ1dHRvbicsXG4gICAgZGVsZXRlUHJvZHVjdEJ1dHRvbjogJy5kZWxldGUtcHJvZHVjdC1idXR0b24nLFxuICB9LFxuICBjYXRlZ29yaWVzOiB7XG4gICAgY2F0ZWdvcmllc0NvbnRhaW5lcjogJy5qcy1jYXRlZ29yaWVzLWNvbnRhaW5lcicsXG4gICAgY2F0ZWdvcnlUcmVlOiAnLmpzLWNhdGVnb3JpZXMtdHJlZScsXG4gICAgdHJlZUVsZW1lbnQ6ICcuY2F0ZWdvcnktdHJlZS1lbGVtZW50JyxcbiAgICB0cmVlRWxlbWVudElucHV0czogJy5jYXRlZ29yeS10cmVlLWlucHV0cycsXG4gICAgY2hlY2tib3hJbnB1dDogJ1t0eXBlPWNoZWNrYm94XScsXG4gICAgY2hlY2tlZENoZWNrYm94SW5wdXRzOiAnW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQnLFxuICAgIGNoZWNrYm94TmFtZTogKGNhdGVnb3J5SWQpID0+IGBwcm9kdWN0W2NhdGVnb3JpZXNdW3Byb2R1Y3RfY2F0ZWdvcmllc11bJHtjYXRlZ29yeUlkfV1baXNfYXNzb2NpYXRlZF1gLFxuICAgIG1hdGVyaWFsQ2hlY2tib3g6ICcubWQtY2hlY2tib3gnLFxuICAgIHJhZGlvSW5wdXQ6ICdbdHlwZT1yYWRpb10nLFxuICAgIGRlZmF1bHRSYWRpb0lucHV0OiAnW3R5cGU9cmFkaW9dOmNoZWNrZWQnLFxuICAgIHJhZGlvTmFtZTogKGNhdGVnb3J5SWQpID0+IGBwcm9kdWN0W2NhdGVnb3JpZXNdW3Byb2R1Y3RfY2F0ZWdvcmllc11bJHtjYXRlZ29yeUlkfV1baXNfZGVmYXVsdF1gLFxuICAgIHRhZ3NDb250YWluZXI6ICcjY2F0ZWdvcmllcy10YWdzLWNvbnRhaW5lcicsXG4gICAgc2VhcmNoSW5wdXQ6ICcjcHMtc2VsZWN0LXByb2R1Y3QtY2F0ZWdvcnknLFxuICAgIGZpZWxkc2V0OiAnLnRyZWUtZmllbGRzZXQnLFxuICAgIGxvYWRlcjogJy5jYXRlZ29yaWVzLXRyZWUtbG9hZGVyJyxcbiAgICBjaGlsZHJlbkxpc3Q6ICcuY2hpbGRyZW4tbGlzdCcsXG4gICAgZXZlcnlJdGVtczogJy5sZXNzLCAubW9yZScsXG4gICAgZXhwYW5kQWxsQnV0dG9uOiAnI2NhdGVnb3JpZXMtdHJlZS1leHBhbmQnLFxuICAgIHJlZHVjZUFsbEJ1dHRvbjogJyNjYXRlZ29yaWVzLXRyZWUtcmVkdWNlJyxcbiAgfSxcbiAgbW9kdWxlczoge1xuICAgIHByZXZpZXdDb250YWluZXI6ICcubW9kdWxlLXJlbmRlci1jb250YWluZXIuYWxsLW1vZHVsZXMnLFxuICAgIHByZXZpZXdCdXR0b246ICcubW9kdWxlcy1saXN0LWJ1dHRvbicsXG4gICAgc2VsZWN0b3JDb250YWluZXI6ICcubW9kdWxlLXNlbGVjdGlvbicsXG4gICAgbW9kdWxlU2VsZWN0b3I6ICcubW9kdWxlcy1saXN0LXNlbGVjdCcsXG4gICAgc2VsZWN0b3JQcmV2aWV3czogJy5tb2R1bGUtc2VsZWN0aW9uIC5tb2R1bGUtcmVuZGVyLWNvbnRhaW5lcicsXG4gICAgc2VsZWN0b3JQcmV2aWV3OiAobW9kdWxlSWQpID0+IGAubW9kdWxlLXNlbGVjdGlvbiAubW9kdWxlLXJlbmRlci1jb250YWluZXIuJHttb2R1bGVJZH1gLFxuICAgIGNvbnRlbnRDb250YWluZXI6ICcubW9kdWxlLWNvbnRlbnRzJyxcbiAgICBtb2R1bGVDb250ZW50czogJy5tb2R1bGUtY29udGVudHMgLm1vZHVsZS1yZW5kZXItY29udGFpbmVyJyxcbiAgICBtb2R1bGVDb250ZW50OiAobW9kdWxlSWQpID0+IGAubW9kdWxlLWNvbnRlbnRzIC5tb2R1bGUtcmVuZGVyLWNvbnRhaW5lci4ke21vZHVsZUlkfWAsXG4gIH0sXG59O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCAoc3VwcGxpZXJzRm9ybUlkKSA9PiB7XG4gIGNvbnN0IHByb2R1Y3RTdXBwbGllcnNJZCA9IGAke3N1cHBsaWVyc0Zvcm1JZH1fcHJvZHVjdF9zdXBwbGllcnNgO1xuICBjb25zdCBwcm9kdWN0U3VwcGxpZXJJbnB1dElkID0gKHN1cHBsaWVySW5kZXgsIGlucHV0TmFtZSkgPT4gYCR7cHJvZHVjdFN1cHBsaWVyc0lkfV8ke3N1cHBsaWVySW5kZXh9XyR7aW5wdXROYW1lfWA7XG5cbiAgcmV0dXJuIHtcbiAgICBwcm9kdWN0U3VwcGxpZXJzQ29sbGVjdGlvbjogYCR7cHJvZHVjdFN1cHBsaWVyc0lkfWAsXG4gICAgc3VwcGxpZXJJZHNJbnB1dDogYCR7c3VwcGxpZXJzRm9ybUlkfV9zdXBwbGllcl9pZHNgLFxuICAgIGRlZmF1bHRTdXBwbGllcklucHV0OiBgJHtzdXBwbGllcnNGb3JtSWR9X2RlZmF1bHRfc3VwcGxpZXJfaWRgLFxuICAgIHByb2R1Y3RTdXBwbGllcnNUYWJsZTogYCR7cHJvZHVjdFN1cHBsaWVyc0lkfSB0YWJsZWAsXG4gICAgcHJvZHVjdHNTdXBwbGllcnNUYWJsZUJvZHk6IGAke3Byb2R1Y3RTdXBwbGllcnNJZH0gdGFibGUgdGJvZHlgLFxuICAgIGRlZmF1bHRTdXBwbGllckNsYXNzOiAnZGVmYXVsdC1zdXBwbGllcicsXG4gICAgcHJvZHVjdFN1cHBsaWVyUm93OiB7XG4gICAgICBzdXBwbGllcklkSW5wdXQ6IChzdXBwbGllckluZGV4KSA9PiBwcm9kdWN0U3VwcGxpZXJJbnB1dElkKHN1cHBsaWVySW5kZXgsICdzdXBwbGllcl9pZCcpLFxuICAgICAgc3VwcGxpZXJOYW1lSW5wdXQ6IChzdXBwbGllckluZGV4KSA9PiBwcm9kdWN0U3VwcGxpZXJJbnB1dElkKHN1cHBsaWVySW5kZXgsICdzdXBwbGllcl9uYW1lJyksXG4gICAgICBwcm9kdWN0U3VwcGxpZXJJZElucHV0OiAoc3VwcGxpZXJJbmRleCkgPT4gcHJvZHVjdFN1cHBsaWVySW5wdXRJZChzdXBwbGllckluZGV4LCAncHJvZHVjdF9zdXBwbGllcl9pZCcpLFxuICAgICAgcmVmZXJlbmNlSW5wdXQ6IChzdXBwbGllckluZGV4KSA9PiBwcm9kdWN0U3VwcGxpZXJJbnB1dElkKHN1cHBsaWVySW5kZXgsICdyZWZlcmVuY2UnKSxcbiAgICAgIHByaWNlSW5wdXQ6IChzdXBwbGllckluZGV4KSA9PiBwcm9kdWN0U3VwcGxpZXJJbnB1dElkKHN1cHBsaWVySW5kZXgsICdwcmljZV90YXhfZXhjbHVkZWQnKSxcbiAgICAgIGN1cnJlbmN5SWRJbnB1dDogKHN1cHBsaWVySW5kZXgpID0+IHByb2R1Y3RTdXBwbGllcklucHV0SWQoc3VwcGxpZXJJbmRleCwgJ2N1cnJlbmN5X2lkJyksXG4gICAgICBzdXBwbGllck5hbWVQcmV2aWV3OiAoc3VwcGxpZXJJbmRleCkgPT4gYCNwcm9kdWN0X3N1cHBsaWVyX3Jvd18ke3N1cHBsaWVySW5kZXh9IC5zdXBwbGllcl9uYW1lIC5wcmV2aWV3YCxcbiAgICB9LFxuICAgIGNoZWNrYm94Q29udGFpbmVyOiAnLmZvcm0tY2hlY2snLFxuICB9O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvY3JlYXRlXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07IiwibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHlcIiksIF9fZXNNb2R1bGU6IHRydWUgfTsiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5XCIpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gICAgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgICBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgICByZXR1cm4gQ29uc3RydWN0b3I7XG4gIH07XG59KCk7IiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LmNyZWF0ZScpO1xudmFyICRPYmplY3QgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0O1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGUoUCwgRCkge1xuICByZXR1cm4gJE9iamVjdC5jcmVhdGUoUCwgRCk7XG59O1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LmRlZmluZS1wcm9wZXJ0eScpO1xudmFyICRPYmplY3QgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0O1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShpdCwga2V5LCBkZXNjKSB7XG4gIHJldHVybiAkT2JqZWN0LmRlZmluZVByb3BlcnR5KGl0LCBrZXksIGRlc2MpO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICh0eXBlb2YgaXQgIT0gJ2Z1bmN0aW9uJykgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYSBmdW5jdGlvbiEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIGZhbHNlIC0+IEFycmF5I2luZGV4T2Zcbi8vIHRydWUgIC0+IEFycmF5I2luY2x1ZGVzXG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi9fdG8tYWJzb2x1dGUtaW5kZXgnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSU9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB2YWx1ZSA9IE9baW5kZXgrK107XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgICBpZiAodmFsdWUgIT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEFycmF5I2luZGV4T2YgaWdub3JlcyBob2xlcywgQXJyYXkjaW5jbHVkZXMgLSBub3RcbiAgICB9IGVsc2UgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSB7XG4gICAgICBpZiAoT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDtcbiAgICB9IHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gIH07XG59O1xuIiwidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7XG59O1xuIiwidmFyIGNvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IHsgdmVyc2lvbjogJzIuNi4xMScgfTtcbmlmICh0eXBlb2YgX19lID09ICdudW1iZXInKSBfX2UgPSBjb3JlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4iLCIvLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuL19hLWZ1bmN0aW9uJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbiwgdGhhdCwgbGVuZ3RoKSB7XG4gIGFGdW5jdGlvbihmbik7XG4gIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHJldHVybiBmbjtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbiAoYSkge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSk7XG4gICAgfTtcbiAgICBjYXNlIDI6IHJldHVybiBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYik7XG4gICAgfTtcbiAgICBjYXNlIDM6IHJldHVybiBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYiwgYyk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCIvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgaXMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcbiIsIi8vIElFIDgtIGRvbid0IGVudW0gYnVnIGtleXNcbm1vZHVsZS5leHBvcnRzID0gKFxuICAnY29uc3RydWN0b3IsaGFzT3duUHJvcGVydHksaXNQcm90b3R5cGVPZixwcm9wZXJ0eUlzRW51bWVyYWJsZSx0b0xvY2FsZVN0cmluZyx0b1N0cmluZyx2YWx1ZU9mJ1xuKS5zcGxpdCgnLCcpO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxudmFyICRleHBvcnQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgc291cmNlKSB7XG4gIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GO1xuICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcbiAgdmFyIElTX1NUQVRJQyA9IHR5cGUgJiAkZXhwb3J0LlM7XG4gIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7XG4gIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcbiAgdmFyIElTX1dSQVAgPSB0eXBlICYgJGV4cG9ydC5XO1xuICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IGNvcmUgOiBjb3JlW25hbWVdIHx8IChjb3JlW25hbWVdID0ge30pO1xuICB2YXIgZXhwUHJvdG8gPSBleHBvcnRzW1BST1RPVFlQRV07XG4gIHZhciB0YXJnZXQgPSBJU19HTE9CQUwgPyBnbG9iYWwgOiBJU19TVEFUSUMgPyBnbG9iYWxbbmFtZV0gOiAoZ2xvYmFsW25hbWVdIHx8IHt9KVtQUk9UT1RZUEVdO1xuICB2YXIga2V5LCBvd24sIG91dDtcbiAgaWYgKElTX0dMT0JBTCkgc291cmNlID0gbmFtZTtcbiAgZm9yIChrZXkgaW4gc291cmNlKSB7XG4gICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG4gICAgb3duID0gIUlTX0ZPUkNFRCAmJiB0YXJnZXQgJiYgdGFyZ2V0W2tleV0gIT09IHVuZGVmaW5lZDtcbiAgICBpZiAob3duICYmIGhhcyhleHBvcnRzLCBrZXkpKSBjb250aW51ZTtcbiAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZFxuICAgIG91dCA9IG93biA/IHRhcmdldFtrZXldIDogc291cmNlW2tleV07XG4gICAgLy8gcHJldmVudCBnbG9iYWwgcG9sbHV0aW9uIGZvciBuYW1lc3BhY2VzXG4gICAgZXhwb3J0c1trZXldID0gSVNfR0xPQkFMICYmIHR5cGVvZiB0YXJnZXRba2V5XSAhPSAnZnVuY3Rpb24nID8gc291cmNlW2tleV1cbiAgICAvLyBiaW5kIHRpbWVycyB0byBnbG9iYWwgZm9yIGNhbGwgZnJvbSBleHBvcnQgY29udGV4dFxuICAgIDogSVNfQklORCAmJiBvd24gPyBjdHgob3V0LCBnbG9iYWwpXG4gICAgLy8gd3JhcCBnbG9iYWwgY29uc3RydWN0b3JzIGZvciBwcmV2ZW50IGNoYW5nZSB0aGVtIGluIGxpYnJhcnlcbiAgICA6IElTX1dSQVAgJiYgdGFyZ2V0W2tleV0gPT0gb3V0ID8gKGZ1bmN0aW9uIChDKSB7XG4gICAgICB2YXIgRiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQykge1xuICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEMoKTtcbiAgICAgICAgICAgIGNhc2UgMTogcmV0dXJuIG5ldyBDKGEpO1xuICAgICAgICAgICAgY2FzZSAyOiByZXR1cm4gbmV3IEMoYSwgYik7XG4gICAgICAgICAgfSByZXR1cm4gbmV3IEMoYSwgYiwgYyk7XG4gICAgICAgIH0gcmV0dXJuIEMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgICBGW1BST1RPVFlQRV0gPSBDW1BST1RPVFlQRV07XG4gICAgICByZXR1cm4gRjtcbiAgICAvLyBtYWtlIHN0YXRpYyB2ZXJzaW9ucyBmb3IgcHJvdG90eXBlIG1ldGhvZHNcbiAgICB9KShvdXQpIDogSVNfUFJPVE8gJiYgdHlwZW9mIG91dCA9PSAnZnVuY3Rpb24nID8gY3R4KEZ1bmN0aW9uLmNhbGwsIG91dCkgOiBvdXQ7XG4gICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLm1ldGhvZHMuJU5BTUUlXG4gICAgaWYgKElTX1BST1RPKSB7XG4gICAgICAoZXhwb3J0cy52aXJ0dWFsIHx8IChleHBvcnRzLnZpcnR1YWwgPSB7fSkpW2tleV0gPSBvdXQ7XG4gICAgICAvLyBleHBvcnQgcHJvdG8gbWV0aG9kcyB0byBjb3JlLiVDT05TVFJVQ1RPUiUucHJvdG90eXBlLiVOQU1FJVxuICAgICAgaWYgKHR5cGUgJiAkZXhwb3J0LlIgJiYgZXhwUHJvdG8gJiYgIWV4cFByb3RvW2tleV0pIGhpZGUoZXhwUHJvdG8sIGtleSwgb3V0KTtcbiAgICB9XG4gIH1cbn07XG4vLyB0eXBlIGJpdG1hcFxuJGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcbiRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG4kZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuJGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuJGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG4kZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcbiRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuJGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgXG5tb2R1bGUuZXhwb3J0cyA9ICRleHBvcnQ7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCIvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxudmFyIGdsb2JhbCA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PSBNYXRoXG4gID8gd2luZG93IDogdHlwZW9mIHNlbGYgIT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5NYXRoID09IE1hdGggPyBzZWxmXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xuICA6IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5pZiAodHlwZW9mIF9fZyA9PSAnbnVtYmVyJykgX19nID0gZ2xvYmFsOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4iLCJ2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG59O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRQLmYob2JqZWN0LCBrZXksIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwidmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG5tb2R1bGUuZXhwb3J0cyA9IGRvY3VtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiIsIm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHRydWU7XG4iLCIvLyAxOS4xLjIuMiAvIDE1LjIuMy41IE9iamVjdC5jcmVhdGUoTyBbLCBQcm9wZXJ0aWVzXSlcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGRQcyA9IHJlcXVpcmUoJy4vX29iamVjdC1kcHMnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBFbXB0eSA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIGNyZWF0ZURpY3QgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSByZXF1aXJlKCcuL19kb20tY3JlYXRlJykoJ2lmcmFtZScpO1xuICB2YXIgaSA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgdmFyIGx0ID0gJzwnO1xuICB2YXIgZ3QgPSAnPic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIHJlcXVpcmUoJy4vX2h0bWwnKS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICBpZnJhbWUuc3JjID0gJ2phdmFzY3JpcHQ6JzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zY3JpcHQtdXJsXG4gIC8vIGNyZWF0ZURpY3QgPSBpZnJhbWUuY29udGVudFdpbmRvdy5PYmplY3Q7XG4gIC8vIGh0bWwucmVtb3ZlQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICBpZnJhbWVEb2N1bWVudC53cml0ZShsdCArICdzY3JpcHQnICsgZ3QgKyAnZG9jdW1lbnQuRj1PYmplY3QnICsgbHQgKyAnL3NjcmlwdCcgKyBndCk7XG4gIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gIGNyZWF0ZURpY3QgPSBpZnJhbWVEb2N1bWVudC5GO1xuICB3aGlsZSAoaS0tKSBkZWxldGUgY3JlYXRlRGljdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2ldXTtcbiAgcmV0dXJuIGNyZWF0ZURpY3QoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBhbk9iamVjdChPKTtcbiAgICByZXN1bHQgPSBuZXcgRW1wdHkoKTtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBjcmVhdGVEaWN0KCk7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiBkUHMocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG4iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4vX2llOC1kb20tZGVmaW5lJyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBkUCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuZXhwb3J0cy5mID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gZFAoTywgUCwgQXR0cmlidXRlcyk7XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIScpO1xuICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBnZXRLZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXlzID0gZ2V0S2V5cyhQcm9wZXJ0aWVzKTtcbiAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICB2YXIgaSA9IDA7XG4gIHZhciBQO1xuICB3aGlsZSAobGVuZ3RoID4gaSkgZFAuZihPLCBQID0ga2V5c1tpKytdLCBQcm9wZXJ0aWVzW1BdKTtcbiAgcmV0dXJuIE87XG59O1xuIiwidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIvLyAxOS4xLjIuMTQgLyAxNS4yLjMuMTQgT2JqZWN0LmtleXMoTylcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24ga2V5cyhPKSB7XG4gIHJldHVybiAka2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG4gICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuICAgIHZhbHVlOiB2YWx1ZVxuICB9O1xufTtcbiIsInZhciBzaGFyZWQgPSByZXF1aXJlKCcuL19zaGFyZWQnKSgna2V5cycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiBzaGFyZWRba2V5XSB8fCAoc2hhcmVkW2tleV0gPSB1aWQoa2V5KSk7XG59O1xuIiwidmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBnbG9iYWxbU0hBUkVEXSB8fCAoZ2xvYmFsW1NIQVJFRF0gPSB7fSk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xufSkoJ3ZlcnNpb25zJywgW10pLnB1c2goe1xuICB2ZXJzaW9uOiBjb3JlLnZlcnNpb24sXG4gIG1vZGU6IHJlcXVpcmUoJy4vX2xpYnJhcnknKSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuICBjb3B5cmlnaHQ6ICfCqSAyMDE5IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJ1xufSk7XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5kZXgsIGxlbmd0aCkge1xuICBpbmRleCA9IHRvSW50ZWdlcihpbmRleCk7XG4gIHJldHVybiBpbmRleCA8IDAgPyBtYXgoaW5kZXggKyBsZW5ndGgsIDApIDogbWluKGluZGV4LCBsZW5ndGgpO1xufTtcbiIsIi8vIDcuMS40IFRvSW50ZWdlclxudmFyIGNlaWwgPSBNYXRoLmNlaWw7XG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGlzTmFOKGl0ID0gK2l0KSA/IDAgOiAoaXQgPiAwID8gZmxvb3IgOiBjZWlsKShpdCk7XG59O1xuIiwiLy8gdG8gaW5kZXhlZCBvYmplY3QsIHRvT2JqZWN0IHdpdGggZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBzdHJpbmdzXG52YXIgSU9iamVjdCA9IHJlcXVpcmUoJy4vX2lvYmplY3QnKTtcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIElPYmplY3QoZGVmaW5lZChpdCkpO1xufTtcbiIsIi8vIDcuMS4xNSBUb0xlbmd0aFxudmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCA+IDAgPyBtaW4odG9JbnRlZ2VyKGl0KSwgMHgxZmZmZmZmZmZmZmZmZikgOiAwOyAvLyBwb3coMiwgNTMpIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuIiwiLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbi8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlXG4vLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFMpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHJldHVybiBpdDtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmIChTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKCFTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuIiwidmFyIGlkID0gMDtcbnZhciBweCA9IE1hdGgucmFuZG9tKCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcbn07XG4iLCJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgY3JlYXRlOiByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJykgfSk7XG4iLCJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjQgLyAxNS4yLjMuNiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcylcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyksICdPYmplY3QnLCB7IGRlZmluZVByb3BlcnR5OiByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mIH0pO1xuIiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cblxuaW1wb3J0IFByb2R1Y3RTdXBwbGllcnNNYW5hZ2VyIGZyb20gJ0BwYWdlcy9wcm9kdWN0L2VkaXQvcHJvZHVjdC1zdXBwbGllcnMtbWFuYWdlcic7XG5pbXBvcnQgSW1hZ2VTZWxlY3RvciBmcm9tICdAcGFnZXMvcHJvZHVjdC9jb21iaW5hdGlvbi9pbWFnZS1zZWxlY3Rvcic7XG5pbXBvcnQgUHJvZHVjdE1hcCBmcm9tICdAcGFnZXMvcHJvZHVjdC9wcm9kdWN0LW1hcCc7XG5cbmNvbnN0IHskfSA9IHdpbmRvdztcblxuJCgoKSA9PiB7XG4gIHdpbmRvdy5wcmVzdGFzaG9wLmNvbXBvbmVudC5pbml0Q29tcG9uZW50cyhbXG4gICAgJ1RyYW5zbGF0YWJsZUZpZWxkJyxcbiAgICAnVGlueU1DRUVkaXRvcicsXG4gICAgJ1RyYW5zbGF0YWJsZUlucHV0JyxcbiAgICAnRXZlbnRFbWl0dGVyJyxcbiAgICAnVGV4dFdpdGhMZW5ndGhDb3VudGVyJyxcbiAgXSk7XG5cbiAgbmV3IFByb2R1Y3RTdXBwbGllcnNNYW5hZ2VyKFByb2R1Y3RNYXAuc3VwcGxpZXJzLmNvbWJpbmF0aW9uU3VwcGxpZXJzLCBmYWxzZSk7XG4gIG5ldyBJbWFnZVNlbGVjdG9yKCk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=