carbon-components-angular 5.24.7 → 5.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/docs/documentation/components/CodeSnippet.html +59 -55
  2. package/docs/documentation/components/Slider.html +2 -2
  3. package/docs/documentation/js/search/search_index.js +2 -2
  4. package/docs/documentation/modules/TilesModule/dependencies.svg +4 -4
  5. package/docs/documentation/modules/TilesModule.html +4 -4
  6. package/docs/documentation/modules/TimePickerModule/dependencies.svg +45 -41
  7. package/docs/documentation/modules/TimePickerModule.html +45 -41
  8. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +42 -38
  9. package/docs/documentation/modules/TimePickerSelectModule.html +42 -38
  10. package/docs/documentation/modules/ToggleModule/dependencies.svg +45 -41
  11. package/docs/documentation/modules/ToggleModule.html +45 -41
  12. package/docs/documentation/modules/ToggletipModule/dependencies.svg +39 -39
  13. package/docs/documentation/modules/ToggletipModule.html +39 -39
  14. package/docs/documentation/modules/TooltipModule/dependencies.svg +28 -28
  15. package/docs/documentation/modules/TooltipModule.html +28 -28
  16. package/docs/documentation/modules/TreeviewModule/dependencies.svg +28 -28
  17. package/docs/documentation/modules/TreeviewModule.html +28 -28
  18. package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
  19. package/docs/documentation/modules/UIShellModule.html +4 -4
  20. package/docs/documentation.json +61 -61
  21. package/docs/storybook/{code-snippet-code-snippet-stories.19e4b78a.iframe.bundle.js → code-snippet-code-snippet-stories.e78f3090.iframe.bundle.js} +1 -1
  22. package/docs/storybook/iframe.html +2 -2
  23. package/docs/storybook/main.82f7534c.iframe.bundle.js +1 -0
  24. package/docs/storybook/project.json +1 -1
  25. package/docs/storybook/{runtime~main.cb1f9895.iframe.bundle.js → runtime~main.febf8cc7.iframe.bundle.js} +1 -1
  26. package/esm2020/code-snippet/code-snippet.component.mjs +7 -3
  27. package/esm2020/slider/slider.component.mjs +2 -2
  28. package/fesm2015/carbon-components-angular-code-snippet.mjs +6 -2
  29. package/fesm2015/carbon-components-angular-code-snippet.mjs.map +1 -1
  30. package/fesm2015/carbon-components-angular-slider.mjs +1 -1
  31. package/fesm2015/carbon-components-angular-slider.mjs.map +1 -1
  32. package/fesm2020/carbon-components-angular-code-snippet.mjs +6 -2
  33. package/fesm2020/carbon-components-angular-code-snippet.mjs.map +1 -1
  34. package/fesm2020/carbon-components-angular-slider.mjs +1 -1
  35. package/fesm2020/carbon-components-angular-slider.mjs.map +1 -1
  36. package/package.json +1 -1
  37. package/slider/slider.component.d.ts +1 -1
  38. package/telemetry.yml +3 -0
  39. package/docs/storybook/main.83dfce65.iframe.bundle.js +0 -1
@@ -1 +1 @@
1
- {"generatedAt":1714764846784,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":true,"hasStorybookEslint":false,"refCount":0,"packageManager":{"type":"npm","version":"8.19.4"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/angular","options":{}},"builder":"@storybook/builder-webpack5","renderer":"@storybook/angular","storybookVersion":"7.6.7","storybookVersionSpecifier":"7.6.7","language":"typescript","storybookPackages":{"@storybook/addon-actions":{"version":"7.6.7"},"@storybook/angular":{"version":"7.6.7"},"@storybook/theming":{"version":"7.6.7"},"storybook":{"version":"7.6.7"}},"addons":{"@storybook/addon-links":{"version":"7.6.7"},"@storybook/addon-essentials":{"options":{"backgrounds":false},"version":"7.6.7"},"@storybook/addon-a11y":{"version":"7.6.7"},"@storybook/addon-storysource":{"version":"7.6.7"}}}
1
+ {"generatedAt":1715264615432,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":true,"hasStorybookEslint":false,"refCount":0,"packageManager":{"type":"npm","version":"8.19.4"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/angular","options":{}},"builder":"@storybook/builder-webpack5","renderer":"@storybook/angular","storybookVersion":"7.6.7","storybookVersionSpecifier":"7.6.7","language":"typescript","storybookPackages":{"@storybook/addon-actions":{"version":"7.6.7"},"@storybook/angular":{"version":"7.6.7"},"@storybook/theming":{"version":"7.6.7"},"storybook":{"version":"7.6.7"}},"addons":{"@storybook/addon-links":{"version":"7.6.7"},"@storybook/addon-essentials":{"options":{"backgrounds":false},"version":"7.6.7"},"@storybook/addon-a11y":{"version":"7.6.7"},"@storybook/addon-storysource":{"version":"7.6.7"}}}
@@ -1 +1 @@
1
- (()=>{"use strict";var deferred,leafPrototypes,getProto,inProgress,__webpack_modules__={},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={id:moduleId,loaded:!1,exports:{}};return __webpack_modules__[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.amdO={},deferred=[],__webpack_require__.O=(result,chunkIds,fn,priority)=>{if(!chunkIds){var notFulfilled=1/0;for(i=0;i<deferred.length;i++){for(var[chunkIds,fn,priority]=deferred[i],fulfilled=!0,j=0;j<chunkIds.length;j++)(!1&priority||notFulfilled>=priority)&&Object.keys(__webpack_require__.O).every((key=>__webpack_require__.O[key](chunkIds[j])))?chunkIds.splice(j--,1):(fulfilled=!1,priority<notFulfilled&&(notFulfilled=priority));if(fulfilled){deferred.splice(i--,1);var r=fn();void 0!==r&&(result=r)}}return result}priority=priority||0;for(var i=deferred.length;i>0&&deferred[i-1][2]>priority;i--)deferred[i]=deferred[i-1];deferred[i]=[chunkIds,fn,priority]},__webpack_require__.n=module=>{var getter=module&&module.__esModule?()=>module.default:()=>module;return __webpack_require__.d(getter,{a:getter}),getter},getProto=Object.getPrototypeOf?obj=>Object.getPrototypeOf(obj):obj=>obj.__proto__,__webpack_require__.t=function(value,mode){if(1&mode&&(value=this(value)),8&mode)return value;if("object"==typeof value&&value){if(4&mode&&value.__esModule)return value;if(16&mode&&"function"==typeof value.then)return value}var ns=Object.create(null);__webpack_require__.r(ns);var def={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var current=2&mode&&value;"object"==typeof current&&!~leafPrototypes.indexOf(current);current=getProto(current))Object.getOwnPropertyNames(current).forEach((key=>def[key]=()=>value[key]));return def.default=()=>value,__webpack_require__.d(ns,def),ns},__webpack_require__.d=(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},__webpack_require__.f={},__webpack_require__.e=chunkId=>Promise.all(Object.keys(__webpack_require__.f).reduce(((promises,key)=>(__webpack_require__.f[key](chunkId,promises),promises)),[])),__webpack_require__.u=chunkId=>(({140:"dialog-overflow-menu-overflow-menu-stories",210:"list-list-stories",384:"grid-css-grid-stories",459:"tabs-tabs-stories",703:"toggletip-toggletip-stories",799:"pagination-pagination-stories",911:"button-button-stories",933:"table-table-stories",972:"patterns-loading-large-loading-stories",1127:"search-search-stories",1928:"accordion-accordion-stories",2218:"inline-loading-inline-loading-stories",2342:"radio-radio-stories",2371:"timepicker-timepicker-stories",2388:"modal-modal-stories",2399:"input-textarea-stories",2489:"toggle-toggle-stories",2494:"loading-loading-stories",2573:"grid-grid-stories",2722:"context-menu-context-menu-stories",2969:"pagination-pagination-nav-stories",3280:"tiles-tiles-stories",3314:"patterns-filtering-multiple-categories-stories",3329:"checkbox-checkbox-stories",3402:"tiles-expandable-tile-stories",3523:"contained-list-contained-list-stories",3610:"patterns-filtering-single-selection-stories",3719:"tiles-clickable-tile-stories",3858:"code-snippet-code-snippet-stories",3867:"tag-tag-stories",4232:"patterns-forms-multi-step-form-stories",4253:"tooltip-tooltip-stories",4277:"patterns-dialogs-modal-with-table-stories",4391:"content-switcher-content-switcher-stories",4731:"icon-icon-stories",4762:"patterns-filtering-multi-selection-stories",5167:"button-icon-button-stories",5368:"number-input-number-stories",5455:"layer-layer-stories",5808:"progress-bar-progress-bar-stories",5980:"select-select-stories",6026:"slider-slider-stories",6115:"theme-theme-stories",6274:"tooltip-definition-tooptip-stories",6310:"file-uploader-file-uploader-stories",6322:"popover-popover-stories",6456:"treeview-treeview-stories",6634:"link-link-stories",6663:"datepicker-datepicker-stories",6842:"breadcrumb-breadcrumb-stories",6943:"input-input-stories",7081:"layout-stack-stories",7235:"index-stories",7291:"structured-list-structured-list-stories",7840:"patterns-loading-progressive-loading-stories",7869:"skeleton-skeleton-stories",7931:"notification-notification-stories",8552:"button-button-set-stories",9211:"dropdown-dropdown-stories",9325:"tiles-tile-group-stories",9552:"timepicker-select-timepicker-select-stories",9619:"progress-indicator-progress-indicator-stories",9660:"ui-shell-ui-shell-stories",9736:"combobox-combobox-stories"}[chunkId]||chunkId)+"."+{140:"e8963bf8",210:"e906cf67",384:"c703f9de",454:"3f3499ab",459:"183f4129",503:"7113f5a6",703:"93f48d46",799:"05ab4dd7",901:"adc28b35",911:"19d4c798",933:"c19aca64",972:"f776e3ae",1119:"f42b55a6",1127:"fac60ec0",1325:"3c39c950",1470:"39923f01",1562:"1e6a79b6",1895:"172bd8b0",1928:"48faee56",2218:"7513a48b",2342:"ba1fb969",2371:"7bbf1029",2388:"66aa5c7c",2399:"51dab44c",2489:"def6c644",2494:"261bc118",2573:"f7a88c02",2722:"00b09460",2969:"ad4e83e9",3080:"d3996d61",3224:"aa2b4664",3280:"841048dc",3314:"487f9487",3329:"3aeae19d",3348:"9d9f3238",3360:"e0c015fc",3402:"97c48cb1",3415:"bd5d140d",3523:"d8456cd4",3610:"e4243e65",3719:"09f1a279",3774:"c37f3d92",3858:"19e4b78a",3867:"7b3a9288",3931:"0e7c514c",4232:"a9142797",4253:"eb2e347f",4277:"a011175b",4391:"8f3aa078",4731:"5b558b26",4762:"cae9c326",5069:"eabf32ea",5103:"20115e64",5167:"4b2fc4a6",5368:"b2525c3c",5455:"9fc41371",5808:"0002dc55",5868:"4bc19136",5980:"f28348e5",6026:"0a70e102",6115:"66e1727e",6274:"60d42e1c",6310:"7cbeda49",6322:"a91784a3",6456:"e544ed9d",6634:"9e3dd976",6663:"d5770b7c",6702:"8b6fb391",6842:"43daa149",6943:"eeb079d9",7019:"b8944046",7081:"799a681c",7153:"fff25cdf",7235:"bdb87ad2",7291:"c50bdf73",7399:"f37bb110",7529:"5272f30b",7773:"6c3cf943",7840:"717ad729",7869:"77f9485f",7931:"624c3d04",8341:"a544f9e9",8552:"ad7233ba",9115:"b37cce0a",9211:"97161318",9325:"c925923c",9552:"5b57af49",9558:"f6e6487f",9619:"bf194b73",9660:"6be7cb97",9672:"00e58d20",9736:"6039adf9"}[chunkId]+".iframe.bundle.js"),__webpack_require__.miniCssF=chunkId=>{},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=module=>((module=Object.create(module)).children||(module.children=[]),Object.defineProperty(module,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+module.id)}}),module),__webpack_require__.o=(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop),inProgress={},__webpack_require__.l=(url,done,key,chunkId)=>{if(inProgress[url])inProgress[url].push(done);else{var script,needAttach;if(void 0!==key)for(var scripts=document.getElementsByTagName("script"),i=0;i<scripts.length;i++){var s=scripts[i];if(s.getAttribute("src")==url||s.getAttribute("data-webpack")=="carbon-components-angular:"+key){script=s;break}}script||(needAttach=!0,(script=document.createElement("script")).charset="utf-8",script.timeout=120,__webpack_require__.nc&&script.setAttribute("nonce",__webpack_require__.nc),script.setAttribute("data-webpack","carbon-components-angular:"+key),script.src=url),inProgress[url]=[done];var onScriptComplete=(prev,event)=>{script.onerror=script.onload=null,clearTimeout(timeout);var doneFns=inProgress[url];if(delete inProgress[url],script.parentNode&&script.parentNode.removeChild(script),doneFns&&doneFns.forEach((fn=>fn(event))),prev)return prev(event)},timeout=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:script}),12e4);script.onerror=onScriptComplete.bind(null,script.onerror),script.onload=onScriptComplete.bind(null,script.onload),needAttach&&document.head.appendChild(script)}},__webpack_require__.r=exports=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})},__webpack_require__.nmd=module=>(module.paths=[],module.children||(module.children=[]),module),__webpack_require__.p="",(()=>{var installedChunks={1303:0};__webpack_require__.f.j=(chunkId,promises)=>{var installedChunkData=__webpack_require__.o(installedChunks,chunkId)?installedChunks[chunkId]:void 0;if(0!==installedChunkData)if(installedChunkData)promises.push(installedChunkData[2]);else if(1303!=chunkId){var promise=new Promise(((resolve,reject)=>installedChunkData=installedChunks[chunkId]=[resolve,reject]));promises.push(installedChunkData[2]=promise);var url=__webpack_require__.p+__webpack_require__.u(chunkId),error=new Error;__webpack_require__.l(url,(event=>{if(__webpack_require__.o(installedChunks,chunkId)&&(0!==(installedChunkData=installedChunks[chunkId])&&(installedChunks[chunkId]=void 0),installedChunkData)){var errorType=event&&("load"===event.type?"missing":event.type),realSrc=event&&event.target&&event.target.src;error.message="Loading chunk "+chunkId+" failed.\n("+errorType+": "+realSrc+")",error.name="ChunkLoadError",error.type=errorType,error.request=realSrc,installedChunkData[1](error)}}),"chunk-"+chunkId,chunkId)}else installedChunks[chunkId]=0},__webpack_require__.O.j=chunkId=>0===installedChunks[chunkId];var webpackJsonpCallback=(parentChunkLoadingFunction,data)=>{var moduleId,chunkId,[chunkIds,moreModules,runtime]=data,i=0;if(chunkIds.some((id=>0!==installedChunks[id]))){for(moduleId in moreModules)__webpack_require__.o(moreModules,moduleId)&&(__webpack_require__.m[moduleId]=moreModules[moduleId]);if(runtime)var result=runtime(__webpack_require__)}for(parentChunkLoadingFunction&&parentChunkLoadingFunction(data);i<chunkIds.length;i++)chunkId=chunkIds[i],__webpack_require__.o(installedChunks,chunkId)&&installedChunks[chunkId]&&installedChunks[chunkId][0](),installedChunks[chunkId]=0;return __webpack_require__.O(result)},chunkLoadingGlobal=self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[];chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null,0)),chunkLoadingGlobal.push=webpackJsonpCallback.bind(null,chunkLoadingGlobal.push.bind(chunkLoadingGlobal))})(),__webpack_require__.nc=void 0})();
1
+ (()=>{"use strict";var deferred,leafPrototypes,getProto,inProgress,__webpack_modules__={},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={id:moduleId,loaded:!1,exports:{}};return __webpack_modules__[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.amdO={},deferred=[],__webpack_require__.O=(result,chunkIds,fn,priority)=>{if(!chunkIds){var notFulfilled=1/0;for(i=0;i<deferred.length;i++){for(var[chunkIds,fn,priority]=deferred[i],fulfilled=!0,j=0;j<chunkIds.length;j++)(!1&priority||notFulfilled>=priority)&&Object.keys(__webpack_require__.O).every((key=>__webpack_require__.O[key](chunkIds[j])))?chunkIds.splice(j--,1):(fulfilled=!1,priority<notFulfilled&&(notFulfilled=priority));if(fulfilled){deferred.splice(i--,1);var r=fn();void 0!==r&&(result=r)}}return result}priority=priority||0;for(var i=deferred.length;i>0&&deferred[i-1][2]>priority;i--)deferred[i]=deferred[i-1];deferred[i]=[chunkIds,fn,priority]},__webpack_require__.n=module=>{var getter=module&&module.__esModule?()=>module.default:()=>module;return __webpack_require__.d(getter,{a:getter}),getter},getProto=Object.getPrototypeOf?obj=>Object.getPrototypeOf(obj):obj=>obj.__proto__,__webpack_require__.t=function(value,mode){if(1&mode&&(value=this(value)),8&mode)return value;if("object"==typeof value&&value){if(4&mode&&value.__esModule)return value;if(16&mode&&"function"==typeof value.then)return value}var ns=Object.create(null);__webpack_require__.r(ns);var def={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var current=2&mode&&value;"object"==typeof current&&!~leafPrototypes.indexOf(current);current=getProto(current))Object.getOwnPropertyNames(current).forEach((key=>def[key]=()=>value[key]));return def.default=()=>value,__webpack_require__.d(ns,def),ns},__webpack_require__.d=(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},__webpack_require__.f={},__webpack_require__.e=chunkId=>Promise.all(Object.keys(__webpack_require__.f).reduce(((promises,key)=>(__webpack_require__.f[key](chunkId,promises),promises)),[])),__webpack_require__.u=chunkId=>(({140:"dialog-overflow-menu-overflow-menu-stories",210:"list-list-stories",384:"grid-css-grid-stories",459:"tabs-tabs-stories",703:"toggletip-toggletip-stories",799:"pagination-pagination-stories",911:"button-button-stories",933:"table-table-stories",972:"patterns-loading-large-loading-stories",1127:"search-search-stories",1928:"accordion-accordion-stories",2218:"inline-loading-inline-loading-stories",2342:"radio-radio-stories",2371:"timepicker-timepicker-stories",2388:"modal-modal-stories",2399:"input-textarea-stories",2489:"toggle-toggle-stories",2494:"loading-loading-stories",2573:"grid-grid-stories",2722:"context-menu-context-menu-stories",2969:"pagination-pagination-nav-stories",3280:"tiles-tiles-stories",3314:"patterns-filtering-multiple-categories-stories",3329:"checkbox-checkbox-stories",3402:"tiles-expandable-tile-stories",3523:"contained-list-contained-list-stories",3610:"patterns-filtering-single-selection-stories",3719:"tiles-clickable-tile-stories",3858:"code-snippet-code-snippet-stories",3867:"tag-tag-stories",4232:"patterns-forms-multi-step-form-stories",4253:"tooltip-tooltip-stories",4277:"patterns-dialogs-modal-with-table-stories",4391:"content-switcher-content-switcher-stories",4731:"icon-icon-stories",4762:"patterns-filtering-multi-selection-stories",5167:"button-icon-button-stories",5368:"number-input-number-stories",5455:"layer-layer-stories",5808:"progress-bar-progress-bar-stories",5980:"select-select-stories",6026:"slider-slider-stories",6115:"theme-theme-stories",6274:"tooltip-definition-tooptip-stories",6310:"file-uploader-file-uploader-stories",6322:"popover-popover-stories",6456:"treeview-treeview-stories",6634:"link-link-stories",6663:"datepicker-datepicker-stories",6842:"breadcrumb-breadcrumb-stories",6943:"input-input-stories",7081:"layout-stack-stories",7235:"index-stories",7291:"structured-list-structured-list-stories",7840:"patterns-loading-progressive-loading-stories",7869:"skeleton-skeleton-stories",7931:"notification-notification-stories",8552:"button-button-set-stories",9211:"dropdown-dropdown-stories",9325:"tiles-tile-group-stories",9552:"timepicker-select-timepicker-select-stories",9619:"progress-indicator-progress-indicator-stories",9660:"ui-shell-ui-shell-stories",9736:"combobox-combobox-stories"}[chunkId]||chunkId)+"."+{140:"e8963bf8",210:"e906cf67",384:"c703f9de",454:"3f3499ab",459:"183f4129",503:"7113f5a6",703:"93f48d46",799:"05ab4dd7",901:"adc28b35",911:"19d4c798",933:"c19aca64",972:"f776e3ae",1119:"f42b55a6",1127:"fac60ec0",1325:"3c39c950",1470:"39923f01",1562:"1e6a79b6",1895:"172bd8b0",1928:"48faee56",2218:"7513a48b",2342:"ba1fb969",2371:"7bbf1029",2388:"66aa5c7c",2399:"51dab44c",2489:"def6c644",2494:"261bc118",2573:"f7a88c02",2722:"00b09460",2969:"ad4e83e9",3080:"d3996d61",3224:"aa2b4664",3280:"841048dc",3314:"487f9487",3329:"3aeae19d",3348:"9d9f3238",3360:"e0c015fc",3402:"97c48cb1",3415:"bd5d140d",3523:"d8456cd4",3610:"e4243e65",3719:"09f1a279",3774:"c37f3d92",3858:"e78f3090",3867:"7b3a9288",3931:"0e7c514c",4232:"a9142797",4253:"eb2e347f",4277:"a011175b",4391:"8f3aa078",4731:"5b558b26",4762:"cae9c326",5069:"eabf32ea",5103:"20115e64",5167:"4b2fc4a6",5368:"b2525c3c",5455:"9fc41371",5808:"0002dc55",5868:"4bc19136",5980:"f28348e5",6026:"0a70e102",6115:"66e1727e",6274:"60d42e1c",6310:"7cbeda49",6322:"a91784a3",6456:"e544ed9d",6634:"9e3dd976",6663:"d5770b7c",6702:"8b6fb391",6842:"43daa149",6943:"eeb079d9",7019:"b8944046",7081:"799a681c",7153:"fff25cdf",7235:"bdb87ad2",7291:"c50bdf73",7399:"f37bb110",7529:"5272f30b",7773:"6c3cf943",7840:"717ad729",7869:"77f9485f",7931:"624c3d04",8341:"a544f9e9",8552:"ad7233ba",9115:"b37cce0a",9211:"97161318",9325:"c925923c",9552:"5b57af49",9558:"f6e6487f",9619:"bf194b73",9660:"6be7cb97",9672:"00e58d20",9736:"6039adf9"}[chunkId]+".iframe.bundle.js"),__webpack_require__.miniCssF=chunkId=>{},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=module=>((module=Object.create(module)).children||(module.children=[]),Object.defineProperty(module,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+module.id)}}),module),__webpack_require__.o=(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop),inProgress={},__webpack_require__.l=(url,done,key,chunkId)=>{if(inProgress[url])inProgress[url].push(done);else{var script,needAttach;if(void 0!==key)for(var scripts=document.getElementsByTagName("script"),i=0;i<scripts.length;i++){var s=scripts[i];if(s.getAttribute("src")==url||s.getAttribute("data-webpack")=="carbon-components-angular:"+key){script=s;break}}script||(needAttach=!0,(script=document.createElement("script")).charset="utf-8",script.timeout=120,__webpack_require__.nc&&script.setAttribute("nonce",__webpack_require__.nc),script.setAttribute("data-webpack","carbon-components-angular:"+key),script.src=url),inProgress[url]=[done];var onScriptComplete=(prev,event)=>{script.onerror=script.onload=null,clearTimeout(timeout);var doneFns=inProgress[url];if(delete inProgress[url],script.parentNode&&script.parentNode.removeChild(script),doneFns&&doneFns.forEach((fn=>fn(event))),prev)return prev(event)},timeout=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:script}),12e4);script.onerror=onScriptComplete.bind(null,script.onerror),script.onload=onScriptComplete.bind(null,script.onload),needAttach&&document.head.appendChild(script)}},__webpack_require__.r=exports=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})},__webpack_require__.nmd=module=>(module.paths=[],module.children||(module.children=[]),module),__webpack_require__.p="",(()=>{var installedChunks={1303:0};__webpack_require__.f.j=(chunkId,promises)=>{var installedChunkData=__webpack_require__.o(installedChunks,chunkId)?installedChunks[chunkId]:void 0;if(0!==installedChunkData)if(installedChunkData)promises.push(installedChunkData[2]);else if(1303!=chunkId){var promise=new Promise(((resolve,reject)=>installedChunkData=installedChunks[chunkId]=[resolve,reject]));promises.push(installedChunkData[2]=promise);var url=__webpack_require__.p+__webpack_require__.u(chunkId),error=new Error;__webpack_require__.l(url,(event=>{if(__webpack_require__.o(installedChunks,chunkId)&&(0!==(installedChunkData=installedChunks[chunkId])&&(installedChunks[chunkId]=void 0),installedChunkData)){var errorType=event&&("load"===event.type?"missing":event.type),realSrc=event&&event.target&&event.target.src;error.message="Loading chunk "+chunkId+" failed.\n("+errorType+": "+realSrc+")",error.name="ChunkLoadError",error.type=errorType,error.request=realSrc,installedChunkData[1](error)}}),"chunk-"+chunkId,chunkId)}else installedChunks[chunkId]=0},__webpack_require__.O.j=chunkId=>0===installedChunks[chunkId];var webpackJsonpCallback=(parentChunkLoadingFunction,data)=>{var moduleId,chunkId,[chunkIds,moreModules,runtime]=data,i=0;if(chunkIds.some((id=>0!==installedChunks[id]))){for(moduleId in moreModules)__webpack_require__.o(moreModules,moduleId)&&(__webpack_require__.m[moduleId]=moreModules[moduleId]);if(runtime)var result=runtime(__webpack_require__)}for(parentChunkLoadingFunction&&parentChunkLoadingFunction(data);i<chunkIds.length;i++)chunkId=chunkIds[i],__webpack_require__.o(installedChunks,chunkId)&&installedChunks[chunkId]&&installedChunks[chunkId][0](),installedChunks[chunkId]=0;return __webpack_require__.O(result)},chunkLoadingGlobal=self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[];chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null,0)),chunkLoadingGlobal.push=webpackJsonpCallback.bind(null,chunkLoadingGlobal.push.bind(chunkLoadingGlobal))})(),__webpack_require__.nc=void 0})();
@@ -248,7 +248,9 @@ CodeSnippet.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
248
248
  </div>
249
249
  <div *ngIf="hasLeft" class="cds--snippet__overflow-indicator--left"></div>
250
250
  <div *ngIf="hasRight" class="cds--snippet__overflow-indicator--right"></div>
251
- <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
251
+ <ng-container *ngIf="!hideCopyButton;">
252
+ <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
253
+ </ng-container>
252
254
  <button
253
255
  *ngIf="isExpandable"
254
256
  class="cds--btn cds--btn--ghost cds--btn--sm cds--snippet-btn--expand"
@@ -350,7 +352,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
350
352
  </div>
351
353
  <div *ngIf="hasLeft" class="cds--snippet__overflow-indicator--left"></div>
352
354
  <div *ngIf="hasRight" class="cds--snippet__overflow-indicator--right"></div>
353
- <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
355
+ <ng-container *ngIf="!hideCopyButton;">
356
+ <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
357
+ </ng-container>
354
358
  <button
355
359
  *ngIf="isExpandable"
356
360
  class="cds--btn cds--btn--ghost cds--btn--sm cds--snippet-btn--expand"
@@ -471,4 +475,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
471
475
  type: ViewChild,
472
476
  args: ["codeContainer"]
473
477
  }] } });
474
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1zbmlwcGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2RlLXNuaXBwZXQvY29kZS1zbmlwcGV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUdULE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7OztBQUVsRSxNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3RCLGdDQUFpQixDQUFBO0lBQ2pCLDhCQUFlLENBQUE7SUFDZixnQ0FBaUIsQ0FBQTtBQUNsQixDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEI7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFzR0gsTUFBTSxPQUFPLFdBQVksU0FBUSxjQUFjO0lBNEY5Qzs7T0FFRztJQUNILFlBQXNCLElBQVUsRUFBWSxZQUEwQjtRQUNyRSxLQUFLLEVBQUUsQ0FBQztRQURhLFNBQUksR0FBSixJQUFJLENBQU07UUFBWSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQTlFN0QscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBRXZDOztXQUVHO1FBQ00sWUFBTyxHQUFnQixXQUFXLENBQUMsTUFBTSxDQUFDO1FBQzFDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFLckQ7O1dBRUc7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUNoQzs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7OztXQUdHO1FBQ00sNkJBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDOzs7V0FHRztRQUNNLDZCQUF3QixHQUFHLENBQUMsQ0FBQztRQUN0Qzs7O1dBR0c7UUFDTSw0QkFBdUIsR0FBRyxDQUFDLENBQUM7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V0FBVzt1QkFBQyw0QkFBNEI7O3NCQUFHLEtBQUs7Z0JBQ0osUUFBUTtzQkFBcEQsV0FBVzt1QkFBQyxxQkFBcUI7O3NCQUFHLEtBQUs7Z0JBR3ZCLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFDUyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0ksYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRJbnB1dCxcblx0SG9zdEJpbmRpbmcsXG5cdFZpZXdDaGlsZCxcblx0QWZ0ZXJWaWV3SW5pdCxcblx0T25Jbml0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEkxOG4gfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9pMThuXCI7XG5pbXBvcnQgeyBFdmVudFNlcnZpY2UgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci91dGlsc1wiO1xuaW1wb3J0IHsgQmFzZUljb25CdXR0b24gfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9idXR0b25cIjtcblxuZXhwb3J0IGVudW0gU25pcHBldFR5cGUge1xuXHRzaW5nbGUgPSBcInNpbmdsZVwiLFxuXHRtdWx0aSA9IFwibXVsdGlcIixcblx0aW5saW5lID0gXCJpbmxpbmVcIlxufVxuXG4vKipcbiAqIEdldCBzdGFydGVkIHdpdGggaW1wb3J0aW5nIHRoZSBtb2R1bGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgQ29kZVNuaXBwZXRNb2R1bGUgfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbiAqIGBgYFxuICpcbiAqIGBgYGh0bWxcbiAqIDxjZHMtY29kZS1zbmlwcGV0PkNvZGU8L2Nkcy1jb2RlLXNuaXBwZXQ+XG4gKiBgYGBcbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLWNvZGUtc25pcHBldC0tYmFzaWMpXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtY29kZS1zbmlwcGV0LCBpYm0tY29kZS1zbmlwcGV0XCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXkgPT09ICdpbmxpbmUnOyBlbHNlIG5vdElubGluZVwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoaWRlQ29weUJ1dHRvbjsgZWxzZSBub0J0bklubGluZVwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0PG5nLXRlbXBsYXRlICNub0J0bklubGluZT5cblx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc25pcHBldCBjZHMtLXNuaXBwZXQtLWlubGluZSBjZHMtLXNuaXBwZXQtLW5vLWNvcHlcIlxuXHRcdFx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0XHRcdCdjZHMtLXNuaXBwZXQtLWxpZ2h0JzogdGhlbWUgPT09ICdsaWdodCdcblx0XHRcdFx0XHR9XCI+XG5cdFx0XHRcdFx0PGNvZGUgI2NvZGU+XG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29kZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0PC9jb2RlPlxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDwvbmctY29udGFpbmVyPlxuXG5cdFx0PG5nLXRlbXBsYXRlICNub3RJbmxpbmU+XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdCNjb2RlQ29udGFpbmVyXG5cdFx0XHRcdGNsYXNzPVwiY2RzLS1zbmlwcGV0LWNvbnRhaW5lclwiXG5cdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwidHJhbnNsYXRpb25zLkNPREVfU05JUFBFVF9URVhUXCJcblx0XHRcdFx0W2F0dHIudGFiaW5kZXhdPVwiZGlzcGxheSA9PT0gJ3NpbmdsZScgJiYgIWRpc2FibGVkID8gJzAnIDogbnVsbFwiXG5cdFx0XHRcdFthdHRyLnJvbGVdPVwiZGlzcGxheT09PSdzaW5nbGUnID8gJ3RleHRhcmVhJyA6IG51bGxcIlxuXHRcdFx0XHRbbmdTdHlsZV09XCJzdHlsZXNcIlxuXHRcdFx0XHQoc2Nyb2xsKT1cIihkaXNwbGF5ID09PSAnc2luZ2xlJyA/IGhhbmRsZVNjcm9sbCgpIDogbnVsbClcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNrZWxldG9uXCI+XG5cdFx0XHRcdFx0PHNwYW4gKm5nSWY9XCJkaXNwbGF5ID09PSAnc2luZ2xlJzsgZWxzZSBtdWx0aVNrZWxldG9uXCI+PC9zcGFuPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjbXVsdGlTa2VsZXRvbj5cblx0XHRcdFx0XHRcdDxzcGFuPjwvc3Bhbj5cblx0XHRcdFx0XHRcdDxzcGFuPjwvc3Bhbj5cblx0XHRcdFx0XHRcdDxzcGFuPjwvc3Bhbj5cblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PHByZVxuXHRcdFx0XHRcdCNjb2RlQ29udGVudFxuXHRcdFx0XHRcdCpuZ0lmPVwiIXNrZWxldG9uXCJcblx0XHRcdFx0XHQoc2Nyb2xsKT1cIihkaXNwbGF5ID09PSAnbXVsdGknID8gaGFuZGxlU2Nyb2xsKCkgOiBudWxsKVwiPjxjb2RlICNjb2RlPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2RlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj48L2NvZGU+PC9wcmU+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgKm5nSWY9XCJoYXNMZWZ0XCIgY2xhc3M9XCJjZHMtLXNuaXBwZXRfX292ZXJmbG93LWluZGljYXRvci0tbGVmdFwiPjwvZGl2PlxuXHRcdFx0PGRpdiAqbmdJZj1cImhhc1JpZ2h0XCIgY2xhc3M9XCJjZHMtLXNuaXBwZXRfX292ZXJmbG93LWluZGljYXRvci0tcmlnaHRcIj48L2Rpdj5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0PGJ1dHRvblxuXHRcdFx0XHQqbmdJZj1cImlzRXhwYW5kYWJsZVwiXG5cdFx0XHRcdGNsYXNzPVwiY2RzLS1idG4gY2RzLS1idG4tLWdob3N0IGNkcy0tYnRuLS1zbSBjZHMtLXNuaXBwZXQtYnRuLS1leHBhbmRcIlxuXHRcdFx0XHQoY2xpY2spPVwidG9nZ2xlU25pcHBldEV4cGFuc2lvbigpXCJcblx0XHRcdFx0dHlwZT1cImJ1dHRvblwiPlxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImNkcy0tc25pcHBldC1idG4tLXRleHRcIj57e2V4cGFuZGVkID8gdHJhbnNsYXRpb25zLlNIT1dfTEVTUyA6IHRyYW5zbGF0aW9ucy5TSE9XX01PUkV9fTwvc3Bhbj5cblx0XHRcdFx0PHN2ZyBjZHNJY29uPVwiY2hldnJvbi0tZG93blwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1pY29uLWNoZXZyb24tLWRvd25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRyYW5zbGF0aW9ucy5TSE9XX01PUkVfSUNPTlwiPjwvc3ZnPlxuXHRcdFx0PC9idXR0b24+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblxuXHRcdDxuZy10ZW1wbGF0ZSAjYnV0dG9uVGVtcGxhdGU+XG5cdFx0XHQ8Y2RzLWljb24tYnV0dG9uXG5cdFx0XHRcdCpuZ0lmPVwiIXNrZWxldG9uXCJcblx0XHRcdFx0W2Rlc2NyaXB0aW9uXT1cInNob3dGZWVkYmFjayA/IGZlZWRiYWNrVGV4dCA6IGNvcHlCdXR0b25EZXNjcmlwdGlvblwiXG5cdFx0XHRcdFthbGlnbl09XCJhbGlnblwiXG5cdFx0XHRcdFtkcm9wU2hhZG93XT1cImRyb3BTaGFkb3dcIlxuXHRcdFx0XHRbY2FyZXRdPVwiY2FyZXRcIlxuXHRcdFx0XHRbaGlnaENvbnRyYXN0XT1cImhpZ2hDb250cmFzdFwiXG5cdFx0XHRcdFtpc09wZW5dPVwiaXNPcGVuXCJcblx0XHRcdFx0W2VudGVyRGVsYXlNc109XCJlbnRlckRlbGF5TXNcIlxuXHRcdFx0XHRbbGVhdmVEZWxheU1zXT1cImxlYXZlRGVsYXlNc1wiXG5cdFx0XHRcdHR5cGU9XCJidXR0b25cIlxuXHRcdFx0XHRraW5kPVwicHJpbWFyeVwiXG5cdFx0XHRcdHNpemU9XCJtZFwiXG5cdFx0XHRcdChjbGljayk9XCJvbkNvcHlCdXR0b25DbGlja2VkKCRldmVudClcIlxuXHRcdFx0XHRbYnV0dG9uTmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0J2Nkcy0tc25pcHBldC0tbGlnaHQnOiB0aGVtZSA9PT0gJ2xpZ2h0Jyxcblx0XHRcdFx0XHQnY2RzLS1zbmlwcGV0LS1pbmxpbmUnOiBkaXNwbGF5ID09PSAnaW5saW5lJyxcblx0XHRcdFx0XHQnY2RzLS1idG4tLWljb24tb25seSc6IGRpc3BsYXkgIT09ICdpbmxpbmUnLFxuXHRcdFx0XHRcdCdjZHMtLWNvcHktYnRuJzogZGlzcGxheSAhPT0gJ2lubGluZScsXG5cdFx0XHRcdFx0J2Nkcy0tY29weS1idG4tLWFuaW1hdGluZyc6IGFuaW1hdGluZyxcblx0XHRcdFx0XHQnY2RzLS1jb3B5LWJ0bi0tZmFkZS1pbic6IHNob3dGZWVkYmFjayxcblx0XHRcdFx0XHQnY2RzLS1jb3B5LWJ0bi0tZmFkZS1vdXQnOiAhc2hvd0ZlZWRiYWNrICYmIGFuaW1hdGluZyxcblx0XHRcdFx0XHQnY2RzLS1zbmlwcGV0IGNkcy0tY29weSc6IHRydWVcblx0XHRcdFx0fVwiXG5cdFx0XHRcdFtidXR0b25BdHRyaWJ1dGVzXT1cIntcblx0XHRcdFx0XHQnYXJpYS1sYWJlbCc6IHRyYW5zbGF0aW9ucy5DT1BZX0NPREUsXG5cdFx0XHRcdFx0J2FyaWEtbGl2ZSc6ICdwb2xpdGUnLFxuXHRcdFx0XHRcdCd0YWJpbmRleCc6ICcwJ1xuXHRcdFx0XHR9XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5ID09PSAnaW5saW5lJ1wiPlxuXHRcdFx0XHRcdDxjb2RlICNjb2RlPlxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvZGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdDwvY29kZT5cblx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5ICE9PSAnaW5saW5lJ1wiPlxuXHRcdFx0XHRcdDxzdmcgY2RzSWNvbj1cImNvcHlcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tc25pcHBldF9faWNvblwiPjwvc3ZnPlxuXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdDwvY2RzLWljb24tYnV0dG9uPlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cblx0XHQ8bmctdGVtcGxhdGUgI2NvZGVUZW1wbGF0ZT5cblx0XHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIENvZGVTbmlwcGV0IGV4dGVuZHMgQmFzZUljb25CdXR0b24gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXNuaXBwZXRcIikgZ2V0IHNuaXBwZXRDbGFzcygpIHtcblx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5ICE9PSBTbmlwcGV0VHlwZS5pbmxpbmU7XG5cdH1cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1zbmlwcGV0LS1zaW5nbGVcIikgZ2V0IHNuaXBwZXRTaW5nbGVDbGFzcygpIHtcblx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5ID09PSBTbmlwcGV0VHlwZS5zaW5nbGU7XG5cdH1cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1zbmlwcGV0LS1tdWx0aVwiKSBnZXQgc25pcHBldE11bHRpQ2xhc3MoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZGlzcGxheSA9PT0gU25pcHBldFR5cGUubXVsdGk7XG5cdH1cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1zbmlwcGV0LS1kaXNhYmxlZFwiKSBnZXQgc25pcHBldERpc2FibGVkQ2xhc3MoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZGlzcGxheSAhPT0gXCJpbmxpbmVcIiAmJiB0aGlzLmRpc2FibGVkO1xuXHR9XG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tc25pcHBldC0tbGlnaHRcIikgZ2V0IHNuaXBwZXRJbmxpbmVMaWdodENsYXNzKCkge1xuXHRcdHJldHVybiB0aGlzLnRoZW1lID09PSBcImxpZ2h0XCI7XG5cdH1cblxuXHRyZWFkb25seSByb3dIZWlnaHRJblBpeGVsOiBudW1iZXIgPSAxNjtcblxuXHQvKipcblx0ICogSXQgY2FuIGJlIGBcInNpbmdsZVwiYCwgYFwibXVsdGlcImAgb3IgYFwiaW5saW5lXCJgXG5cdCAqL1xuXHRASW5wdXQoKSBkaXNwbGF5OiBTbmlwcGV0VHlwZSA9IFNuaXBwZXRUeXBlLnNpbmdsZTtcblx0QElucHV0KCkgdHJhbnNsYXRpb25zID0gdGhpcy5pMThuLmdldCgpLkNPREVfU05JUFBFVDtcblx0LyoqXG5cdCAqIGNvcHkgYnV0dG9uIGRlc2NyaXB0aW9uIHRvIHNob3cgb24gaG92ZXJcblx0ICovXG5cdEBJbnB1dCgpIGNvcHlCdXR0b25EZXNjcmlwdGlvbjogc3RyaW5nO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byBoaWRlIGNvcHkgYnV0dG9uXG5cdCAqL1xuXHRASW5wdXQoKSBoaWRlQ29weUJ1dHRvbiA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byBkaXNhYmxlIHRoZSBjb2RlIHNuaXBwZXRcblx0ICovXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTcGVjaWZ5IHRoZSBtYXggbnVtYmVyIG9mIHJvd3MgdG8gc2hvdyB3aGVuIGNvbGxhcHNlZFxuXHQgKiBEZWZhdWx0IGlzIGAxNWBcblx0ICovXG5cdEBJbnB1dCgpIG1heENvbGxhcHNlZE51bWJlck9mUm93cyA9IDE1O1xuXHQvKipcblx0ICogU3BlY2lmeSB0aGUgbWluIG51bWJlciBvZiByb3dzIHRvIHNob3cgd2hlbiBjb2xsYXBzZWRcblx0ICogRGVmYXVsdCBpcyBgM2Bcblx0ICovXG5cdEBJbnB1dCgpIG1pbkNvbGxhcHNlZE51bWJlck9mUm93cyA9IDM7XG5cdC8qKlxuXHQgKiBTcGVjaWZ5IHRoZSBtYXggbnVtYmVyIG9mIHJvd3MgdG8gc2hvdyB3aGVuIGV4cGFuZGVkXG5cdCAqIERlZmF1bHQgaXMgYDBgLCBoZW5jZSBhbGwgY29udGVudCB3aWxsIGJlIHZpc2libGUgd2hlbiBleHBhbmRlZFxuXHQgKi9cblx0QElucHV0KCkgbWF4RXhwYW5kZWROdW1iZXJPZlJvd3MgPSAwO1xuXHQvKipcblx0ICogU3BlY2lmeSB0aGUgbWluIG51bWJlciBvZiByb3dzIHRvIHNob3cgd2hlbiBleHBhbmRlZFxuXHQgKiBEZWZhdWx0IGlzIGAxNmAsIGhlbmNlIGhlaWdodCBvZiBleHBhbmRlZCByb3cgd2lsbCBiZSAxNiAqIHJvd0hlaWdodEluUGl4ZWwgKDE2KSA9ICAyNTZweFxuXHQgKi9cblx0QElucHV0KCkgbWluRXhwYW5kZWROdW1iZXJPZlJvd3MgPSAxNjtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gd3JhcCB0aGUgdGV4dFxuXHQgKi9cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1zbmlwcGV0LS13cmFwdGV4dFwiKSBASW5wdXQoKSB3cmFwVGV4dCA9IGZhbHNlO1xuXHQvKipcblx0ICogQGRlcHJlY2F0ZWQgc2luY2UgdjUgLSBVc2UgYGNkc0xheWVyYCBkaXJlY3RpdmUgaW5zdGVhZFxuXHQgKiBTZXQgdG8gYFwibGlnaHRcImAgdG8gYXBwbHkgdGhlIGxpZ2h0IHN0eWxlXG5cdCAqL1xuXHRASW5wdXQoKSB0aGVtZTogXCJsaWdodFwiIHwgXCJkYXJrXCIgPSBcImRhcmtcIjtcblx0LyoqXG5cdCAqIFRleHQgZGlzcGxheWVkIGluIHRoZSB0b29sdGlwIHdoZW4gdXNlciBjbGlja3MgYnV0dG9uIHRvIGNvcHkgY29kZS5cblx0ICovXG5cdEBJbnB1dCgpIGZlZWRiYWNrVGV4dCA9IHRoaXMudHJhbnNsYXRpb25zLkNPUElFRDtcblx0LyoqXG5cdCAqIFRpbWUgaW4gbWlsaXNlY29uZHMgdG8ga2VlcCB0aGUgZmVlZGJhY2sgdG9vbHRpcCBkaXNwbGF5ZWQuXG5cdCAqIERlZmF1bHRzIHRvIDIgc2Vjb25kc1xuXHQgKi9cblx0QElucHV0KCkgZmVlZGJhY2tUaW1lb3V0ID0gMjAwMDtcblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXNuaXBwZXQtLWV4cGFuZFwiKSBASW5wdXQoKSBleHBhbmRlZCA9IGZhbHNlO1xuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXNrZWxldG9uXCIpIEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cdHN0eWxlczogYW55ID0ge307XG5cblx0QFZpZXdDaGlsZChcImNvZGVcIikgY29kZTtcblx0QFZpZXdDaGlsZChcImNvZGVDb250ZW50XCIpIGNvZGVDb250ZW50O1xuXHRAVmlld0NoaWxkKFwiY29kZUNvbnRhaW5lclwiKSBjb2RlQ29udGFpbmVyO1xuXG5cdHNob3dGZWVkYmFjayA9IGZhbHNlO1xuXHRhbmltYXRpbmcgPSBmYWxzZTtcblx0aGFzRXhwYW5kQnV0dG9uID0gbnVsbDtcblx0aXNFeHBhbmRhYmxlID0gZmFsc2U7XG5cdGhhc1JpZ2h0T3ZlcmZsb3cgPSBmYWxzZTtcblxuXHRoYXNSaWdodCA9IGZhbHNlO1xuXHRoYXNMZWZ0ID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQ29kZVNuaXBwZXQuXG5cdCAqL1xuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaTE4bjogSTE4biwgcHJvdGVjdGVkIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlKSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLmRyb3BTaGFkb3cgPSBmYWxzZTtcblx0fVxuXG5cdGhhbmRsZVNjcm9sbCgpIHtcblx0XHRpZiAodGhpcy5za2VsZXRvbikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGxldCByZWY7XG5cdFx0c3dpdGNoICh0aGlzLmRpc3BsYXkpIHtcblx0XHRcdGNhc2UgXCJtdWx0aVwiOlxuXHRcdFx0XHRyZWYgPSB0aGlzLmNvZGVDb250ZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcInNpbmdsZVwiOlxuXHRcdFx0XHRyZWYgPSB0aGlzLmNvZGVDb250YWluZXIubmF0aXZlRWxlbWVudDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmIChyZWYpIHtcblx0XHRcdGNvbnN0IHtcblx0XHRcdFx0c2Nyb2xsV2lkdGgsXG5cdFx0XHRcdGNsaWVudFdpZHRoLFxuXHRcdFx0XHRzY3JvbGxMZWZ0XG5cdFx0XHR9ID0gcmVmO1xuXHRcdFx0Y29uc3QgaG9yaXpvbnRhbE92ZXJmbG93ID0gc2Nyb2xsV2lkdGggPiBjbGllbnRXaWR0aDtcblx0XHRcdHRoaXMuaGFzTGVmdCA9IGhvcml6b250YWxPdmVyZmxvdyAmJiAhIXNjcm9sbExlZnQ7XG5cdFx0XHR0aGlzLmhhc1JpZ2h0ID0gaG9yaXpvbnRhbE92ZXJmbG93ICYmIHNjcm9sbExlZnQgKyBjbGllbnRXaWR0aCAhPT0gc2Nyb2xsV2lkdGg7XG5cdFx0fVxuXHR9XG5cblx0dG9nZ2xlU25pcHBldEV4cGFuc2lvbigpIHtcblx0XHR0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XG5cdFx0dGhpcy5jYWxjdWxhdGVDb250YWluZXJIZWlnaHQoKTtcblx0fVxuXG5cdG9uQ29weUJ1dHRvbkNsaWNrZWQoKSB7XG5cdFx0aWYgKCF0aGlzLmRpc2FibGVkKSB7XG5cdFx0XHR3aW5kb3cubmF2aWdhdG9yLmNsaXBib2FyZFxuXHRcdFx0XHQud3JpdGVUZXh0KHRoaXMuY29kZSkudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5zaG93RmVlZGJhY2sgPSB0cnVlO1xuXHRcdFx0XHRcdHRoaXMuYW5pbWF0aW5nID0gdHJ1ZTtcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMuc2hvd0ZlZWRiYWNrID0gZmFsc2U7XG5cdFx0XHRcdFx0XHR0aGlzLmFuaW1hdGluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdH0sIHRoaXMuZmVlZGJhY2tUaW1lb3V0KTtcblx0XHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5jYWxjdWxhdGVDb250YWluZXJIZWlnaHQoKTtcblx0fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHR0aGlzLmNhbkV4cGFuZCgpO1xuXHRcdHRoaXMuaGFuZGxlU2Nyb2xsKCk7XG5cdFx0aWYgKHdpbmRvdykge1xuXHRcdFx0dGhpcy5ldmVudFNlcnZpY2Uub24od2luZG93IGFzIGFueSwgXCJyZXNpemVcIiwgKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmNhbkV4cGFuZCgpO1xuXHRcdFx0XHR0aGlzLmhhbmRsZVNjcm9sbCgpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0Y2FsY3VsYXRlQ29udGFpbmVySGVpZ2h0KCkge1xuXHRcdGlmICh0aGlzLmRpc3BsYXkgPT09IFwibXVsdGlcIiAmJiAhdGhpcy5za2VsZXRvbikge1xuXHRcdFx0dGhpcy5zdHlsZXMgPSB7fTtcblx0XHRcdGlmICh0aGlzLmV4cGFuZGVkKSB7XG5cdFx0XHRcdGlmICh0aGlzLm1heEV4cGFuZGVkTnVtYmVyT2ZSb3dzID4gMCkge1xuXHRcdFx0XHRcdHRoaXMuc3R5bGVzW1wibWF4LWhlaWdodFwiXSA9IGAke3RoaXMubWF4RXhwYW5kZWROdW1iZXJPZlJvd3MgKiB0aGlzLnJvd0hlaWdodEluUGl4ZWx9cHhgO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLm1pbkV4cGFuZGVkTnVtYmVyT2ZSb3dzID4gMCkge1xuXHRcdFx0XHRcdHRoaXMuc3R5bGVzW1wibWluLWhlaWdodFwiXSA9IGAke3RoaXMubWluRXhwYW5kZWROdW1iZXJPZlJvd3MgKiB0aGlzLnJvd0hlaWdodEluUGl4ZWx9cHhgO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5tYXhDb2xsYXBzZWROdW1iZXJPZlJvd3MgPiAwKSB7XG5cdFx0XHRcdFx0dGhpcy5zdHlsZXNbXCJtYXgtaGVpZ2h0XCJdID0gYCR7dGhpcy5tYXhDb2xsYXBzZWROdW1iZXJPZlJvd3MgKiB0aGlzLnJvd0hlaWdodEluUGl4ZWx9cHhgO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLm1pbkNvbGxhcHNlZE51bWJlck9mUm93cyA+IDApIHtcblx0XHRcdFx0XHR0aGlzLnN0eWxlc1tcIm1pbi1oZWlnaHRcIl0gPSBgJHt0aGlzLm1pbkNvbGxhcHNlZE51bWJlck9mUm93cyAqIHRoaXMucm93SGVpZ2h0SW5QaXhlbH1weGA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgY2FuRXhwYW5kKCkge1xuXHRcdGlmICh0aGlzLmRpc3BsYXkgPT09IFwibXVsdGlcIiAmJiAhdGhpcy5za2VsZXRvbikge1xuXHRcdFx0Y29uc3QgaGVpZ2h0ID0gdGhpcy5jb2RlQ29udGVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblx0XHRcdGlmIChcblx0XHRcdFx0dGhpcy5tYXhDb2xsYXBzZWROdW1iZXJPZlJvd3MgPiAwICYmXG5cdFx0XHRcdCh0aGlzLm1heEV4cGFuZGVkTnVtYmVyT2ZSb3dzIDw9IDAgfHxcblx0XHRcdFx0XHR0aGlzLm1heEV4cGFuZGVkTnVtYmVyT2ZSb3dzID4gdGhpcy5tYXhDb2xsYXBzZWROdW1iZXJPZlJvd3MpICYmXG5cdFx0XHRcdGhlaWdodCA+IHRoaXMubWF4Q29sbGFwc2VkTnVtYmVyT2ZSb3dzICogdGhpcy5yb3dIZWlnaHRJblBpeGVsXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy5pc0V4cGFuZGFibGUgPSB0cnVlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5pc0V4cGFuZGFibGUgPSBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHR0aGlzLmV4cGFuZGVkICYmXG5cdFx0XHRcdHRoaXMubWluRXhwYW5kZWROdW1iZXJPZlJvd3MgPiAwICYmXG5cdFx0XHRcdGhlaWdodCA8PSB0aGlzLm1pbkV4cGFuZGVkTnVtYmVyT2ZSb3dzICogdGhpcy5yb3dIZWlnaHRJblBpeGVsXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy5pc0V4cGFuZGFibGUgPSBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdfQ==
478
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1zbmlwcGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2RlLXNuaXBwZXQvY29kZS1zbmlwcGV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUdULE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7OztBQUVsRSxNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3RCLGdDQUFpQixDQUFBO0lBQ2pCLDhCQUFlLENBQUE7SUFDZixnQ0FBaUIsQ0FBQTtBQUNsQixDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEI7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUF3R0gsTUFBTSxPQUFPLFdBQVksU0FBUSxjQUFjO0lBNEY5Qzs7T0FFRztJQUNILFlBQXNCLElBQVUsRUFBWSxZQUEwQjtRQUNyRSxLQUFLLEVBQUUsQ0FBQztRQURhLFNBQUksR0FBSixJQUFJLENBQU07UUFBWSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQTlFN0QscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBRXZDOztXQUVHO1FBQ00sWUFBTyxHQUFnQixXQUFXLENBQUMsTUFBTSxDQUFDO1FBQzFDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFLckQ7O1dBRUc7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUNoQzs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7OztXQUdHO1FBQ00sNkJBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDOzs7V0FHRztRQUNNLDZCQUF3QixHQUFHLENBQUMsQ0FBQztRQUN0Qzs7O1dBR0c7UUFDTSw0QkFBdUIsR0FBRyxDQUFDLENBQUM7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QTNELFdBQVc7dUJBQUMsNEJBQTRCOztzQkFBRyxLQUFLO2dCQUNKLFFBQVE7c0JBQXBELFdBQVc7dUJBQUMscUJBQXFCOztzQkFBRyxLQUFLO2dCQUd2QixJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBQ1MsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNJLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdEhvc3RCaW5kaW5nLFxuXHRWaWV3Q2hpbGQsXG5cdEFmdGVyVmlld0luaXQsXG5cdE9uSW5pdFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBJMThuIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvdXRpbHNcIjtcbmltcG9ydCB7IEJhc2VJY29uQnV0dG9uIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvYnV0dG9uXCI7XG5cbmV4cG9ydCBlbnVtIFNuaXBwZXRUeXBlIHtcblx0c2luZ2xlID0gXCJzaW5nbGVcIixcblx0bXVsdGkgPSBcIm11bHRpXCIsXG5cdGlubGluZSA9IFwiaW5saW5lXCJcbn1cblxuLyoqXG4gKiBHZXQgc3RhcnRlZCB3aXRoIGltcG9ydGluZyB0aGUgbW9kdWxlOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IENvZGVTbmlwcGV0TW9kdWxlIH0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG4gKiBgYGBcbiAqXG4gKiBgYGBodG1sXG4gKiA8Y2RzLWNvZGUtc25pcHBldD5Db2RlPC9jZHMtY29kZS1zbmlwcGV0PlxuICogYGBgXG4gKlxuICogW1NlZSBkZW1vXSguLi8uLi8/cGF0aD0vc3RvcnkvY29tcG9uZW50cy1jb2RlLXNuaXBwZXQtLWJhc2ljKVxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiY2RzLWNvZGUtc25pcHBldCwgaWJtLWNvZGUtc25pcHBldFwiLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5ID09PSAnaW5saW5lJzsgZWxzZSBub3RJbmxpbmVcIj5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGlkZUNvcHlCdXR0b247IGVsc2Ugbm9CdG5JbmxpbmVcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdDxuZy10ZW1wbGF0ZSAjbm9CdG5JbmxpbmU+XG5cdFx0XHRcdDxzcGFuXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNuaXBwZXQgY2RzLS1zbmlwcGV0LS1pbmxpbmUgY2RzLS1zbmlwcGV0LS1uby1jb3B5XCJcblx0XHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0XHQnY2RzLS1zbmlwcGV0LS1saWdodCc6IHRoZW1lID09PSAnbGlnaHQnXG5cdFx0XHRcdFx0fVwiPlxuXHRcdFx0XHRcdDxjb2RlICNjb2RlPlxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvZGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdDwvY29kZT5cblx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdDxuZy10ZW1wbGF0ZSAjbm90SW5saW5lPlxuXHRcdFx0PGRpdlxuXHRcdFx0XHQjY29kZUNvbnRhaW5lclxuXHRcdFx0XHRjbGFzcz1cImNkcy0tc25pcHBldC1jb250YWluZXJcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cInRyYW5zbGF0aW9ucy5DT0RFX1NOSVBQRVRfVEVYVFwiXG5cdFx0XHRcdFthdHRyLnRhYmluZGV4XT1cImRpc3BsYXkgPT09ICdzaW5nbGUnICYmICFkaXNhYmxlZCA/ICcwJyA6IG51bGxcIlxuXHRcdFx0XHRbYXR0ci5yb2xlXT1cImRpc3BsYXk9PT0nc2luZ2xlJyA/ICd0ZXh0YXJlYScgOiBudWxsXCJcblx0XHRcdFx0W25nU3R5bGVdPVwic3R5bGVzXCJcblx0XHRcdFx0KHNjcm9sbCk9XCIoZGlzcGxheSA9PT0gJ3NpbmdsZScgPyBoYW5kbGVTY3JvbGwoKSA6IG51bGwpXCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJza2VsZXRvblwiPlxuXHRcdFx0XHRcdDxzcGFuICpuZ0lmPVwiZGlzcGxheSA9PT0gJ3NpbmdsZSc7IGVsc2UgbXVsdGlTa2VsZXRvblwiPjwvc3Bhbj5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI211bHRpU2tlbGV0b24+XG5cdFx0XHRcdFx0XHQ8c3Bhbj48L3NwYW4+XG5cdFx0XHRcdFx0XHQ8c3Bhbj48L3NwYW4+XG5cdFx0XHRcdFx0XHQ8c3Bhbj48L3NwYW4+XG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDxwcmVcblx0XHRcdFx0XHQjY29kZUNvbnRlbnRcblx0XHRcdFx0XHQqbmdJZj1cIiFza2VsZXRvblwiXG5cdFx0XHRcdFx0KHNjcm9sbCk9XCIoZGlzcGxheSA9PT0gJ211bHRpJyA/IGhhbmRsZVNjcm9sbCgpIDogbnVsbClcIj48Y29kZSAjY29kZT48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29kZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+PC9jb2RlPjwvcHJlPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiaGFzTGVmdFwiIGNsYXNzPVwiY2RzLS1zbmlwcGV0X19vdmVyZmxvdy1pbmRpY2F0b3ItLWxlZnRcIj48L2Rpdj5cblx0XHRcdDxkaXYgKm5nSWY9XCJoYXNSaWdodFwiIGNsYXNzPVwiY2RzLS1zbmlwcGV0X19vdmVyZmxvdy1pbmRpY2F0b3ItLXJpZ2h0XCI+PC9kaXY+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVDb3B5QnV0dG9uO1wiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0PGJ1dHRvblxuXHRcdFx0XHQqbmdJZj1cImlzRXhwYW5kYWJsZVwiXG5cdFx0XHRcdGNsYXNzPVwiY2RzLS1idG4gY2RzLS1idG4tLWdob3N0IGNkcy0tYnRuLS1zbSBjZHMtLXNuaXBwZXQtYnRuLS1leHBhbmRcIlxuXHRcdFx0XHQoY2xpY2spPVwidG9nZ2xlU25pcHBldEV4cGFuc2lvbigpXCJcblx0XHRcdFx0dHlwZT1cImJ1dHRvblwiPlxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImNkcy0tc25pcHBldC1idG4tLXRleHRcIj57e2V4cGFuZGVkID8gdHJhbnNsYXRpb25zLlNIT1dfTEVTUyA6IHRyYW5zbGF0aW9ucy5TSE9XX01PUkV9fTwvc3Bhbj5cblx0XHRcdFx0PHN2ZyBjZHNJY29uPVwiY2hldnJvbi0tZG93blwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1pY29uLWNoZXZyb24tLWRvd25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRyYW5zbGF0aW9ucy5TSE9XX01PUkVfSUNPTlwiPjwvc3ZnPlxuXHRcdFx0PC9idXR0b24+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblxuXHRcdDxuZy10ZW1wbGF0ZSAjYnV0dG9uVGVtcGxhdGU+XG5cdFx0XHQ8Y2RzLWljb24tYnV0dG9uXG5cdFx0XHRcdCpuZ0lmPVwiIXNrZWxldG9uXCJcblx0XHRcdFx0W2Rlc2NyaXB0aW9uXT1cInNob3dGZWVkYmFjayA/IGZlZWRiYWNrVGV4dCA6IGNvcHlCdXR0b25EZXNjcmlwdGlvblwiXG5cdFx0XHRcdFthbGlnbl09XCJhbGlnblwiXG5cdFx0XHRcdFtkcm9wU2hhZG93XT1cImRyb3BTaGFkb3dcIlxuXHRcdFx0XHRbY2FyZXRdPVwiY2FyZXRcIlxuXHRcdFx0XHRbaGlnaENvbnRyYXN0XT1cImhpZ2hDb250cmFzdFwiXG5cdFx0XHRcdFtpc09wZW5dPVwiaXNPcGVuXCJcblx0XHRcdFx0W2VudGVyRGVsYXlNc109XCJlbnRlckRlbGF5TXNcIlxuXHRcdFx0XHRbbGVhdmVEZWxheU1zXT1cImxlYXZlRGVsYXlNc1wiXG5cdFx0XHRcdHR5cGU9XCJidXR0b25cIlxuXHRcdFx0XHRraW5kPVwicHJpbWFyeVwiXG5cdFx0XHRcdHNpemU9XCJtZFwiXG5cdFx0XHRcdChjbGljayk9XCJvbkNvcHlCdXR0b25DbGlja2VkKCRldmVudClcIlxuXHRcdFx0XHRbYnV0dG9uTmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0J2Nkcy0tc25pcHBldC0tbGlnaHQnOiB0aGVtZSA9PT0gJ2xpZ2h0Jyxcblx0XHRcdFx0XHQnY2RzLS1zbmlwcGV0LS1pbmxpbmUnOiBkaXNwbGF5ID09PSAnaW5saW5lJyxcblx0XHRcdFx0XHQnY2RzLS1idG4tLWljb24tb25seSc6IGRpc3BsYXkgIT09ICdpbmxpbmUnLFxuXHRcdFx0XHRcdCdjZHMtLWNvcHktYnRuJzogZGlzcGxheSAhPT0gJ2lubGluZScsXG5cdFx0XHRcdFx0J2Nkcy0tY29weS1idG4tLWFuaW1hdGluZyc6IGFuaW1hdGluZyxcblx0XHRcdFx0XHQnY2RzLS1jb3B5LWJ0bi0tZmFkZS1pbic6IHNob3dGZWVkYmFjayxcblx0XHRcdFx0XHQnY2RzLS1jb3B5LWJ0bi0tZmFkZS1vdXQnOiAhc2hvd0ZlZWRiYWNrICYmIGFuaW1hdGluZyxcblx0XHRcdFx0XHQnY2RzLS1zbmlwcGV0IGNkcy0tY29weSc6IHRydWVcblx0XHRcdFx0fVwiXG5cdFx0XHRcdFtidXR0b25BdHRyaWJ1dGVzXT1cIntcblx0XHRcdFx0XHQnYXJpYS1sYWJlbCc6IHRyYW5zbGF0aW9ucy5DT1BZX0NPREUsXG5cdFx0XHRcdFx0J2FyaWEtbGl2ZSc6ICdwb2xpdGUnLFxuXHRcdFx0XHRcdCd0YWJpbmRleCc6ICcwJ1xuXHRcdFx0XHR9XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5ID09PSAnaW5saW5lJ1wiPlxuXHRcdFx0XHRcdDxjb2RlICNjb2RlPlxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvZGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdDwvY29kZT5cblx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5ICE9PSAnaW5saW5lJ1wiPlxuXHRcdFx0XHRcdDxzdmcgY2RzSWNvbj1cImNvcHlcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tc25pcHBldF9faWNvblwiPjwvc3ZnPlxuXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdDwvY2RzLWljb24tYnV0dG9uPlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cblx0XHQ8bmctdGVtcGxhdGUgI2NvZGVUZW1wbGF0ZT5cblx0XHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIENvZGVTbmlwcGV0IGV4dGVuZHMgQmFzZUljb25CdXR0b24gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXNuaXBwZXRcIikgZ2V0IHNuaXBwZXRDbGFzcygpIHtcblx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5ICE9PSBTbmlwcGV0VHlwZS5pbmxpbmU7XG5cdH1cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1zbmlwcGV0LS1zaW5nbGVcIikgZ2V0IHNuaXBwZXRTaW5nbGVDbGFzcygpIHtcblx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5ID09PSBTbmlwcGV0VHlwZS5zaW5nbGU7XG5cdH1cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1zbmlwcGV0LS1tdWx0aVwiKSBnZXQgc25pcHBldE11bHRpQ2xhc3MoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZGlzcGxheSA9PT0gU25pcHBldFR5cGUubXVsdGk7XG5cdH1cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1zbmlwcGV0LS1kaXNhYmxlZFwiKSBnZXQgc25pcHBldERpc2FibGVkQ2xhc3MoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZGlzcGxheSAhPT0gXCJpbmxpbmVcIiAmJiB0aGlzLmRpc2FibGVkO1xuXHR9XG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tc25pcHBldC0tbGlnaHRcIikgZ2V0IHNuaXBwZXRJbmxpbmVMaWdodENsYXNzKCkge1xuXHRcdHJldHVybiB0aGlzLnRoZW1lID09PSBcImxpZ2h0XCI7XG5cdH1cblxuXHRyZWFkb25seSByb3dIZWlnaHRJblBpeGVsOiBudW1iZXIgPSAxNjtcblxuXHQvKipcblx0ICogSXQgY2FuIGJlIGBcInNpbmdsZVwiYCwgYFwibXVsdGlcImAgb3IgYFwiaW5saW5lXCJgXG5cdCAqL1xuXHRASW5wdXQoKSBkaXNwbGF5OiBTbmlwcGV0VHlwZSA9IFNuaXBwZXRUeXBlLnNpbmdsZTtcblx0QElucHV0KCkgdHJhbnNsYXRpb25zID0gdGhpcy5pMThuLmdldCgpLkNPREVfU05JUFBFVDtcblx0LyoqXG5cdCAqIGNvcHkgYnV0dG9uIGRlc2NyaXB0aW9uIHRvIHNob3cgb24gaG92ZXJcblx0ICovXG5cdEBJbnB1dCgpIGNvcHlCdXR0b25EZXNjcmlwdGlvbjogc3RyaW5nO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byBoaWRlIGNvcHkgYnV0dG9uXG5cdCAqL1xuXHRASW5wdXQoKSBoaWRlQ29weUJ1dHRvbiA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byBkaXNhYmxlIHRoZSBjb2RlIHNuaXBwZXRcblx0ICovXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTcGVjaWZ5IHRoZSBtYXggbnVtYmVyIG9mIHJvd3MgdG8gc2hvdyB3aGVuIGNvbGxhcHNlZFxuXHQgKiBEZWZhdWx0IGlzIGAxNWBcblx0ICovXG5cdEBJbnB1dCgpIG1heENvbGxhcHNlZE51bWJlck9mUm93cyA9IDE1O1xuXHQvKipcblx0ICogU3BlY2lmeSB0aGUgbWluIG51bWJlciBvZiByb3dzIHRvIHNob3cgd2hlbiBjb2xsYXBzZWRcblx0ICogRGVmYXVsdCBpcyBgM2Bcblx0ICovXG5cdEBJbnB1dCgpIG1pbkNvbGxhcHNlZE51bWJlck9mUm93cyA9IDM7XG5cdC8qKlxuXHQgKiBTcGVjaWZ5IHRoZSBtYXggbnVtYmVyIG9mIHJvd3MgdG8gc2hvdyB3aGVuIGV4cGFuZGVkXG5cdCAqIERlZmF1bHQgaXMgYDBgLCBoZW5jZSBhbGwgY29udGVudCB3aWxsIGJlIHZpc2libGUgd2hlbiBleHBhbmRlZFxuXHQgKi9cblx0QElucHV0KCkgbWF4RXhwYW5kZWROdW1iZXJPZlJvd3MgPSAwO1xuXHQvKipcblx0ICogU3BlY2lmeSB0aGUgbWluIG51bWJlciBvZiByb3dzIHRvIHNob3cgd2hlbiBleHBhbmRlZFxuXHQgKiBEZWZhdWx0IGlzIGAxNmAsIGhlbmNlIGhlaWdodCBvZiBleHBhbmRlZCByb3cgd2lsbCBiZSAxNiAqIHJvd0hlaWdodEluUGl4ZWwgKDE2KSA9ICAyNTZweFxuXHQgKi9cblx0QElucHV0KCkgbWluRXhwYW5kZWROdW1iZXJPZlJvd3MgPSAxNjtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gd3JhcCB0aGUgdGV4dFxuXHQgKi9cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1zbmlwcGV0LS13cmFwdGV4dFwiKSBASW5wdXQoKSB3cmFwVGV4dCA9IGZhbHNlO1xuXHQvKipcblx0ICogQGRlcHJlY2F0ZWQgc2luY2UgdjUgLSBVc2UgYGNkc0xheWVyYCBkaXJlY3RpdmUgaW5zdGVhZFxuXHQgKiBTZXQgdG8gYFwibGlnaHRcImAgdG8gYXBwbHkgdGhlIGxpZ2h0IHN0eWxlXG5cdCAqL1xuXHRASW5wdXQoKSB0aGVtZTogXCJsaWdodFwiIHwgXCJkYXJrXCIgPSBcImRhcmtcIjtcblx0LyoqXG5cdCAqIFRleHQgZGlzcGxheWVkIGluIHRoZSB0b29sdGlwIHdoZW4gdXNlciBjbGlja3MgYnV0dG9uIHRvIGNvcHkgY29kZS5cblx0ICovXG5cdEBJbnB1dCgpIGZlZWRiYWNrVGV4dCA9IHRoaXMudHJhbnNsYXRpb25zLkNPUElFRDtcblx0LyoqXG5cdCAqIFRpbWUgaW4gbWlsaXNlY29uZHMgdG8ga2VlcCB0aGUgZmVlZGJhY2sgdG9vbHRpcCBkaXNwbGF5ZWQuXG5cdCAqIERlZmF1bHRzIHRvIDIgc2Vjb25kc1xuXHQgKi9cblx0QElucHV0KCkgZmVlZGJhY2tUaW1lb3V0ID0gMjAwMDtcblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXNuaXBwZXQtLWV4cGFuZFwiKSBASW5wdXQoKSBleHBhbmRlZCA9IGZhbHNlO1xuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXNrZWxldG9uXCIpIEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cdHN0eWxlczogYW55ID0ge307XG5cblx0QFZpZXdDaGlsZChcImNvZGVcIikgY29kZTtcblx0QFZpZXdDaGlsZChcImNvZGVDb250ZW50XCIpIGNvZGVDb250ZW50O1xuXHRAVmlld0NoaWxkKFwiY29kZUNvbnRhaW5lclwiKSBjb2RlQ29udGFpbmVyO1xuXG5cdHNob3dGZWVkYmFjayA9IGZhbHNlO1xuXHRhbmltYXRpbmcgPSBmYWxzZTtcblx0aGFzRXhwYW5kQnV0dG9uID0gbnVsbDtcblx0aXNFeHBhbmRhYmxlID0gZmFsc2U7XG5cdGhhc1JpZ2h0T3ZlcmZsb3cgPSBmYWxzZTtcblxuXHRoYXNSaWdodCA9IGZhbHNlO1xuXHRoYXNMZWZ0ID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQ29kZVNuaXBwZXQuXG5cdCAqL1xuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaTE4bjogSTE4biwgcHJvdGVjdGVkIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlKSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLmRyb3BTaGFkb3cgPSBmYWxzZTtcblx0fVxuXG5cdGhhbmRsZVNjcm9sbCgpIHtcblx0XHRpZiAodGhpcy5za2VsZXRvbikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGxldCByZWY7XG5cdFx0c3dpdGNoICh0aGlzLmRpc3BsYXkpIHtcblx0XHRcdGNhc2UgXCJtdWx0aVwiOlxuXHRcdFx0XHRyZWYgPSB0aGlzLmNvZGVDb250ZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcInNpbmdsZVwiOlxuXHRcdFx0XHRyZWYgPSB0aGlzLmNvZGVDb250YWluZXIubmF0aXZlRWxlbWVudDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmIChyZWYpIHtcblx0XHRcdGNvbnN0IHtcblx0XHRcdFx0c2Nyb2xsV2lkdGgsXG5cdFx0XHRcdGNsaWVudFdpZHRoLFxuXHRcdFx0XHRzY3JvbGxMZWZ0XG5cdFx0XHR9ID0gcmVmO1xuXHRcdFx0Y29uc3QgaG9yaXpvbnRhbE92ZXJmbG93ID0gc2Nyb2xsV2lkdGggPiBjbGllbnRXaWR0aDtcblx0XHRcdHRoaXMuaGFzTGVmdCA9IGhvcml6b250YWxPdmVyZmxvdyAmJiAhIXNjcm9sbExlZnQ7XG5cdFx0XHR0aGlzLmhhc1JpZ2h0ID0gaG9yaXpvbnRhbE92ZXJmbG93ICYmIHNjcm9sbExlZnQgKyBjbGllbnRXaWR0aCAhPT0gc2Nyb2xsV2lkdGg7XG5cdFx0fVxuXHR9XG5cblx0dG9nZ2xlU25pcHBldEV4cGFuc2lvbigpIHtcblx0XHR0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XG5cdFx0dGhpcy5jYWxjdWxhdGVDb250YWluZXJIZWlnaHQoKTtcblx0fVxuXG5cdG9uQ29weUJ1dHRvbkNsaWNrZWQoKSB7XG5cdFx0aWYgKCF0aGlzLmRpc2FibGVkKSB7XG5cdFx0XHR3aW5kb3cubmF2aWdhdG9yLmNsaXBib2FyZFxuXHRcdFx0XHQud3JpdGVUZXh0KHRoaXMuY29kZSkudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5zaG93RmVlZGJhY2sgPSB0cnVlO1xuXHRcdFx0XHRcdHRoaXMuYW5pbWF0aW5nID0gdHJ1ZTtcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMuc2hvd0ZlZWRiYWNrID0gZmFsc2U7XG5cdFx0XHRcdFx0XHR0aGlzLmFuaW1hdGluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdH0sIHRoaXMuZmVlZGJhY2tUaW1lb3V0KTtcblx0XHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5jYWxjdWxhdGVDb250YWluZXJIZWlnaHQoKTtcblx0fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHR0aGlzLmNhbkV4cGFuZCgpO1xuXHRcdHRoaXMuaGFuZGxlU2Nyb2xsKCk7XG5cdFx0aWYgKHdpbmRvdykge1xuXHRcdFx0dGhpcy5ldmVudFNlcnZpY2Uub24od2luZG93IGFzIGFueSwgXCJyZXNpemVcIiwgKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmNhbkV4cGFuZCgpO1xuXHRcdFx0XHR0aGlzLmhhbmRsZVNjcm9sbCgpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0Y2FsY3VsYXRlQ29udGFpbmVySGVpZ2h0KCkge1xuXHRcdGlmICh0aGlzLmRpc3BsYXkgPT09IFwibXVsdGlcIiAmJiAhdGhpcy5za2VsZXRvbikge1xuXHRcdFx0dGhpcy5zdHlsZXMgPSB7fTtcblx0XHRcdGlmICh0aGlzLmV4cGFuZGVkKSB7XG5cdFx0XHRcdGlmICh0aGlzLm1heEV4cGFuZGVkTnVtYmVyT2ZSb3dzID4gMCkge1xuXHRcdFx0XHRcdHRoaXMuc3R5bGVzW1wibWF4LWhlaWdodFwiXSA9IGAke3RoaXMubWF4RXhwYW5kZWROdW1iZXJPZlJvd3MgKiB0aGlzLnJvd0hlaWdodEluUGl4ZWx9cHhgO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLm1pbkV4cGFuZGVkTnVtYmVyT2ZSb3dzID4gMCkge1xuXHRcdFx0XHRcdHRoaXMuc3R5bGVzW1wibWluLWhlaWdodFwiXSA9IGAke3RoaXMubWluRXhwYW5kZWROdW1iZXJPZlJvd3MgKiB0aGlzLnJvd0hlaWdodEluUGl4ZWx9cHhgO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5tYXhDb2xsYXBzZWROdW1iZXJPZlJvd3MgPiAwKSB7XG5cdFx0XHRcdFx0dGhpcy5zdHlsZXNbXCJtYXgtaGVpZ2h0XCJdID0gYCR7dGhpcy5tYXhDb2xsYXBzZWROdW1iZXJPZlJvd3MgKiB0aGlzLnJvd0hlaWdodEluUGl4ZWx9cHhgO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLm1pbkNvbGxhcHNlZE51bWJlck9mUm93cyA+IDApIHtcblx0XHRcdFx0XHR0aGlzLnN0eWxlc1tcIm1pbi1oZWlnaHRcIl0gPSBgJHt0aGlzLm1pbkNvbGxhcHNlZE51bWJlck9mUm93cyAqIHRoaXMucm93SGVpZ2h0SW5QaXhlbH1weGA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgY2FuRXhwYW5kKCkge1xuXHRcdGlmICh0aGlzLmRpc3BsYXkgPT09IFwibXVsdGlcIiAmJiAhdGhpcy5za2VsZXRvbikge1xuXHRcdFx0Y29uc3QgaGVpZ2h0ID0gdGhpcy5jb2RlQ29udGVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblx0XHRcdGlmIChcblx0XHRcdFx0dGhpcy5tYXhDb2xsYXBzZWROdW1iZXJPZlJvd3MgPiAwICYmXG5cdFx0XHRcdCh0aGlzLm1heEV4cGFuZGVkTnVtYmVyT2ZSb3dzIDw9IDAgfHxcblx0XHRcdFx0XHR0aGlzLm1heEV4cGFuZGVkTnVtYmVyT2ZSb3dzID4gdGhpcy5tYXhDb2xsYXBzZWROdW1iZXJPZlJvd3MpICYmXG5cdFx0XHRcdGhlaWdodCA+IHRoaXMubWF4Q29sbGFwc2VkTnVtYmVyT2ZSb3dzICogdGhpcy5yb3dIZWlnaHRJblBpeGVsXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy5pc0V4cGFuZGFibGUgPSB0cnVlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5pc0V4cGFuZGFibGUgPSBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHR0aGlzLmV4cGFuZGVkICYmXG5cdFx0XHRcdHRoaXMubWluRXhwYW5kZWROdW1iZXJPZlJvd3MgPiAwICYmXG5cdFx0XHRcdGhlaWdodCA8PSB0aGlzLm1pbkV4cGFuZGVkTnVtYmVyT2ZSb3dzICogdGhpcy5yb3dIZWlnaHRJblBpeGVsXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy5pc0V4cGFuZGFibGUgPSBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdfQ==
@@ -9,7 +9,7 @@ import * as i2 from "@angular/common";
9
9
  * Get started with importing the module:
10
10
  *
11
11
  * ```typescript
12
- * import { SkeletonModule } from 'carbon-components-angular';
12
+ * import { SliderModule } from 'carbon-components-angular';
13
13
  * ```
14
14
  *
15
15
  * The simplest possible slider usage looks something like:
@@ -629,4 +629,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
629
629
  type: ViewChild,
630
630
  args: ["range"]
631
631
  }] } });
632
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFFWixTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFHWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHekU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQ0c7QUFtR0gsTUFBTSxPQUFPLE1BQU07SUE4SWxCLFlBQ1csVUFBc0IsRUFDdEIsWUFBMEIsRUFDNUIsZUFBa0M7UUFGaEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUM1QixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUF4SDNDLGlDQUFpQztRQUN4QixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBc0VsQiwrSEFBK0g7UUFDdEgsT0FBRSxHQUFHLFVBQVUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDekMsaUZBQWlGO1FBQ3hFLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLHlDQUF5QztRQUNoQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRzFCLGlFQUFpRTtRQUN4RCxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFjbEMsK0NBQStDO1FBQ3JDLGdCQUFXLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsY0FBUyxHQUFHLElBQUksQ0FBQztRQU8vQyxZQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUM7UUFDN0Isa0JBQWEsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLGVBQWUsQ0FBQztRQUMxQyxlQUFVLEdB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Q0Q7NEpBTWEsR0FBRztzQkFBZixLQUFLO2dCQVVPLEdBQUc7c0JBQWYsS0FBSztnQkFXRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRU8sS0FBSztzQkFBakIsS0FBSztnQkFxRUcsRUFBRTtzQkFBVixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBYUksV0FBVztzQkFBcEIsTUFBTTtnQkFDOEIsU0FBUztzQkFBN0MsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBQ1gsTUFBTTtzQkFBN0IsWUFBWTt1QkFBQyxRQUFRO2dCQUVGLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDUSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0osS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRIb3N0QmluZGluZyxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyLFxuXHRBZnRlclZpZXdJbml0LFxuXHRWaWV3Q2hpbGQsXG5cdEVsZW1lbnRSZWYsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q2hpbGRyZW4sXG5cdFF1ZXJ5TGlzdCxcblx0Q2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvdXRpbHNcIjtcblxuLyoqXG4gKiBVc2VkIHRvIHNlbGVjdCBmcm9tIHJhbmdlcyBvZiB2YWx1ZXMuIFtTZWUgaGVyZV0oaHR0cHM6Ly93d3cuY2FyYm9uZGVzaWduc3lzdGVtLmNvbS9jb21wb25lbnRzL3NsaWRlci91c2FnZSkgZm9yIHVzYWdlIGluZm9ybWF0aW9uLlxuICpcbiAqIEdldCBzdGFydGVkIHdpdGggaW1wb3J0aW5nIHRoZSBtb2R1bGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbiAqIGBgYFxuICpcbiAqIFRoZSBzaW1wbGVzdCBwb3NzaWJsZSBzbGlkZXIgdXNhZ2UgbG9va3Mgc29tZXRoaW5nIGxpa2U6XG4gKlxuICogYGBgaHRtbFxuICpcdDxjZHMtc2xpZGVyPjwvY2RzLXNsaWRlcj5cbiAqIGBgYFxuICpcbiAqIFRoYXQgd2lsbCByZW5kZXIgYSBzbGlkZXIgd2l0aG91dCBsYWJlbHMgb3IgYWx0ZXJuYXRpdmUgdmFsdWUgaW5wdXQuIExhYmVscyBjYW4gYmUgcHJvdmlkZWQgYnlcbiAqIGVsZW1lbnRzIHdpdGggYFttaW5MYWJlbF1gIGFuZCBgW21heExhYmVsXWAgYXR0cmlidXRlcywgYW5kIGFuIGBpbnB1dGAgKG1heSB1c2UgdGhlIGBpYm1JbnB1dGAgZGlyZWN0aXZlKSBjYW4gYmUgc3VwcGxpZWRcbiAqIGZvciB1c2UgYXMgYW4gYWx0ZXJuYXRpdmUgdmFsdWUgZmllbGQuXG4gKlxuICogZXg6XG4gKlxuICogYGBgaHRtbFxuICogPCEtLSBGdWxsIGV4YW1wbGUgLS0+XG4gKiA8Y2RzLXNsaWRlcj5cbiAqXHRcdDxzcGFuIG1pbkxhYmVsPjBHQjwvc3Bhbj5cbiAqXHRcdDxzcGFuIG1heExhYmVsPjEwMEdCPC9zcGFuPlxuICpcdFx0PGlucHV0Lz5cbiAqIDwvY2RzLXNsaWRlcj5cbiAqXG4gKiA8IS0tIHdpdGgganVzdCBhbiBpbnB1dCAtLT5cbiAqIDxjZHMtc2xpZGVyPlxuICpcdFx0PGlucHV0Lz5cbiAqIDwvY2RzLXNsaWRlcj5cbiAqXG4gKiA8IS0tIHdpdGgganVzdCBvbmUgbGFiZWwgLS0+XG4gKiA8Y2RzLXNsaWRlcj5cbiAqXHRcdDxzcGFuIG1heExhYmVsPk1heGltdW08L3NwYW4+XG4gKiA8L2Nkcy1zbGlkZXI+XG4gKiBgYGBcbiAqXG4gKiBTbGlkZXIgc3VwcG9ydHMgYE5nTW9kZWxgIGJ5IGRlZmF1bHQsIGFzIHdlbGwgYXMgdHdvIHdheSBiaW5kaW5nIHRvIHRoZSBgdmFsdWVgIGlucHV0LlxuICpcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtc2xpZGVyLS1hZHZhbmNlZClcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1zbGlkZXIsIGlibS1zbGlkZXJcIixcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIXNrZWxldG9uOyBlbHNlIHNrZWxldG9uVGVtcGxhdGVcIj5cblx0XHRcdDxsYWJlbFxuXHRcdFx0XHQqbmdJZj1cImxhYmVsXCJcblx0XHRcdFx0W2Zvcl09XCJpZFwiXG5cdFx0XHRcdFtpZF09XCJsYWJlbElkXCJcblx0XHRcdFx0Y2xhc3M9XCJjZHMtLWxhYmVsXCJcblx0XHRcdFx0W25nQ2xhc3NdPVwieydjZHMtLWxhYmVsLS1kaXNhYmxlZCc6IGRpc2FibGVkfVwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUobGFiZWwpXCI+e3tsYWJlbH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzVGVtcGxhdGUobGFiZWwpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9sYWJlbD5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXNsaWRlci1jb250YWluZXJcIj5cblx0XHRcdFx0PGxhYmVsIFtpZF09XCJib3R0b21SYW5nZUlkXCIgY2xhc3M9XCJjZHMtLXNsaWRlcl9fcmFuZ2UtbGFiZWxcIj5cblx0XHRcdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbbWluTGFiZWxdXCI+PC9uZy1jb250ZW50PlxuXHRcdFx0XHQ8L2xhYmVsPlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNsaWRlclwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG5cdFx0XHRcdFx0W25nQ2xhc3NdPVwieydjZHMtLXNsaWRlci0tZGlzYWJsZWQnOiBkaXNhYmxlZH1cIj5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUmFuZ2UoKVwiPlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tc2xpZGVyX190aHVtYi13cmFwcGVyXCJcblx0XHRcdFx0XHRcdFx0W25nU3R5bGVdPVwie2luc2V0SW5saW5lU3RhcnQ6IGdldEZyYWN0aW9uQ29tcGxldGUodmFsdWUpICogMTAwICsgJyUnfVwiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0XHRcdFx0I3RodW1ic1xuXHRcdFx0XHRcdFx0XHRcdHJvbGU9XCJzbGlkZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFtpZF09XCJpZFwiXG5cdFx0XHRcdFx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsSWRcIlxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zbGlkZXJfX3RodW1iXCJcblx0XHRcdFx0XHRcdFx0XHR0YWJpbmRleD1cIjBcIlxuXHRcdFx0XHRcdFx0XHRcdChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50KVwiXG5cdFx0XHRcdFx0XHRcdFx0KGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiaXNSYW5nZSgpXCI+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1zbGlkZXJfX3RodW1iLXdyYXBwZXJcIlxuXHRcdFx0XHRcdFx0IFtuZ1N0eWxlXT1cIntpbnNldElubGluZVN0YXJ0OiBnZXRGcmFjdGlvbkNvbXBsZXRlKHRodW1iKSAqIDEwMCArICclJ31cIlxuXHRcdFx0XHRcdFx0ICpuZ0Zvcj1cImxldCB0aHVtYiBvZiB2YWx1ZTsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tUaHVtYnNCeVwiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0XHRcdFx0I3RodW1ic1xuXHRcdFx0XHRcdFx0XHRcdHJvbGU9XCJzbGlkZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFtpZF09XCJpZCArIChpID4gMCA/ICctJyArIGkgOiAnJylcIlxuXHRcdFx0XHRcdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbElkXCJcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2xpZGVyX190aHVtYlwiXG5cdFx0XHRcdFx0XHRcdFx0dGFiaW5kZXg9XCIwXCJcblx0XHRcdFx0XHRcdFx0XHQobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudCwgaSlcIlxuXHRcdFx0XHRcdFx0XHRcdChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQsIGkpXCI+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0I3RyYWNrXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2xpZGVyX190cmFja1wiPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdCNmaWxsZWRUcmFja1xuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNsaWRlcl9fZmlsbGVkLXRyYWNrXCI+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PGlucHV0XG5cdFx0XHRcdFx0XHQjcmFuZ2Vcblx0XHRcdFx0XHRcdGFyaWEtbGFiZWw9XCJzbGlkZXJcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNsaWRlcl9faW5wdXRcIlxuXHRcdFx0XHRcdFx0dHlwZT1cInJhbmdlXCJcblx0XHRcdFx0XHRcdFtzdGVwXT1cInN0ZXBcIlxuXHRcdFx0XHRcdFx0W21pbl09XCJtaW5cIlxuXHRcdFx0XHRcdFx0W21heF09XCJtYXhcIlxuXHRcdFx0XHRcdFx0W3ZhbHVlXT1cInZhbHVlLnRvU3RyaW5nKClcIj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxsYWJlbCBbaWRdPVwidG9wUmFuZ2VJZFwiIGNsYXNzPVwiY2RzLS1zbGlkZXJfX3JhbmdlLWxhYmVsXCI+XG5cdFx0XHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW21heExhYmVsXVwiPjwvbmctY29udGVudD5cblx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiaW5wdXRcIj48L25nLWNvbnRlbnQ+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25UZW1wbGF0ZT5cblx0XHRcdDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJjZHMtLWxhYmVsIGNkcy0tc2tlbGV0b25cIj48L2xhYmVsPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tc2xpZGVyLWNvbnRhaW5lciBjZHMtLXNrZWxldG9uXCI+XG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwiY2RzLS1zbGlkZXJfX3JhbmdlLWxhYmVsXCI+PC9zcGFuPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1zbGlkZXJcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1zbGlkZXJfX3RodW1iXCI+PC9kaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tc2xpZGVyX190cmFja1wiPjwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXNsaWRlcl9fZmlsbGVkLXRyYWNrXCI+PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImNkcy0tc2xpZGVyX19yYW5nZS1sYWJlbFwiPjwvc3Bhbj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdGAsXG5cdHByb3ZpZGVyczogW1xuXHRcdHtcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuXHRcdFx0dXNlRXhpc3Rpbmc6IFNsaWRlcixcblx0XHRcdG11bHRpOiB0cnVlXG5cdFx0fVxuXHRdXG59KVxuZXhwb3J0IGNsYXNzIFNsaWRlciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblx0LyoqIFVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEcyAqL1xuXHRwcml2YXRlIHN0YXRpYyBjb3VudCA9IDA7XG5cblx0LyoqIFRoZSBsb3dlciBib3VuZCBvZiBvdXIgcmFuZ2UgKi9cblx0QElucHV0KCkgc2V0IG1pbih2KSB7XG5cdFx0aWYgKCF2KSB7IHJldHVybjsgfVxuXHRcdHRoaXMuX21pbiA9IHY7XG5cdFx0Ly8gZm9yY2UgdGhlIGNvbXBvbmVudCB0byB1cGRhdGVcblx0XHR0aGlzLnZhbHVlID0gdGhpcy52YWx1ZTtcblx0fVxuXHRnZXQgbWluKCkge1xuXHRcdHJldHVybiB0aGlzLl9taW47XG5cdH1cblx0LyoqIFRoZSB1cHBlciBib3VuZCBvZiBvdXIgcmFuZ2UgKi9cblx0QElucHV0KCkgc2V0IG1heCh2KSB7XG5cdFx0aWYgKCF2KSB7IHJldHVybjsgfVxuXHRcdHRoaXMuX21heCA9IHY7XG5cdFx0Ly8gZm9yY2UgdGhlIGNvbXBvbmVudCB0byB1cGRhdGVcblx0XHR0aGlzLnZhbHVlID0gdGhpcy52YWx1ZTtcblx0fVxuXG5cdGdldCBtYXgoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX21heDtcblx0fVxuXHQvKiogVGhlIGludGVydmFsIGZvciBvdXIgcmFuZ2UgKi9cblx0QElucHV0KCkgc3RlcCA9IDE7XG5cdC8qKiBTZXQgdGhlIGluaXRpYWwgdmFsdWUuIEF2YWlsYWJsZSBmb3IgdHdvIHdheSBiaW5kaW5nICovXG5cdEBJbnB1dCgpIHNldCB2YWx1ZSh2KSB7XG5cdFx0aWYgKCF2KSB7XG5cdFx0XHR2ID0gW3RoaXMubWluXTtcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIHYgPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIHYgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdHYgPSBbTnVtYmVyKHYpXTtcblx0XHR9XG5cblx0XHRpZiAodlswXSA8IHRoaXMubWluKSB7XG5cdFx0XHR2WzBdID0gdGhpcy5taW47XG5cdFx0fVxuXG5cdFx0aWYgKHZbMF0gPiB0aGlzLm1heCkge1xuXHRcdFx0dlswXSA9IHRoaXMubWF4O1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLmlzUmFuZ2UoKSkge1xuXHRcdFx0aWYgKHRoaXMuX3ByZXZpb3VzVmFsdWVbMF0gIT09IHZbMF0pIHsgLy8gbGVmdCBtb3ZlZFxuXHRcdFx0XHRpZiAodlswXSA+IHZbMV0gLSB0aGlzLnN0ZXApIHtcblx0XHRcdFx0XHQvLyBzdG9wIHRoZSBsZWZ0IGhhbmRsZSBpZiBzdXJwYXNzaW5nIHRoZSByaWdodCBvbmVcblx0XHRcdFx0XHR2WzBdID0gdlsxXSAtIHRoaXMuc3RlcDtcblx0XHRcdFx0fSBlbHNlIGlmICh2WzBdID4gdGhpcy5tYXgpIHtcblx0XHRcdFx0XHR2WzBdID0gdGhpcy5tYXg7XG5cdFx0XHRcdH0gZWxzZSBpZiAodlswXSA8IHRoaXMubWluKSB7XG5cdFx0XHRcdFx0dlswXSA9IHRoaXMubWluO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLl9wcmV2aW91c1ZhbHVlWzFdICE9PSB2WzFdKSB7IC8vIHJpZ2h0IG1vdmVkXG5cdFx0XHRcdGlmICh2WzFdID4gdGhpcy5tYXgpIHtcblx0XHRcdFx0XHR2WzFdID0gdGhpcy5tYXg7XG5cdFx0XHRcdH0gZWxzZSBpZiAodlsxXSA8IHRoaXMuX3ZhbHVlWzBdICsgdGhpcy5zdGVwKSB7XG5cdFx0XHRcdFx0Ly8gc3RvcCB0aGUgcmlnaHQgaGFuZGxlIGlmIHN1cnBhc3NpbmcgdGhlIGxlZnQgb25lXG5cdFx0XHRcdFx0dlsxXSA9IHRoaXMuX3ZhbHVlWzBdICsgdGhpcy5zdGVwO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHZbMV0gPCB0aGlzLm1pbikge1xuXHRcdFx0XHRcdHZbMV0gPSB0aGlzLm1pbjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRoaXMuX3ByZXZpb3VzVmFsdWUgPSBbLi4udGhpcy5fdmFsdWVdOyAvLyBzdG9yZSBhIGNvcHksIGVuYWJsZSBkZXRlY3Rpb24gd2hpY2ggaGFuZGxlIG1vdmVkXG5cdFx0dGhpcy5fdmFsdWUgPSBbLi4udl07IC8vIHRyaWdnZXJzIGNoYW5nZSBkZXRlY3Rpb24gd2hlbiBuZ01vZGVsIHZhbHVlIGlzIGFuIGFycmF5IChmb3IgcmFuZ2UpXG5cblx0XHRpZiAodGhpcy5pc1JhbmdlKCkgJiYgdGhpcy5maWxsZWRUcmFjaykge1xuXHRcdFx0dGhpcy51cGRhdGVUcmFja1JhbmdlV2lkdGgoKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMuZmlsbGVkVHJhY2spIHtcblx0XHRcdHRoaXMuZmlsbGVkVHJhY2submF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKDAlLCAtNTAlKSAke3RoaXMuc2NhbGVYKHRoaXMuZ2V0RnJhY3Rpb25Db21wbGV0ZSh2WzBdKSl9YDtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5pbnB1dHMgJiYgdGhpcy5pbnB1dHMubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLmlucHV0cy5mb3JFYWNoKChpbnB1dCwgaW5kZXgpID0+IHtcblx0XHRcdFx0aW5wdXQudmFsdWUgPSB0aGlzLl92YWx1ZVtpbmRleF0udG9TdHJpbmcoKTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGNvbnN0IHZhbHVlVG9FbWl0ID0gdGhpcy5pc1JhbmdlKCkgPyB2IDogdlswXTtcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZSh2YWx1ZVRvRW1pdCk7XG5cdFx0dGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlVG9FbWl0KTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpIHtcblx0XHRpZiAodGhpcy5pc1JhbmdlKCkpIHtcblx0XHRcdHJldHVybiB0aGlzLl92YWx1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX3ZhbHVlWzBdO1xuXHR9XG5cblx0LyoqIEJhc2UgSUQgZm9yIHRoZSBzbGlkZXIuIFRoZSBtaW4gYW5kIG1heCBsYWJlbHMgZ2V0IElEcyBgJHt0aGlzLmlkfS1ib3R0b20tcmFuZ2VgIGFuZCBgJHt0aGlzLmlkfS10b3AtcmFuZ2VgIHJlc3BlY3RpdmVseSAqL1xuXHRASW5wdXQoKSBpZCA9IGBzbGlkZXItJHtTbGlkZXIuY291bnQrK31gO1xuXHQvKiogVmFsdWUgdXNlZCB0byBcIm11bHRpcGx5XCIgdGhlIGBzdGVwYCB3aGVuIHVzaW5nIGFycm93IGtleXMgdG8gc2VsZWN0IHZhbHVlcyAqL1xuXHRASW5wdXQoKSBzaGlmdE11bHRpcGxpZXIgPSA0O1xuXHQvKiogU2V0IHRvIGB0cnVlYCBmb3IgYSBsb2FkaW5nIHNsaWRlciAqL1xuXHRASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXHQvKiogU2V0cyB0aGUgdGV4dCBpbnNpZGUgdGhlIGBsYWJlbGAgdGFnICovXG5cdEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKiogU2V0IHRvIGB0cnVlYCBmb3IgYSBzbGlkZXIgd2l0aG91dCBhcnJvdyBrZXkgaW50ZXJhY3Rpb25zLiAqL1xuXHRASW5wdXQoKSBkaXNhYmxlQXJyb3dLZXlzID0gZmFsc2U7XG5cdC8qKiBEaXNhYmxlcyB0aGUgcmFuZ2UgdmlzdWFsbHkgYW5kIGZ1bmN0aW9uYWxseSAqL1xuXHRASW5wdXQoKSBzZXQgZGlzYWJsZWQodikge1xuXHRcdHRoaXMuX2Rpc2FibGVkID0gdjtcblx0XHQvLyBmb3Igc29tZSByZWFzb24gYHRoaXMuaW5wdXRgIG5ldmVyIGV4aXN0cyBoZXJlLCBzbyB3ZSBoYXZlIHRvIHF1ZXJ5IGZvciBpdCBoZXJlIHRvb1xuXHRcdGNvbnN0IGlucHV0cyA9IHRoaXMuZ2V0SW5wdXRzKCk7XG5cdFx0aWYgKGlucHV0cyAmJiBpbnB1dHMubGVuZ3RoID4gMCkge1xuXHRcdFx0aW5wdXRzLmZvckVhY2goaW5wdXQgPT4gaW5wdXQuZGlzYWJsZWQgPSB2KTtcblx0XHR9XG5cdH1cblxuXHRnZXQgZGlzYWJsZWQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuXHR9XG5cdC8qKiBFbWl0cyBldmVyeSB0aW1lIGEgbmV3IHZhbHVlIGlzIHNlbGVjdGVkICovXG5cdEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlciB8IG51bWJlcltdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1mb3JtLWl0ZW1cIikgaG9zdENsYXNzID0gdHJ1ZTtcblx0QFZpZXdDaGlsZHJlbihcInRodW1ic1wiKSB0aHVtYnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuXHRAVmlld0NoaWxkKFwidHJhY2tcIikgdHJhY2s6IEVsZW1lbnRSZWY7XG5cdEBWaWV3Q2hpbGQoXCJmaWxsZWRUcmFja1wiKSBmaWxsZWRUcmFjazogRWxlbWVudFJlZjtcblx0QFZpZXdDaGlsZChcInJhbmdlXCIpIHJhbmdlOiBFbGVtZW50UmVmO1xuXG5cdHB1YmxpYyBsYWJlbElkID0gYCR7dGhpcy5pZH0tbGFiZWxgO1xuXHRwdWJsaWMgYm90dG9tUmFuZ2VJZCA9IGAke3RoaXMuaWR9LWJvdHRvbS1yYW5nZWA7XG5cdHB1YmxpYyB0b3BSYW5nZUlkID0gYCR7dGhpcy5pZH0tdG9wLXJhbmdlYDtcblx0cHVibGljIGZyYWN0aW9uQ29tcGxldGUgPSAwO1xuXG5cdHByb3RlY3RlZCBpc01vdXNlRG93biA9IGZhbHNlO1xuXHRwcm90ZWN0ZWQgaW5wdXRzOiBIVE1MSW5wdXRFbGVtZW50W107XG5cdHByb3RlY3RlZCBfbWluID0gMDtcblx0cHJvdGVjdGVkIF9tYXggPSAxMDA7XG5cdHByb3RlY3RlZCBfdmFsdWUgPSBbdGhpcy5taW5dO1xuXHRwcm90ZWN0ZWQgX3ByZXZpb3VzVmFsdWUgPSBbdGhpcy5taW5dO1xuXHRwcm90ZWN0ZWQgX2Rpc2FibGVkID0gZmFsc2U7XG5cdHByb3RlY3RlZCBfZm9jdXNlZFRodW1iSW5kZXggPSAwO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuXHRcdHByb3RlY3RlZCBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcblx0XHRwcml2YXRlIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWZcblx0KSB7fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHQvLyBiaW5kIG1vdXNlbW92ZSBhbmQgbW91c2V1cCB0byB0aGUgZG9jdW1lbnQgc28gd2UgZG9uJ3QgaGF2ZSBpc3N1ZXMgdHJhY2tpbmcgdGhlIG1vdXNlXG5cdFx0dGhpcy5ldmVudFNlcnZpY2Uub25Eb2N1bWVudChcIm1vdXNlbW92ZVwiLCB0aGlzLm9uTW91c2VNb3ZlLmJpbmQodGhpcykpO1xuXHRcdHRoaXMuZXZlbnRTZXJ2aWNlLm9uRG9jdW1lbnQoXCJtb3VzZXVwXCIsIHRoaXMub25Nb3VzZVVwLmJpbmQodGhpcykpO1xuXG5cdFx0Ly8gYXBwbHkgYW55IHZhbHVlcyB3ZSBnb3QgZnJvbSBiZWZvcmUgdGhlIHZpZXcgaW5pdGlhbGl6ZWRcblx0XHR0aGlzLmNoYW5nZURldGVjdGlvbi5kZXRlY3RDaGFuZ2VzKCk7XG5cblx0XHQvLyBUT0RPOiBvbnRvdWNoc3RhcnQvb250b3VjaG1vdmUvb250b3VjaGVuZFxuXG5cdFx0Ly8gc2V0IHVwIHRoZSBvcHRpb25hbCBpbnB1dFxuXHRcdHRoaXMuaW5wdXRzID0gdGhpcy5nZXRJbnB1dHMoKTtcblx0XHRpZiAodGhpcy5pbnB1dHMgJiYgdGhpcy5pbnB1dHMubGVuZ3RoID4gMCkge1xuXHRcdFx0dGhpcy5pbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGluZGV4KSA9PiB7XG5cdFx0XHRcdGlucHV0LnR5cGUgPSBcIm51bWJlclwiO1xuXHRcdFx0XHRpbnB1dC5jbGFzc0xpc3QuYWRkKFwiY2RzLS1zbGlkZXItdGV4dC1pbnB1dFwiKTtcblx0XHRcdFx0aW5wdXQuY2xhc3NMaXN0LmFkZChcImNkcy0tdGV4dC1pbnB1dFwiKTtcblx0XHRcdFx0aW5wdXQuc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbGxlZGJ5XCIsIGAke3RoaXMuYm90dG9tUmFuZ2VJZH0gJHt0aGlzLnRvcFJhbmdlSWR9YCk7XG5cblx0XHRcdFx0aW5wdXQudmFsdWUgPSBpbmRleCA8IHRoaXMuX3ZhbHVlLmxlbmd0aCA/IHRoaXMuX3ZhbHVlW2luZGV4XS50b1N0cmluZygpIDogdGhpcy5tYXgudG9TdHJpbmcoKTtcblx0XHRcdFx0Ly8gYmluZCBldmVudHMgb24gb3VyIG9wdGlvbmFsIGlucHV0XG5cdFx0XHRcdHRoaXMuZXZlbnRTZXJ2aWNlLm9uKGlucHV0LCBcImNoYW5nZVwiLCBldmVudCA9PiB0aGlzLm9uQ2hhbmdlKGV2ZW50LCBpbmRleCkpO1xuXG5cdFx0XHRcdGlmIChpbmRleCA9PT0gMCkge1xuXHRcdFx0XHRcdHRoaXMuZXZlbnRTZXJ2aWNlLm9uKGlucHV0LCBcImZvY3VzXCIsIHRoaXMub25Gb2N1cy5iaW5kKHRoaXMpKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0dHJhY2tUaHVtYnNCeShpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcblx0XHRyZXR1cm4gaW5kZXg7XG5cdH1cblxuXHQvKiogU2VuZCBjaGFuZ2VzIGJhY2sgdG8gdGhlIG1vZGVsICovXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcblxuXHQvKiogUmVnaXN0ZXIgYSBjaGFuZ2UgcHJvcGFnYXRpb24gZnVuY3Rpb24gZm9yIGBDb250cm9sVmFsdWVBY2Nlc3NvcmAgKi9cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcblx0fVxuXG5cdC8qKiBDYWxsYmFjayB0byBub3RpZnkgdGhlIG1vZGVsIHdoZW4gb3VyIGlucHV0IGhhcyBiZWVuIHRvdWNoZWQgKi9cblx0b25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7IH07XG5cblx0LyoqIFJlZ2lzdGVyIGEgY2FsbGJhY2sgdG8gbm90aWZ5IHdoZW4gb3VyIGlucHV0IGhhcyBiZWVuIHRvdWNoZWQgKi9cblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuXHRcdHRoaXMub25Ub3VjaGVkID0gZm47XG5cdH1cblxuXHQvKiogUmVjZWl2ZXMgYSB2YWx1ZSBmcm9tIHRoZSBtb2RlbCAqL1xuXHR3cml0ZVZhbHVlKHY6IGFueSkge1xuXHRcdHRoaXMudmFsdWUgPSB2O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGFtb3VudCBvZiBcImNvbXBsZXRlbmVzc1wiIG9mIGEgdmFsdWUgYXMgYSBmcmFjdGlvbiBvZiB0aGUgdG90YWwgdHJhY2sgd2lkdGhcblx0ICovXG5cdGdldEZyYWN0aW9uQ29tcGxldGUodmFsdWU6IG51bWJlcikge1xuXHRcdGlmICghdGhpcy50cmFjaykge1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0Y29uc3QgdHJhY2tXaWR0aCA9IHRoaXMudHJhY2submF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblx0XHRyZXR1cm4gdGhpcy5jb252ZXJ0VG9QeCh2YWx1ZSkgLyB0cmFja1dpZHRoO1xuXHR9XG5cblx0LyoqIEhlbHBlciBmdW5jdGlvbiB0byByZXR1cm4gdGhlIENTUyB0cmFuc2Zvcm0gYHNjYWxlWGAgZnVuY3Rpb24gKi9cblx0c2NhbGVYKGNvbXBsZXRlKSB7XG5cdFx0cmV0dXJuIGBzY2FsZVgoJHtjb21wbGV0ZX0pYDtcblx0fVxuXG5cdC8qKiBDb252ZXJ0cyBhIGdpdmVuIHB4IHZhbHVlIHRvIGEgXCJyZWFsXCIgdmFsdWUgaW4gb3VyIHJhbmdlICovXG5cdGNvbnZlcnRUb1ZhbHVlKHB4QW1vdW50KSB7XG5cdFx0Ly8gYmFzaWMgY29uY2VwdCBib3Jyb3dlZCBmcm9tIGNhcmJvbi1jb21wb25lbnRzXG5cdFx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL2NhcmJvbi1kZXNpZ24tc3lzdGVtL2NhcmJvbi9ibG9iLzQzYmYzYWJkYzJmOGJkYWEzOGFhODRlMGY3MzNhZGRlMWUxZTg4OTQvc3JjL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5qcyNMMTQ3LUwxNTFcblx0XHRjb25zdCByYW5nZSA9IHRoaXMubWF4IC0gdGhpcy5taW47XG5cdFx0Y29uc3QgdHJhY2tXaWR0aCA9IHRoaXMudHJhY2submF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblx0XHRjb25zdCB1bnJvdW5kZWQgPSBweEFtb3VudCAvIHRyYWNrV2lkdGg7XG5cdFx0Y29uc3Qgcm91bmRlZCA9IE1hdGgucm91bmQoKHJhbmdlICogdW5yb3VuZGVkKSAvIHRoaXMuc3RlcCkgKiB0aGlzLnN0ZXA7XG5cdFx0cmV0dXJuIHJvdW5kZWQgKyB0aGlzLm1pbjtcblx0fVxuXG5cdC8qKiBDb252ZXJ0cyBhIGdpdmVuIFwicmVhbFwiIHZhbHVlIHRvIGEgcHggdmFsdWUgd2UgY2FuIHVwZGF0ZSB0aGUgdmlldyB3aXRoICovXG5cdGNvbnZlcnRUb1B4KHZhbHVlKSB7XG5cdFx0aWYgKCF0aGlzLnRyYWNrKSB7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5cblx0XHRjb25zdCB0cmFja1dpZHRoID0gdGhpcy50cmFjay5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuXHRcdGlmICh2YWx1ZSA+PSB0aGlzLm1heCkge1xuXHRcdFx0cmV0dXJuIHRyYWNrV2lkdGg7XG5cdFx0fVxuXG5cdFx0aWYgKHZhbHVlIDw9IHRoaXMubWluKSB7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5cblx0XHQvLyBhY2NvdW50IGZvciB2YWx1ZSBzaGlmdGluZyBieSBzdWJ0cmFjdGluZyBtaW4gZnJvbSB2YWx1ZSBhbmQgbWF4XG5cdFx0cmV0dXJuIE1hdGgucm91bmQodHJhY2tXaWR0aCAqICgodmFsdWUgLSB0aGlzLm1pbikgLyAodGhpcy5tYXggLSB0aGlzLm1pbikpKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbmNyZW1lbnRzIHRoZSB2YWx1ZSBieSB0aGUgc3RlcCB2YWx1ZSwgb3IgdGhlIHN0ZXAgdmFsdWUgbXVsdGlwbGllZCBieSB0aGUgYG11bHRpcGxpZXJgIGFyZ3VtZW50LlxuXHQgKlxuXHQgKiBAYXJndW1lbnQgbXVsdGlwbGllciBEZWZhdWx0cyB0byBgMWAsIG11bHRpcGxpZWQgd2l0aCB0aGUgc3RlcCB2YWx1ZS5cblx0ICovXG5cdGluY3JlbWVudFZhbHVlKG11bHRpcGxpZXIgPSAxLCBpbmRleCA9IDApIHtcblx0XHR0aGlzLl92YWx1ZVtpbmRleF0gPSB0aGlzLl92YWx1ZVtpbmRleF0gKyAodGhpcy5zdGVwICogbXVsdGlwbGllcik7XG5cdFx0dGhpcy52YWx1ZSA9IHRoaXMudmFsdWU7IC8vIHJ1biB0aGUgc2V0dGVyXG5cdH1cblxuXHQvKipcblx0ICogRGVjcmVtZW50cyB0aGUgdmFsdWUgYnkgdGhlIHN0ZXAgdmFsdWUsIG9yIHRoZSBzdGVwIHZhbHVlIG11bHRpcGxpZWQgYnkgdGhlIGBtdWx0aXBsaWVyYCBhcmd1bWVudC5cblx0ICpcblx0ICogQGFyZ3VtZW50IG11bHRpcGxpZXIgRGVmYXVsdHMgdG8gYDFgLCBtdWx0aXBsaWVkIHdpdGggdGhlIHN0ZXAgdmFsdWUuXG5cdCAqL1xuXHRkZWNyZW1lbnRWYWx1ZShtdWx0aXBsaWVyID0gMSwgaW5kZXggPSAwKSB7XG5cdFx0dGhpcy5fdmFsdWVbaW5kZXhdID0gdGhpcy5fdmFsdWVbaW5kZXhdIC0gKHRoaXMuc3RlcCAqIG11bHRpcGxpZXIpO1xuXHRcdHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlOyAvLyBydW4gdGhlIHNldHRlclxuXHR9XG5cblx0LyoqXG5cdCAqIERldGVybWluZXMgaWYgdGhlIHNsaWRlciBpcyBpbiByYW5nZSBtb2RlLlxuXHQgKi9cblx0aXNSYW5nZSgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5fdmFsdWUubGVuZ3RoID4gMTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSYW5nZSBtb2RlIG9ubHkuXG5cdCAqIFVwZGF0ZXMgdGhlIHRyYWNrIHdpZHRoIHRvIHNwYW4gZnJvbSB0aGUgbG93IHRodW1iIHRvIHRoZSBoaWdoIHRodW1iXG5cdCAqL1xuXHR1cGRhdGVUcmFja1JhbmdlV2lkdGgoKSB7XG5cdFx0Y29uc3QgZnJhY3Rpb24gPSB0aGlzLmdldEZyYWN0aW9uQ29tcGxldGUodGhpcy5fdmFsdWVbMF0pO1xuXHRcdGNvbnN0IGZyYWN0aW9uMiA9IHRoaXMuZ2V0RnJhY3Rpb25Db21wbGV0ZSh0aGlzLl92YWx1ZVsxXSk7XG5cdFx0dGhpcy5maWxsZWRUcmFjay5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoJHtmcmFjdGlvbiAqIDEwMH0lLCAtNTAlKSAke3RoaXMuc2NhbGVYKGZyYWN0aW9uMiAtIGZyYWN0aW9uKX1gO1xuXHR9XG5cblx0LyoqIENoYW5nZSBoYW5kbGVyIGZvciB0aGUgb3B0aW9uYWwgaW5wdXQgKi9cblx0b25DaGFuZ2UoZXZlbnQsIGluZGV4KSB7XG5cdFx0dGhpcy5fdmFsdWVbaW5kZXhdID0gTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSk7XG5cdFx0dGhpcy52YWx1ZSA9IHRoaXMudmFsdWU7XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlcyBjbGlja3Mgb24gdGhlIHNsaWRlciwgYW5kIHNldHRpbmcgdGhlIHZhbHVlIHRvIGl0J3MgXCJyZWFsXCIgZXF1aXZhbGVudC5cblx0ICogV2lsbCBhc3NpZ24gdGhlIHZhbHVlIHRvIHRoZSBjbG9zZXN0IHRodW1iIGlmIGluIHJhbmdlIG1vZGUuXG5cdCAqICovXG5cdG9uQ2xpY2soZXZlbnQpIHtcblx0XHRpZiAodGhpcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cblx0XHRjb25zdCB0cmFja0xlZnQgPSB0aGlzLnRyYWNrLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDtcblx0XHRjb25zdCB0cmFja1ZhbHVlID0gdGhpcy5jb252ZXJ0VG9WYWx1ZShldmVudC5jbGllbnRYIC0gdHJhY2tMZWZ0KTtcblx0XHRpZiAodGhpcy5pc1JhbmdlKCkpIHtcblx0XHRcdGlmIChNYXRoLmFicyh0aGlzLl92YWx1ZVswXSAtIHRyYWNrVmFsdWUpIDwgTWF0aC5hYnModGhpcy5fdmFsdWVbMV0gLSB0cmFja1ZhbHVlKSkge1xuXHRcdFx0XHR0aGlzLl92YWx1ZVswXSA9IHRyYWNrVmFsdWU7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLl92YWx1ZVsxXSA9IHRyYWNrVmFsdWU7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX3ZhbHVlWzBdID0gdHJhY2tWYWx1ZTtcblx0XHR9XG5cblx0XHR0aGlzLnZhbHVlID0gdGhpcy52YWx1ZTtcblx0fVxuXG5cdC8qKiBGb2N1cyBoYW5kbGVyIGZvciB0aGUgb3B0aW9uYWwgaW5wdXQgKi9cblx0b25Gb2N1cyh7dGFyZ2V0fSkge1xuXHRcdHRhcmdldC5zZWxlY3QoKTtcblx0fVxuXG5cdC8qKiBNb3VzZSBtb3ZlIGhhbmRsZXIuIFJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyB0aGUgdmFsdWUgYW5kIHZpc3VhbCBzZWxlY3Rpb24gYmFzZWQgb24gbW91c2UgbW92ZW1lbnQgKi9cblx0b25Nb3VzZU1vdmUoZXZlbnQpIHtcblx0XHRpZiAodGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5pc01vdXNlRG93bikgeyByZXR1cm47IH1cblx0XHRjb25zdCB0cmFjayA9IHRoaXMudHJhY2submF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuXHRcdGxldCB2YWx1ZTtcblxuXHRcdGlmIChcblx0XHRcdGV2ZW50LmNsaWVudFggLSB0cmFjay5sZWZ0IDw9IHRyYWNrLndpZHRoXG5cdFx0XHQmJiBldmVudC5jbGllbnRYIC0gdHJhY2subGVmdCA+PSAwXG5cdFx0KSB7XG5cdFx0XHR2YWx1ZSA9IHRoaXMuY29udmVydFRvVmFsdWUoZXZlbnQuY2xpZW50WCAtIHRyYWNrLmxlZnQpO1xuXHRcdH1cblxuXHRcdC8vIGlmIHRoZSBtb3VzZSBpcyBiZXlvbmQgdGhlIG1heCwgc2V0IHRoZSB2YWx1ZSB0byBgbWF4YFxuXHRcdGlmIChldmVudC5jbGllbnRYIC0gdHJhY2subGVmdCA+IHRyYWNrLndpZHRoKSB7XG5cdFx0XHR2YWx1ZSA9IHRoaXMubWF4O1xuXHRcdH1cblxuXHRcdC8vIGlmIHRoZSBtb3VzZSBpcyBiZWxvdyB0aGUgbWluLCBzZXQgdGhlIHZhbHVlIHRvIGBtaW5gXG5cdFx0aWYgKGV2ZW50LmNsaWVudFggLSB0cmFjay5sZWZ0IDwgMCkge1xuXHRcdFx0dmFsdWUgPSB0aGlzLm1pbjtcblx0XHR9XG5cblx0XHRpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhpcy5fdmFsdWVbdGhpcy5fZm9jdXNlZFRodW1iSW5kZXhdID0gdmFsdWU7XG5cdFx0XHR0aGlzLnZhbHVlID0gdGhpcy52YWx1ZTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRW5hYmxlcyB0aGUgYG9uTW91c2VNb3ZlYCBoYW5kbGVyXG5cdCAqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gdGh1bWIgSWYgdHJ1ZSB0aGVuIGB0aHVtYmAgaXMgY2xpY2tlZCBkb3duLCBvdGhlcndpc2UgYHRodW1iMmAgaXMgY2xpY2tlZCBkb3duLlxuXHQgKi9cblx0b25Nb3VzZURvd24oZXZlbnQsIGluZGV4ID0gMCkge1xuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0aWYgKHRoaXMuZGlzYWJsZWQpIHsgcmV0dXJuOyB9XG5cdFx0dGhpcy5fZm9jdXNlZFRodW1iSW5kZXggPSBpbmRleDtcblx0XHR0aGlzLnRodW1icy50b0FycmF5KClbaW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHR0aGlzLmlzTW91c2VEb3duID0gdHJ1ZTtcblx0fVxuXG5cdC8qKiBEaXNhYmxlcyB0aGUgYG9uTW91c2VNb3ZlYCBoYW5kbGVyICovXG5cdG9uTW91c2VVcCgpIHtcblx0XHR0aGlzLmlzTW91c2VEb3duID0gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbHMgYGluY3JlbWVudFZhbHVlYCBmb3IgQXJyb3dSaWdodCBhbmQgQXJyb3dVcCwgYGRlY3JlbWVudFZhbHVlYCBmb3IgQXJyb3dMZWZ0IGFuZCBBcnJvd0Rvd24uXG5cdCAqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gdGh1bWIgSWYgdHJ1ZSB0aGVuIGB0aHVtYmAgaXMgcHJlc3NlZCBkb3duLCBvdGhlcndpc2UgYHRodW1iMmAgaXMgcHJlc3NlZCBkb3duLlxuXHQgKi9cblx0b25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpbmRleCA9IDApIHtcblx0XHRpZiAodGhpcy5kaXNhYmxlQXJyb3dLZXlzKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IG11bHRpcGxpZXIgPSBldmVudC5zaGlmdEtleSA/IHRoaXMuc2hpZnRNdWx0aXBsaWVyIDogMTtcblx0XHRpZiAoZXZlbnQua2V5ID09PSBcIkFycm93TGVmdFwiIHx8IGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuXHRcdFx0dGhpcy5kZWNyZW1lbnRWYWx1ZShtdWx0aXBsaWVyLCBpbmRleCk7XG5cdFx0XHR0aGlzLnRodW1icy50b0FycmF5KClbaW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dSaWdodFwiIHx8IGV2ZW50LmtleSA9PT0gXCJBcnJvd1VwXCIpIHtcblx0XHRcdHRoaXMuaW5jcmVtZW50VmFsdWUobXVsdGlwbGllciwgaW5kZXgpO1xuXHRcdFx0dGhpcy50aHVtYnMudG9BcnJheSgpW2luZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBpc1RlbXBsYXRlKHZhbHVlKSB7XG5cdFx0cmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG5cdH1cblxuXHQvKiogR2V0IG9wdGlvbmFsIGlucHV0IGZpZWxkcyAqL1xuXHRwcm90ZWN0ZWQgZ2V0SW5wdXRzKCk6IEhUTUxJbnB1dEVsZW1lbnRbXSB7XG5cdFx0cmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbnB1dDpub3QoW3R5cGU9cmFuZ2VdKVwiKTtcblx0fVxufVxuIl19
632
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFFWixTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFHWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHekU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQ0c7QUFtR0gsTUFBTSxPQUFPLE1BQU07SUE4SWxCLFlBQ1csVUFBc0IsRUFDdEIsWUFBMEIsRUFDNUIsZUFBa0M7UUFGaEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUM1QixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUF4SDNDLGlDQUFpQztRQUN4QixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBc0VsQiwrSEFBK0g7UUFDdEgsT0FBRSxHQUFHLFVBQVUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDekMsaUZBQWlGO1FBQ3hFLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLHlDQUF5QztRQUNoQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRzFCLGlFQUFpRTtRQUN4RCxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFjbEMsK0NBQStDO1FBQ3JDLGdCQUFXLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsY0FBUyxHQUFHLElBQUksQ0FBQztRQU8vQyxZQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUM7UUFDN0Isa0JBQWEsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLGVBQWUsQ0FBQztRQUMxQyxlQUFVLEdB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Q0Q7NEpBTWEsR0FBRztzQkFBZixLQUFLO2dCQVVPLEdBQUc7c0JBQWYsS0FBSztnQkFXRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRU8sS0FBSztzQkFBakIsS0FBSztnQkFxRUcsRUFBRTtzQkFBVixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBYUksV0FBVztzQkFBcEIsTUFBTTtnQkFDOEIsU0FBUztzQkFBN0MsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBQ1gsTUFBTTtzQkFBN0IsWUFBWTt1QkFBQyxRQUFRO2dCQUVGLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDUSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0osS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRIb3N0QmluZGluZyxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyLFxuXHRBZnRlclZpZXdJbml0LFxuXHRWaWV3Q2hpbGQsXG5cdEVsZW1lbnRSZWYsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q2hpbGRyZW4sXG5cdFF1ZXJ5TGlzdCxcblx0Q2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvdXRpbHNcIjtcblxuLyoqXG4gKiBVc2VkIHRvIHNlbGVjdCBmcm9tIHJhbmdlcyBvZiB2YWx1ZXMuIFtTZWUgaGVyZV0oaHR0cHM6Ly93d3cuY2FyYm9uZGVzaWduc3lzdGVtLmNvbS9jb21wb25lbnRzL3NsaWRlci91c2FnZSkgZm9yIHVzYWdlIGluZm9ybWF0aW9uLlxuICpcbiAqIEdldCBzdGFydGVkIHdpdGggaW1wb3J0aW5nIHRoZSBtb2R1bGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgU2xpZGVyTW9kdWxlIH0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG4gKiBgYGBcbiAqXG4gKiBUaGUgc2ltcGxlc3QgcG9zc2libGUgc2xpZGVyIHVzYWdlIGxvb2tzIHNvbWV0aGluZyBsaWtlOlxuICpcbiAqIGBgYGh0bWxcbiAqXHQ8Y2RzLXNsaWRlcj48L2Nkcy1zbGlkZXI+XG4gKiBgYGBcbiAqXG4gKiBUaGF0IHdpbGwgcmVuZGVyIGEgc2xpZGVyIHdpdGhvdXQgbGFiZWxzIG9yIGFsdGVybmF0aXZlIHZhbHVlIGlucHV0LiBMYWJlbHMgY2FuIGJlIHByb3ZpZGVkIGJ5XG4gKiBlbGVtZW50cyB3aXRoIGBbbWluTGFiZWxdYCBhbmQgYFttYXhMYWJlbF1gIGF0dHJpYnV0ZXMsIGFuZCBhbiBgaW5wdXRgIChtYXkgdXNlIHRoZSBgaWJtSW5wdXRgIGRpcmVjdGl2ZSkgY2FuIGJlIHN1cHBsaWVkXG4gKiBmb3IgdXNlIGFzIGFuIGFsdGVybmF0aXZlIHZhbHVlIGZpZWxkLlxuICpcbiAqIGV4OlxuICpcbiAqIGBgYGh0bWxcbiAqIDwhLS0gRnVsbCBleGFtcGxlIC0tPlxuICogPGNkcy1zbGlkZXI+XG4gKlx0XHQ8c3BhbiBtaW5MYWJlbD4wR0I8L3NwYW4+XG4gKlx0XHQ8c3BhbiBtYXhMYWJlbD4xMDBHQjwvc3Bhbj5cbiAqXHRcdDxpbnB1dC8+XG4gKiA8L2Nkcy1zbGlkZXI+XG4gKlxuICogPCEtLSB3aXRoIGp1c3QgYW4gaW5wdXQgLS0+XG4gKiA8Y2RzLXNsaWRlcj5cbiAqXHRcdDxpbnB1dC8+XG4gKiA8L2Nkcy1zbGlkZXI+XG4gKlxuICogPCEtLSB3aXRoIGp1c3Qgb25lIGxhYmVsIC0tPlxuICogPGNkcy1zbGlkZXI+XG4gKlx0XHQ8c3BhbiBtYXhMYWJlbD5NYXhpbXVtPC9zcGFuPlxuICogPC9jZHMtc2xpZGVyPlxuICogYGBgXG4gKlxuICogU2xpZGVyIHN1cHBvcnRzIGBOZ01vZGVsYCBieSBkZWZhdWx0LCBhcyB3ZWxsIGFzIHR3byB3YXkgYmluZGluZyB0byB0aGUgYHZhbHVlYCBpbnB1dC5cbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLXNsaWRlci0tYWR2YW5jZWQpXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtc2xpZGVyLCBpYm0tc2xpZGVyXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFza2VsZXRvbjsgZWxzZSBza2VsZXRvblRlbXBsYXRlXCI+XG5cdFx0XHQ8bGFiZWxcblx0XHRcdFx0Km5nSWY9XCJsYWJlbFwiXG5cdFx0XHRcdFtmb3JdPVwiaWRcIlxuXHRcdFx0XHRbaWRdPVwibGFiZWxJZFwiXG5cdFx0XHRcdGNsYXNzPVwiY2RzLS1sYWJlbFwiXG5cdFx0XHRcdFtuZ0NsYXNzXT1cInsnY2RzLS1sYWJlbC0tZGlzYWJsZWQnOiBkaXNhYmxlZH1cIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGxhYmVsKVwiPnt7bGFiZWx9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGxhYmVsKVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvbGFiZWw+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1zbGlkZXItY29udGFpbmVyXCI+XG5cdFx0XHRcdDxsYWJlbCBbaWRdPVwiYm90dG9tUmFuZ2VJZFwiIGNsYXNzPVwiY2RzLS1zbGlkZXJfX3JhbmdlLWxhYmVsXCI+XG5cdFx0XHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW21pbkxhYmVsXVwiPjwvbmctY29udGVudD5cblx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zbGlkZXJcIlxuXHRcdFx0XHRcdChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuXHRcdFx0XHRcdFtuZ0NsYXNzXT1cInsnY2RzLS1zbGlkZXItLWRpc2FibGVkJzogZGlzYWJsZWR9XCI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1JhbmdlKClcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXNsaWRlcl9fdGh1bWItd3JhcHBlclwiXG5cdFx0XHRcdFx0XHRcdFtuZ1N0eWxlXT1cIntpbnNldElubGluZVN0YXJ0OiBnZXRGcmFjdGlvbkNvbXBsZXRlKHZhbHVlKSAqIDEwMCArICclJ31cIj5cblx0XHRcdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0XHRcdCN0aHVtYnNcblx0XHRcdFx0XHRcdFx0XHRyb2xlPVwic2xpZGVyXCJcblx0XHRcdFx0XHRcdFx0XHRbaWRdPVwiaWRcIlxuXHRcdFx0XHRcdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbElkXCJcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2xpZGVyX190aHVtYlwiXG5cdFx0XHRcdFx0XHRcdFx0dGFiaW5kZXg9XCIwXCJcblx0XHRcdFx0XHRcdFx0XHQobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuXHRcdFx0XHRcdFx0XHRcdChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCI+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmFuZ2UoKVwiPlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tc2xpZGVyX190aHVtYi13cmFwcGVyXCJcblx0XHRcdFx0XHRcdCBbbmdTdHlsZV09XCJ7aW5zZXRJbmxpbmVTdGFydDogZ2V0RnJhY3Rpb25Db21wbGV0ZSh0aHVtYikgKiAxMDAgKyAnJSd9XCJcblx0XHRcdFx0XHRcdCAqbmdGb3I9XCJsZXQgdGh1bWIgb2YgdmFsdWU7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrVGh1bWJzQnlcIj5cblx0XHRcdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0XHRcdCN0aHVtYnNcblx0XHRcdFx0XHRcdFx0XHRyb2xlPVwic2xpZGVyXCJcblx0XHRcdFx0XHRcdFx0XHRbaWRdPVwiaWQgKyAoaSA+IDAgPyAnLScgKyBpIDogJycpXCJcblx0XHRcdFx0XHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxJZFwiXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNsaWRlcl9fdGh1bWJcIlxuXHRcdFx0XHRcdFx0XHRcdHRhYmluZGV4PVwiMFwiXG5cdFx0XHRcdFx0XHRcdFx0KG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQsIGkpXCJcblx0XHRcdFx0XHRcdFx0XHQoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50LCBpKVwiPlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdCN0cmFja1xuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNsaWRlcl9fdHJhY2tcIj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0XHQjZmlsbGVkVHJhY2tcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zbGlkZXJfX2ZpbGxlZC10cmFja1wiPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxpbnB1dFxuXHRcdFx0XHRcdFx0I3JhbmdlXG5cdFx0XHRcdFx0XHRhcmlhLWxhYmVsPVwic2xpZGVyXCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zbGlkZXJfX2lucHV0XCJcblx0XHRcdFx0XHRcdHR5cGU9XCJyYW5nZVwiXG5cdFx0XHRcdFx0XHRbc3RlcF09XCJzdGVwXCJcblx0XHRcdFx0XHRcdFttaW5dPVwibWluXCJcblx0XHRcdFx0XHRcdFttYXhdPVwibWF4XCJcblx0XHRcdFx0XHRcdFt2YWx1ZV09XCJ2YWx1ZS50b1N0cmluZygpXCI+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8bGFiZWwgW2lkXT1cInRvcFJhbmdlSWRcIiBjbGFzcz1cImNkcy0tc2xpZGVyX19yYW5nZS1sYWJlbFwiPlxuXHRcdFx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXhMYWJlbF1cIj48L25nLWNvbnRlbnQ+XG5cdFx0XHRcdDwvbGFiZWw+XG5cdFx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImlucHV0XCI+PC9uZy1jb250ZW50PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHQ8bmctdGVtcGxhdGUgI3NrZWxldG9uVGVtcGxhdGU+XG5cdFx0XHQ8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwiY2RzLS1sYWJlbCBjZHMtLXNrZWxldG9uXCI+PC9sYWJlbD5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXNsaWRlci1jb250YWluZXIgY2RzLS1za2VsZXRvblwiPlxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImNkcy0tc2xpZGVyX19yYW5nZS1sYWJlbFwiPjwvc3Bhbj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tc2xpZGVyXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tc2xpZGVyX190aHVtYlwiPjwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXNsaWRlcl9fdHJhY2tcIj48L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1zbGlkZXJfX2ZpbGxlZC10cmFja1wiPjwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJjZHMtLXNsaWRlcl9fcmFuZ2UtbGFiZWxcIj48L3NwYW4+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBTbGlkZXIsXG5cdFx0XHRtdWx0aTogdHJ1ZVxuXHRcdH1cblx0XVxufSlcbmV4cG9ydCBjbGFzcyBTbGlkZXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cdC8qKiBVc2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBJRHMgKi9cblx0cHJpdmF0ZSBzdGF0aWMgY291bnQgPSAwO1xuXG5cdC8qKiBUaGUgbG93ZXIgYm91bmQgb2Ygb3VyIHJhbmdlICovXG5cdEBJbnB1dCgpIHNldCBtaW4odikge1xuXHRcdGlmICghdikgeyByZXR1cm47IH1cblx0XHR0aGlzLl9taW4gPSB2O1xuXHRcdC8vIGZvcmNlIHRoZSBjb21wb25lbnQgdG8gdXBkYXRlXG5cdFx0dGhpcy52YWx1ZSA9IHRoaXMudmFsdWU7XG5cdH1cblx0Z2V0IG1pbigpIHtcblx0XHRyZXR1cm4gdGhpcy5fbWluO1xuXHR9XG5cdC8qKiBUaGUgdXBwZXIgYm91bmQgb2Ygb3VyIHJhbmdlICovXG5cdEBJbnB1dCgpIHNldCBtYXgodikge1xuXHRcdGlmICghdikgeyByZXR1cm47IH1cblx0XHR0aGlzLl9tYXggPSB2O1xuXHRcdC8vIGZvcmNlIHRoZSBjb21wb25lbnQgdG8gdXBkYXRlXG5cdFx0dGhpcy52YWx1ZSA9IHRoaXMudmFsdWU7XG5cdH1cblxuXHRnZXQgbWF4KCkge1xuXHRcdHJldHVybiB0aGlzLl9tYXg7XG5cdH1cblx0LyoqIFRoZSBpbnRlcnZhbCBmb3Igb3VyIHJhbmdlICovXG5cdEBJbnB1dCgpIHN0ZXAgPSAxO1xuXHQvKiogU2V0IHRoZSBpbml0aWFsIHZhbHVlLiBBdmFpbGFibGUgZm9yIHR3byB3YXkgYmluZGluZyAqL1xuXHRASW5wdXQoKSBzZXQgdmFsdWUodikge1xuXHRcdGlmICghdikge1xuXHRcdFx0diA9IFt0aGlzLm1pbl07XG5cdFx0fVxuXG5cdFx0aWYgKHR5cGVvZiB2ID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHR2ID0gW051bWJlcih2KV07XG5cdFx0fVxuXG5cdFx0aWYgKHZbMF0gPCB0aGlzLm1pbikge1xuXHRcdFx0dlswXSA9IHRoaXMubWluO1xuXHRcdH1cblxuXHRcdGlmICh2WzBdID4gdGhpcy5tYXgpIHtcblx0XHRcdHZbMF0gPSB0aGlzLm1heDtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5pc1JhbmdlKCkpIHtcblx0XHRcdGlmICh0aGlzLl9wcmV2aW91c1ZhbHVlWzBdICE9PSB2WzBdKSB7IC8vIGxlZnQgbW92ZWRcblx0XHRcdFx0aWYgKHZbMF0gPiB2WzFdIC0gdGhpcy5zdGVwKSB7XG5cdFx0XHRcdFx0Ly8gc3RvcCB0aGUgbGVmdCBoYW5kbGUgaWYgc3VycGFzc2luZyB0aGUgcmlnaHQgb25lXG5cdFx0XHRcdFx0dlswXSA9IHZbMV0gLSB0aGlzLnN0ZXA7XG5cdFx0XHRcdH0gZWxzZSBpZiAodlswXSA+IHRoaXMubWF4KSB7XG5cdFx0XHRcdFx0dlswXSA9IHRoaXMubWF4O1xuXHRcdFx0XHR9IGVsc2UgaWYgKHZbMF0gPCB0aGlzLm1pbikge1xuXHRcdFx0XHRcdHZbMF0gPSB0aGlzLm1pbjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAodGhpcy5fcHJldmlvdXNWYWx1ZVsxXSAhPT0gdlsxXSkgeyAvLyByaWdodCBtb3ZlZFxuXHRcdFx0XHRpZiAodlsxXSA+IHRoaXMubWF4KSB7XG5cdFx0XHRcdFx0dlsxXSA9IHRoaXMubWF4O1xuXHRcdFx0XHR9IGVsc2UgaWYgKHZbMV0gPCB0aGlzLl92YWx1ZVswXSArIHRoaXMuc3RlcCkge1xuXHRcdFx0XHRcdC8vIHN0b3AgdGhlIHJpZ2h0IGhhbmRsZSBpZiBzdXJwYXNzaW5nIHRoZSBsZWZ0IG9uZVxuXHRcdFx0XHRcdHZbMV0gPSB0aGlzLl92YWx1ZVswXSArIHRoaXMuc3RlcDtcblx0XHRcdFx0fSBlbHNlIGlmICh2WzFdIDwgdGhpcy5taW4pIHtcblx0XHRcdFx0XHR2WzFdID0gdGhpcy5taW47XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHR0aGlzLl9wcmV2aW91c1ZhbHVlID0gWy4uLnRoaXMuX3ZhbHVlXTsgLy8gc3RvcmUgYSBjb3B5LCBlbmFibGUgZGV0ZWN0aW9uIHdoaWNoIGhhbmRsZSBtb3ZlZFxuXHRcdHRoaXMuX3ZhbHVlID0gWy4uLnZdOyAvLyB0cmlnZ2VycyBjaGFuZ2UgZGV0ZWN0aW9uIHdoZW4gbmdNb2RlbCB2YWx1ZSBpcyBhbiBhcnJheSAoZm9yIHJhbmdlKVxuXG5cdFx0aWYgKHRoaXMuaXNSYW5nZSgpICYmIHRoaXMuZmlsbGVkVHJhY2spIHtcblx0XHRcdHRoaXMudXBkYXRlVHJhY2tSYW5nZVdpZHRoKCk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLmZpbGxlZFRyYWNrKSB7XG5cdFx0XHR0aGlzLmZpbGxlZFRyYWNrLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgwJSwgLTUwJSkgJHt0aGlzLnNjYWxlWCh0aGlzLmdldEZyYWN0aW9uQ29tcGxldGUodlswXSkpfWA7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuaW5wdXRzICYmIHRoaXMuaW5wdXRzLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5pbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGluZGV4KSA9PiB7XG5cdFx0XHRcdGlucHV0LnZhbHVlID0gdGhpcy5fdmFsdWVbaW5kZXhdLnRvU3RyaW5nKCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRjb25zdCB2YWx1ZVRvRW1pdCA9IHRoaXMuaXNSYW5nZSgpID8gdiA6IHZbMF07XG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UodmFsdWVUb0VtaXQpO1xuXHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZVRvRW1pdCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKSB7XG5cdFx0aWYgKHRoaXMuaXNSYW5nZSgpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fdmFsdWU7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLl92YWx1ZVswXTtcblx0fVxuXG5cdC8qKiBCYXNlIElEIGZvciB0aGUgc2xpZGVyLiBUaGUgbWluIGFuZCBtYXggbGFiZWxzIGdldCBJRHMgYCR7dGhpcy5pZH0tYm90dG9tLXJhbmdlYCBhbmQgYCR7dGhpcy5pZH0tdG9wLXJhbmdlYCByZXNwZWN0aXZlbHkgKi9cblx0QElucHV0KCkgaWQgPSBgc2xpZGVyLSR7U2xpZGVyLmNvdW50Kyt9YDtcblx0LyoqIFZhbHVlIHVzZWQgdG8gXCJtdWx0aXBseVwiIHRoZSBgc3RlcGAgd2hlbiB1c2luZyBhcnJvdyBrZXlzIHRvIHNlbGVjdCB2YWx1ZXMgKi9cblx0QElucHV0KCkgc2hpZnRNdWx0aXBsaWVyID0gNDtcblx0LyoqIFNldCB0byBgdHJ1ZWAgZm9yIGEgbG9hZGluZyBzbGlkZXIgKi9cblx0QElucHV0KCkgc2tlbGV0b24gPSBmYWxzZTtcblx0LyoqIFNldHMgdGhlIHRleHQgaW5zaWRlIHRoZSBgbGFiZWxgIHRhZyAqL1xuXHRASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqIFNldCB0byBgdHJ1ZWAgZm9yIGEgc2xpZGVyIHdpdGhvdXQgYXJyb3cga2V5IGludGVyYWN0aW9ucy4gKi9cblx0QElucHV0KCkgZGlzYWJsZUFycm93S2V5cyA9IGZhbHNlO1xuXHQvKiogRGlzYWJsZXMgdGhlIHJhbmdlIHZpc3VhbGx5IGFuZCBmdW5jdGlvbmFsbHkgKi9cblx0QElucHV0KCkgc2V0IGRpc2FibGVkKHYpIHtcblx0XHR0aGlzLl9kaXNhYmxlZCA9IHY7XG5cdFx0Ly8gZm9yIHNvbWUgcmVhc29uIGB0aGlzLmlucHV0YCBuZXZlciBleGlzdHMgaGVyZSwgc28gd2UgaGF2ZSB0byBxdWVyeSBmb3IgaXQgaGVyZSB0b29cblx0XHRjb25zdCBpbnB1dHMgPSB0aGlzLmdldElucHV0cygpO1xuXHRcdGlmIChpbnB1dHMgJiYgaW5wdXRzLmxlbmd0aCA+IDApIHtcblx0XHRcdGlucHV0cy5mb3JFYWNoKGlucHV0ID0+IGlucHV0LmRpc2FibGVkID0gdik7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IGRpc2FibGVkKCkge1xuXHRcdHJldHVybiB0aGlzLl9kaXNhYmxlZDtcblx0fVxuXHQvKiogRW1pdHMgZXZlcnkgdGltZSBhIG5ldyB2YWx1ZSBpcyBzZWxlY3RlZCAqL1xuXHRAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBudW1iZXJbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tZm9ybS1pdGVtXCIpIGhvc3RDbGFzcyA9IHRydWU7XG5cdEBWaWV3Q2hpbGRyZW4oXCJ0aHVtYnNcIikgdGh1bWJzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cblx0QFZpZXdDaGlsZChcInRyYWNrXCIpIHRyYWNrOiBFbGVtZW50UmVmO1xuXHRAVmlld0NoaWxkKFwiZmlsbGVkVHJhY2tcIikgZmlsbGVkVHJhY2s6IEVsZW1lbnRSZWY7XG5cdEBWaWV3Q2hpbGQoXCJyYW5nZVwiKSByYW5nZTogRWxlbWVudFJlZjtcblxuXHRwdWJsaWMgbGFiZWxJZCA9IGAke3RoaXMuaWR9LWxhYmVsYDtcblx0cHVibGljIGJvdHRvbVJhbmdlSWQgPSBgJHt0aGlzLmlkfS1ib3R0b20tcmFuZ2VgO1xuXHRwdWJsaWMgdG9wUmFuZ2VJZCA9IGAke3RoaXMuaWR9LXRvcC1yYW5nZWA7XG5cdHB1YmxpYyBmcmFjdGlvbkNvbXBsZXRlID0gMDtcblxuXHRwcm90ZWN0ZWQgaXNNb3VzZURvd24gPSBmYWxzZTtcblx0cHJvdGVjdGVkIGlucHV0czogSFRNTElucHV0RWxlbWVudFtdO1xuXHRwcm90ZWN0ZWQgX21pbiA9IDA7XG5cdHByb3RlY3RlZCBfbWF4ID0gMTAwO1xuXHRwcm90ZWN0ZWQgX3ZhbHVlID0gW3RoaXMubWluXTtcblx0cHJvdGVjdGVkIF9wcmV2aW91c1ZhbHVlID0gW3RoaXMubWluXTtcblx0cHJvdGVjdGVkIF9kaXNhYmxlZCA9IGZhbHNlO1xuXHRwcm90ZWN0ZWQgX2ZvY3VzZWRUaHVtYkluZGV4ID0gMDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcblx0XHRwcm90ZWN0ZWQgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG5cdFx0cHJpdmF0ZSBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmXG5cdCkge31cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0Ly8gYmluZCBtb3VzZW1vdmUgYW5kIG1vdXNldXAgdG8gdGhlIGRvY3VtZW50IHNvIHdlIGRvbid0IGhhdmUgaXNzdWVzIHRyYWNraW5nIHRoZSBtb3VzZVxuXHRcdHRoaXMuZXZlbnRTZXJ2aWNlLm9uRG9jdW1lbnQoXCJtb3VzZW1vdmVcIiwgdGhpcy5vbk1vdXNlTW92ZS5iaW5kKHRoaXMpKTtcblx0XHR0aGlzLmV2ZW50U2VydmljZS5vbkRvY3VtZW50KFwibW91c2V1cFwiLCB0aGlzLm9uTW91c2VVcC5iaW5kKHRoaXMpKTtcblxuXHRcdC8vIGFwcGx5IGFueSB2YWx1ZXMgd2UgZ290IGZyb20gYmVmb3JlIHRoZSB2aWV3IGluaXRpYWxpemVkXG5cdFx0dGhpcy5jaGFuZ2VEZXRlY3Rpb24uZGV0ZWN0Q2hhbmdlcygpO1xuXG5cdFx0Ly8gVE9ETzogb250b3VjaHN0YXJ0L29udG91Y2htb3ZlL29udG91Y2hlbmRcblxuXHRcdC8vIHNldCB1cCB0aGUgb3B0aW9uYWwgaW5wdXRcblx0XHR0aGlzLmlucHV0cyA9IHRoaXMuZ2V0SW5wdXRzKCk7XG5cdFx0aWYgKHRoaXMuaW5wdXRzICYmIHRoaXMuaW5wdXRzLmxlbmd0aCA+IDApIHtcblx0XHRcdHRoaXMuaW5wdXRzLmZvckVhY2goKGlucHV0LCBpbmRleCkgPT4ge1xuXHRcdFx0XHRpbnB1dC50eXBlID0gXCJudW1iZXJcIjtcblx0XHRcdFx0aW5wdXQuY2xhc3NMaXN0LmFkZChcImNkcy0tc2xpZGVyLXRleHQtaW5wdXRcIik7XG5cdFx0XHRcdGlucHV0LmNsYXNzTGlzdC5hZGQoXCJjZHMtLXRleHQtaW5wdXRcIik7XG5cdFx0XHRcdGlucHV0LnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxsZWRieVwiLCBgJHt0aGlzLmJvdHRvbVJhbmdlSWR9ICR7dGhpcy50b3BSYW5nZUlkfWApO1xuXG5cdFx0XHRcdGlucHV0LnZhbHVlID0gaW5kZXggPCB0aGlzLl92YWx1ZS5sZW5ndGggPyB0aGlzLl92YWx1ZVtpbmRleF0udG9TdHJpbmcoKSA6IHRoaXMubWF4LnRvU3RyaW5nKCk7XG5cdFx0XHRcdC8vIGJpbmQgZXZlbnRzIG9uIG91ciBvcHRpb25hbCBpbnB1dFxuXHRcdFx0XHR0aGlzLmV2ZW50U2VydmljZS5vbihpbnB1dCwgXCJjaGFuZ2VcIiwgZXZlbnQgPT4gdGhpcy5vbkNoYW5nZShldmVudCwgaW5kZXgpKTtcblxuXHRcdFx0XHRpZiAoaW5kZXggPT09IDApIHtcblx0XHRcdFx0XHR0aGlzLmV2ZW50U2VydmljZS5vbihpbnB1dCwgXCJmb2N1c1wiLCB0aGlzLm9uRm9jdXMuYmluZCh0aGlzKSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHRyYWNrVGh1bWJzQnkoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XG5cdFx0cmV0dXJuIGluZGV4O1xuXHR9XG5cblx0LyoqIFNlbmQgY2hhbmdlcyBiYWNrIHRvIHRoZSBtb2RlbCAqL1xuXHRwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XG5cblx0LyoqIFJlZ2lzdGVyIGEgY2hhbmdlIHByb3BhZ2F0aW9uIGZ1bmN0aW9uIGZvciBgQ29udHJvbFZhbHVlQWNjZXNzb3JgICovXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG5cdH1cblxuXHQvKiogQ2FsbGJhY2sgdG8gbm90aWZ5IHRoZSBtb2RlbCB3aGVuIG91ciBpbnB1dCBoYXMgYmVlbiB0b3VjaGVkICovXG5cdG9uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4geyB9O1xuXG5cdC8qKiBSZWdpc3RlciBhIGNhbGxiYWNrIHRvIG5vdGlmeSB3aGVuIG91ciBpbnB1dCBoYXMgYmVlbiB0b3VjaGVkICovXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcblx0XHR0aGlzLm9uVG91Y2hlZCA9IGZuO1xuXHR9XG5cblx0LyoqIFJlY2VpdmVzIGEgdmFsdWUgZnJvbSB0aGUgbW9kZWwgKi9cblx0d3JpdGVWYWx1ZSh2OiBhbnkpIHtcblx0XHR0aGlzLnZhbHVlID0gdjtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBhbW91bnQgb2YgXCJjb21wbGV0ZW5lc3NcIiBvZiBhIHZhbHVlIGFzIGEgZnJhY3Rpb24gb2YgdGhlIHRvdGFsIHRyYWNrIHdpZHRoXG5cdCAqL1xuXHRnZXRGcmFjdGlvbkNvbXBsZXRlKHZhbHVlOiBudW1iZXIpIHtcblx0XHRpZiAoIXRoaXMudHJhY2spIHtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblxuXHRcdGNvbnN0IHRyYWNrV2lkdGggPSB0aGlzLnRyYWNrLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cdFx0cmV0dXJuIHRoaXMuY29udmVydFRvUHgodmFsdWUpIC8gdHJhY2tXaWR0aDtcblx0fVxuXG5cdC8qKiBIZWxwZXIgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBDU1MgdHJhbnNmb3JtIGBzY2FsZVhgIGZ1bmN0aW9uICovXG5cdHNjYWxlWChjb21wbGV0ZSkge1xuXHRcdHJldHVybiBgc2NhbGVYKCR7Y29tcGxldGV9KWA7XG5cdH1cblxuXHQvKiogQ29udmVydHMgYSBnaXZlbiBweCB2YWx1ZSB0byBhIFwicmVhbFwiIHZhbHVlIGluIG91ciByYW5nZSAqL1xuXHRjb252ZXJ0VG9WYWx1ZShweEFtb3VudCkge1xuXHRcdC8vIGJhc2ljIGNvbmNlcHQgYm9ycm93ZWQgZnJvbSBjYXJib24tY29tcG9uZW50c1xuXHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jYXJib24tZGVzaWduLXN5c3RlbS9jYXJib24vYmxvYi80M2JmM2FiZGMyZjhiZGFhMzhhYTg0ZTBmNzMzYWRkZTFlMWU4ODk0L3NyYy9jb21wb25lbnRzL3NsaWRlci9zbGlkZXIuanMjTDE0Ny1MMTUxXG5cdFx0Y29uc3QgcmFuZ2UgPSB0aGlzLm1heCAtIHRoaXMubWluO1xuXHRcdGNvbnN0IHRyYWNrV2lkdGggPSB0aGlzLnRyYWNrLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cdFx0Y29uc3QgdW5yb3VuZGVkID0gcHhBbW91bnQgLyB0cmFja1dpZHRoO1xuXHRcdGNvbnN0IHJvdW5kZWQgPSBNYXRoLnJvdW5kKChyYW5nZSAqIHVucm91bmRlZCkgLyB0aGlzLnN0ZXApICogdGhpcy5zdGVwO1xuXHRcdHJldHVybiByb3VuZGVkICsgdGhpcy5taW47XG5cdH1cblxuXHQvKiogQ29udmVydHMgYSBnaXZlbiBcInJlYWxcIiB2YWx1ZSB0byBhIHB4IHZhbHVlIHdlIGNhbiB1cGRhdGUgdGhlIHZpZXcgd2l0aCAqL1xuXHRjb252ZXJ0VG9QeCh2YWx1ZSkge1xuXHRcdGlmICghdGhpcy50cmFjaykge1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0Y29uc3QgdHJhY2tXaWR0aCA9IHRoaXMudHJhY2submF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblx0XHRpZiAodmFsdWUgPj0gdGhpcy5tYXgpIHtcblx0XHRcdHJldHVybiB0cmFja1dpZHRoO1xuXHRcdH1cblxuXHRcdGlmICh2YWx1ZSA8PSB0aGlzLm1pbikge1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0Ly8gYWNjb3VudCBmb3IgdmFsdWUgc2hpZnRpbmcgYnkgc3VidHJhY3RpbmcgbWluIGZyb20gdmFsdWUgYW5kIG1heFxuXHRcdHJldHVybiBNYXRoLnJvdW5kKHRyYWNrV2lkdGggKiAoKHZhbHVlIC0gdGhpcy5taW4pIC8gKHRoaXMubWF4IC0gdGhpcy5taW4pKSk7XG5cdH1cblxuXHQvKipcblx0ICogSW5jcmVtZW50cyB0aGUgdmFsdWUgYnkgdGhlIHN0ZXAgdmFsdWUsIG9yIHRoZSBzdGVwIHZhbHVlIG11bHRpcGxpZWQgYnkgdGhlIGBtdWx0aXBsaWVyYCBhcmd1bWVudC5cblx0ICpcblx0ICogQGFyZ3VtZW50IG11bHRpcGxpZXIgRGVmYXVsdHMgdG8gYDFgLCBtdWx0aXBsaWVkIHdpdGggdGhlIHN0ZXAgdmFsdWUuXG5cdCAqL1xuXHRpbmNyZW1lbnRWYWx1ZShtdWx0aXBsaWVyID0gMSwgaW5kZXggPSAwKSB7XG5cdFx0dGhpcy5fdmFsdWVbaW5kZXhdID0gdGhpcy5fdmFsdWVbaW5kZXhdICsgKHRoaXMuc3RlcCAqIG11bHRpcGxpZXIpO1xuXHRcdHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlOyAvLyBydW4gdGhlIHNldHRlclxuXHR9XG5cblx0LyoqXG5cdCAqIERlY3JlbWVudHMgdGhlIHZhbHVlIGJ5IHRoZSBzdGVwIHZhbHVlLCBvciB0aGUgc3RlcCB2YWx1ZSBtdWx0aXBsaWVkIGJ5IHRoZSBgbXVsdGlwbGllcmAgYXJndW1lbnQuXG5cdCAqXG5cdCAqIEBhcmd1bWVudCBtdWx0aXBsaWVyIERlZmF1bHRzIHRvIGAxYCwgbXVsdGlwbGllZCB3aXRoIHRoZSBzdGVwIHZhbHVlLlxuXHQgKi9cblx0ZGVjcmVtZW50VmFsdWUobXVsdGlwbGllciA9IDEsIGluZGV4ID0gMCkge1xuXHRcdHRoaXMuX3ZhbHVlW2luZGV4XSA9IHRoaXMuX3ZhbHVlW2luZGV4XSAtICh0aGlzLnN0ZXAgKiBtdWx0aXBsaWVyKTtcblx0XHR0aGlzLnZhbHVlID0gdGhpcy52YWx1ZTsgLy8gcnVuIHRoZSBzZXR0ZXJcblx0fVxuXG5cdC8qKlxuXHQgKiBEZXRlcm1pbmVzIGlmIHRoZSBzbGlkZXIgaXMgaW4gcmFuZ2UgbW9kZS5cblx0ICovXG5cdGlzUmFuZ2UoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX3ZhbHVlLmxlbmd0aCA+IDE7XG5cdH1cblxuXHQvKipcblx0ICogUmFuZ2UgbW9kZSBvbmx5LlxuXHQgKiBVcGRhdGVzIHRoZSB0cmFjayB3aWR0aCB0byBzcGFuIGZyb20gdGhlIGxvdyB0aHVtYiB0byB0aGUgaGlnaCB0aHVtYlxuXHQgKi9cblx0dXBkYXRlVHJhY2tSYW5nZVdpZHRoKCkge1xuXHRcdGNvbnN0IGZyYWN0aW9uID0gdGhpcy5nZXRGcmFjdGlvbkNvbXBsZXRlKHRoaXMuX3ZhbHVlWzBdKTtcblx0XHRjb25zdCBmcmFjdGlvbjIgPSB0aGlzLmdldEZyYWN0aW9uQ29tcGxldGUodGhpcy5fdmFsdWVbMV0pO1xuXHRcdHRoaXMuZmlsbGVkVHJhY2submF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7ZnJhY3Rpb24gKiAxMDB9JSwgLTUwJSkgJHt0aGlzLnNjYWxlWChmcmFjdGlvbjIgLSBmcmFjdGlvbil9YDtcblx0fVxuXG5cdC8qKiBDaGFuZ2UgaGFuZGxlciBmb3IgdGhlIG9wdGlvbmFsIGlucHV0ICovXG5cdG9uQ2hhbmdlKGV2ZW50LCBpbmRleCkge1xuXHRcdHRoaXMuX3ZhbHVlW2luZGV4XSA9IE51bWJlcihldmVudC50YXJnZXQudmFsdWUpO1xuXHRcdHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgY2xpY2tzIG9uIHRoZSBzbGlkZXIsIGFuZCBzZXR0aW5nIHRoZSB2YWx1ZSB0byBpdCdzIFwicmVhbFwiIGVxdWl2YWxlbnQuXG5cdCAqIFdpbGwgYXNzaWduIHRoZSB2YWx1ZSB0byB0aGUgY2xvc2VzdCB0aHVtYiBpZiBpbiByYW5nZSBtb2RlLlxuXHQgKiAqL1xuXHRvbkNsaWNrKGV2ZW50KSB7XG5cdFx0aWYgKHRoaXMuZGlzYWJsZWQpIHsgcmV0dXJuOyB9XG5cdFx0Y29uc3QgdHJhY2tMZWZ0ID0gdGhpcy50cmFjay5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG5cdFx0Y29uc3QgdHJhY2tWYWx1ZSA9IHRoaXMuY29udmVydFRvVmFsdWUoZXZlbnQuY2xpZW50WCAtIHRyYWNrTGVmdCk7XG5cdFx0aWYgKHRoaXMuaXNSYW5nZSgpKSB7XG5cdFx0XHRpZiAoTWF0aC5hYnModGhpcy5fdmFsdWVbMF0gLSB0cmFja1ZhbHVlKSA8IE1hdGguYWJzKHRoaXMuX3ZhbHVlWzFdIC0gdHJhY2tWYWx1ZSkpIHtcblx0XHRcdFx0dGhpcy5fdmFsdWVbMF0gPSB0cmFja1ZhbHVlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5fdmFsdWVbMV0gPSB0cmFja1ZhbHVlO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl92YWx1ZVswXSA9IHRyYWNrVmFsdWU7XG5cdFx0fVxuXG5cdFx0dGhpcy52YWx1ZSA9IHRoaXMudmFsdWU7XG5cdH1cblxuXHQvKiogRm9jdXMgaGFuZGxlciBmb3IgdGhlIG9wdGlvbmFsIGlucHV0ICovXG5cdG9uRm9jdXMoe3RhcmdldH0pIHtcblx0XHR0YXJnZXQuc2VsZWN0KCk7XG5cdH1cblxuXHQvKiogTW91c2UgbW92ZSBoYW5kbGVyLiBSZXNwb25zaWJsZSBmb3IgdXBkYXRpbmcgdGhlIHZhbHVlIGFuZCB2aXN1YWwgc2VsZWN0aW9uIGJhc2VkIG9uIG1vdXNlIG1vdmVtZW50ICovXG5cdG9uTW91c2VNb3ZlKGV2ZW50KSB7XG5cdFx0aWYgKHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMuaXNNb3VzZURvd24pIHsgcmV0dXJuOyB9XG5cdFx0Y29uc3QgdHJhY2sgPSB0aGlzLnRyYWNrLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cblx0XHRsZXQgdmFsdWU7XG5cblx0XHRpZiAoXG5cdFx0XHRldmVudC5jbGllbnRYIC0gdHJhY2subGVmdCA8PSB0cmFjay53aWR0aFxuXHRcdFx0JiYgZXZlbnQuY2xpZW50WCAtIHRyYWNrLmxlZnQgPj0gMFxuXHRcdCkge1xuXHRcdFx0dmFsdWUgPSB0aGlzLmNvbnZlcnRUb1ZhbHVlKGV2ZW50LmNsaWVudFggLSB0cmFjay5sZWZ0KTtcblx0XHR9XG5cblx0XHQvLyBpZiB0aGUgbW91c2UgaXMgYmV5b25kIHRoZSBtYXgsIHNldCB0aGUgdmFsdWUgdG8gYG1heGBcblx0XHRpZiAoZXZlbnQuY2xpZW50WCAtIHRyYWNrLmxlZnQgPiB0cmFjay53aWR0aCkge1xuXHRcdFx0dmFsdWUgPSB0aGlzLm1heDtcblx0XHR9XG5cblx0XHQvLyBpZiB0aGUgbW91c2UgaXMgYmVsb3cgdGhlIG1pbiwgc2V0IHRoZSB2YWx1ZSB0byBgbWluYFxuXHRcdGlmIChldmVudC5jbGllbnRYIC0gdHJhY2subGVmdCA8IDApIHtcblx0XHRcdHZhbHVlID0gdGhpcy5taW47XG5cdFx0fVxuXG5cdFx0aWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMuX3ZhbHVlW3RoaXMuX2ZvY3VzZWRUaHVtYkluZGV4XSA9IHZhbHVlO1xuXHRcdFx0dGhpcy52YWx1ZSA9IHRoaXMudmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEVuYWJsZXMgdGhlIGBvbk1vdXNlTW92ZWAgaGFuZGxlclxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IHRodW1iIElmIHRydWUgdGhlbiBgdGh1bWJgIGlzIGNsaWNrZWQgZG93biwgb3RoZXJ3aXNlIGB0aHVtYjJgIGlzIGNsaWNrZWQgZG93bi5cblx0ICovXG5cdG9uTW91c2VEb3duKGV2ZW50LCBpbmRleCA9IDApIHtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdGlmICh0aGlzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuXHRcdHRoaXMuX2ZvY3VzZWRUaHVtYkluZGV4ID0gaW5kZXg7XG5cdFx0dGhpcy50aHVtYnMudG9BcnJheSgpW2luZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdFx0dGhpcy5pc01vdXNlRG93biA9IHRydWU7XG5cdH1cblxuXHQvKiogRGlzYWJsZXMgdGhlIGBvbk1vdXNlTW92ZWAgaGFuZGxlciAqL1xuXHRvbk1vdXNlVXAoKSB7XG5cdFx0dGhpcy5pc01vdXNlRG93biA9IGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENhbGxzIGBpbmNyZW1lbnRWYWx1ZWAgZm9yIEFycm93UmlnaHQgYW5kIEFycm93VXAsIGBkZWNyZW1lbnRWYWx1ZWAgZm9yIEFycm93TGVmdCBhbmQgQXJyb3dEb3duLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IHRodW1iIElmIHRydWUgdGhlbiBgdGh1bWJgIGlzIHByZXNzZWQgZG93biwgb3RoZXJ3aXNlIGB0aHVtYjJgIGlzIHByZXNzZWQgZG93bi5cblx0ICovXG5cdG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgaW5kZXggPSAwKSB7XG5cdFx0aWYgKHRoaXMuZGlzYWJsZUFycm93S2V5cykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBtdWx0aXBsaWVyID0gZXZlbnQuc2hpZnRLZXkgPyB0aGlzLnNoaWZ0TXVsdGlwbGllciA6IDE7XG5cdFx0aWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd0xlZnRcIiB8fCBldmVudC5rZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcblx0XHRcdHRoaXMuZGVjcmVtZW50VmFsdWUobXVsdGlwbGllciwgaW5kZXgpO1xuXHRcdFx0dGhpcy50aHVtYnMudG9BcnJheSgpW2luZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93UmlnaHRcIiB8fCBldmVudC5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XG5cdFx0XHR0aGlzLmluY3JlbWVudFZhbHVlKG11bHRpcGxpZXIsIGluZGV4KTtcblx0XHRcdHRoaXMudGh1bWJzLnRvQXJyYXkoKVtpbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgaXNUZW1wbGF0ZSh2YWx1ZSkge1xuXHRcdHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuXHR9XG5cblx0LyoqIEdldCBvcHRpb25hbCBpbnB1dCBmaWVsZHMgKi9cblx0cHJvdGVjdGVkIGdldElucHV0cygpOiBIVE1MSW5wdXRFbGVtZW50W10ge1xuXHRcdHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiaW5wdXQ6bm90KFt0eXBlPXJhbmdlXSlcIik7XG5cdH1cbn1cbiJdfQ==
@@ -253,7 +253,9 @@ CodeSnippet.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
253
253
  </div>
254
254
  <div *ngIf="hasLeft" class="cds--snippet__overflow-indicator--left"></div>
255
255
  <div *ngIf="hasRight" class="cds--snippet__overflow-indicator--right"></div>
256
- <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
256
+ <ng-container *ngIf="!hideCopyButton;">
257
+ <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
258
+ </ng-container>
257
259
  <button
258
260
  *ngIf="isExpandable"
259
261
  class="cds--btn cds--btn--ghost cds--btn--sm cds--snippet-btn--expand"
@@ -355,7 +357,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
355
357
  </div>
356
358
  <div *ngIf="hasLeft" class="cds--snippet__overflow-indicator--left"></div>
357
359
  <div *ngIf="hasRight" class="cds--snippet__overflow-indicator--right"></div>
358
- <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
360
+ <ng-container *ngIf="!hideCopyButton;">
361
+ <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
362
+ </ng-container>
359
363
  <button
360
364
  *ngIf="isExpandable"
361
365
  class="cds--btn cds--btn--ghost cds--btn--sm cds--snippet-btn--expand"
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-code-snippet.mjs","sources":["../../src/code-snippet/code-snippet.component.ts","../../src/code-snippet/code-snippet.module.ts","../../src/code-snippet/carbon-components-angular-code-snippet.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tHostBinding,\n\tViewChild,\n\tAfterViewInit,\n\tOnInit\n} from \"@angular/core\";\n\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { BaseIconButton } from \"carbon-components-angular/button\";\n\nexport enum SnippetType {\n\tsingle = \"single\",\n\tmulti = \"multi\",\n\tinline = \"inline\"\n}\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { CodeSnippetModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n * <cds-code-snippet>Code</cds-code-snippet>\n * ```\n *\n * [See demo](../../?path=/story/components-code-snippet--basic)\n */\n@Component({\n\tselector: \"cds-code-snippet, ibm-code-snippet\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"display === 'inline'; else notInline\">\n\t\t\t<ng-container *ngIf=\"!hideCopyButton; else noBtnInline\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t</ng-container>\n\t\t\t<ng-template #noBtnInline>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"cds--snippet cds--snippet--inline cds--snippet--no-copy\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--snippet--light': theme === 'light'\n\t\t\t\t\t}\">\n\t\t\t\t\t<code #code>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t\t</code>\n\t\t\t\t</span>\n\t\t\t</ng-template>\n\t\t</ng-container>\n\n\t\t<ng-template #notInline>\n\t\t\t<div\n\t\t\t\t#codeContainer\n\t\t\t\tclass=\"cds--snippet-container\"\n\t\t\t\t[attr.aria-label]=\"translations.CODE_SNIPPET_TEXT\"\n\t\t\t\t[attr.tabindex]=\"display === 'single' && !disabled ? '0' : null\"\n\t\t\t\t[attr.role]=\"display==='single' ? 'textarea' : null\"\n\t\t\t\t[ngStyle]=\"styles\"\n\t\t\t\t(scroll)=\"(display === 'single' ? handleScroll() : null)\">\n\t\t\t\t<ng-container *ngIf=\"skeleton\">\n\t\t\t\t\t<span *ngIf=\"display === 'single'; else multiSkeleton\"></span>\n\t\t\t\t\t<ng-template #multiSkeleton>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t</ng-container>\n\t\t\t\t<pre\n\t\t\t\t\t#codeContent\n\t\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t\t(scroll)=\"(display === 'multi' ? handleScroll() : null)\"><code #code><ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container></code></pre>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"hasLeft\" class=\"cds--snippet__overflow-indicator--left\"></div>\n\t\t\t<div *ngIf=\"hasRight\" class=\"cds--snippet__overflow-indicator--right\"></div>\n\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t<button\n\t\t\t\t*ngIf=\"isExpandable\"\n\t\t\t\tclass=\"cds--btn cds--btn--ghost cds--btn--sm cds--snippet-btn--expand\"\n\t\t\t\t(click)=\"toggleSnippetExpansion()\"\n\t\t\t\ttype=\"button\">\n\t\t\t\t<span class=\"cds--snippet-btn--text\">{{expanded ? translations.SHOW_LESS : translations.SHOW_MORE}}</span>\n\t\t\t\t<svg cdsIcon=\"chevron--down\" size=\"16\" class=\"cds--icon-chevron--down\" [attr.aria-label]=\"translations.SHOW_MORE_ICON\"></svg>\n\t\t\t</button>\n\t\t</ng-template>\n\n\t\t<ng-template #buttonTemplate>\n\t\t\t<cds-icon-button\n\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t[description]=\"showFeedback ? feedbackText : copyButtonDescription\"\n\t\t\t\t[align]=\"align\"\n\t\t\t\t[dropShadow]=\"dropShadow\"\n\t\t\t\t[caret]=\"caret\"\n\t\t\t\t[highContrast]=\"highContrast\"\n\t\t\t\t[isOpen]=\"isOpen\"\n\t\t\t\t[enterDelayMs]=\"enterDelayMs\"\n\t\t\t\t[leaveDelayMs]=\"leaveDelayMs\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tkind=\"primary\"\n\t\t\t\tsize=\"md\"\n\t\t\t\t(click)=\"onCopyButtonClicked($event)\"\n\t\t\t\t[buttonNgClass]=\"{\n\t\t\t\t\t'cds--snippet--light': theme === 'light',\n\t\t\t\t\t'cds--snippet--inline': display === 'inline',\n\t\t\t\t\t'cds--btn--icon-only': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn--animating': animating,\n\t\t\t\t\t'cds--copy-btn--fade-in': showFeedback,\n\t\t\t\t\t'cds--copy-btn--fade-out': !showFeedback && animating,\n\t\t\t\t\t'cds--snippet cds--copy': true\n\t\t\t\t}\"\n\t\t\t\t[buttonAttributes]=\"{\n\t\t\t\t\t'aria-label': translations.COPY_CODE,\n\t\t\t\t\t'aria-live': 'polite',\n\t\t\t\t\t'tabindex': '0'\n\t\t\t\t}\">\n\t\t\t\t<ng-container *ngIf=\"display === 'inline'\">\n\t\t\t\t\t<code #code>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t\t</code>\n\t\t\t\t</ng-container>\n\t\t\t\t<ng-container *ngIf=\"display !== 'inline'\">\n\t\t\t\t\t<svg cdsIcon=\"copy\" size=\"16\" class=\"cds--snippet__icon\"></svg>\n\t\t\t\t</ng-container>\n\t\t\t</cds-icon-button>\n\t\t</ng-template>\n\n\t\t<ng-template #codeTemplate>\n\t\t\t<ng-content></ng-content>\n\t\t</ng-template>\n\t`\n})\nexport class CodeSnippet extends BaseIconButton implements OnInit, AfterViewInit {\n\t@HostBinding(\"class.cds--snippet\") get snippetClass() {\n\t\treturn this.display !== SnippetType.inline;\n\t}\n\t@HostBinding(\"class.cds--snippet--single\") get snippetSingleClass() {\n\t\treturn this.display === SnippetType.single;\n\t}\n\t@HostBinding(\"class.cds--snippet--multi\") get snippetMultiClass() {\n\t\treturn this.display === SnippetType.multi;\n\t}\n\t@HostBinding(\"class.cds--snippet--disabled\") get snippetDisabledClass() {\n\t\treturn this.display !== \"inline\" && this.disabled;\n\t}\n\t@HostBinding(\"class.cds--snippet--light\") get snippetInlineLightClass() {\n\t\treturn this.theme === \"light\";\n\t}\n\n\treadonly rowHeightInPixel: number = 16;\n\n\t/**\n\t * It can be `\"single\"`, `\"multi\"` or `\"inline\"`\n\t */\n\t@Input() display: SnippetType = SnippetType.single;\n\t@Input() translations = this.i18n.get().CODE_SNIPPET;\n\t/**\n\t * copy button description to show on hover\n\t */\n\t@Input() copyButtonDescription: string;\n\t/**\n\t * Set to `true` to hide copy button\n\t */\n\t@Input() hideCopyButton = false;\n\t/**\n\t * Set to `true` to disable the code snippet\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Specify the max number of rows to show when collapsed\n\t * Default is `15`\n\t */\n\t@Input() maxCollapsedNumberOfRows = 15;\n\t/**\n\t * Specify the min number of rows to show when collapsed\n\t * Default is `3`\n\t */\n\t@Input() minCollapsedNumberOfRows = 3;\n\t/**\n\t * Specify the max number of rows to show when expanded\n\t * Default is `0`, hence all content will be visible when expanded\n\t */\n\t@Input() maxExpandedNumberOfRows = 0;\n\t/**\n\t * Specify the min number of rows to show when expanded\n\t * Default is `16`, hence height of expanded row will be 16 * rowHeightInPixel (16) = 256px\n\t */\n\t@Input() minExpandedNumberOfRows = 16;\n\t/**\n\t * Set to `true` to wrap the text\n\t */\n\t@HostBinding(\"class.cds--snippet--wraptext\") @Input() wrapText = false;\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t * Set to `\"light\"` to apply the light style\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\t/**\n\t * Text displayed in the tooltip when user clicks button to copy code.\n\t */\n\t@Input() feedbackText = this.translations.COPIED;\n\t/**\n\t * Time in miliseconds to keep the feedback tooltip displayed.\n\t * Defaults to 2 seconds\n\t */\n\t@Input() feedbackTimeout = 2000;\n\n\t@HostBinding(\"class.cds--snippet--expand\") @Input() expanded = false;\n\t@HostBinding(\"class.cds--skeleton\") @Input() skeleton = false;\n\tstyles: any = {};\n\n\t@ViewChild(\"code\") code;\n\t@ViewChild(\"codeContent\") codeContent;\n\t@ViewChild(\"codeContainer\") codeContainer;\n\n\tshowFeedback = false;\n\tanimating = false;\n\thasExpandButton = null;\n\tisExpandable = false;\n\thasRightOverflow = false;\n\n\thasRight = false;\n\thasLeft = false;\n\n\t/**\n\t * Creates an instance of CodeSnippet.\n\t */\n\tconstructor(protected i18n: I18n, protected eventService: EventService) {\n\t\tsuper();\n\t\tthis.dropShadow = false;\n\t}\n\n\thandleScroll() {\n\t\tif (this.skeleton) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet ref;\n\t\tswitch (this.display) {\n\t\t\tcase \"multi\":\n\t\t\t\tref = this.codeContent.nativeElement;\n\t\t\t\tbreak;\n\t\t\tcase \"single\":\n\t\t\t\tref = this.codeContainer.nativeElement;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t\tif (ref) {\n\t\t\tconst {\n\t\t\t\tscrollWidth,\n\t\t\t\tclientWidth,\n\t\t\t\tscrollLeft\n\t\t\t} = ref;\n\t\t\tconst horizontalOverflow = scrollWidth > clientWidth;\n\t\t\tthis.hasLeft = horizontalOverflow && !!scrollLeft;\n\t\t\tthis.hasRight = horizontalOverflow && scrollLeft + clientWidth !== scrollWidth;\n\t\t}\n\t}\n\n\ttoggleSnippetExpansion() {\n\t\tthis.expanded = !this.expanded;\n\t\tthis.calculateContainerHeight();\n\t}\n\n\tonCopyButtonClicked() {\n\t\tif (!this.disabled) {\n\t\t\twindow.navigator.clipboard\n\t\t\t\t.writeText(this.code).then(() => {\n\t\t\t\t\tthis.showFeedback = true;\n\t\t\t\t\tthis.animating = true;\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.showFeedback = false;\n\t\t\t\t\t\tthis.animating = false;\n\t\t\t\t\t}, this.feedbackTimeout);\n\t\t\t\t});\n\t\t}\n\t}\n\n\tngOnInit() {\n\t\tthis.calculateContainerHeight();\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.canExpand();\n\t\tthis.handleScroll();\n\t\tif (window) {\n\t\t\tthis.eventService.on(window as any, \"resize\", () => {\n\t\t\t\tthis.canExpand();\n\t\t\t\tthis.handleScroll();\n\t\t\t});\n\t\t}\n\t}\n\n\tcalculateContainerHeight() {\n\t\tif (this.display === \"multi\" && !this.skeleton) {\n\t\t\tthis.styles = {};\n\t\t\tif (this.expanded) {\n\t\t\t\tif (this.maxExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.maxCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected canExpand() {\n\t\tif (this.display === \"multi\" && !this.skeleton) {\n\t\t\tconst height = this.codeContent.nativeElement.getBoundingClientRect().height;\n\t\t\tif (\n\t\t\t\tthis.maxCollapsedNumberOfRows > 0 &&\n\t\t\t\t(this.maxExpandedNumberOfRows <= 0 ||\n\t\t\t\t\tthis.maxExpandedNumberOfRows > this.maxCollapsedNumberOfRows) &&\n\t\t\t\theight > this.maxCollapsedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = true;\n\t\t\t} else {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.expanded &&\n\t\t\t\tthis.minExpandedNumberOfRows > 0 &&\n\t\t\t\theight <= this.minExpandedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\t\t}\n\t}\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { IconModule } from \"carbon-components-angular/icon\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\n\n// imports\nimport { CodeSnippet } from \"./code-snippet.component\";\n\n@NgModule({\n\tdeclarations: [\n\t\tCodeSnippet\n\t],\n\texports: [\n\t\tCodeSnippet\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tI18nModule,\n\t\tUtilsModule,\n\t\tIconModule\n\t]\n})\nexport class CodeSnippetModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carbon-components-angular-code-snippet.mjs","sources":["../../src/code-snippet/code-snippet.component.ts","../../src/code-snippet/code-snippet.module.ts","../../src/code-snippet/carbon-components-angular-code-snippet.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tHostBinding,\n\tViewChild,\n\tAfterViewInit,\n\tOnInit\n} from \"@angular/core\";\n\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { EventService } from \"carbon-components-angular/utils\";\nimport { BaseIconButton } from \"carbon-components-angular/button\";\n\nexport enum SnippetType {\n\tsingle = \"single\",\n\tmulti = \"multi\",\n\tinline = \"inline\"\n}\n\n/**\n * Get started with importing the module:\n *\n * ```typescript\n * import { CodeSnippetModule } from 'carbon-components-angular';\n * ```\n *\n * ```html\n * <cds-code-snippet>Code</cds-code-snippet>\n * ```\n *\n * [See demo](../../?path=/story/components-code-snippet--basic)\n */\n@Component({\n\tselector: \"cds-code-snippet, ibm-code-snippet\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"display === 'inline'; else notInline\">\n\t\t\t<ng-container *ngIf=\"!hideCopyButton; else noBtnInline\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t</ng-container>\n\t\t\t<ng-template #noBtnInline>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"cds--snippet cds--snippet--inline cds--snippet--no-copy\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'cds--snippet--light': theme === 'light'\n\t\t\t\t\t}\">\n\t\t\t\t\t<code #code>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t\t</code>\n\t\t\t\t</span>\n\t\t\t</ng-template>\n\t\t</ng-container>\n\n\t\t<ng-template #notInline>\n\t\t\t<div\n\t\t\t\t#codeContainer\n\t\t\t\tclass=\"cds--snippet-container\"\n\t\t\t\t[attr.aria-label]=\"translations.CODE_SNIPPET_TEXT\"\n\t\t\t\t[attr.tabindex]=\"display === 'single' && !disabled ? '0' : null\"\n\t\t\t\t[attr.role]=\"display==='single' ? 'textarea' : null\"\n\t\t\t\t[ngStyle]=\"styles\"\n\t\t\t\t(scroll)=\"(display === 'single' ? handleScroll() : null)\">\n\t\t\t\t<ng-container *ngIf=\"skeleton\">\n\t\t\t\t\t<span *ngIf=\"display === 'single'; else multiSkeleton\"></span>\n\t\t\t\t\t<ng-template #multiSkeleton>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t</ng-container>\n\t\t\t\t<pre\n\t\t\t\t\t#codeContent\n\t\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t\t(scroll)=\"(display === 'multi' ? handleScroll() : null)\"><code #code><ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container></code></pre>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"hasLeft\" class=\"cds--snippet__overflow-indicator--left\"></div>\n\t\t\t<div *ngIf=\"hasRight\" class=\"cds--snippet__overflow-indicator--right\"></div>\n\t\t\t<ng-container *ngIf=\"!hideCopyButton;\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n\t\t\t</ng-container>\n\t\t\t<button\n\t\t\t\t*ngIf=\"isExpandable\"\n\t\t\t\tclass=\"cds--btn cds--btn--ghost cds--btn--sm cds--snippet-btn--expand\"\n\t\t\t\t(click)=\"toggleSnippetExpansion()\"\n\t\t\t\ttype=\"button\">\n\t\t\t\t<span class=\"cds--snippet-btn--text\">{{expanded ? translations.SHOW_LESS : translations.SHOW_MORE}}</span>\n\t\t\t\t<svg cdsIcon=\"chevron--down\" size=\"16\" class=\"cds--icon-chevron--down\" [attr.aria-label]=\"translations.SHOW_MORE_ICON\"></svg>\n\t\t\t</button>\n\t\t</ng-template>\n\n\t\t<ng-template #buttonTemplate>\n\t\t\t<cds-icon-button\n\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t[description]=\"showFeedback ? feedbackText : copyButtonDescription\"\n\t\t\t\t[align]=\"align\"\n\t\t\t\t[dropShadow]=\"dropShadow\"\n\t\t\t\t[caret]=\"caret\"\n\t\t\t\t[highContrast]=\"highContrast\"\n\t\t\t\t[isOpen]=\"isOpen\"\n\t\t\t\t[enterDelayMs]=\"enterDelayMs\"\n\t\t\t\t[leaveDelayMs]=\"leaveDelayMs\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tkind=\"primary\"\n\t\t\t\tsize=\"md\"\n\t\t\t\t(click)=\"onCopyButtonClicked($event)\"\n\t\t\t\t[buttonNgClass]=\"{\n\t\t\t\t\t'cds--snippet--light': theme === 'light',\n\t\t\t\t\t'cds--snippet--inline': display === 'inline',\n\t\t\t\t\t'cds--btn--icon-only': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn': display !== 'inline',\n\t\t\t\t\t'cds--copy-btn--animating': animating,\n\t\t\t\t\t'cds--copy-btn--fade-in': showFeedback,\n\t\t\t\t\t'cds--copy-btn--fade-out': !showFeedback && animating,\n\t\t\t\t\t'cds--snippet cds--copy': true\n\t\t\t\t}\"\n\t\t\t\t[buttonAttributes]=\"{\n\t\t\t\t\t'aria-label': translations.COPY_CODE,\n\t\t\t\t\t'aria-live': 'polite',\n\t\t\t\t\t'tabindex': '0'\n\t\t\t\t}\">\n\t\t\t\t<ng-container *ngIf=\"display === 'inline'\">\n\t\t\t\t\t<code #code>\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"codeTemplate\"></ng-container>\n\t\t\t\t\t</code>\n\t\t\t\t</ng-container>\n\t\t\t\t<ng-container *ngIf=\"display !== 'inline'\">\n\t\t\t\t\t<svg cdsIcon=\"copy\" size=\"16\" class=\"cds--snippet__icon\"></svg>\n\t\t\t\t</ng-container>\n\t\t\t</cds-icon-button>\n\t\t</ng-template>\n\n\t\t<ng-template #codeTemplate>\n\t\t\t<ng-content></ng-content>\n\t\t</ng-template>\n\t`\n})\nexport class CodeSnippet extends BaseIconButton implements OnInit, AfterViewInit {\n\t@HostBinding(\"class.cds--snippet\") get snippetClass() {\n\t\treturn this.display !== SnippetType.inline;\n\t}\n\t@HostBinding(\"class.cds--snippet--single\") get snippetSingleClass() {\n\t\treturn this.display === SnippetType.single;\n\t}\n\t@HostBinding(\"class.cds--snippet--multi\") get snippetMultiClass() {\n\t\treturn this.display === SnippetType.multi;\n\t}\n\t@HostBinding(\"class.cds--snippet--disabled\") get snippetDisabledClass() {\n\t\treturn this.display !== \"inline\" && this.disabled;\n\t}\n\t@HostBinding(\"class.cds--snippet--light\") get snippetInlineLightClass() {\n\t\treturn this.theme === \"light\";\n\t}\n\n\treadonly rowHeightInPixel: number = 16;\n\n\t/**\n\t * It can be `\"single\"`, `\"multi\"` or `\"inline\"`\n\t */\n\t@Input() display: SnippetType = SnippetType.single;\n\t@Input() translations = this.i18n.get().CODE_SNIPPET;\n\t/**\n\t * copy button description to show on hover\n\t */\n\t@Input() copyButtonDescription: string;\n\t/**\n\t * Set to `true` to hide copy button\n\t */\n\t@Input() hideCopyButton = false;\n\t/**\n\t * Set to `true` to disable the code snippet\n\t */\n\t@Input() disabled = false;\n\t/**\n\t * Specify the max number of rows to show when collapsed\n\t * Default is `15`\n\t */\n\t@Input() maxCollapsedNumberOfRows = 15;\n\t/**\n\t * Specify the min number of rows to show when collapsed\n\t * Default is `3`\n\t */\n\t@Input() minCollapsedNumberOfRows = 3;\n\t/**\n\t * Specify the max number of rows to show when expanded\n\t * Default is `0`, hence all content will be visible when expanded\n\t */\n\t@Input() maxExpandedNumberOfRows = 0;\n\t/**\n\t * Specify the min number of rows to show when expanded\n\t * Default is `16`, hence height of expanded row will be 16 * rowHeightInPixel (16) = 256px\n\t */\n\t@Input() minExpandedNumberOfRows = 16;\n\t/**\n\t * Set to `true` to wrap the text\n\t */\n\t@HostBinding(\"class.cds--snippet--wraptext\") @Input() wrapText = false;\n\t/**\n\t * @deprecated since v5 - Use `cdsLayer` directive instead\n\t * Set to `\"light\"` to apply the light style\n\t */\n\t@Input() theme: \"light\" | \"dark\" = \"dark\";\n\t/**\n\t * Text displayed in the tooltip when user clicks button to copy code.\n\t */\n\t@Input() feedbackText = this.translations.COPIED;\n\t/**\n\t * Time in miliseconds to keep the feedback tooltip displayed.\n\t * Defaults to 2 seconds\n\t */\n\t@Input() feedbackTimeout = 2000;\n\n\t@HostBinding(\"class.cds--snippet--expand\") @Input() expanded = false;\n\t@HostBinding(\"class.cds--skeleton\") @Input() skeleton = false;\n\tstyles: any = {};\n\n\t@ViewChild(\"code\") code;\n\t@ViewChild(\"codeContent\") codeContent;\n\t@ViewChild(\"codeContainer\") codeContainer;\n\n\tshowFeedback = false;\n\tanimating = false;\n\thasExpandButton = null;\n\tisExpandable = false;\n\thasRightOverflow = false;\n\n\thasRight = false;\n\thasLeft = false;\n\n\t/**\n\t * Creates an instance of CodeSnippet.\n\t */\n\tconstructor(protected i18n: I18n, protected eventService: EventService) {\n\t\tsuper();\n\t\tthis.dropShadow = false;\n\t}\n\n\thandleScroll() {\n\t\tif (this.skeleton) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet ref;\n\t\tswitch (this.display) {\n\t\t\tcase \"multi\":\n\t\t\t\tref = this.codeContent.nativeElement;\n\t\t\t\tbreak;\n\t\t\tcase \"single\":\n\t\t\t\tref = this.codeContainer.nativeElement;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t\tif (ref) {\n\t\t\tconst {\n\t\t\t\tscrollWidth,\n\t\t\t\tclientWidth,\n\t\t\t\tscrollLeft\n\t\t\t} = ref;\n\t\t\tconst horizontalOverflow = scrollWidth > clientWidth;\n\t\t\tthis.hasLeft = horizontalOverflow && !!scrollLeft;\n\t\t\tthis.hasRight = horizontalOverflow && scrollLeft + clientWidth !== scrollWidth;\n\t\t}\n\t}\n\n\ttoggleSnippetExpansion() {\n\t\tthis.expanded = !this.expanded;\n\t\tthis.calculateContainerHeight();\n\t}\n\n\tonCopyButtonClicked() {\n\t\tif (!this.disabled) {\n\t\t\twindow.navigator.clipboard\n\t\t\t\t.writeText(this.code).then(() => {\n\t\t\t\t\tthis.showFeedback = true;\n\t\t\t\t\tthis.animating = true;\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.showFeedback = false;\n\t\t\t\t\t\tthis.animating = false;\n\t\t\t\t\t}, this.feedbackTimeout);\n\t\t\t\t});\n\t\t}\n\t}\n\n\tngOnInit() {\n\t\tthis.calculateContainerHeight();\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.canExpand();\n\t\tthis.handleScroll();\n\t\tif (window) {\n\t\t\tthis.eventService.on(window as any, \"resize\", () => {\n\t\t\t\tthis.canExpand();\n\t\t\t\tthis.handleScroll();\n\t\t\t});\n\t\t}\n\t}\n\n\tcalculateContainerHeight() {\n\t\tif (this.display === \"multi\" && !this.skeleton) {\n\t\t\tthis.styles = {};\n\t\t\tif (this.expanded) {\n\t\t\t\tif (this.maxExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minExpandedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minExpandedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.maxCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"max-height\"] = `${this.maxCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t\tif (this.minCollapsedNumberOfRows > 0) {\n\t\t\t\t\tthis.styles[\"min-height\"] = `${this.minCollapsedNumberOfRows * this.rowHeightInPixel}px`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected canExpand() {\n\t\tif (this.display === \"multi\" && !this.skeleton) {\n\t\t\tconst height = this.codeContent.nativeElement.getBoundingClientRect().height;\n\t\t\tif (\n\t\t\t\tthis.maxCollapsedNumberOfRows > 0 &&\n\t\t\t\t(this.maxExpandedNumberOfRows <= 0 ||\n\t\t\t\t\tthis.maxExpandedNumberOfRows > this.maxCollapsedNumberOfRows) &&\n\t\t\t\theight > this.maxCollapsedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = true;\n\t\t\t} else {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.expanded &&\n\t\t\t\tthis.minExpandedNumberOfRows > 0 &&\n\t\t\t\theight <= this.minExpandedNumberOfRows * this.rowHeightInPixel\n\t\t\t) {\n\t\t\t\tthis.isExpandable = false;\n\t\t\t}\n\t\t}\n\t}\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { IconModule } from \"carbon-components-angular/icon\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { UtilsModule } from \"carbon-components-angular/utils\";\n\n// imports\nimport { CodeSnippet } from \"./code-snippet.component\";\n\n@NgModule({\n\tdeclarations: [\n\t\tCodeSnippet\n\t],\n\texports: [\n\t\tCodeSnippet\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tI18nModule,\n\t\tUtilsModule,\n\t\tIconModule\n\t]\n})\nexport class CodeSnippetModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import { CommonModule } from '@angular/common';
12
12
  * Get started with importing the module:
13
13
  *
14
14
  * ```typescript
15
- * import { SkeletonModule } from 'carbon-components-angular';
15
+ * import { SliderModule } from 'carbon-components-angular';
16
16
  * ```
17
17
  *
18
18
  * The simplest possible slider usage looks something like: