@touchtech/baselayer-ui 2.10.0 → 2.10.1

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 (81) hide show
  1. package/README.md +79 -79
  2. package/dist/components/Button/Button.d.ts +23 -23
  3. package/dist/components/Button/__tests__/Button.test.d.ts +1 -1
  4. package/dist/components/Button/index.d.ts +1 -1
  5. package/dist/components/ButtonBadge/ButtonBadge.d.ts +7 -7
  6. package/dist/components/ButtonBadge/__tests__/ButtonBadge.test.d.ts +1 -1
  7. package/dist/components/ButtonBadge/index.d.ts +1 -1
  8. package/dist/components/ButtonLink/ButtonLink.d.ts +22 -22
  9. package/dist/components/ButtonLink/__tests__/ButtonLink.test.d.ts +1 -1
  10. package/dist/components/ButtonLink/index.d.ts +1 -1
  11. package/dist/components/Checkbox/Checkbox.d.ts +15 -15
  12. package/dist/components/Checkbox/__tests__/Checkbox.test.d.ts +1 -1
  13. package/dist/components/Checkbox/index.d.ts +1 -1
  14. package/dist/components/ColorPicker/ColorPicker.d.ts +11 -11
  15. package/dist/components/ColorPicker/__tests__/ColorPicker.test.d.ts +1 -1
  16. package/dist/components/ColorPicker/index.d.ts +1 -1
  17. package/dist/components/ColorSwatch/ColorSwatch.d.ts +10 -10
  18. package/dist/components/ColorSwatch/__tests__/ColorSwatch.test.d.ts +1 -1
  19. package/dist/components/ColorSwatch/index.d.ts +1 -1
  20. package/dist/components/ConfirmationModal/ConfirmationModal.d.ts +16 -16
  21. package/dist/components/ConfirmationModal/__tests__/ConfirmationModal.test.d.ts +1 -1
  22. package/dist/components/ConfirmationModal/index.d.ts +1 -1
  23. package/dist/components/FloatingPanel/FloatingPanel.d.ts +14 -14
  24. package/dist/components/FloatingPanel/__tests__/FloatingPanel.test.d.ts +1 -1
  25. package/dist/components/FloatingPanel/index.d.ts +1 -1
  26. package/dist/components/Icon/Icon.d.ts +10 -10
  27. package/dist/components/Icon/__tests__/Icon.test.d.ts +1 -1
  28. package/dist/components/Icon/index.d.ts +1 -1
  29. package/dist/components/IconButton/IconButton.d.ts +21 -20
  30. package/dist/components/IconButton/__tests__/IconButton.test.d.ts +1 -1
  31. package/dist/components/IconButton/index.d.ts +1 -1
  32. package/dist/components/IconButtonLink/IconButtonLink.d.ts +20 -20
  33. package/dist/components/IconButtonLink/__tests__/IconButtonLink.test.d.ts +1 -1
  34. package/dist/components/IconButtonLink/index.d.ts +1 -1
  35. package/dist/components/Image/Image.d.ts +14 -14
  36. package/dist/components/Image/__tests__/Image.test.d.ts +1 -1
  37. package/dist/components/Image/index.d.ts +1 -1
  38. package/dist/components/Label/Label.d.ts +8 -8
  39. package/dist/components/Label/__tests/Label.test.d.ts +1 -1
  40. package/dist/components/Label/index.d.ts +1 -1
  41. package/dist/components/ListView/ListView.d.ts +10 -10
  42. package/dist/components/ListView/ListViewItem.d.ts +14 -14
  43. package/dist/components/ListView/ListViewLinkItem.d.ts +13 -13
  44. package/dist/components/ListView/__tests__/ListView.test.d.ts +1 -1
  45. package/dist/components/ListView/index.d.ts +3 -3
  46. package/dist/components/Menu/Menu.d.ts +15 -15
  47. package/dist/components/Menu/MenuContainer.d.ts +10 -10
  48. package/dist/components/Menu/MenuItem.d.ts +10 -10
  49. package/dist/components/Menu/MenuLinkItem.d.ts +9 -9
  50. package/dist/components/Menu/__tests__/Menu.test.d.ts +1 -1
  51. package/dist/components/Menu/__tests__/MenuLinkItem.test.d.ts +1 -1
  52. package/dist/components/Menu/index.d.ts +4 -4
  53. package/dist/components/Modal/Modal.d.ts +12 -12
  54. package/dist/components/Modal/__tests__/Modal.test.d.ts +1 -1
  55. package/dist/components/Modal/index.d.ts +1 -1
  56. package/dist/components/Overlay/Overlay.d.ts +10 -10
  57. package/dist/components/Overlay/__tests__/Overlay.test.d.ts +1 -1
  58. package/dist/components/Overlay/index.d.ts +1 -1
  59. package/dist/components/TextInput/TextInput.d.ts +15 -15
  60. package/dist/components/TextInput/__tests__/TextInput.test.d.ts +1 -1
  61. package/dist/components/TextInput/index.d.ts +1 -1
  62. package/dist/components/Toast/Toast.d.ts +8 -8
  63. package/dist/components/Toast/ToastContainer.d.ts +6 -6
  64. package/dist/components/Toast/__tests__/Toast.test.d.ts +1 -1
  65. package/dist/components/Toast/__tests__/ToastContainer.test.d.ts +1 -1
  66. package/dist/components/Toast/index.d.ts +2 -2
  67. package/dist/components/Video/Video.d.ts +22 -22
  68. package/dist/components/Video/__tests__/Video.test.d.ts +1 -1
  69. package/dist/components/Video/index.d.ts +1 -1
  70. package/dist/hooks/__tests__/useToggle.test.d.ts +1 -1
  71. package/dist/hooks/index.d.ts +2 -2
  72. package/dist/hooks/useOutsideClick.d.ts +4 -4
  73. package/dist/hooks/useToggle.d.ts +1 -1
  74. package/dist/index.d.ts +21 -21
  75. package/dist/index.js +3 -3
  76. package/dist/styles.css +1255 -1245
  77. package/dist/types/index.d.ts +7 -8
  78. package/package.json +92 -94
  79. package/dist/640e1c62fd0dfa7c00a1c8fe0e35c6d1.svg +0 -3
  80. package/dist/bundle.js +0 -12
  81. package/dist/index.js.LICENSE.txt +0 -9
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- !function(e,t){for(var n in t)e[n]=t[n]}(exports,function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=10)}([function(e,t){e.exports=require("react")},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return a}));var r=Array.isArray;function a(e){var t="";if("string"==typeof e||"number"==typeof e)return e||"";if(r(e))for(var n,o=0;o<e.length;o++)""!==(n=a(e[o]))&&(t+=(t&&" ")+n);else for(var o in e)e.hasOwnProperty(o)&&e[o]&&(t+=(t&&" ")+o);return t}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonBadge=void 0;var a=n(11);Object.defineProperty(t,"ButtonBadge",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Label=void 0;var a=n(19);Object.defineProperty(t,"Label",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Icon=void 0;var a=n(35);Object.defineProperty(t,"Icon",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Button=void 0;var a=n(13);Object.defineProperty(t,"Button",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonLink=void 0;var a=n(15);Object.defineProperty(t,"ButtonLink",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ColorSwatch=void 0;var a=n(24);Object.defineProperty(t,"ColorSwatch",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Modal=void 0;var a=n(29);Object.defineProperty(t,"Modal",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";n.r(t),t.default={listViewItem:"_1fj2anieQ0JKxCAZkSaapk"}},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(2),t),a(n(5),t),a(n(6),t),a(n(17),t),a(n(22),t),a(n(7),t),a(n(27),t),a(n(32),t),a(n(4),t),a(n(37),t),a(n(40),t),a(n(43),t),a(n(46),t),a(n(51),t),a(n(8),t),a(n(60),t),a(n(3),t),a(n(63),t),a(n(66),t),a(n(71),t),a(n(74),t)},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(12));t.default=function(e){var t=e.children,n=e.className;return a.default.createElement("div",{className:o.default([i.default.buttonBadge,n])},t)}},function(e,t,n){"use strict";n.r(t),t.default={buttonBadge:"_1UlYFEGc3dMgtoNil6SOx5"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(14));t.default=function(e){var t,n=e.children,r=e.className,u=e.onClick,l=e.containerRef,d=e.disabled,f=void 0!==d&&d,c=e.inverted,s=void 0!==c&&c,v=e.rounded,_=void 0!==v&&v,p=e.noShadow,m=void 0!==p&&p,h=e.noPadding,y=void 0!==h&&h,b=e.noBorder,g=void 0!==b&&b,O=e.transparent,P=void 0!==O&&O,j=e.stretchHorizontally,M=void 0!==j&&j,w=e.stretchVertically,E=void 0!==w&&w,k=e.offsetSides,C=void 0===k?[]:k,S=e.align,x=void 0===S?"center":S,N=e.size,D=void 0===N?"medium":N,I=e.type;return a.default.createElement("button",{ref:l,className:o.default([i.default.container,i.default[D],i.default[x],(t={},t[i.default.inverted]=s,t[i.default.rounded]=_,t[i.default.noShadow]=m,t[i.default.noPadding]=y,t[i.default.noBorder]=g,t[i.default.transparent]=P,t[i.default.stretchHorizontally]=M,t[i.default.stretchVertically]=E,t[i.default.leftOffset]=_&&C.includes("left"),t[i.default.rightOffset]=_&&C.includes("right"),t),r]),disabled:f,onClick:u,type:I,role:"button"},"string"!=typeof n&&Array.isArray(n)&&n.length?a.default.createElement("div",{className:i.default.content},n):n)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_12w5WOF3Ksa2JB5-YOXyD7",left:"_2TFV72DrQx5JGShNcut4E-",small:"uTBrcjpHp96RCwF5UDzf0",large:"_14SSfs5SVWK7NxuZBqMgzB",xlarge:"_1SQu2QWw2a7ew47WW12ZSg",inverted:"_2hZhhi8BgE_ekQVn9eX9DX",rounded:"VBDOScYcQnU2eytkA_Pc6",rightOffset:"_2GTY3XmaOu923M9sERs6ak",leftOffset:"_15Q0GGkgYJ_aLm01nGE5Yh",noShadow:"RewmDqjp6nUeEYHEKzTJD",noBorder:"nZqIUPT8cZ87BW4r8kxU",transparent:"_669lR4y2AH97A1ly5MYWO",stretchHorizontally:"_3icutXHwzIiowt7bVa3Yib",stretchVertically:"_2kCkxPkplP1xqjfkepoyNp",noPadding:"_3kNbCgcI-R_FFQ-3O6T0la",content:"_2bF1AScExskuOpuzd-cD_6"}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=o(n(16));t.default=function(e){var t,n=e.as,o=e.children,d=e.className,f=e.size,c=e.containerRef,s=e.inverted,v=void 0!==s&&s,_=e.rounded,p=void 0!==_&&_,m=e.transparent,h=void 0!==m&&m,y=e.noShadow,b=void 0!==y&&y,g=e.noPadding,O=void 0!==g&&g,P=e.noBorder,j=void 0!==P&&P,M=e.stretchHorizontally,w=void 0!==M&&M,E=e.stretchVertically,k=void 0!==E&&E,C=e.offsetSides,S=void 0===C?[]:C,x=e.align,N=void 0===x?"center":x,D=a(e,["as","children","className","size","containerRef","inverted","rounded","transparent","noShadow","noPadding","noBorder","stretchHorizontally","stretchVertically","offsetSides","align"]);return void 0===n&&(n="a"),i.default.createElement(n,r({ref:c,"data-testid":"button-link",className:u.default([l.default.container,l.default[f],l.default[N],(t={},t[l.default.inverted]=v,t[l.default.rounded]=p,t[l.default.noShadow]=b,t[l.default.noPadding]=O,t[l.default.noBorder]=j,t[l.default.transparent]=h,t[l.default.stretchHorizontally]=w,t[l.default.stretchVertically]=k,t[l.default.leftOffset]=p&&S.includes("left"),t[l.default.rightOffset]=p&&S.includes("right"),t),d])},D),"string"!=typeof o&&Array.isArray(o)&&o.length?i.default.createElement("div",{className:l.default.content},o):o)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_2Qu9RaG55pWyJaT__3_oFA",left:"_3nx3gNPzj6LT_1hwnQHxOJ",small:"_2Lv_6xx2Gl335KT9Iooj3g",medium:"_3Hx8phaz3zLqNseApNIWZH",large:"_2-OEYFoIvls4N2CRuY-eJr",xlarge:"_6xFYAPAPwAWlhm0gdtoZR",inverted:"_2pEGiK3KuPnEvwiOCDgFDa",rounded:"_1zyVKsmozPRtLHDt_j614N",rightOffset:"_1rYvtqnZyI4RrulC7KGcou",leftOffset:"_3Tr7eO4Es1Both2K_siTAN",noShadow:"_2wZ3GII3oNd8IX7aga-aMu",transparent:"_1TKgpSYl_A0ISkBcT1jly7",stretchHorizontally:"_3p2TY4nodViu9jx-LzGCNe",stretchVertically:"_3gEwkRprnS_IREu3KtNzMD",noPadding:"_2JpKJrumATcTTRT7xiff9i",noBorder:"_1P3P274wou6lEA87g6rFV2",content:"sNDrq3cX6I6Q-Ouusz7Ti"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Checkbox=void 0;var a=n(18);Object.defineProperty(t,"Checkbox",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=n(3),f=i(n(21));t.default=function(e){var t=e.label,n=e.onChange,r=e.placeholder,a=e.checked,o=e.disabled,i=e.name,c=e.indeterminate,s=e.size,v=void 0===s?"small":s,_=e.autoFocus,p=void 0!==_&&_,m=u.useCallback((function(e){return n(e.target.checked)}),[n]);return u.default.createElement(d.Label,{value:t},u.default.createElement("input",{"data-testid":"checkbox",ref:function(e){e&&(e.indeterminate=c)},checked:a,disabled:o,className:l.default([f.default.input,f.default[v]]),onChange:m,placeholder:r,name:i,type:"checkbox",autoFocus:p}))}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(20));t.default=function(e){var t=e.children,n=e.value,r=e.containerRef;return a.default.createElement("label",{ref:r,className:o.default.container},n,t)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_15Dbs_X5IT9tkmAsMXPNVJ"}},function(e,t,n){"use strict";n.r(t),t.default={input:"_1p2hmjmM1qNZTZIiFHFIxu",small:"_1Ji__9U-D5UdW2NJWWUPrC",medium:"_3KJS2FRS2td90Qr6r33L28",large:"_1j7odCEEX2DkggpIZuF4MI"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ColorPicker=void 0;var a=n(23);Object.defineProperty(t,"ColorPicker",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(7),u=r(n(26));t.default=function(e){var t=e.colors,n=e.containerRef,r=e.onSelect,l=e.selectedColor,d=e.direction,f=void 0===d?"vertical":d;return a.default.createElement("div",{ref:n,className:o.default([u.default.colorPicker,u.default[f]])},t.map((function(e){return a.default.createElement(i.ColorSwatch,{key:e.key,color:e,isSelected:e===l,onClick:function(){return r(e)}})})))}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(25));t.default=function(e){var t,n=e.color,r=e.containerRef,u=e.onClick,l=e.isSelected,d=void 0!==l&&l;return a.default.createElement("button",{ref:r,className:o.default([i.default.colorSwatch,(t={},t[i.default.selected]=d,t)]),"data-testid":"color-swatch",onClick:u,style:{backgroundColor:n.hexCode}},a.default.createElement("span",{className:i.default.srOnly},"Select "+n.label+" color"))}},function(e,t,n){"use strict";n.r(t),t.default={colorSwatch:"dv7iucTQq-ZhURUup-PuV",selected:"_1LbAgyiiE_1ujW90d-6iuu",srOnly:"_1etkuslhZVEPNsk1QghTEo"}},function(e,t,n){"use strict";n.r(t),t.default={colorPicker:"_2F1On-SA3mMkhZPFrDjWIc",horizontal:"_1WFYyMkkYLL73n__rPUUbv",vertical:"_1lIoa2bj_tbkQie0IpE2Ln"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConfirmationModal=void 0;var a=n(28);Object.defineProperty(t,"ConfirmationModal",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(8),u=r(n(31));function l(e){var t,n=e.children,r=e.containerRef,l=e.header,d=e.isOpen,f=e.buttonsLeft,c=void 0===f?[]:f,s=e.buttonsRight,v=void 0===s?[]:s,_=e.onClose,p=void 0===_?function(){}:_,m=e.noPadding,h=void 0!==m&&m;return a.default.createElement(i.Modal,{containerRef:r,isOpen:d,onClose:p},a.default.createElement("div",{className:u.default.container},a.default.createElement("h1",{className:u.default.modalHeader},l),a.default.createElement("div",{className:o.default([u.default.modalContent,(t={},t[u.default.noPadding]=h,t)])},n),a.default.createElement("div",{className:u.default.modalButtonsContainer},a.default.createElement("div",{className:u.default.modalButtons},c),a.default.createElement("div",{className:u.default.modalButtons},v))))}l.displayName="ConfirmationModal",t.default=l},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=n(77),d=i(n(1)),f=i(n(30));t.default=function(e){var t,n=e.children,r=e.containerRef,a=e.isOpen,o=e.button,i=e.transparent,c=void 0!==i&&i,s=e.noShadow,v=void 0!==s&&s,_=e.onClose,p=void 0===_?function(){}:_;l.useHotkeys("Escape",p);var m=u.useCallback((function(){p()}),[p]);return a&&u.default.createElement("div",{ref:r},u.default.createElement("div",{className:f.default.overlay,"data-testid":"modal-overlay",onClick:m}),u.default.createElement("div",{className:d.default([f.default.modal,(t={},t[f.default.transparent]=c,t[f.default.noShadow]=v,t)]),"data-testid":"modal"},n),o&&u.default.createElement("div",{className:f.default.modalButton},o))}},function(e,t,n){"use strict";n.r(t),t.default={overlay:"_20ZKGY4TwZxp0KZ6E7y4WB",modal:"_25LBN31_mI1I1uHDDP4O0I",transparent:"_3Z2Kl1rEHZQMLUsXF1f7lo",noShadow:"_3CfST-tn-tsvcodSxeliQq",modalButton:"_1eO0x3M0pN8-79IuYuT_Cl"}},function(e,t,n){"use strict";n.r(t),t.default={container:"KgC5pwtsHavuVOLubALae",modalHeader:"_1bTNXMR5mZFXs1o0uxkhRP",modalContent:"quP5o4Q9nlUo1fT7sbPVA",noPadding:"_1Ugo_DHST4RbWzIxHPhj7n",modalButtonsContainer:"_2bGL7XjDy6sE3JleU98hjy",modalButtons:"_3XffFeN9VEIpythmVJ2U8C"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FloatingPanel=void 0;var a=n(33);Object.defineProperty(t,"FloatingPanel",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(34));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.layout,l=void 0===u?"column":u,d=e.placement,f=void 0===d?{horizontal:"center",vertical:"bottom",parent:"viewport"}:d,c="center"===f.horizontal?"horizontalCenter":f.horizontal,s="center"===f.vertical?"verticalCenter":f.vertical;return a.default.createElement("div",{ref:r,"data-testid":"floating-panel",className:o.default([i.default.container,i.default[c],i.default[s],i.default[l],(t={},t[i.default.fixed]="container"!==f.parent,t)])},n)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_2r0FkYJ7SK1YjB3HKHMAih",row:"_3R-FF8eMu0CS4eNX3lTdCR",column:"_1oKOeAgZjwxNM3uGfLt6IO",fixed:"_3oQGWgSINbytb4uv92CSvT",plain:"iMf8od-bIqsHAvxofDuzb",transparent:"d2oyx5pysqj898aS8G3E8",top:"_11cPYq1dhQyzVIMZek1_Io",topEdge:"_2_ineCy1MQlYP6qMewd1z5",topOnEdge:"_1rvCsDod5blTOyAl4kDwN0",right:"_1SIYBcRgqS4VPhW9M80Y4z",rightEdge:"QA69f0D8bTCJHrDOr8m1r",rightOnEdge:"_2PiTUl0JYzECnO0851gz3a",bottom:"_305gBmTwAeXZfA_M9tsVNo",bottomEdge:"_1PcDXbLZ2XHPkei_H_r58p",bottomOnEdge:"_2vot4qpr58Wnb6pvHYnjkc",left:"sItgBV4WtDx4vZ3a-P4ix",leftEdge:"_1NJ1FzI_abKi-W6kc2r2c6",leftOnEdge:"_12EvwbaVQNWPZe37So8L_m",horizontalCenter:"_2jiSxEbCTKVzDteGQ1uoEf",verticalCenter:"_2f9D46BB-gezPvw8TZxJvp"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(36));t.default=function(e){var t,n=e.src,r=e.alt,u=e.containerRef,l=e.size,d=void 0===l?"medium":l,f=e.inverted,c=void 0!==f&&f;return a.default.createElement("img",{ref:u,className:o.default([i.default.icon,i.default[d],(t={},t[i.default.inverted]=c,t)]),crossOrigin:"anonymous","data-testid":"icon",alt:r,src:n})}},function(e,t,n){"use strict";n.r(t),t.default={icon:"_33cTM8i8qajFGy-00ty0Rw",small:"MUi3ikzcPZdo59AfoXdOF",medium:"_2VCKqy59NSFdfDiE0oxasz",large:"_2UUUf2n_a0PYpQ8kowKHzp",xlarge:"oDIEY8U4TwCJkjF7xaQBO",inverted:"_2qzUtU1Td_c58vM8ALqSVW"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IconButton=void 0;var a=n(38);Object.defineProperty(t,"IconButton",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(4),u=r(n(39)),l=n(2);t.default=function(e){var t,n=e.className,r=e.containerRef,d=e.src,f=e.alt,c=e.badgeContent,s=void 0===c?null:c,v=e.offsetSides,_=void 0===v?[]:v,p=e.onClick,m=void 0===p?function(){}:p,h=e.disabled,y=void 0!==h&&h,b=e.inverted,g=void 0!==b&&b,O=e.noShadow,P=void 0!==O&&O,j=e.noBorder,M=void 0!==j&&j,w=e.transparent,E=void 0!==w&&w,k=e.rounded,C=void 0!==k&&k,S=e.size,x=void 0===S?"medium":S,N=e.type,D=void 0===N?"button":N;return a.default.createElement("button",{ref:r,className:o.default([u.default.container,u.default[x],(t={},t[u.default.inverted]=g,t[u.default.rounded]=C,t[u.default.noShadow]=P,t[u.default.noBorder]=M,t[u.default.transparent]=E,t[u.default.topOffset]=C&&_.includes("top"),t[u.default.rightOffset]=C&&_.includes("right"),t[u.default.bottomOffset]=C&&_.includes("bottom"),t[u.default.leftOffset]=C&&_.includes("left"),t),n]),disabled:y,onClick:m,type:D,role:"button"},a.default.createElement(i.Icon,{src:d,alt:f,size:x,inverted:g}),s&&a.default.createElement(l.ButtonBadge,null,s))}},function(e,t,n){"use strict";n.r(t),t.default={container:"RgyllXTqp3_jZ6A2Nbvg6",small:"_1w0hZlObeL7EG87zsL-9vN",medium:"EK1bvJZjW119Do79StL7I",large:"PgyQXK1yyCMq8BSaYCbch",xlarge:"qhkHzIoIownrexHzQSuuU",rounded:"_3qqa1k0C9JMPsBRSz6Z0yY",topOffset:"_3VZP7DohhZ7z8fi4z-H8jN",rightOffset:"_2XXhJ3-cYcXbIVNmmnO8yH",bottomOffset:"ZJIX7Vq5musjd6s4hCSbP",leftOffset:"_1QVWiyivW9UxeoNu3Udnv6",inverted:"_2jZzXhnHqqbtum4dBdl1lK",noShadow:"_3fxvWiONFFYtMuDcXp8syu",noBorder:"_3EuxupnqOVuSoUsbKzNn",transparent:"_35bRIi8BtD4RKSJvZbj_sm"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IconButtonLink=void 0;var a=n(41);Object.defineProperty(t,"IconButtonLink",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=n(4),d=o(n(42)),f=n(2);t.default=function(e){var t,n=e.as,o=e.containerRef,c=e.className,s=e.src,v=e.alt,_=e.badgeContent,p=void 0===_?null:_,m=e.inverted,h=void 0!==m&&m,y=e.noShadow,b=void 0!==y&&y,g=e.noBorder,O=void 0!==g&&g,P=e.transparent,j=void 0!==P&&P,M=e.rounded,w=void 0!==M&&M,E=e.offsetSides,k=void 0===E?[]:E,C=e.size,S=void 0===C?"medium":C,x=a(e,["as","containerRef","className","src","alt","badgeContent","inverted","noShadow","noBorder","transparent","rounded","offsetSides","size"]);return void 0===n&&(n="a"),i.default.createElement(n,r({ref:o,"data-testid":"icon-button-link",className:u.default([d.default.container,d.default[S],(t={},t[d.default.inverted]=h,t[d.default.rounded]=w,t[d.default.noShadow]=b,t[d.default.noBorder]=O,t[d.default.transparent]=j,t[d.default.topOffset]=w&&k.includes("top"),t[d.default.rightOffset]=w&&k.includes("right"),t[d.default.bottomOffset]=w&&k.includes("bottom"),t[d.default.leftOffset]=w&&k.includes("left"),t),c])},x),i.default.createElement(l.Icon,{src:s,alt:v,size:S,inverted:h}),p&&i.default.createElement(f.ButtonBadge,null,p))}},function(e,t,n){"use strict";n.r(t),t.default={container:"_3wjxjCzv_lphdWm73JgAyp",small:"_32MYmZbHzUU0b3dMcmJsiM",medium:"_189rYJ2TvaByrC3S7Cf3nm",large:"_2aYSSTUg8wvrADOS188xM",xlarge:"vs3KYvU7Zcnhw2SOySCNf",rounded:"_18ih67LL0n7Xl61gLG8s0k",topOffset:"_1p7h7W6QsDHpba6mgyWUL9",rightOffset:"_3fxMIB_Jz5CYIfwuZhQ28i",bottomOffset:"_113m4CWimLvsjU9xIxPq7i",leftOffset:"_6Chov2MoyUxyhWxKn368K",inverted:"_3eqOJQz4ue-eXLvq27AsY5",noShadow:"lF6D_V20x32v9ZysqwC68",noBorder:"_3s6qColLjpjl4Rro7mVTxS",transparent:"_2IZO9pK131U91cyKXixgxD"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Image=void 0;var a=n(44);Object.defineProperty(t,"Image",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.emptyImage=void 0;var u=o(n(0)),l=i(n(1)),d=i(n(45));t.emptyImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=",t.default=function(e){var n,r,a=e.src,o=e.alt,i=e.srcWidth,f=e.srcHeight,c=e.children,s=e.animation,v=e.containerRef,_=e.layout,p=void 0===_?"contain":_,m=u.useState(!1),h=m[0],y=m[1],b=u.useRef(null);return u.useEffect((function(){var e=new Image;return e.crossOrigin="anonymous",e.src=a,e.onload=function(){var e;null===(e=b.current)||void 0===e||e.setAttribute("src",a),y(!0)},function(){e.src="",delete e.onload,delete e.src,delete e.crossOrigin,e=null}}),[a]),c?u.default.createElement("div",{ref:v,className:l.default([d.default.container,d.default.hasOverlay])},u.default.createElement("img",{ref:b,className:l.default([d.default.image,d.default[p],(n={},n[d.default.fadeIn]="fadeIn"===s&&h,n[d.default.scaleUp]="scaleUp"===s&&h,n)]),crossOrigin:"anonymous","data-testid":"image",alt:o,src:t.emptyImage,width:i,height:f}),c&&u.default.createElement("div",{className:d.default.overlay},c)):u.default.createElement("img",{ref:b,className:l.default([d.default.image,d.default[p],(r={},r[d.default.fadeIn]="fadeIn"===s&&h,r[d.default.scaleUp]="scaleUp"===s&&h,r)]),crossOrigin:"anonymous","data-testid":"image",alt:o,src:t.emptyImage,width:i,height:f})}},function(e,t,n){"use strict";n.r(t),t.default={container:"_1V00Gpz_keqUWGEfZ74wjS",hasOverlay:"_2MtUfYpw5V8Uprxq_E_ySa",overlay:"z1DVHxj1ZPK73OIQRck7j",image:"_39OjTGWd7xmxcl6nuI-g2L",cover:"_3qKdp2mK6f7G5zAzXlzgrE",contain:"_2o_G4XbB-Qozbfuk4_V00h",stretchHorizontally:"_2xguDkGu1mR2yPaY-hzN8o",stretchVertically:"_19WMa3tqRxvUhDKFZ8Y2PB",fadeIn:"_36OS2GcsjwEgHP0o-8Ax1m",fadeInAnimation:"-eymN6hWzJnRx8Xhk1DWO",scaleUp:"_1UURABZnMlLf0KPUUD2RNz",scaleUpAnimation:"_3kotwV9jvpHSPmjtOUlg7M"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ListViewLinkItem=t.ListViewItem=t.ListView=void 0;var a=n(47);Object.defineProperty(t,"ListView",{enumerable:!0,get:function(){return r(a).default}});var o=n(49);Object.defineProperty(t,"ListViewItem",{enumerable:!0,get:function(){return r(o).default}});var i=n(50);Object.defineProperty(t,"ListViewLinkItem",{enumerable:!0,get:function(){return r(i).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(48));t.default=function(e){var t=e.children,n=e.className,r=e.containerRef,u=e.header,l=e.headerActions;return a.default.createElement("div",{ref:r,className:o.default([i.default.container,n])},(u||l)&&a.default.createElement("div",{className:i.default.header},u&&a.default.createElement("h3",{className:i.default.headerLabel},u),l),a.default.createElement("ul",{className:i.default.list},t))}},function(e,t,n){"use strict";n.r(t),t.default={container:"DcWoEbiol9px-FQA_TpOk",header:"_2javB8sADx6dDgqXN3MCLP",headerLabel:"_3iMOfIyNL1SEmv2J8ZDDmW",list:"_3_KmtbMPpPHgJFM9ZB_xnA"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(5),u=r(n(9));t.default=function(e){var t=e.children,n=e.active,r=void 0!==n&&n,l=e.disabled,d=void 0!==l&&l,f=e.transparent,c=void 0!==f&&f,s=e.noPadding,v=void 0!==s&&s,_=e.size,p=void 0===_?"medium":_,m=e.align,h=void 0===m?"center":m,y=e.onClick,b=void 0===y?function(){}:y;return a.default.createElement("li",{className:o.default([u.default.listViewItem])},a.default.createElement(i.Button,{onClick:b,disabled:d,inverted:r,transparent:c,noPadding:v,align:h,size:p,stretchHorizontally:!0,noShadow:!0,noBorder:!0},t))}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=n(6),d=o(n(9));t.default=function(e){var t=e.children,n=e.as,o=e.active,f=void 0!==o&&o,c=e.transparent,s=void 0!==c&&c,v=e.noPadding,_=void 0!==v&&v,p=e.align,m=void 0===p?"center":p,h=e.size,y=void 0===h?"medium":h,b=a(e,["children","as","active","transparent","noPadding","align","size"]);return void 0===n&&(n="a"),i.default.createElement("li",{className:u.default([d.default.listViewItem])},i.default.createElement(l.ButtonLink,r({as:n,inverted:f,transparent:s,noPadding:_,align:m,size:y,stretchHorizontally:!0,noShadow:!0,noBorder:!0},b),t))}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MenuLinkItem=t.MenuItem=t.MenuContainer=t.Menu=void 0;var a=n(52);Object.defineProperty(t,"Menu",{enumerable:!0,get:function(){return r(a).default}});var o=n(54);Object.defineProperty(t,"MenuContainer",{enumerable:!0,get:function(){return r(o).default}});var i=n(56);Object.defineProperty(t,"MenuItem",{enumerable:!0,get:function(){return r(i).default}});var u=n(58);Object.defineProperty(t,"MenuLinkItem",{enumerable:!0,get:function(){return r(u).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(53));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.className,l=e.isOpen,d=void 0===l||l,f=e.placement,c=void 0===f?{horizontal:"left",vertical:"bottom"}:f,s=e.header;return a.default.createElement("div",{ref:r,className:o.default([i.default.menu,i.default[c.horizontal],i.default[c.vertical],(t={},t[i.default.open]=d,t),u])},s&&d&&a.default.createElement("h3",{className:i.default.menuHeader},s),a.default.createElement("ul",null,d&&n))}},function(e,t,n){"use strict";n.r(t),t.default={menu:"_1L5-pv_P6M2oGeoReMnO2J",top:"_31ldYGU4U0xpKuU_--Wcja",right:"ObHxMivl35i1KgI7Tggc9",left:"_2Gzc0XfL-h5NyHKVDv5r-k",bottom:"_3EDmiSfPRZMlHlSH9347lG",open:"_1J7pFkvkjQQRWkmg-0XTWZ",entrance:"_3cqesQGf9Cyu66DsoKtF0q",menuHeader:"_2oxsPOspAHPCeKTPHegeHU"}},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=i(n(55));t.default=u.forwardRef((function(e,t){var n=e.children,r=e.className;return u.default.createElement("div",{ref:t,className:l.default([d.default.menuContainer,r])},n)}))},function(e,t,n){"use strict";n.r(t),t.default={menuContainer:"_1_2sFFVzNXmJX_PTpHZgEL"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(57));t.default=function(e){var t,n,r=e.children,u=e.className,l=e.onClick,d=e.noPadding,f=void 0!==d&&d,c=e.isActive,s=void 0!==c&&c;return a.default.createElement("li",{className:o.default([i.default.menuItem,(t={},t[i.default.active]=s,t),(n={},n[i.default.noPadding]=f,n),u]),onClick:l},r)}},function(e,t,n){"use strict";n.r(t),t.default={menuItem:"_2KsRCEgE_M7woXjhpRuVuo",noPadding:"_2cqMJHJyCjAU8ZPZAV0YD5",active:"_1XnXZiArhvUeyXgqUaG-P7"}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=o(n(59));t.default=function(e){var t,n=e.as,o=e.children,d=e.className,f=e.noPadding,c=void 0!==f&&f,s=a(e,["as","children","className","noPadding"]);return void 0===n&&(n="a"),i.default.createElement(n,r({"data-testid":"menu-link-item",className:u.default([l.default.menuLinkItem,d,(t={},t[l.default.noPadding]=c,t)])},s),o)}},function(e,t,n){"use strict";n.r(t),t.default={menuLinkItem:"_3z5t9CAhcAwVOtOVlA_4Gw",active:"_1Z-mPvewGUg484QPc9Hxq2",noPadding:"bNXikyEZIIOM1HgsAi3ft",menuItem:"_3tIWAhMDtPzAH4bArwpROv"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Overlay=void 0;var a=n(61);Object.defineProperty(t,"Overlay",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(62));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.transparent,l=void 0!==u&&u,d=e.isFixed,f=void 0!==d&&d,c=e.onClick,s=void 0===c?function(){}:c;return a.default.createElement("div",{ref:r,"data-testid":"overlay",className:o.default([i.default.overlay,(t={},t[i.default.transparent]=l,t[i.default.fixed]=f,t)]),onClick:s},n)}},function(e,t,n){"use strict";n.r(t),t.default={overlay:"I0dm-Ldm-SiS0v5X-vo0g",transparent:"_3qdDdlynHLnofN1DKvvYQ8",fixed:"_1gXy9XS3F-JtqdjZBcoKSw"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TextInput=void 0;var a=n(64);Object.defineProperty(t,"TextInput",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=n(3),f=i(n(65));t.default=function(e){var t=e.label,n=e.onChange,r=e.placeholder,a=e.value,o=e.name,i=e.inputRef,c=e.size,s=void 0===c?"medium":c,v=e.autoFocus,_=void 0!==v&&v,p=e.type,m=void 0===p?"text":p,h=u.useCallback((function(e){return n(e.target.value)}),[n]),y=u.default.createElement("input",{"data-testid":"input",ref:i,className:l.default([f.default.textInput,f.default[s]]),onChange:i?void 0:h,placeholder:r,name:o,type:m,value:a,autoFocus:_});return t?u.default.createElement(d.Label,{value:t},y):u.default.createElement(u.default.Fragment,null,y)}},function(e,t,n){"use strict";n.r(t),t.default={textInput:"_2ifFTByxvQF5eRYwMASae7",small:"_18iLNhqc5Tz5PPo2k4_TBh",medium:"_1jaRyjeatJRxEujgPGzWzx",large:"_34d5H3X8W0UgX9B8dtPRAO"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ToastContainer=t.Toast=void 0;var a=n(67);Object.defineProperty(t,"Toast",{enumerable:!0,get:function(){return r(a).default}});var o=n(69);Object.defineProperty(t,"ToastContainer",{enumerable:!0,get:function(){return r(o).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(68));t.default=function(e){var t=e.children,n=e.containerRef,r=e.onClick,i=void 0===r?function(){}:r;return a.default.createElement("div",{ref:n,className:o.default.toast,onClick:i,"data-testid":"toast"},t)}},function(e,t,n){"use strict";n.r(t),t.default={toast:"_2N3XiH8RVnEAYlzBD_JCqZ",entrance:"_19cw3zx6fU4RMGMaGM5zJZ"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(70));t.default=function(e){var t=e.children;return a.default.createElement("div",{className:o.default([i.default.toastContainer]),"data-testid":"toast-container"},t)}},function(e,t,n){"use strict";n.r(t),t.default={toastContainer:"_3RT2abfzK0rt-YjcrqXLnr"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Video=void 0;var a=n(72);Object.defineProperty(t,"Video",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(73));t.default=function(e){var t=e.src,n=e.type,r=e.children,u=e.containerRef,l=e.muted,d=void 0===l||l,f=e.loop,c=void 0===f||f,s=e.autoPlay,v=void 0===s||s,_=e.layout,p=void 0===_?"contain":_;return r?a.default.createElement("div",{ref:u,className:o.default([i.default.container,i.default.hasOverlay])},a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([i.default.video,i.default[p]]),muted:d,loop:c,autoPlay:v,playsInline:!0},a.default.createElement("source",{"data-testid":"source",src:t,type:n})),r&&a.default.createElement("div",{className:i.default.overlay},r)):a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([i.default.video,i.default[p]]),muted:d,loop:c,autoPlay:v,playsInline:!0},a.default.createElement("source",{"data-testid":"source",src:t,type:n}))}},function(e,t,n){"use strict";n.r(t),t.default={container:"_1d55wXuQKpt97PqQHYx5mW",hasOverlay:"_2DAM1x7P1wuYNP8TDmXGXc",video:"_3jQ_qpULtr0uFSTWbD0NVZ",cover:"_1qnVLheGzDI6No9_nwb7hl",contain:"_1X286NISI0wq2KK3djVhu3",stretchHorizontally:"Oegl-8gd2K5lz3mUGJ_Uz",stretchVertically:"_1-HzpTY_WtGcZc25wCoteY",overlay:"_2TvXsqAIUnGSqm6knJFhL3"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.useOutsideClick=t.useToggle=void 0;var a=n(75);Object.defineProperty(t,"useToggle",{enumerable:!0,get:function(){return r(a).default}});var o=n(76);Object.defineProperty(t,"useOutsideClick",{enumerable:!0,get:function(){return r(o).default}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default=function(e){void 0===e&&(e=!1);var t=r.useState(e),n=t[0],a=t[1];return[n,r.useCallback((function(e){a("boolean"==typeof e?e:function(e){return!e})}),[n])]}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default=function(e){var t=r.useRef();return r.useEffect((function(){var n=function(n){t.current&&!t.current.contains(n.target)&&e(n)};return document.addEventListener("click",n),document.addEventListener("touchstart",n),function(){document.removeEventListener("click",n),document.removeEventListener("touchstart",n)}}),[e]),t}},function(e,t,n){"use strict";n.r(t),n.d(t,"useHotkeys",(function(){return S})),n.d(t,"useIsHotkeyPressed",(function(){return C}));
1
+ !function(e,t){for(var n in t)e[n]=t[n]}(exports,function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=10)}([function(e,t){e.exports=require("react")},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return a}));var r=Array.isArray;function a(e){var t="";if("string"==typeof e||"number"==typeof e)return e||"";if(r(e))for(var n,o=0;o<e.length;o++)""!==(n=a(e[o]))&&(t+=(t&&" ")+n);else for(var o in e)e.hasOwnProperty(o)&&e[o]&&(t+=(t&&" ")+o);return t}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonBadge=void 0;var a=n(11);Object.defineProperty(t,"ButtonBadge",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Label=void 0;var a=n(19);Object.defineProperty(t,"Label",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Icon=void 0;var a=n(35);Object.defineProperty(t,"Icon",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Button=void 0;var a=n(13);Object.defineProperty(t,"Button",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonLink=void 0;var a=n(15);Object.defineProperty(t,"ButtonLink",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ColorSwatch=void 0;var a=n(24);Object.defineProperty(t,"ColorSwatch",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Modal=void 0;var a=n(29);Object.defineProperty(t,"Modal",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";n.r(t),t.default={listViewItem:"_1fj2anieQ0JKxCAZkSaapk"}},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(2),t),a(n(5),t),a(n(6),t),a(n(17),t),a(n(22),t),a(n(7),t),a(n(27),t),a(n(32),t),a(n(4),t),a(n(37),t),a(n(40),t),a(n(43),t),a(n(46),t),a(n(51),t),a(n(8),t),a(n(60),t),a(n(3),t),a(n(63),t),a(n(66),t),a(n(71),t),a(n(74),t)},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(12));t.default=function(e){var t=e.children,n=e.className;return a.default.createElement("div",{className:o.default([i.default.buttonBadge,n])},t)}},function(e,t,n){"use strict";n.r(t),t.default={buttonBadge:"_1UlYFEGc3dMgtoNil6SOx5"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(14));t.default=function(e){var t,n=e.children,r=e.className,u=e.onClick,l=e.containerRef,d=e.disabled,f=void 0!==d&&d,c=e.inverted,s=void 0!==c&&c,v=e.rounded,_=void 0!==v&&v,p=e.noShadow,m=void 0!==p&&p,h=e.noPadding,y=void 0!==h&&h,b=e.noBorder,g=void 0!==b&&b,O=e.transparent,P=void 0!==O&&O,j=e.stretchHorizontally,M=void 0!==j&&j,w=e.stretchVertically,E=void 0!==w&&w,k=e.offsetSides,C=void 0===k?[]:k,x=e.align,S=void 0===x?"center":x,N=e.size,D=void 0===N?"medium":N,I=e.type;return a.default.createElement("button",{ref:l,className:o.default([i.default.container,i.default[D],i.default[S],(t={},t[i.default.inverted]=s,t[i.default.rounded]=_,t[i.default.noShadow]=m,t[i.default.noPadding]=y,t[i.default.noBorder]=g,t[i.default.transparent]=P,t[i.default.stretchHorizontally]=M,t[i.default.stretchVertically]=E,t[i.default.leftOffset]=_&&C.includes("left"),t[i.default.rightOffset]=_&&C.includes("right"),t),r]),disabled:f,onClick:u,type:I,role:"button"},"string"!=typeof n&&Array.isArray(n)&&n.length?a.default.createElement("div",{className:i.default.content},n):n)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_12w5WOF3Ksa2JB5-YOXyD7",left:"_2TFV72DrQx5JGShNcut4E-",small:"uTBrcjpHp96RCwF5UDzf0",large:"_14SSfs5SVWK7NxuZBqMgzB",xlarge:"_1SQu2QWw2a7ew47WW12ZSg",inverted:"_2hZhhi8BgE_ekQVn9eX9DX",rounded:"VBDOScYcQnU2eytkA_Pc6",rightOffset:"_2GTY3XmaOu923M9sERs6ak",leftOffset:"_15Q0GGkgYJ_aLm01nGE5Yh",noShadow:"RewmDqjp6nUeEYHEKzTJD",noBorder:"nZqIUPT8cZ87BW4r8kxU",transparent:"_669lR4y2AH97A1ly5MYWO",stretchHorizontally:"_3icutXHwzIiowt7bVa3Yib",stretchVertically:"_2kCkxPkplP1xqjfkepoyNp",noPadding:"_3kNbCgcI-R_FFQ-3O6T0la",content:"_2bF1AScExskuOpuzd-cD_6"}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=o(n(16));t.default=function(e){var t,n=e.as,o=e.children,d=e.className,f=e.size,c=e.containerRef,s=e.inverted,v=void 0!==s&&s,_=e.rounded,p=void 0!==_&&_,m=e.transparent,h=void 0!==m&&m,y=e.noShadow,b=void 0!==y&&y,g=e.noPadding,O=void 0!==g&&g,P=e.noBorder,j=void 0!==P&&P,M=e.stretchHorizontally,w=void 0!==M&&M,E=e.stretchVertically,k=void 0!==E&&E,C=e.offsetSides,x=void 0===C?[]:C,S=e.align,N=void 0===S?"center":S,D=a(e,["as","children","className","size","containerRef","inverted","rounded","transparent","noShadow","noPadding","noBorder","stretchHorizontally","stretchVertically","offsetSides","align"]);return void 0===n&&(n="a"),i.default.createElement(n,r({ref:c,"data-testid":"button-link",className:u.default([l.default.container,l.default[f],l.default[N],(t={},t[l.default.inverted]=v,t[l.default.rounded]=p,t[l.default.noShadow]=b,t[l.default.noPadding]=O,t[l.default.noBorder]=j,t[l.default.transparent]=h,t[l.default.stretchHorizontally]=w,t[l.default.stretchVertically]=k,t[l.default.leftOffset]=p&&x.includes("left"),t[l.default.rightOffset]=p&&x.includes("right"),t),d])},D),"string"!=typeof o&&Array.isArray(o)&&o.length?i.default.createElement("div",{className:l.default.content},o):o)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_2Qu9RaG55pWyJaT__3_oFA",left:"_3nx3gNPzj6LT_1hwnQHxOJ",small:"_2Lv_6xx2Gl335KT9Iooj3g",medium:"_3Hx8phaz3zLqNseApNIWZH",large:"_2-OEYFoIvls4N2CRuY-eJr",xlarge:"_6xFYAPAPwAWlhm0gdtoZR",inverted:"_2pEGiK3KuPnEvwiOCDgFDa",rounded:"_1zyVKsmozPRtLHDt_j614N",rightOffset:"_1rYvtqnZyI4RrulC7KGcou",leftOffset:"_3Tr7eO4Es1Both2K_siTAN",noShadow:"_2wZ3GII3oNd8IX7aga-aMu",transparent:"_1TKgpSYl_A0ISkBcT1jly7",stretchHorizontally:"_3p2TY4nodViu9jx-LzGCNe",stretchVertically:"_3gEwkRprnS_IREu3KtNzMD",noPadding:"_2JpKJrumATcTTRT7xiff9i",noBorder:"_1P3P274wou6lEA87g6rFV2",content:"sNDrq3cX6I6Q-Ouusz7Ti"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Checkbox=void 0;var a=n(18);Object.defineProperty(t,"Checkbox",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=n(3),f=i(n(21));t.default=function(e){var t=e.label,n=e.onChange,r=e.placeholder,a=e.checked,o=e.disabled,i=e.name,c=e.indeterminate,s=e.size,v=void 0===s?"medium":s,_=e.autoFocus,p=void 0!==_&&_,m=u.useCallback((function(e){return n(e.target.checked)}),[n]);return u.default.createElement(d.Label,{value:t},u.default.createElement("input",{"data-testid":"checkbox",ref:function(e){e&&(e.indeterminate=c)},checked:a,disabled:o,className:l.default([f.default.input,f.default[v]]),onChange:m,placeholder:r,name:i,type:"checkbox",autoFocus:p}))}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(20));t.default=function(e){var t=e.children,n=e.value,r=e.containerRef;return a.default.createElement("label",{ref:r,className:o.default.container},n,t)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_15Dbs_X5IT9tkmAsMXPNVJ"}},function(e,t,n){"use strict";n.r(t),t.default={input:"_1p2hmjmM1qNZTZIiFHFIxu",small:"_1Ji__9U-D5UdW2NJWWUPrC",medium:"_3KJS2FRS2td90Qr6r33L28",large:"_1j7odCEEX2DkggpIZuF4MI",xlarge:"_3KZwhUmxBJeb2xtk88gaGW"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ColorPicker=void 0;var a=n(23);Object.defineProperty(t,"ColorPicker",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(7),u=r(n(26));t.default=function(e){var t=e.colors,n=e.containerRef,r=e.onSelect,l=e.selectedColor,d=e.direction,f=void 0===d?"vertical":d;return a.default.createElement("div",{ref:n,className:o.default([u.default.colorPicker,u.default[f]])},t.map((function(e){return a.default.createElement(i.ColorSwatch,{key:e.key,color:e,isSelected:e===l,onClick:function(){return r(e)}})})))}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(25));t.default=function(e){var t,n=e.color,r=e.containerRef,u=e.onClick,l=e.isSelected,d=void 0!==l&&l;return a.default.createElement("button",{ref:r,className:o.default([i.default.colorSwatch,(t={},t[i.default.selected]=d,t)]),"data-testid":"color-swatch",onClick:u,style:{backgroundColor:n.hexCode}},a.default.createElement("span",{className:i.default.srOnly},"Select "+n.label+" color"))}},function(e,t,n){"use strict";n.r(t),t.default={colorSwatch:"dv7iucTQq-ZhURUup-PuV",selected:"_1LbAgyiiE_1ujW90d-6iuu",srOnly:"_1etkuslhZVEPNsk1QghTEo"}},function(e,t,n){"use strict";n.r(t),t.default={colorPicker:"_2F1On-SA3mMkhZPFrDjWIc",horizontal:"_1WFYyMkkYLL73n__rPUUbv",vertical:"_1lIoa2bj_tbkQie0IpE2Ln"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConfirmationModal=void 0;var a=n(28);Object.defineProperty(t,"ConfirmationModal",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(8),u=r(n(31));function l(e){var t,n=e.children,r=e.containerRef,l=e.header,d=e.isOpen,f=e.buttonsLeft,c=void 0===f?[]:f,s=e.buttonsRight,v=void 0===s?[]:s,_=e.onClose,p=void 0===_?function(){}:_,m=e.noPadding,h=void 0!==m&&m;return a.default.createElement(i.Modal,{containerRef:r,isOpen:d,onClose:p},a.default.createElement("div",{className:u.default.container},a.default.createElement("h1",{className:u.default.modalHeader},l),a.default.createElement("div",{className:o.default([u.default.modalContent,(t={},t[u.default.noPadding]=h,t)])},n),a.default.createElement("div",{className:u.default.modalButtonsContainer},a.default.createElement("div",{className:u.default.modalButtons},c),a.default.createElement("div",{className:u.default.modalButtons},v))))}l.displayName="ConfirmationModal",t.default=l},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=n(77),d=i(n(1)),f=i(n(30));t.default=function(e){var t,n=e.children,r=e.containerRef,a=e.isOpen,o=e.button,i=e.transparent,c=void 0!==i&&i,s=e.noShadow,v=void 0!==s&&s,_=e.onClose,p=void 0===_?function(){}:_;l.useHotkeys("Escape",p);var m=u.useCallback((function(){p()}),[p]);return a&&u.default.createElement("div",{ref:r},u.default.createElement("div",{className:f.default.overlay,"data-testid":"modal-overlay",onClick:m}),u.default.createElement("div",{className:d.default([f.default.modal,(t={},t[f.default.transparent]=c,t[f.default.noShadow]=v,t)]),"data-testid":"modal"},n),o&&u.default.createElement("div",{className:f.default.modalButton},o))}},function(e,t,n){"use strict";n.r(t),t.default={overlay:"_20ZKGY4TwZxp0KZ6E7y4WB",modal:"_25LBN31_mI1I1uHDDP4O0I",transparent:"_3Z2Kl1rEHZQMLUsXF1f7lo",noShadow:"_3CfST-tn-tsvcodSxeliQq",modalButton:"_1eO0x3M0pN8-79IuYuT_Cl"}},function(e,t,n){"use strict";n.r(t),t.default={container:"KgC5pwtsHavuVOLubALae",modalHeader:"_1bTNXMR5mZFXs1o0uxkhRP",modalContent:"quP5o4Q9nlUo1fT7sbPVA",noPadding:"_1Ugo_DHST4RbWzIxHPhj7n",modalButtonsContainer:"_2bGL7XjDy6sE3JleU98hjy",modalButtons:"_3XffFeN9VEIpythmVJ2U8C"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FloatingPanel=void 0;var a=n(33);Object.defineProperty(t,"FloatingPanel",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(34));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.layout,l=void 0===u?"column":u,d=e.placement,f=void 0===d?{horizontal:"center",vertical:"bottom",parent:"viewport"}:d,c="center"===f.horizontal?"horizontalCenter":f.horizontal,s="center"===f.vertical?"verticalCenter":f.vertical;return a.default.createElement("div",{ref:r,"data-testid":"floating-panel",className:o.default([i.default.container,i.default[c],i.default[s],i.default[l],(t={},t[i.default.fixed]="container"!==f.parent,t)])},n)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_2r0FkYJ7SK1YjB3HKHMAih",row:"_3R-FF8eMu0CS4eNX3lTdCR",column:"_1oKOeAgZjwxNM3uGfLt6IO",fixed:"_3oQGWgSINbytb4uv92CSvT",plain:"iMf8od-bIqsHAvxofDuzb",transparent:"d2oyx5pysqj898aS8G3E8",top:"_11cPYq1dhQyzVIMZek1_Io",topEdge:"_2_ineCy1MQlYP6qMewd1z5",topOnEdge:"_1rvCsDod5blTOyAl4kDwN0",right:"_1SIYBcRgqS4VPhW9M80Y4z",rightEdge:"QA69f0D8bTCJHrDOr8m1r",rightOnEdge:"_2PiTUl0JYzECnO0851gz3a",bottom:"_305gBmTwAeXZfA_M9tsVNo",bottomEdge:"_1PcDXbLZ2XHPkei_H_r58p",bottomOnEdge:"_2vot4qpr58Wnb6pvHYnjkc",left:"sItgBV4WtDx4vZ3a-P4ix",leftEdge:"_1NJ1FzI_abKi-W6kc2r2c6",leftOnEdge:"_12EvwbaVQNWPZe37So8L_m",horizontalCenter:"_2jiSxEbCTKVzDteGQ1uoEf",verticalCenter:"_2f9D46BB-gezPvw8TZxJvp"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(36));t.default=function(e){var t,n=e.src,r=e.alt,u=e.containerRef,l=e.size,d=void 0===l?"medium":l,f=e.inverted,c=void 0!==f&&f;return a.default.createElement("img",{ref:u,className:o.default([i.default.icon,i.default[d],(t={},t[i.default.inverted]=c,t)]),crossOrigin:"anonymous","data-testid":"icon",alt:r,src:n})}},function(e,t,n){"use strict";n.r(t),t.default={icon:"_33cTM8i8qajFGy-00ty0Rw",small:"MUi3ikzcPZdo59AfoXdOF",medium:"_2VCKqy59NSFdfDiE0oxasz",large:"_2UUUf2n_a0PYpQ8kowKHzp",xlarge:"oDIEY8U4TwCJkjF7xaQBO",inverted:"_2qzUtU1Td_c58vM8ALqSVW"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IconButton=void 0;var a=n(38);Object.defineProperty(t,"IconButton",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(4),u=r(n(39)),l=n(2);t.default=function(e){var t,n=e.className,r=e.containerRef,d=e.src,f=e.alt,c=e.badgeContent,s=void 0===c?null:c,v=e.offsetSides,_=void 0===v?[]:v,p=e.onClick,m=void 0===p?function(){}:p,h=e.disabled,y=void 0!==h&&h,b=e.inverted,g=void 0!==b&&b,O=e.noShadow,P=void 0!==O&&O,j=e.noBorder,M=void 0!==j&&j,w=e.transparent,E=void 0!==w&&w,k=e.rounded,C=void 0!==k&&k,x=e.size,S=void 0===x?"medium":x,N=e.type,D=void 0===N?"button":N;return a.default.createElement("button",{ref:r,className:o.default([u.default.container,u.default[S],(t={},t[u.default.inverted]=g,t[u.default.rounded]=C,t[u.default.noShadow]=P,t[u.default.noBorder]=M,t[u.default.transparent]=E,t[u.default.topOffset]=C&&_.includes("top"),t[u.default.rightOffset]=C&&_.includes("right"),t[u.default.bottomOffset]=C&&_.includes("bottom"),t[u.default.leftOffset]=C&&_.includes("left"),t),n]),disabled:y,onClick:m,type:D,role:"button"},a.default.createElement(i.Icon,{src:d,alt:f,size:S,inverted:g}),s&&a.default.createElement(l.ButtonBadge,null,s))}},function(e,t,n){"use strict";n.r(t),t.default={container:"RgyllXTqp3_jZ6A2Nbvg6",small:"_1w0hZlObeL7EG87zsL-9vN",medium:"EK1bvJZjW119Do79StL7I",large:"PgyQXK1yyCMq8BSaYCbch",xlarge:"qhkHzIoIownrexHzQSuuU",rounded:"_3qqa1k0C9JMPsBRSz6Z0yY",topOffset:"_3VZP7DohhZ7z8fi4z-H8jN",rightOffset:"_2XXhJ3-cYcXbIVNmmnO8yH",bottomOffset:"ZJIX7Vq5musjd6s4hCSbP",leftOffset:"_1QVWiyivW9UxeoNu3Udnv6",inverted:"_2jZzXhnHqqbtum4dBdl1lK",noShadow:"_3fxvWiONFFYtMuDcXp8syu",noBorder:"_3EuxupnqOVuSoUsbKzNn",transparent:"_35bRIi8BtD4RKSJvZbj_sm"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IconButtonLink=void 0;var a=n(41);Object.defineProperty(t,"IconButtonLink",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=n(4),d=o(n(42)),f=n(2);t.default=function(e){var t,n=e.as,o=e.containerRef,c=e.className,s=e.src,v=e.alt,_=e.badgeContent,p=void 0===_?null:_,m=e.inverted,h=void 0!==m&&m,y=e.noShadow,b=void 0!==y&&y,g=e.noBorder,O=void 0!==g&&g,P=e.transparent,j=void 0!==P&&P,M=e.rounded,w=void 0!==M&&M,E=e.offsetSides,k=void 0===E?[]:E,C=e.size,x=void 0===C?"medium":C,S=a(e,["as","containerRef","className","src","alt","badgeContent","inverted","noShadow","noBorder","transparent","rounded","offsetSides","size"]);return void 0===n&&(n="a"),i.default.createElement(n,r({ref:o,"data-testid":"icon-button-link",className:u.default([d.default.container,d.default[x],(t={},t[d.default.inverted]=h,t[d.default.rounded]=w,t[d.default.noShadow]=b,t[d.default.noBorder]=O,t[d.default.transparent]=j,t[d.default.topOffset]=w&&k.includes("top"),t[d.default.rightOffset]=w&&k.includes("right"),t[d.default.bottomOffset]=w&&k.includes("bottom"),t[d.default.leftOffset]=w&&k.includes("left"),t),c])},S),i.default.createElement(l.Icon,{src:s,alt:v,size:x,inverted:h}),p&&i.default.createElement(f.ButtonBadge,null,p))}},function(e,t,n){"use strict";n.r(t),t.default={container:"_3wjxjCzv_lphdWm73JgAyp",small:"_32MYmZbHzUU0b3dMcmJsiM",medium:"_189rYJ2TvaByrC3S7Cf3nm",large:"_2aYSSTUg8wvrADOS188xM",xlarge:"vs3KYvU7Zcnhw2SOySCNf",rounded:"_18ih67LL0n7Xl61gLG8s0k",topOffset:"_1p7h7W6QsDHpba6mgyWUL9",rightOffset:"_3fxMIB_Jz5CYIfwuZhQ28i",bottomOffset:"_113m4CWimLvsjU9xIxPq7i",leftOffset:"_6Chov2MoyUxyhWxKn368K",inverted:"_3eqOJQz4ue-eXLvq27AsY5",noShadow:"lF6D_V20x32v9ZysqwC68",noBorder:"_3s6qColLjpjl4Rro7mVTxS",transparent:"_2IZO9pK131U91cyKXixgxD"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Image=void 0;var a=n(44);Object.defineProperty(t,"Image",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.emptyImage=void 0;var u=o(n(0)),l=i(n(1)),d=i(n(45));t.emptyImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=",t.default=function(e){var n,r,a=e.src,o=e.alt,i=e.srcWidth,f=e.srcHeight,c=e.children,s=e.animation,v=e.containerRef,_=e.layout,p=void 0===_?"contain":_,m=u.useState(!1),h=m[0],y=m[1],b=u.useRef(null);return u.useEffect((function(){var e=new Image;return e.crossOrigin="anonymous",e.src=a,e.onload=function(){var e;null===(e=b.current)||void 0===e||e.setAttribute("src",a),y(!0)},function(){e.src="",delete e.onload,delete e.src,delete e.crossOrigin,e=null}}),[a]),c?u.default.createElement("div",{ref:v,className:l.default([d.default.container,d.default.hasOverlay])},u.default.createElement("img",{ref:b,className:l.default([d.default.image,d.default[p],(n={},n[d.default.fadeIn]="fadeIn"===s&&h,n[d.default.scaleUp]="scaleUp"===s&&h,n)]),crossOrigin:"anonymous","data-testid":"image",alt:o,src:t.emptyImage,width:i,height:f}),c&&u.default.createElement("div",{className:d.default.overlay},c)):u.default.createElement("img",{ref:b,className:l.default([d.default.image,d.default[p],(r={},r[d.default.fadeIn]="fadeIn"===s&&h,r[d.default.scaleUp]="scaleUp"===s&&h,r)]),crossOrigin:"anonymous","data-testid":"image",alt:o,src:t.emptyImage,width:i,height:f})}},function(e,t,n){"use strict";n.r(t),t.default={container:"_1V00Gpz_keqUWGEfZ74wjS",hasOverlay:"_2MtUfYpw5V8Uprxq_E_ySa",overlay:"z1DVHxj1ZPK73OIQRck7j",image:"_39OjTGWd7xmxcl6nuI-g2L",cover:"_3qKdp2mK6f7G5zAzXlzgrE",contain:"_2o_G4XbB-Qozbfuk4_V00h",stretchHorizontally:"_2xguDkGu1mR2yPaY-hzN8o",stretchVertically:"_19WMa3tqRxvUhDKFZ8Y2PB",fadeIn:"_36OS2GcsjwEgHP0o-8Ax1m",fadeInAnimation:"-eymN6hWzJnRx8Xhk1DWO",scaleUp:"_1UURABZnMlLf0KPUUD2RNz",scaleUpAnimation:"_3kotwV9jvpHSPmjtOUlg7M"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ListViewLinkItem=t.ListViewItem=t.ListView=void 0;var a=n(47);Object.defineProperty(t,"ListView",{enumerable:!0,get:function(){return r(a).default}});var o=n(49);Object.defineProperty(t,"ListViewItem",{enumerable:!0,get:function(){return r(o).default}});var i=n(50);Object.defineProperty(t,"ListViewLinkItem",{enumerable:!0,get:function(){return r(i).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(48));t.default=function(e){var t=e.children,n=e.className,r=e.containerRef,u=e.header,l=e.headerActions;return a.default.createElement("div",{ref:r,className:o.default([i.default.container,n])},(u||l)&&a.default.createElement("div",{className:i.default.header},u&&a.default.createElement("h3",{className:i.default.headerLabel},u),l),a.default.createElement("ul",{className:i.default.list},t))}},function(e,t,n){"use strict";n.r(t),t.default={container:"DcWoEbiol9px-FQA_TpOk",header:"_2javB8sADx6dDgqXN3MCLP",headerLabel:"_3iMOfIyNL1SEmv2J8ZDDmW",list:"_3_KmtbMPpPHgJFM9ZB_xnA"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(5),u=r(n(9));t.default=function(e){var t=e.children,n=e.active,r=void 0!==n&&n,l=e.disabled,d=void 0!==l&&l,f=e.transparent,c=void 0!==f&&f,s=e.noPadding,v=void 0!==s&&s,_=e.size,p=void 0===_?"medium":_,m=e.align,h=void 0===m?"center":m,y=e.onClick,b=void 0===y?function(){}:y;return a.default.createElement("li",{className:o.default([u.default.listViewItem])},a.default.createElement(i.Button,{onClick:b,disabled:d,inverted:r,transparent:c,noPadding:v,align:h,size:p,stretchHorizontally:!0,noShadow:!0,noBorder:!0},t))}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=n(6),d=o(n(9));t.default=function(e){var t=e.children,n=e.as,o=e.active,f=void 0!==o&&o,c=e.transparent,s=void 0!==c&&c,v=e.noPadding,_=void 0!==v&&v,p=e.align,m=void 0===p?"center":p,h=e.size,y=void 0===h?"medium":h,b=a(e,["children","as","active","transparent","noPadding","align","size"]);return void 0===n&&(n="a"),i.default.createElement("li",{className:u.default([d.default.listViewItem])},i.default.createElement(l.ButtonLink,r({as:n,inverted:f,transparent:s,noPadding:_,align:m,size:y,stretchHorizontally:!0,noShadow:!0,noBorder:!0},b),t))}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MenuLinkItem=t.MenuItem=t.MenuContainer=t.Menu=void 0;var a=n(52);Object.defineProperty(t,"Menu",{enumerable:!0,get:function(){return r(a).default}});var o=n(54);Object.defineProperty(t,"MenuContainer",{enumerable:!0,get:function(){return r(o).default}});var i=n(56);Object.defineProperty(t,"MenuItem",{enumerable:!0,get:function(){return r(i).default}});var u=n(58);Object.defineProperty(t,"MenuLinkItem",{enumerable:!0,get:function(){return r(u).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(53));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.className,l=e.isOpen,d=void 0===l||l,f=e.placement,c=void 0===f?{horizontal:"left",vertical:"bottom"}:f,s=e.header;return a.default.createElement("div",{ref:r,className:o.default([i.default.menu,i.default[c.horizontal],i.default[c.vertical],(t={},t[i.default.open]=d,t),u])},s&&d&&a.default.createElement("h3",{className:i.default.menuHeader},s),a.default.createElement("ul",null,d&&n))}},function(e,t,n){"use strict";n.r(t),t.default={menu:"_1L5-pv_P6M2oGeoReMnO2J",top:"_31ldYGU4U0xpKuU_--Wcja",right:"ObHxMivl35i1KgI7Tggc9",left:"_2Gzc0XfL-h5NyHKVDv5r-k",bottom:"_3EDmiSfPRZMlHlSH9347lG",open:"_1J7pFkvkjQQRWkmg-0XTWZ",entrance:"_3cqesQGf9Cyu66DsoKtF0q",menuHeader:"_2oxsPOspAHPCeKTPHegeHU"}},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=i(n(55));t.default=u.forwardRef((function(e,t){var n=e.children,r=e.className;return u.default.createElement("div",{ref:t,className:l.default([d.default.menuContainer,r])},n)}))},function(e,t,n){"use strict";n.r(t),t.default={menuContainer:"_1_2sFFVzNXmJX_PTpHZgEL"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(57));t.default=function(e){var t,n,r=e.children,u=e.className,l=e.onClick,d=e.noPadding,f=void 0!==d&&d,c=e.isActive,s=void 0!==c&&c;return a.default.createElement("li",{className:o.default([i.default.menuItem,(t={},t[i.default.active]=s,t),(n={},n[i.default.noPadding]=f,n),u]),onClick:l},r)}},function(e,t,n){"use strict";n.r(t),t.default={menuItem:"_2KsRCEgE_M7woXjhpRuVuo",noPadding:"_2cqMJHJyCjAU8ZPZAV0YD5",active:"_1XnXZiArhvUeyXgqUaG-P7"}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=o(n(59));t.default=function(e){var t,n=e.as,o=e.children,d=e.className,f=e.noPadding,c=void 0!==f&&f,s=a(e,["as","children","className","noPadding"]);return void 0===n&&(n="a"),i.default.createElement(n,r({"data-testid":"menu-link-item",className:u.default([l.default.menuLinkItem,d,(t={},t[l.default.noPadding]=c,t)])},s),o)}},function(e,t,n){"use strict";n.r(t),t.default={menuLinkItem:"_3z5t9CAhcAwVOtOVlA_4Gw",active:"_1Z-mPvewGUg484QPc9Hxq2",noPadding:"bNXikyEZIIOM1HgsAi3ft",menuItem:"_3tIWAhMDtPzAH4bArwpROv"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Overlay=void 0;var a=n(61);Object.defineProperty(t,"Overlay",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(62));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.transparent,l=void 0!==u&&u,d=e.isFixed,f=void 0!==d&&d,c=e.onClick,s=void 0===c?function(){}:c;return a.default.createElement("div",{ref:r,"data-testid":"overlay",className:o.default([i.default.overlay,(t={},t[i.default.transparent]=l,t[i.default.fixed]=f,t)]),onClick:s},n)}},function(e,t,n){"use strict";n.r(t),t.default={overlay:"I0dm-Ldm-SiS0v5X-vo0g",transparent:"_3qdDdlynHLnofN1DKvvYQ8",fixed:"_1gXy9XS3F-JtqdjZBcoKSw"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TextInput=void 0;var a=n(64);Object.defineProperty(t,"TextInput",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=n(3),f=i(n(65));t.default=function(e){var t=e.label,n=e.onChange,r=e.placeholder,a=e.value,o=e.name,i=e.inputRef,c=e.size,s=void 0===c?"medium":c,v=e.autoFocus,_=void 0!==v&&v,p=e.type,m=void 0===p?"text":p,h=u.useCallback((function(e){return n(e.target.value)}),[n]),y=u.default.createElement("input",{"data-testid":"input",ref:i,className:l.default([f.default.textInput,f.default[s]]),onChange:i?void 0:h,placeholder:r,name:o,type:m,value:a,autoFocus:_});return t?u.default.createElement(d.Label,{value:t},y):u.default.createElement(u.default.Fragment,null,y)}},function(e,t,n){"use strict";n.r(t),t.default={textInput:"_2ifFTByxvQF5eRYwMASae7",small:"_18iLNhqc5Tz5PPo2k4_TBh",medium:"_1jaRyjeatJRxEujgPGzWzx",large:"_34d5H3X8W0UgX9B8dtPRAO",xlarge:"_3st8EGounOgjNuLpoErC0s"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ToastContainer=t.Toast=void 0;var a=n(67);Object.defineProperty(t,"Toast",{enumerable:!0,get:function(){return r(a).default}});var o=n(69);Object.defineProperty(t,"ToastContainer",{enumerable:!0,get:function(){return r(o).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(68));t.default=function(e){var t=e.children,n=e.containerRef,r=e.onClick,i=void 0===r?function(){}:r;return a.default.createElement("div",{ref:n,className:o.default.toast,onClick:i,"data-testid":"toast"},t)}},function(e,t,n){"use strict";n.r(t),t.default={toast:"_2N3XiH8RVnEAYlzBD_JCqZ",entrance:"_19cw3zx6fU4RMGMaGM5zJZ"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(70));t.default=function(e){var t=e.children;return a.default.createElement("div",{className:o.default([i.default.toastContainer]),"data-testid":"toast-container"},t)}},function(e,t,n){"use strict";n.r(t),t.default={toastContainer:"_3RT2abfzK0rt-YjcrqXLnr"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Video=void 0;var a=n(72);Object.defineProperty(t,"Video",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(73));t.default=function(e){var t=e.src,n=e.type,r=e.children,u=e.containerRef,l=e.muted,d=void 0===l||l,f=e.loop,c=void 0===f||f,s=e.autoPlay,v=void 0===s||s,_=e.layout,p=void 0===_?"contain":_;return r?a.default.createElement("div",{ref:u,className:o.default([i.default.container,i.default.hasOverlay])},a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([i.default.video,i.default[p]]),muted:d,loop:c,autoPlay:v,playsInline:!0},a.default.createElement("source",{"data-testid":"source",src:t,type:n})),r&&a.default.createElement("div",{className:i.default.overlay},r)):a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([i.default.video,i.default[p]]),muted:d,loop:c,autoPlay:v,playsInline:!0},a.default.createElement("source",{"data-testid":"source",src:t,type:n}))}},function(e,t,n){"use strict";n.r(t),t.default={container:"_1d55wXuQKpt97PqQHYx5mW",hasOverlay:"_2DAM1x7P1wuYNP8TDmXGXc",video:"_3jQ_qpULtr0uFSTWbD0NVZ",cover:"_1qnVLheGzDI6No9_nwb7hl",contain:"_1X286NISI0wq2KK3djVhu3",stretchHorizontally:"Oegl-8gd2K5lz3mUGJ_Uz",stretchVertically:"_1-HzpTY_WtGcZc25wCoteY",overlay:"_2TvXsqAIUnGSqm6knJFhL3"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.useOutsideClick=t.useToggle=void 0;var a=n(75);Object.defineProperty(t,"useToggle",{enumerable:!0,get:function(){return r(a).default}});var o=n(76);Object.defineProperty(t,"useOutsideClick",{enumerable:!0,get:function(){return r(o).default}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default=function(e){void 0===e&&(e=!1);var t=r.useState(e),n=t[0],a=t[1];return[n,r.useCallback((function(e){a("boolean"==typeof e?e:function(e){return!e})}),[n])]}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default=function(e){var t=r.useRef();return r.useEffect((function(){var n=function(n){t.current&&!t.current.contains(n.target)&&e(n)};return document.addEventListener("click",n),document.addEventListener("touchstart",n),function(){document.removeEventListener("click",n),document.removeEventListener("touchstart",n)}}),[e]),t}},function(e,t,n){"use strict";n.r(t),n.d(t,"useHotkeys",(function(){return x})),n.d(t,"useIsHotkeyPressed",(function(){return C}));
2
2
  /*!
3
3
  * hotkeys-js v3.8.1
4
4
  * A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.
@@ -8,5 +8,5 @@
8
8
  *
9
9
  * Licensed under the MIT license.
10
10
  */
11
- var r="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function a(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on".concat(t),(function(){n(window.event)}))}function o(e,t){for(var n=t.slice(0,t.length-1),r=0;r<n.length;r++)n[r]=e[n[r].toLowerCase()];return n}function i(e){"string"!=typeof e&&(e="");for(var t=(e=e.replace(/\s/g,"")).split(","),n=t.lastIndexOf("");n>=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}for(var u={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,"⇪":20,",":188,".":190,"/":191,"`":192,"-":r?173:189,"=":r?61:187,";":r?59:186,"'":222,"[":219,"]":221,"\\":220},l={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},d={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},f={16:!1,18:!1,17:!1,91:!1},c={},s=1;s<20;s++)u["f".concat(s)]=111+s;var v=[],_="all",p=[],m=function(e){return u[e.toLowerCase()]||l[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function h(e){_=e||"all"}function y(){return _||"all"}var b=function(e){var t=e.key,n=e.scope,r=e.method,a=e.splitKey,u=void 0===a?"+":a;i(t).forEach((function(e){var t=e.split(u),a=t.length,i=t[a-1],d="*"===i?"*":m(i);if(c[d]){n||(n=y());var f=a>1?o(l,t):[];c[d]=c[d].map((function(e){return(!r||e.method===r)&&e.scope===n&&function(e,t){for(var n=e.length>=t.length?e:t,r=e.length>=t.length?t:e,a=!0,o=0;o<n.length;o++)-1===r.indexOf(n[o])&&(a=!1);return a}(e.mods,f)?{}:e}))}}))};function g(e,t,n){var r;if(t.scope===n||"all"===t.scope){for(var a in r=t.mods.length>0,f)Object.prototype.hasOwnProperty.call(f,a)&&(!f[a]&&t.mods.indexOf(+a)>-1||f[a]&&-1===t.mods.indexOf(+a))&&(r=!1);(0!==t.mods.length||f[16]||f[18]||f[17]||f[91])&&!r&&"*"!==t.shortcut||!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function O(e){var t=c["*"],n=e.keyCode||e.which||e.charCode;if(P.filter.call(this,e)){if(93!==n&&224!==n||(n=91),-1===v.indexOf(n)&&229!==n&&v.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach((function(t){var n=d[t];e[t]&&-1===v.indexOf(n)?v.push(n):!e[t]&&v.indexOf(n)>-1?v.splice(v.indexOf(n),1):"metaKey"===t&&e[t]&&3===v.length&&(e.ctrlKey||e.shiftKey||e.altKey||(v=v.slice(v.indexOf(n))))})),n in f){for(var r in f[n]=!0,l)l[r]===n&&(P[r]=!0);if(!t)return}for(var a in f)Object.prototype.hasOwnProperty.call(f,a)&&(f[a]=e[d[a]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===v.indexOf(17)&&v.push(17),-1===v.indexOf(18)&&v.push(18),f[17]=!0,f[18]=!0);var o=y();if(t)for(var i=0;i<t.length;i++)t[i].scope===o&&("keydown"===e.type&&t[i].keydown||"keyup"===e.type&&t[i].keyup)&&g(e,t[i],o);if(n in c)for(var u=0;u<c[n].length;u++)if(("keydown"===e.type&&c[n][u].keydown||"keyup"===e.type&&c[n][u].keyup)&&c[n][u].key){for(var s=c[n][u],_=s.splitKey,p=s.key.split(_),h=[],b=0;b<p.length;b++)h.push(m(p[b]));h.sort().join("")===v.sort().join("")&&g(e,s,o)}}}function P(e,t,n){v=[];var r=i(e),u=[],d="all",s=document,_=0,h=!1,y=!0,b="+";for(void 0===n&&"function"==typeof t&&(n=t),"[object Object]"===Object.prototype.toString.call(t)&&(t.scope&&(d=t.scope),t.element&&(s=t.element),t.keyup&&(h=t.keyup),void 0!==t.keydown&&(y=t.keydown),"string"==typeof t.splitKey&&(b=t.splitKey)),"string"==typeof t&&(d=t);_<r.length;_++)u=[],(e=r[_].split(b)).length>1&&(u=o(l,e)),(e="*"===(e=e[e.length-1])?"*":m(e))in c||(c[e]=[]),c[e].push({keyup:h,keydown:y,scope:d,mods:u,shortcut:r[_],method:n,key:r[_],splitKey:b});void 0!==s&&!function(e){return p.indexOf(e)>-1}(s)&&window&&(p.push(s),a(s,"keydown",(function(e){O(e)})),a(window,"focus",(function(){v=[]})),a(s,"keyup",(function(e){O(e),function(e){var t=e.keyCode||e.which||e.charCode,n=v.indexOf(t);if(n>=0&&v.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&v.splice(0,v.length),93!==t&&224!==t||(t=91),t in f)for(var r in f[t]=!1,l)l[r]===t&&(P[r]=!1)}(e)})))}var j={setScope:h,getScope:y,deleteScope:function(e,t){var n,r;for(var a in e||(e=y()),c)if(Object.prototype.hasOwnProperty.call(c,a))for(n=c[a],r=0;r<n.length;)n[r].scope===e?n.splice(r,1):r++;y()===e&&h(t||"all")},getPressedKeyCodes:function(){return v.slice(0)},isPressed:function(e){return"string"==typeof e&&(e=m(e)),-1!==v.indexOf(e)},filter:function(e){var t=e.target||e.srcElement,n=t.tagName,r=!0;return!t.isContentEditable&&("INPUT"!==n&&"TEXTAREA"!==n&&"SELECT"!==n||t.readOnly)||(r=!1),r},unbind:function(e){if(e){if(Array.isArray(e))e.forEach((function(e){e.key&&b(e)}));else if("object"==typeof e)e.key&&b(e);else if("string"==typeof e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var a=n[0],o=n[1];"function"==typeof a&&(o=a,a=""),b({key:e,scope:a,method:o,splitKey:"+"})}}else Object.keys(c).forEach((function(e){return delete c[e]}))}};for(var M in j)Object.prototype.hasOwnProperty.call(j,M)&&(P[M]=j[M]);if("undefined"!=typeof window){var w=window.hotkeys;P.noConflict=function(e){return e&&window.hotkeys===P&&(window.hotkeys=w),P},window.hotkeys=P}var E=P,k=n(0);function C(){return E.isPressed}function S(e,t,n,r){n instanceof Array&&(r=n,n=void 0);var a=n||{},o=a.enableOnTags,i=a.filter,u=a.keyup,l=a.keydown,d=Object(k.useRef)(null),f=Object(k.useCallback)((function(e,n){return(null===d.current||document.activeElement===d.current)&&(t(e,n),!0)}),r?[d].concat(r):[d]);return Object(k.useEffect)((function(){return n&&n.enableOnTags&&(E.filter=function(e){var t=e.target,n=e.srcElement,r=t&&t.tagName||n&&n.tagName;return Boolean(r&&o&&o.includes(r))}),i&&(E.filter=i),u&&!0!==l&&(n.keydown=!1),E(e,n||{},f),function(){return E.unbind(e,f)}}),[f,n,o,i,e]),d}}]));
12
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xhc3NjYXQvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3M/OWE0ZSIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uQmFkZ2UvQnV0dG9uQmFkZ2UudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL0J1dHRvbkJhZGdlLm1vZHVsZS5jc3M/MzJhYiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLm1vZHVsZS5jc3M/Y2Q0NiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvQnV0dG9uTGluay5tb2R1bGUuY3NzPzA4NDEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL0xhYmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tb2R1bGUuY3NzPzFmMTEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gubW9kdWxlLmNzcz80ZWViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclN3YXRjaC9Db2xvclN3YXRjaC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcz8yM2ViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLm1vZHVsZS5jc3M/ZTE4OCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvTW9kYWwudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vZGFsL01vZGFsLm1vZHVsZS5jc3M/MGVkZiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzPzI3YjMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWwvRmxvYXRpbmdQYW5lbC5tb2R1bGUuY3NzPzdhYmYiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbi9JY29uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uL0ljb24ubW9kdWxlLmNzcz85YjkzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL0ljb25CdXR0b24ubW9kdWxlLmNzcz9kMjhkIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b25MaW5rL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b25MaW5rL0ljb25CdXR0b25MaW5rLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay5tb2R1bGUuY3NzP2NjMzciLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSW1hZ2UvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSW1hZ2UvSW1hZ2UudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL0ltYWdlLm1vZHVsZS5jc3M/OTVhNyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlldy50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcubW9kdWxlLmNzcz80NjRlIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3SXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdMaW5rSXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnUudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudS5tb2R1bGUuY3NzPzM3MDkiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Q29udGFpbmVyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVDb250YWluZXIubW9kdWxlLmNzcz85NmQyIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUl0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUl0ZW0ubW9kdWxlLmNzcz81MDQ5Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUxpbmtJdGVtLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVMaW5rSXRlbS5tb2R1bGUuY3NzPzA0MjciLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL092ZXJsYXkvT3ZlcmxheS5tb2R1bGUuY3NzPzIxYzUiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVGV4dElucHV0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQubW9kdWxlLmNzcz9jZDM2Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdC5tb2R1bGUuY3NzP2NmNjEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3RDb250YWluZXIudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0Q29udGFpbmVyLm1vZHVsZS5jc3M/OWEzNiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9WaWRlby50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vVmlkZW8ubW9kdWxlLmNzcz9lMjIzIiwid2VicGFjazovLy8uL3NyYy9ob29rcy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvdXNlVG9nZ2xlLnRzIiwid2VicGFjazovLy8uL3NyYy9ob29rcy91c2VPdXRzaWRlQ2xpY2sudHMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2hvdGtleXMtanMvZGlzdC9ob3RrZXlzLmVzbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaG90a2V5cy1ob29rL2Rpc3QvcmVhY3QtaG90a2V5cy1ob29rLmVzbS5qcyJdLCJuYW1lcyI6WyJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiZXhwb3J0cyIsIm1vZHVsZSIsImkiLCJsIiwibW9kdWxlcyIsImNhbGwiLCJtIiwiYyIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsInIiLCJTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsInZhbHVlIiwidCIsIm1vZGUiLCJfX2VzTW9kdWxlIiwibnMiLCJjcmVhdGUiLCJrZXkiLCJiaW5kIiwibiIsIm9iamVjdCIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJwIiwicyIsInJlcXVpcmUiLCJpc0FycmF5IiwiQXJyYXkiLCJjYyIsIm9iaiIsIm91dCIsInRtcCIsImsiLCJsZW5ndGgiLCJkZWZhdWx0IiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJidXR0b25CYWRnZSIsIm9uQ2xpY2siLCJjb250YWluZXJSZWYiLCJkaXNhYmxlZCIsImludmVydGVkIiwicm91bmRlZCIsIm5vU2hhZG93Iiwibm9QYWRkaW5nIiwibm9Cb3JkZXIiLCJ0cmFuc3BhcmVudCIsInN0cmV0Y2hIb3Jpem9udGFsbHkiLCJzdHJldGNoVmVydGljYWxseSIsIm9mZnNldFNpZGVzIiwiYWxpZ24iLCJzaXplIiwidHlwZSIsInJlZiIsImNvbnRhaW5lciIsImxlZnRPZmZzZXQiLCJpbmNsdWRlcyIsInJpZ2h0T2Zmc2V0Iiwicm9sZSIsImNvbnRlbnQiLCJDb21wb25lbnQiLCJwcm9wcyIsImxhYmVsIiwib25DaGFuZ2UiLCJwbGFjZWhvbGRlciIsImNoZWNrZWQiLCJpbmRldGVybWluYXRlIiwiYXV0b0ZvY3VzIiwiaGFuZGxlQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJlIiwidGFyZ2V0IiwiTGFiZWwiLCJpbnB1dFJlZiIsImlucHV0IiwiY29sb3JzIiwib25TZWxlY3QiLCJzZWxlY3RlZENvbG9yIiwiZGlyZWN0aW9uIiwiY29sb3JQaWNrZXIiLCJtYXAiLCJjb2xvciIsIkNvbG9yU3dhdGNoIiwiaXNTZWxlY3RlZCIsImNvbG9yU3dhdGNoIiwic2VsZWN0ZWQiLCJzdHlsZSIsImJhY2tncm91bmRDb2xvciIsImhleENvZGUiLCJzck9ubHkiLCJDb25maXJtYXRpb25Nb2RhbCIsImhlYWRlciIsImlzT3BlbiIsImJ1dHRvbnNMZWZ0IiwiYnV0dG9uc1JpZ2h0Iiwib25DbG9zZSIsIk1vZGFsIiwibW9kYWxIZWFkZXIiLCJtb2RhbENvbnRlbnQiLCJtb2RhbEJ1dHRvbnNDb250YWluZXIiLCJtb2RhbEJ1dHRvbnMiLCJkaXNwbGF5TmFtZSIsImJ1dHRvbiIsInVzZUhvdGtleXMiLCJoYW5kbGVPdmVybGF5Q2xpY2siLCJvdmVybGF5IiwibW9kYWwiLCJtb2RhbEJ1dHRvbiIsImxheW91dCIsInBsYWNlbWVudCIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCIsInBhcmVudCIsImhvcml6b250YWxQbGFjZW1lbnQiLCJ2ZXJ0aWNhbFBsYWNlbWVudCIsImZpeGVkIiwic3JjIiwiYWx0IiwiaWNvbiIsImNyb3NzT3JpZ2luIiwiYmFkZ2VDb250ZW50IiwidG9wT2Zmc2V0IiwiYm90dG9tT2Zmc2V0IiwiSWNvbiIsIkJ1dHRvbkJhZGdlIiwiZW1wdHlJbWFnZSIsInNyY1dpZHRoIiwic3JjSGVpZ2h0IiwiYW5pbWF0aW9uIiwidXNlU3RhdGUiLCJpc0xvYWRlZCIsInNldElzTG9hZGVkIiwiaW1hZ2VSZWYiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJpbWFnZSIsIkltYWdlIiwib25sb2FkIiwiY3VycmVudCIsInNldEF0dHJpYnV0ZSIsImhhc092ZXJsYXkiLCJmYWRlSW4iLCJzY2FsZVVwIiwid2lkdGgiLCJoZWlnaHQiLCJoZWFkZXJBY3Rpb25zIiwiaGVhZGVyTGFiZWwiLCJsaXN0IiwiYWN0aXZlIiwibGlzdFZpZXdJdGVtIiwiQnV0dG9uIiwiQnV0dG9uTGluayIsImFzIiwibWVudSIsIm9wZW4iLCJtZW51SGVhZGVyIiwiZm9yd2FyZFJlZiIsIm1lbnVDb250YWluZXIiLCJpc0FjdGl2ZSIsIm1lbnVJdGVtIiwibWVudUxpbmtJdGVtIiwiaXNGaXhlZCIsImlucHV0RWxlbWVudCIsInRleHRJbnB1dCIsInVuZGVmaW5lZCIsInRvYXN0IiwidG9hc3RDb250YWluZXIiLCJtdXRlZCIsImxvb3AiLCJhdXRvUGxheSIsInZpZGVvIiwicGxheXNJbmxpbmUiLCJpbml0aWFsVmFsdWUiLCJzZXRWYWx1ZSIsIm5ld1ZhbHVlIiwicHJldlZhbHVlIiwiY2FsbGJhY2siLCJoYW5kbGVDbGljayIsImV2ZW50IiwiY29udGFpbnMiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaXNmZiIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsImFkZEV2ZW50IiwibWV0aG9kIiwiYXR0YWNoRXZlbnQiLCJjb25jYXQiLCJ3aW5kb3ciLCJnZXRNb2RzIiwibW9kaWZpZXIiLCJtb2RzIiwic2xpY2UiLCJnZXRLZXlzIiwia2V5cyIsInJlcGxhY2UiLCJzcGxpdCIsImluZGV4IiwibGFzdEluZGV4T2YiLCJzcGxpY2UiLCJfa2V5TWFwIiwiYmFja3NwYWNlIiwidGFiIiwiY2xlYXIiLCJlbnRlciIsInJldHVybiIsImVzYyIsImVzY2FwZSIsInNwYWNlIiwibGVmdCIsInVwIiwicmlnaHQiLCJkb3duIiwiZGVsIiwiZGVsZXRlIiwiaW5zIiwiaW5zZXJ0IiwiaG9tZSIsImVuZCIsInBhZ2V1cCIsInBhZ2Vkb3duIiwiY2Fwc2xvY2siLCInIiwiX21vZGlmaWVyIiwic2hpZnQiLCJvcHRpb24iLCJjdHJsIiwiY29udHJvbCIsImNtZCIsImNvbW1hbmQiLCJtb2RpZmllck1hcCIsIjE2IiwiMTgiLCIxNyIsIjkxIiwic2hpZnRLZXkiLCJjdHJsS2V5IiwiYWx0S2V5IiwibWV0YUtleSIsIl9tb2RzIiwiX2hhbmRsZXJzIiwiX2Rvd25LZXlzIiwiX3Njb3BlIiwiZWxlbWVudEhhc0JpbmRFdmVudCIsImNvZGUiLCJ4IiwidG9VcHBlckNhc2UiLCJjaGFyQ29kZUF0Iiwic2V0U2NvcGUiLCJzY29wZSIsImdldFNjb3BlIiwiZWFjaFVuYmluZCIsIl9yZWYiLCJfcmVmJHNwbGl0S2V5Iiwic3BsaXRLZXkiLCJmb3JFYWNoIiwib3JpZ2luS2V5IiwidW5iaW5kS2V5cyIsImxlbiIsImxhc3RLZXkiLCJrZXlDb2RlIiwicmVjb3JkIiwiYTEiLCJhMiIsImFycjEiLCJhcnIyIiwiaXNJbmRleCIsImNvbXBhcmVBcnJheSIsImV2ZW50SGFuZGxlciIsImhhbmRsZXIiLCJtb2RpZmllcnNNYXRjaCIsInkiLCJzaG9ydGN1dCIsInByZXZlbnREZWZhdWx0IiwicmV0dXJuVmFsdWUiLCJzdG9wUHJvcGFnYXRpb24iLCJjYW5jZWxCdWJibGUiLCJkaXNwYXRjaCIsImFzdGVyaXNrIiwid2hpY2giLCJjaGFyQ29kZSIsImhvdGtleXMiLCJmaWx0ZXIiLCJ0aGlzIiwicHVzaCIsImtleU5hbWUiLCJrZXlOdW0iLCJnZXRNb2RpZmllclN0YXRlIiwia2V5ZG93biIsImtleXVwIiwiX2kiLCJrZXlTaG9ydGN1dCIsIl9kb3duS2V5c0N1cnJlbnQiLCJhIiwic29ydCIsImpvaW4iLCJlbGVtZW50IiwidG9TdHJpbmciLCJpc0VsZW1lbnRCaW5kIiwiY2xlYXJNb2RpZmllciIsIl9hcGkiLCJkZWxldGVTY29wZSIsIm5ld1Njb3BlIiwiaGFuZGxlcnMiLCJnZXRQcmVzc2VkS2V5Q29kZXMiLCJpc1ByZXNzZWQiLCJzcmNFbGVtZW50IiwidGFnTmFtZSIsImZsYWciLCJpc0NvbnRlbnRFZGl0YWJsZSIsInJlYWRPbmx5IiwidW5iaW5kIiwia2V5c0luZm8iLCJpbmZvIiwiX2xlbiIsImFyZ3VtZW50cyIsImFyZ3MiLCJfa2V5IiwiX2hvdGtleXMiLCJub0NvbmZsaWN0IiwiZGVlcCIsInVzZUlzSG90a2V5UHJlc3NlZCIsIm9wdGlvbnMiLCJkZXBzIiwiZW5hYmxlT25UYWdzIiwibWVtb2lzZWRDYWxsYmFjayIsImtleWJvYXJkRXZlbnQiLCJob3RrZXlzRXZlbnQiLCJhY3RpdmVFbGVtZW50IiwiX3JlZjIiLCJ0YXJnZXRUYWdOYW1lIiwiQm9vbGVhbiJdLCJtYXBwaW5ncyI6IjZE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RW5Cd0IsRUFBZ0J2USxHQUFVQSxFQUFPZ1AsU0FBV0QsR0FBY0EsRUFBV0MsUUFDekUsT0FBT3dCLFFBQVFELEdBQWlCTixHQUFnQkEsRUFBYWhSLFNBQVNzUixNQUl0RWhELElBQVEsRUFBUUEsT0FBU0EsR0FFekJPLElBQXFCLElBQVpELElBQ1hrQyxFQUFRbEMsU0FBVSxHQUdwQixFQUFROUYsRUFBTWdJLEdBQVcsR0FBSUcsR0FDdEIsV0FDTCxPQUFPLEVBQVFkLE9BQU9ySCxFQUFNbUksTUFFN0IsQ0FBQ0EsRUFBa0JILEVBQVNFLEVBQWMxQyxFQUFReEYsSUFDOUNqSiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAxMCk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJ2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY2Mob2JqKSB7XG4gIHZhciBvdXQgPSBcIlwiXG5cbiAgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJudW1iZXJcIikgcmV0dXJuIG9iaiB8fCBcIlwiXG5cbiAgaWYgKGlzQXJyYXkob2JqKSlcbiAgICBmb3IgKHZhciBrID0gMCwgdG1wOyBrIDwgb2JqLmxlbmd0aDsgaysrKSB7XG4gICAgICBpZiAoKHRtcCA9IGNjKG9ialtrXSkpICE9PSBcIlwiKSB7XG4gICAgICAgIG91dCArPSAob3V0ICYmIFwiIFwiKSArIHRtcFxuICAgICAgfVxuICAgIH1cbiAgZWxzZVxuICAgIGZvciAodmFyIGsgaW4gb2JqKSB7XG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGspICYmIG9ialtrXSkgb3V0ICs9IChvdXQgJiYgXCIgXCIpICsga1xuICAgIH1cblxuICByZXR1cm4gb3V0XG59XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEJ1dHRvbkJhZGdlIH0gZnJvbSBcIi4vQnV0dG9uQmFkZ2VcIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTGFiZWwgfSBmcm9tIFwiLi9MYWJlbFwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uIH0gZnJvbSBcIi4vSWNvblwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b24gfSBmcm9tIFwiLi9CdXR0b25cIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uTGluayB9IGZyb20gXCIuL0J1dHRvbkxpbmtcIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sb3JTd2F0Y2ggfSBmcm9tIFwiLi9Db2xvclN3YXRjaFwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBNb2RhbCB9IGZyb20gXCIuL01vZGFsXCI7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImxpc3RWaWV3SXRlbVwiOlwiXzFmajJhbmllUTBKS3hDQVprU2FhcGtcIn07IiwiZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9CdXR0b25CYWRnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9CdXR0b25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uTGlua1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9DaGVja2JveFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclBpY2tlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclN3YXRjaFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ljb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvSWNvbkJ1dHRvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JY29uQnV0dG9uTGlua1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JbWFnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9MaXN0Vmlld1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9NZW51XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL01vZGFsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL092ZXJsYXlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvTGFiZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVGV4dElucHV0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL1RvYXN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL1ZpZGVvXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ob29rc1wiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0J1dHRvbkJhZGdlLm1vZHVsZS5jc3NcIjtcblxudHlwZSBCdXR0b25CYWRnZVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBCdXR0b25CYWRnZSh7IGNoaWxkcmVuLCBjbGFzc05hbWUgfTogQnV0dG9uQmFkZ2VQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmJ1dHRvbkJhZGdlLCBjbGFzc05hbWVdKX0+e2NoaWxkcmVufTwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBCdXR0b25CYWRnZTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiYnV0dG9uQmFkZ2VcIjpcIl8xVWxZRkVHYzNkTWd0b05pbDZTT3g1XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9CdXR0b24ubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgQnV0dG9uU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG50eXBlIEJ1dHRvblByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICByb3VuZGVkPzogYm9vbGVhbjtcbiAgbm9TaGFkb3c/OiBib29sZWFuO1xuICBub1BhZGRpbmc/OiBib29sZWFuO1xuICBub0JvcmRlcj86IGJvb2xlYW47XG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgc3RyZXRjaEhvcml6b250YWxseT86IGJvb2xlYW47XG4gIHN0cmV0Y2hWZXJ0aWNhbGx5PzogYm9vbGVhbjtcbiAgb25DbGljaz86IChldmVudD86IFN5bnRoZXRpY0V2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4gdm9pZDtcbiAgc2l6ZT86IEJ1dHRvblNpemU7XG4gIHR5cGU/OiBcInN1Ym1pdFwiIHwgXCJyZXNldFwiIHwgXCJidXR0b25cIjtcbiAgYWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCI7XG4gIG9mZnNldFNpZGVzPzogQXJyYXk8XCJsZWZ0XCIgfCBcInJpZ2h0XCI+O1xufTtcblxuZnVuY3Rpb24gQnV0dG9uKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgb25DbGljayxcbiAgY29udGFpbmVyUmVmLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBpbnZlcnRlZCA9IGZhbHNlLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBub0JvcmRlciA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBzdHJldGNoSG9yaXpvbnRhbGx5ID0gZmFsc2UsXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5ID0gZmFsc2UsXG4gIG9mZnNldFNpZGVzID0gW10sXG4gIGFsaWduID0gXCJjZW50ZXJcIixcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIHR5cGUsXG59OiBCdXR0b25Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAgc3R5bGVzW2FsaWduXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoVmVydGljYWxseV06IHN0cmV0Y2hWZXJ0aWNhbGx5LFxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIHR5cGU9e3R5cGV9XG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICB7dHlwZW9mIGNoaWxkcmVuICE9PSBcInN0cmluZ1wiICYmXG4gICAgICBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSAmJlxuICAgICAgY2hpbGRyZW4ubGVuZ3RoID8gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRlbnR9PntjaGlsZHJlbn08L2Rpdj5cbiAgICAgICkgOiAoXG4gICAgICAgIGNoaWxkcmVuXG4gICAgICApfVxuICAgIDwvYnV0dG9uPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBCdXR0b247XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzEydzVXT0YzS3NhMkpCNS1ZT1h5RDdcIixcImxlZnRcIjpcIl8yVEZWNzJEclF4NUpHU2hOY3V0NEUtXCIsXCJzbWFsbFwiOlwidVRCcmNqcEhwOTZSQ3dGNVVEemYwXCIsXCJsYXJnZVwiOlwiXzE0U1NmczVTVldLN054dVpCcU1nekJcIixcInhsYXJnZVwiOlwiXzFTUXUyUVd3MmE3ZXc0N1dXMTJaU2dcIixcImludmVydGVkXCI6XCJfMmhaaGhpOEJnRV9la1FWbjllWDlEWFwiLFwicm91bmRlZFwiOlwiVkJET1NjWWNRblUyZXl0a0FfUGM2XCIsXCJyaWdodE9mZnNldFwiOlwiXzJHVFkzWG1hT3U5MjNNOXNFUnM2YWtcIixcImxlZnRPZmZzZXRcIjpcIl8xNVEwR0drZ1lKX2FMbTAxbkdFNVloXCIsXCJub1NoYWRvd1wiOlwiUmV3bURxanA2blVlRVlIRUt6VEpEXCIsXCJub0JvcmRlclwiOlwiblpxSVVQVDhjWjg3Qlc0cjhreFVcIixcInRyYW5zcGFyZW50XCI6XCJfNjY5bFI0eTJBSDk3QTFseTVNWVdPXCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJfM2ljdXRYSHd6SWlvd3Q3YlZhM1lpYlwiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8ya0NreFBrcGxQMXhxamZrZXBveU5wXCIsXCJub1BhZGRpbmdcIjpcIl8za05iQ2djSS1SX0ZGUS0zTzZUMGxhXCIsXCJjb250ZW50XCI6XCJfMmJGMUFTY0V4c2t1T3B1emQtY0RfNlwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBFbGVtZW50VHlwZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQnV0dG9uTGluay5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBCdXR0b25TaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgT2Zmc2V0U2lkZSA9IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuXG50eXBlIEJ1dHRvbkxpbmtQcm9wcyA9XG4gIHwge1xuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xuICAgICAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICAgICAgcm91bmRlZD86IGJvb2xlYW47XG4gICAgICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gICAgICBub1NoYWRvdz86IGJvb2xlYW47XG4gICAgICBub1BhZGRpbmc/OiBib29sZWFuO1xuICAgICAgbm9Cb3JkZXI/OiBib29sZWFuO1xuICAgICAgc3RyZXRjaEhvcml6b250YWxseT86IGJvb2xlYW47XG4gICAgICBzdHJldGNoVmVydGljYWxseT86IGJvb2xlYW47XG4gICAgICBzaXplPzogQnV0dG9uU2l6ZTtcbiAgICAgIG9mZnNldFNpZGVzPzogQXJyYXk8T2Zmc2V0U2lkZT47XG4gICAgICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBCdXR0b25MaW5rKHtcbiAgYXM6IENvbXBvbmVudCxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgc2l6ZSxcbiAgY29udGFpbmVyUmVmLFxuICBpbnZlcnRlZCA9IGZhbHNlLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBub0JvcmRlciA9IGZhbHNlLFxuICBzdHJldGNoSG9yaXpvbnRhbGx5ID0gZmFsc2UsXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5ID0gZmFsc2UsXG4gIG9mZnNldFNpZGVzID0gW10sXG4gIGFsaWduID0gXCJjZW50ZXJcIixcbiAgLi4ucHJvcHNcbn06IEJ1dHRvbkxpbmtQcm9wcykge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIENvbXBvbmVudCA9IFwiYVwiO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29tcG9uZW50XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGRhdGEtdGVzdGlkPVwiYnV0dG9uLWxpbmtcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAgc3R5bGVzW2FsaWduXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoVmVydGljYWxseV06IHN0cmV0Y2hWZXJ0aWNhbGx5LFxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHt0eXBlb2YgY2hpbGRyZW4gIT09IFwic3RyaW5nXCIgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pICYmXG4gICAgICBjaGlsZHJlbi5sZW5ndGggPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGVudH0+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgICl9XG4gICAgPC9Db21wb25lbnQ+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbkxpbms7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzJRdTlSYUc1NXBXeUphVF9fM19vRkFcIixcImxlZnRcIjpcIl8zbngzZ05Qemo2TFRfMWh3blFIeE9KXCIsXCJzbWFsbFwiOlwiXzJMdl82eHgyR2wzMzVLVDlJb29qM2dcIixcIm1lZGl1bVwiOlwiXzNIeDhwaGF6M3pMcU5zZUFwTklXWkhcIixcImxhcmdlXCI6XCJfMi1PRVlGb0l2bHM0TjJDUnVZLWVKclwiLFwieGxhcmdlXCI6XCJfNnhGWUFQQVB3QVdsaG0wZ2R0b1pSXCIsXCJpbnZlcnRlZFwiOlwiXzJwRUdpSzNLdVBuRXZ3aU9DRGdGRGFcIixcInJvdW5kZWRcIjpcIl8xenlWS3Ntb3pQUnRMSER0X2o2MTROXCIsXCJyaWdodE9mZnNldFwiOlwiXzFyWXZ0cW5aeUk0UnJ1bEM3S0djb3VcIixcImxlZnRPZmZzZXRcIjpcIl8zVHI3ZU80RXMxQm90aDJLX3NpVEFOXCIsXCJub1NoYWRvd1wiOlwiXzJ3WjNHSUkzb05kOElYN2FnYS1hTXVcIixcInRyYW5zcGFyZW50XCI6XCJfMVRLZ3BTWWxfQTBJU2tCY1Qxamx5N1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzNwMlRZNG5vZFZpdTlqeC1MekdDTmVcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfM2dFd2tScHJuU19JUkV1M0t0TnpNRFwiLFwibm9QYWRkaW5nXCI6XCJfMkpwS0pydW1BVGNUVFJUN3hpZmY5aVwiLFwibm9Cb3JkZXJcIjpcIl8xUDNQMjc0d291NmxFQTg3ZzZyRlYyXCIsXCJjb250ZW50XCI6XCJzTkRycTNjWDZJNlEtT3V1c3o3VGlcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja2JveCB9IGZyb20gXCIuL0NoZWNrYm94XCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gXCIuLi9MYWJlbFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9DaGVja2JveC5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplLCBUZXh0SW5wdXRUeXBlIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQ2hlY2tib3hQcm9wcyA9IHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBjaGVja2VkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBuYW1lPzogc3RyaW5nO1xuICBzaXplPzogU2l6ZTtcbiAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XG59O1xuXG5mdW5jdGlvbiBDaGVja2JveCh7XG4gIGxhYmVsLFxuICBvbkNoYW5nZSxcbiAgcGxhY2Vob2xkZXIsXG4gIGNoZWNrZWQsXG4gIGRpc2FibGVkLFxuICBuYW1lLFxuICBpbmRldGVybWluYXRlLFxuICBzaXplID0gXCJzbWFsbFwiLFxuICBhdXRvRm9jdXMgPSBmYWxzZSxcbn06IENoZWNrYm94UHJvcHMpIHtcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IFJlYWN0LkZvcm1FdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgICAgIG9uQ2hhbmdlKChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkKSxcbiAgICBbb25DaGFuZ2VdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8TGFiZWwgdmFsdWU9e2xhYmVsfT5cbiAgICAgIDxpbnB1dFxuICAgICAgICBkYXRhLXRlc3RpZD1cImNoZWNrYm94XCJcbiAgICAgICAgcmVmPXsoaW5wdXRSZWYpID0+IHtcbiAgICAgICAgICBpZiAoaW5wdXRSZWYpIHtcbiAgICAgICAgICAgIGlucHV0UmVmLmluZGV0ZXJtaW5hdGUgPSBpbmRldGVybWluYXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgY2hlY2tlZD17Y2hlY2tlZH1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuaW5wdXQsIHN0eWxlc1tzaXplXV0pfVxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgICAgLz5cbiAgICA8L0xhYmVsPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDaGVja2JveDtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xhYmVsLm1vZHVsZS5jc3NcIjtcblxudHlwZSBMYWJlbElucHV0UHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTExhYmVsRWxlbWVudD47XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBMYWJlbCh7IGNoaWxkcmVuLCB2YWx1ZSwgY29udGFpbmVyUmVmIH06IExhYmVsSW5wdXRQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxsYWJlbCByZWY9e2NvbnRhaW5lclJlZn0gY2xhc3NOYW1lPXtzdHlsZXMuY29udGFpbmVyfT5cbiAgICAgIHt2YWx1ZX1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2xhYmVsPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMYWJlbDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMTVEYnNfWDVJVDl0a21Bc01YUE5WSlwifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImlucHV0XCI6XCJfMXAyaG1qbU0xcU5aVFpJaUZIRkl4dVwiLFwic21hbGxcIjpcIl8xSmlfXzlVLUQ1VWRXMk5KV1dVUHJDXCIsXCJtZWRpdW1cIjpcIl8zS0pTMkZSUzJ0ZDkwUXI2cjMzTDI4XCIsXCJsYXJnZVwiOlwiXzFqN29kQ0VFWDJEa2dncEladUY0TUlcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xvclBpY2tlciB9IGZyb20gXCIuL0NvbG9yUGlja2VyXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IENvbG9yU3dhdGNoIH0gZnJvbSBcIi4uL0NvbG9yU3dhdGNoXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbG9yUGlja2VyLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IENvbG9yIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQ29sb3JQaWNrZXJQcm9wcyA9IHtcbiAgY29sb3JzOiBDb2xvcltdO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBkaXJlY3Rpb24/OiBcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIjtcbiAgb25TZWxlY3Q6IChjb2xvcjogQ29sb3IpID0+IHZvaWQ7XG4gIHNlbGVjdGVkQ29sb3I/OiBDb2xvcjtcbn07XG5cbmZ1bmN0aW9uIENvbG9yUGlja2VyKHtcbiAgY29sb3JzLFxuICBjb250YWluZXJSZWYsXG4gIG9uU2VsZWN0LFxuICBzZWxlY3RlZENvbG9yLFxuICBkaXJlY3Rpb24gPSBcInZlcnRpY2FsXCIsXG59OiBDb2xvclBpY2tlclByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29sb3JQaWNrZXIsIHN0eWxlc1tkaXJlY3Rpb25dXSl9XG4gICAgPlxuICAgICAge2NvbG9ycy5tYXAoKGNvbG9yOiBDb2xvcikgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxDb2xvclN3YXRjaFxuICAgICAgICAgICAga2V5PXtjb2xvci5rZXl9XG4gICAgICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgICAgICBpc1NlbGVjdGVkPXtjb2xvciA9PT0gc2VsZWN0ZWRDb2xvcn1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2VsZWN0KGNvbG9yKX1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbG9yUGlja2VyO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbG9yU3dhdGNoLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IENvbG9yIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQ29sb3JTd2F0Y2hQcm9wcyA9IHtcbiAgY29sb3I6IENvbG9yO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBpc1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBDb2xvclN3YXRjaCh7XG4gIGNvbG9yLFxuICBjb250YWluZXJSZWYsXG4gIG9uQ2xpY2ssXG4gIGlzU2VsZWN0ZWQgPSBmYWxzZSxcbn06IENvbG9yU3dhdGNoUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuY29sb3JTd2F0Y2gsXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLnNlbGVjdGVkXTogaXNTZWxlY3RlZCxcbiAgICAgICAgfSxcbiAgICAgIF0pfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJjb2xvci1zd2F0Y2hcIlxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogY29sb3IuaGV4Q29kZSB9fVxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzLnNyT25seX0+e2BTZWxlY3QgJHtjb2xvci5sYWJlbH0gY29sb3JgfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29sb3JTd2F0Y2g7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbG9yU3dhdGNoXCI6XCJkdjdpdWNUUXEtWmhVUlV1cC1QdVZcIixcInNlbGVjdGVkXCI6XCJfMUxiQWd5aWlFXzF1alc5MGQtNml1dVwiLFwic3JPbmx5XCI6XCJfMWV0a3VzbGhaVkVQTnNrMVFnaFRFb1wifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbG9yUGlja2VyXCI6XCJfMkYxT24tU0EzbU1raFpQRnJEaldJY1wiLFwiaG9yaXpvbnRhbFwiOlwiXzFXRll5TWtrWUxMNzNuX19yUFVVYnZcIixcInZlcnRpY2FsXCI6XCJfMWxJb2EyYmpfdGJrUWllMElwRTJMblwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbmZpcm1hdGlvbk1vZGFsIH0gZnJvbSBcIi4vQ29uZmlybWF0aW9uTW9kYWxcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdEVsZW1lbnQsIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IE1vZGFsIH0gZnJvbSBcIi4uL01vZGFsXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbmZpcm1hdGlvbk1vZGFsLm1vZHVsZS5jc3NcIjtcblxudHlwZSBDb25maXJtYXRpb25Nb2RhbFByb3BzID0ge1xuICBidXR0b25zTGVmdD86IFJlYWN0RWxlbWVudFtdO1xuICBidXR0b25zUmlnaHQ/OiBSZWFjdEVsZW1lbnRbXTtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGhlYWRlcjogc3RyaW5nO1xuICBpc09wZW46IGJvb2xlYW47XG4gIG5vUGFkZGluZz86IGJvb2xlYW47XG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xufTtcblxuZnVuY3Rpb24gQ29uZmlybWF0aW9uTW9kYWwoe1xuICBjaGlsZHJlbixcbiAgY29udGFpbmVyUmVmLFxuICBoZWFkZXIsXG4gIGlzT3BlbixcbiAgYnV0dG9uc0xlZnQgPSBbXSxcbiAgYnV0dG9uc1JpZ2h0ID0gW10sXG4gIG9uQ2xvc2UgPSAoKSA9PiB7fSxcbiAgbm9QYWRkaW5nID0gZmFsc2UsXG59OiBDb25maXJtYXRpb25Nb2RhbFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPE1vZGFsIGNvbnRhaW5lclJlZj17Y29udGFpbmVyUmVmfSBpc09wZW49e2lzT3Blbn0gb25DbG9zZT17b25DbG9zZX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRhaW5lcn0+XG4gICAgICAgIDxoMSBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEhlYWRlcn0+e2hlYWRlcn08L2gxPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgICAgICBzdHlsZXMubW9kYWxDb250ZW50LFxuICAgICAgICAgICAgeyBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyB9LFxuICAgICAgICAgIF0pfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbnNDb250YWluZXJ9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b25zfT57YnV0dG9uc0xlZnR9PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbnN9PntidXR0b25zUmlnaHR9PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9Nb2RhbD5cbiAgKTtcbn1cblxuQ29uZmlybWF0aW9uTW9kYWwuZGlzcGxheU5hbWUgPSBcIkNvbmZpcm1hdGlvbk1vZGFsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IENvbmZpcm1hdGlvbk1vZGFsO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlSG90a2V5cyB9IGZyb20gXCJyZWFjdC1ob3RrZXlzLWhvb2tcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Nb2RhbC5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTW9kYWxQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBvbkNsb3NlPzogKCkgPT4gdm9pZDtcbiAgYnV0dG9uPzogUmVhY3ROb2RlO1xuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gIG5vU2hhZG93PzogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIE1vZGFsKHtcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgaXNPcGVuLFxuICBidXR0b24sXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIG9uQ2xvc2UgPSAoKSA9PiB7fSxcbn06IE1vZGFsUHJvcHMpIHtcbiAgdXNlSG90a2V5cyhcIkVzY2FwZVwiLCBvbkNsb3NlKTtcblxuICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgb25DbG9zZSgpO1xuICB9LCBbb25DbG9zZV0pO1xuXG4gIHJldHVybiAoXG4gICAgaXNPcGVuICYmIChcbiAgICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMub3ZlcmxheX1cbiAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vZGFsLW92ZXJsYXlcIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU92ZXJsYXlDbGlja31cbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgICBzdHlsZXMubW9kYWwsIFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCwgXG4gICAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3dcbiAgICAgICAgICB9XG4gICAgICAgIF0pfSBkYXRhLXRlc3RpZD1cIm1vZGFsXCI+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge2J1dHRvbiAmJiA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9ufT57YnV0dG9ufTwvZGl2Pn1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTW9kYWw7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm92ZXJsYXlcIjpcIl8yMFpLR1k0VHdaeHAwS1o2RTd5NFdCXCIsXCJtb2RhbFwiOlwiXzI1TEJOMzFfbUkxSTF1SEREUDRPMElcIixcInRyYW5zcGFyZW50XCI6XCJfM1oyS2wxckVIWlFNTFVzWEYxZjdsb1wiLFwibm9TaGFkb3dcIjpcIl8zQ2ZTVC10bi10c3Zjb2RTeGVsaVFxXCIsXCJtb2RhbEJ1dHRvblwiOlwiXzFlTzB4M00wcE44LTc5SXVZdVRfQ2xcIn07IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIktnQzVwd3RzSGF2dVZPTHViQUxhZVwiLFwibW9kYWxIZWFkZXJcIjpcIl8xYlROWE1SNW1aRlhzMW8wdXhraFJQXCIsXCJtb2RhbENvbnRlbnRcIjpcInF1UDVvNFE5bmxVbzFmVDdzYlBWQVwiLFwibm9QYWRkaW5nXCI6XCJfMVVnb19ESFNUNFJiV3pJeEhQaGo3blwiLFwibW9kYWxCdXR0b25zQ29udGFpbmVyXCI6XCJfMmJHTDdYakR5NnNFM0psZVU5OGhqeVwiLFwibW9kYWxCdXR0b25zXCI6XCJfM1hmZkZlTjlWRUlweXRobVZKMlU4Q1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEZsb2F0aW5nUGFuZWwgfSBmcm9tIFwiLi9GbG9hdGluZ1BhbmVsXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9GbG9hdGluZ1BhbmVsLm1vZHVsZS5jc3NcIjtcblxudHlwZSBQbGFjZW1lbnQgPSB7XG4gIGhvcml6b250YWw6XG4gICAgfCBcInJpZ2h0XCJcbiAgICB8IFwicmlnaHRFZGdlXCJcbiAgICB8IFwicmlnaHRPbkVkZ2VcIlxuICAgIHwgXCJsZWZ0XCJcbiAgICB8IFwibGVmdEVkZ2VcIlxuICAgIHwgXCJsZWZ0T25FZGdlXCJcbiAgICB8IFwibGVmdE9uRWRnZVwiXG4gICAgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbDpcbiAgICB8IFwidG9wXCJcbiAgICB8IFwidG9wRWRnZVwiXG4gICAgfCBcImJvdHRvbVwiXG4gICAgfCBcImJvdHRvbUVkZ2VcIlxuICAgIHwgXCJib3R0b21PbkVkZ2VcIlxuICAgIHwgXCJjZW50ZXJcIjtcbiAgcGFyZW50OiBcInZpZXdwb3J0XCIgfCBcImNvbnRhaW5lclwiO1xufTtcblxudHlwZSBGbG9hdGluZ1BhbmVsUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGxheW91dD86IFwiY29sdW1uXCIgfCBcInJvd1wiO1xuICBwbGFjZW1lbnQ/OiBQbGFjZW1lbnQ7XG59O1xuXG5mdW5jdGlvbiBGbG9hdGluZ1BhbmVsKHtcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgbGF5b3V0ID0gXCJjb2x1bW5cIixcbiAgcGxhY2VtZW50ID0geyBob3Jpem9udGFsOiBcImNlbnRlclwiLCB2ZXJ0aWNhbDogXCJib3R0b21cIiwgcGFyZW50OiBcInZpZXdwb3J0XCIgfSxcbn06IEZsb2F0aW5nUGFuZWxQcm9wcykge1xuICBjb25zdCBob3Jpem9udGFsUGxhY2VtZW50ID1cbiAgICBwbGFjZW1lbnQuaG9yaXpvbnRhbCA9PT0gXCJjZW50ZXJcIlxuICAgICAgPyBcImhvcml6b250YWxDZW50ZXJcIlxuICAgICAgOiBwbGFjZW1lbnQuaG9yaXpvbnRhbDtcblxuICBjb25zdCB2ZXJ0aWNhbFBsYWNlbWVudCA9XG4gICAgcGxhY2VtZW50LnZlcnRpY2FsID09PSBcImNlbnRlclwiID8gXCJ2ZXJ0aWNhbENlbnRlclwiIDogcGxhY2VtZW50LnZlcnRpY2FsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBkYXRhLXRlc3RpZD1cImZsb2F0aW5nLXBhbmVsXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxuICAgICAgICBzdHlsZXNbaG9yaXpvbnRhbFBsYWNlbWVudF0sXG4gICAgICAgIHN0eWxlc1t2ZXJ0aWNhbFBsYWNlbWVudF0sXG4gICAgICAgIHN0eWxlc1tsYXlvdXRdLFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5maXhlZF06IHBsYWNlbWVudC5wYXJlbnQgIT09IFwiY29udGFpbmVyXCIsXG4gICAgICAgIH0sXG4gICAgICBdKX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZsb2F0aW5nUGFuZWw7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzJyMEZrWUo3U0sxWWpCM0hLSE1BaWhcIixcInJvd1wiOlwiXzNSLUZGOGVNdTBDUzRlTlgzbFRkQ1JcIixcImNvbHVtblwiOlwiXzFvS09lQWdaand4Tk0zdUdmTHQ2SU9cIixcImZpeGVkXCI6XCJfM29RR1dnU0lOYnl0YjR1djkyQ1N2VFwiLFwicGxhaW5cIjpcImlNZjhvZC1iSXFzSEF2eG9mRHV6YlwiLFwidHJhbnNwYXJlbnRcIjpcImQyb3l4NXB5c3FqODk4YVM4RzNFOFwiLFwidG9wXCI6XCJfMTFjUFlxMWRoUXl6VklNWmVrMV9Jb1wiLFwidG9wRWRnZVwiOlwiXzJfaW5lQ3kxTVFsWVA2cU1ld2QxejVcIixcInRvcE9uRWRnZVwiOlwiXzFydkNzRG9kNWJsVE95QWw0a0R3TjBcIixcInJpZ2h0XCI6XCJfMVNJWUJjUmdxUzRWUGhXOU04MFk0elwiLFwicmlnaHRFZGdlXCI6XCJRQTY5ZjBEOGJUQ0pIckRPcjhtMXJcIixcInJpZ2h0T25FZGdlXCI6XCJfMlBpVFVsMEpZekVDbk8wODUxZ3ozYVwiLFwiYm90dG9tXCI6XCJfMzA1Z0JtVHdBZVhaZkFfTTl0c1ZOb1wiLFwiYm90dG9tRWRnZVwiOlwiXzFQY0RYYkxaMlhIUGtlaV9IX3I1OHBcIixcImJvdHRvbU9uRWRnZVwiOlwiXzJ2b3Q0cXByNThXbmI2cHZIWW5qa2NcIixcImxlZnRcIjpcInNJdGdCVjRXdER4NHZaM2EtUDRpeFwiLFwibGVmdEVkZ2VcIjpcIl8xTkoxRnpJX2FiS2ktVzZrYzJyMmM2XCIsXCJsZWZ0T25FZGdlXCI6XCJfMTJFdndiYVZRTldQWmUzN1NvOExfbVwiLFwiaG9yaXpvbnRhbENlbnRlclwiOlwiXzJqaVN4RWJDVEtWekR0ZUdRMXVvRWZcIixcInZlcnRpY2FsQ2VudGVyXCI6XCJfMmY5RDQ2QkItZ2V6UHZ3OFRaeEp2cFwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ljb24ubW9kdWxlLmNzc1wiO1xuXG50eXBlIEljb25Qcm9wcyA9IHtcbiAgYWx0Pzogc3RyaW5nO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEltYWdlRWxlbWVudD47XG4gIGludmVydGVkPzogYm9vbGVhbjtcbiAgc3JjOiBzdHJpbmc7XG4gIHNpemU/OiBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiIHwgXCJ4bGFyZ2VcIjtcbn07XG5mdW5jdGlvbiBJY29uKHtcbiAgc3JjLFxuICBhbHQsXG4gIGNvbnRhaW5lclJlZixcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIGludmVydGVkID0gZmFsc2UsXG59OiBJY29uUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8aW1nXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuaWNvbixcbiAgICAgICAgc3R5bGVzW3NpemVdLFxuICAgICAgICB7IFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCB9LFxuICAgICAgXSl9XG4gICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICBkYXRhLXRlc3RpZD1cImljb25cIlxuICAgICAgYWx0PXthbHR9XG4gICAgICBzcmM9e3NyY31cbiAgICAvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBJY29uO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJpY29uXCI6XCJfMzNjVE04aThxYWpGR3ktMDB0eTBSd1wiLFwic21hbGxcIjpcIk1VaTNpa3pjUFpkbzU5QWZvWGRPRlwiLFwibWVkaXVtXCI6XCJfMlZDS3F5NTlOU0ZkZkRpRTBveGFzelwiLFwibGFyZ2VcIjpcIl8yVVVVZjJuX2EwUFlwUThrb3dLSHpwXCIsXCJ4bGFyZ2VcIjpcIm9ESUVZOFU0VHdDSmtqRjd4YVFCT1wiLFwiaW52ZXJ0ZWRcIjpcIl8ycXpVdFUxVGRfYzU4dk04QUxxU1ZXXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbkJ1dHRvbiB9IGZyb20gXCIuL0ljb25CdXR0b25cIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ljb25CdXR0b24ubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgQnV0dG9uQmFkZ2UgfSBmcm9tIFwiLi4vQnV0dG9uQmFkZ2VcIjtcblxudHlwZSBJY29uQnV0dG9uUHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50PjtcbiAgc3JjOiBzdHJpbmc7XG4gIGFsdDogc3RyaW5nO1xuICBiYWRnZUNvbnRlbnQ/OiBSZWFjdE5vZGU7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICBub1NoYWRvdz86IGJvb2xlYW47XG4gIG5vQm9yZGVyPzogYm9vbGVhbjtcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICByb3VuZGVkPzogYm9vbGVhbjtcbiAgb25DbGljaz86IChldmVudD86IFN5bnRoZXRpY0V2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4gdm9pZDtcbiAgc2l6ZT86IFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCIgfCBcInhsYXJnZVwiO1xuICB0eXBlPzogXCJzdWJtaXRcIiB8IFwicmVzZXRcIiB8IFwiYnV0dG9uXCI7XG4gIG9mZnNldFNpZGVzPzogQXJyYXk8XCJ0b3BcIiB8IFwicmlnaHRcIiB8IFwiYm90dG9tXCIgfCBcImxlZnRcIj47XG59O1xuXG5mdW5jdGlvbiBJY29uQnV0dG9uKHtcbiAgY2xhc3NOYW1lLFxuICBjb250YWluZXJSZWYsXG4gIHNyYyxcbiAgYWx0LFxuICBiYWRnZUNvbnRlbnQgPSBudWxsLFxuICBvZmZzZXRTaWRlcyA9IFtdLFxuICBvbkNsaWNrID0gKCkgPT4ge30sXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGludmVydGVkID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIG5vQm9yZGVyID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIHJvdW5kZWQgPSBmYWxzZSxcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIHR5cGUgPSBcImJ1dHRvblwiLFxufTogSWNvbkJ1dHRvblByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcbiAgICAgICAgc3R5bGVzW3NpemVdLFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXG4gICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93LFxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXG4gICAgICAgICAgW3N0eWxlcy50b3BPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwidG9wXCIpLFxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXG4gICAgICAgICAgW3N0eWxlcy5ib3R0b21PZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwiYm90dG9tXCIpLFxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICBdKX1cbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICB0eXBlPXt0eXBlfVxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAgPEljb24gc3JjPXtzcmN9IGFsdD17YWx0fSBzaXplPXtzaXplfSBpbnZlcnRlZD17aW52ZXJ0ZWR9IC8+XG4gICAgICB7YmFkZ2VDb250ZW50ICYmIDxCdXR0b25CYWRnZT57YmFkZ2VDb250ZW50fTwvQnV0dG9uQmFkZ2U+fVxuICAgIDwvYnV0dG9uPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBJY29uQnV0dG9uO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIlJneWxsWFRxcDNfalo2QTJOYnZnNlwiLFwic21hbGxcIjpcIl8xdzBoWmxPYmVMN0VHODd6c0wtOXZOXCIsXCJtZWRpdW1cIjpcIkVLMWJ2SlpqVzExOURvNzlTdEw3SVwiLFwibGFyZ2VcIjpcIlBneVFYSzF5eUNNcThCU2FZQ2JjaFwiLFwieGxhcmdlXCI6XCJxaGtIeklvSW93bnJleEh6UVN1dVVcIixcInJvdW5kZWRcIjpcIl8zcXFhMWswQzlKTVBzQlJTejZaMHlZXCIsXCJ0b3BPZmZzZXRcIjpcIl8zVlpQN0RvaGhaN3o4Zmk0ei1IOGpOXCIsXCJyaWdodE9mZnNldFwiOlwiXzJYWGhKMy1jWWNYYklWTm1tbk84eUhcIixcImJvdHRvbU9mZnNldFwiOlwiWkpJWDdWcTVtdXNqZDZzNGhDU2JQXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfMVFWV2l5aXZXOVV4ZW9OdTNVZG52NlwiLFwiaW52ZXJ0ZWRcIjpcIl8yalp6WGhuSHFxYnR1bTRkQmRsMWxLXCIsXCJub1NoYWRvd1wiOlwiXzNmeHZXaU9ORkZZdE11RGNYcDhzeXVcIixcIm5vQm9yZGVyXCI6XCJfM0V1eHVwbnFPVnVTb1VzYkt6Tm5cIixcInRyYW5zcGFyZW50XCI6XCJfMzViUklpOEJ0RDRSS1NKdlpial9zbVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEljb25CdXR0b25MaW5rIH0gZnJvbSBcIi4vSWNvbkJ1dHRvbkxpbmtcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBFbGVtZW50VHlwZSwgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ljb25CdXR0b25MaW5rLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IEJ1dHRvbkJhZGdlIH0gZnJvbSBcIi4uL0J1dHRvbkJhZGdlXCI7XG5cbnR5cGUgT2Zmc2V0U2lkZSA9IFwidG9wXCIgfCBcInJpZ2h0XCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCI7XG5cbnR5cGUgSWNvbkJ1dHRvbkxpbmtQcm9wcyA9XG4gIHwge1xuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcbiAgICAgIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRWxlbWVudD47XG4gICAgICBzcmM6IHN0cmluZztcbiAgICAgIGFsdDogc3RyaW5nO1xuICAgICAgYmFkZ2VDb250ZW50PzogUmVhY3ROb2RlO1xuICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgICAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICAgICAgcm91bmRlZD86IGJvb2xlYW47XG4gICAgICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gICAgICBub1NoYWRvdz86IGJvb2xlYW47XG4gICAgICBub0JvcmRlcj86IGJvb2xlYW47XG4gICAgICBzaXplPzogU2l6ZTtcbiAgICAgIG9mZnNldFNpZGVzPzogQXJyYXk8T2Zmc2V0U2lkZT47XG4gICAgfVxuICB8IGFueTtcblxuZnVuY3Rpb24gSWNvbkJ1dHRvbkxpbmsoe1xuICBhczogQ29tcG9uZW50LFxuICBjb250YWluZXJSZWYsXG4gIGNsYXNzTmFtZSxcbiAgc3JjLFxuICBhbHQsXG4gIGJhZGdlQ29udGVudCA9IG51bGwsXG4gIGludmVydGVkID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIG5vQm9yZGVyID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIHJvdW5kZWQgPSBmYWxzZSxcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIC4uLnByb3BzXG59OiBJY29uQnV0dG9uTGlua1Byb3BzKSB7XG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb21wb25lbnRcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJpY29uLWJ1dHRvbi1saW5rXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxuICAgICAgICBzdHlsZXNbc2l6ZV0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQsXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcbiAgICAgICAgICBbc3R5bGVzLnRvcE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJ0b3BcIiksXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcbiAgICAgICAgICBbc3R5bGVzLmJvdHRvbU9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJib3R0b21cIiksXG4gICAgICAgICAgW3N0eWxlcy5sZWZ0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImxlZnRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIDxJY29uIHNyYz17c3JjfSBhbHQ9e2FsdH0gc2l6ZT17c2l6ZX0gaW52ZXJ0ZWQ9e2ludmVydGVkfSAvPlxuICAgICAge2JhZGdlQ29udGVudCAmJiA8QnV0dG9uQmFkZ2U+e2JhZGdlQ29udGVudH08L0J1dHRvbkJhZGdlPn1cbiAgICA8L0NvbXBvbmVudD5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSWNvbkJ1dHRvbkxpbms7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzN3anhqQ3p2X2xwaGRXbTczSmdBeXBcIixcInNtYWxsXCI6XCJfMzJNWW1aYkh6VVUwYjNkTWNtSnNpTVwiLFwibWVkaXVtXCI6XCJfMTg5cllKMlR2YUJ5ckMzUzdDZjNubVwiLFwibGFyZ2VcIjpcIl8yYVlTU1RVZzh3dnJBRE9TMTg4eE1cIixcInhsYXJnZVwiOlwidnMzS1l2VTdaY25odzJTT3lTQ05mXCIsXCJyb3VuZGVkXCI6XCJfMThpaDY3TEwwbjdYbDYxZ0xHOHMwa1wiLFwidG9wT2Zmc2V0XCI6XCJfMXA3aDdXNlFzREhwYmE2bWd5V1VMOVwiLFwicmlnaHRPZmZzZXRcIjpcIl8zZnhNSUJfSno1Q1lJZnd1WmhRMjhpXCIsXCJib3R0b21PZmZzZXRcIjpcIl8xMTNtNENXaW1MdnNqVTl4SXhQcTdpXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfNkNob3YyTW95VXh5aFd4S24zNjhLXCIsXCJpbnZlcnRlZFwiOlwiXzNlcU9KUXo0dWUtZVhMdnEyN0FzWTVcIixcIm5vU2hhZG93XCI6XCJsRjZEX1YyMHgzMnY5WnlzcXdDNjhcIixcIm5vQm9yZGVyXCI6XCJfM3M2cUNvbExqcGpsNFJybzdtVlR4U1wiLFwidHJhbnNwYXJlbnRcIjpcIl8ySVpPOXBLMTMxVTkxY3lLWGl4Z3hEXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSW1hZ2UsIEltYWdlUHJvcHMgfSBmcm9tIFwiLi9JbWFnZVwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZiwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSW1hZ2UubW9kdWxlLmNzc1wiO1xuXG5leHBvcnQgY29uc3QgZW1wdHlJbWFnZSA9XG4gIFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FRQUFBQzFIQXdDQUFBQUMwbEVRVlI0Mm1Oa1lBQUFBQVlBQWpDQjBDOEFBQUFBU1VWT1JLNUNZSUk9XCI7IC8vIDF4MXBuZ1xuXG5leHBvcnQgdHlwZSBJbWFnZVByb3BzID0ge1xuICBhbmltYXRpb24/OiBcImZhZGVJblwiIHwgXCJzY2FsZVVwXCI7XG4gIGFsdD86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGxheW91dD86IFwiY292ZXJcIiB8IFwiY29udGFpblwiIHwgXCJzdHJldGNoSG9yaXpvbnRhbGx5XCIgfCBcInN0cmV0Y2hWZXJ0aWNhbGx5XCI7XG4gIHNyYzogc3RyaW5nO1xuICBzcmNXaWR0aD86IG51bWJlcjtcbiAgc3JjSGVpZ2h0PzogbnVtYmVyO1xufTtcblxuZnVuY3Rpb24gSW1hZ2VDb21wb25lbnQoe1xuICBzcmMsXG4gIGFsdCxcbiAgc3JjV2lkdGgsXG4gIHNyY0hlaWdodCxcbiAgY2hpbGRyZW4sXG4gIGFuaW1hdGlvbixcbiAgY29udGFpbmVyUmVmLFxuICBsYXlvdXQgPSBcImNvbnRhaW5cIixcbn06IEltYWdlUHJvcHMpIHtcbiAgY29uc3QgW2lzTG9hZGVkLCBzZXRJc0xvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGltYWdlUmVmID0gdXNlUmVmKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgaW1hZ2UuY3Jvc3NPcmlnaW4gPSBcImFub255bW91c1wiO1xuICAgIGltYWdlLnNyYyA9IHNyYztcbiAgICBpbWFnZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBpbWFnZVJlZi5jdXJyZW50Py5zZXRBdHRyaWJ1dGUoXCJzcmNcIiwgc3JjKTtcbiAgICAgIHNldElzTG9hZGVkKHRydWUpO1xuICAgIH07XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaW1hZ2Uuc3JjID0gXCJcIjtcbiAgICAgIGRlbGV0ZSBpbWFnZS5vbmxvYWQ7XG4gICAgICBkZWxldGUgaW1hZ2Uuc3JjO1xuICAgICAgZGVsZXRlIGltYWdlLmNyb3NzT3JpZ2luO1xuICAgICAgaW1hZ2UgPSBudWxsO1xuICAgIH07XG4gIH0sIFtzcmNdKTtcblxuICByZXR1cm4gY2hpbGRyZW4gPyAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBzdHlsZXMuaGFzT3ZlcmxheV0pfVxuICAgID5cbiAgICAgIDxpbWdcbiAgICAgICAgcmVmPXtpbWFnZVJlZn1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgICAgc3R5bGVzLmltYWdlLFxuICAgICAgICAgIHN0eWxlc1tsYXlvdXRdLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFtzdHlsZXMuZmFkZUluXTogYW5pbWF0aW9uID09PSBcImZhZGVJblwiICYmIGlzTG9hZGVkLFxuICAgICAgICAgICAgW3N0eWxlcy5zY2FsZVVwXTogYW5pbWF0aW9uID09PSBcInNjYWxlVXBcIiAmJiBpc0xvYWRlZCxcbiAgICAgICAgICB9LFxuICAgICAgICBdKX1cbiAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgICBkYXRhLXRlc3RpZD1cImltYWdlXCJcbiAgICAgICAgYWx0PXthbHR9XG4gICAgICAgIHNyYz17ZW1wdHlJbWFnZX1cbiAgICAgICAgd2lkdGg9e3NyY1dpZHRofVxuICAgICAgICBoZWlnaHQ9e3NyY0hlaWdodH1cbiAgICAgIC8+XG4gICAgICB7Y2hpbGRyZW4gJiYgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5vdmVybGF5fT57Y2hpbGRyZW59PC9kaXY+fVxuICAgIDwvZGl2PlxuICApIDogKFxuICAgIDxpbWdcbiAgICAgIHJlZj17aW1hZ2VSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLmltYWdlLFxuICAgICAgICBzdHlsZXNbbGF5b3V0XSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuZmFkZUluXTogYW5pbWF0aW9uID09PSBcImZhZGVJblwiICYmIGlzTG9hZGVkLFxuICAgICAgICAgIFtzdHlsZXMuc2NhbGVVcF06IGFuaW1hdGlvbiA9PT0gXCJzY2FsZVVwXCIgJiYgaXNMb2FkZWQsXG4gICAgICAgIH0sXG4gICAgICBdKX1cbiAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgIGRhdGEtdGVzdGlkPVwiaW1hZ2VcIlxuICAgICAgYWx0PXthbHR9XG4gICAgICBzcmM9e2VtcHR5SW1hZ2V9XG4gICAgICB3aWR0aD17c3JjV2lkdGh9XG4gICAgICBoZWlnaHQ9e3NyY0hlaWdodH1cbiAgICAvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBJbWFnZUNvbXBvbmVudDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMVYwMEdwel9rZXFVV0dFZlo3NHdqU1wiLFwiaGFzT3ZlcmxheVwiOlwiXzJNdFVmWXB3NVY4VXByeHFfRV95U2FcIixcIm92ZXJsYXlcIjpcInoxRFZIeGoxWlBLNzNPSVFSY2s3alwiLFwiaW1hZ2VcIjpcIl8zOU9qVEdXZDd4bXhjbDZudUktZzJMXCIsXCJjb3ZlclwiOlwiXzNxS2RwMm1LNmY3RzV6QXpYbHpnckVcIixcImNvbnRhaW5cIjpcIl8yb19HNFhiQi1Rb3piZnVrNF9WMDBoXCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJfMnhndURrR3UxbVIyeVBhWS1oek44b1wiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8xOVdNYTN0cVJ4dlVoREtGWjhZMlBCXCIsXCJmYWRlSW5cIjpcIl8zNk9TMkdjc2p3RWdIUDBvLThBeDFtXCIsXCJmYWRlSW5BbmltYXRpb25cIjpcIi1leW1ONmhXekpuUng4WGhrMURXT1wiLFwic2NhbGVVcFwiOlwiXzFVVVJBQlpuTWxMZjBLUFVVRDJSTnpcIixcInNjYWxlVXBBbmltYXRpb25cIjpcIl8za290d1Y5anZwSFNQbWp0T1VsZzdNXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXcgfSBmcm9tIFwiLi9MaXN0Vmlld1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0Vmlld0l0ZW0gfSBmcm9tIFwiLi9MaXN0Vmlld0l0ZW1cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXdMaW5rSXRlbSB9IGZyb20gXCIuL0xpc3RWaWV3TGlua0l0ZW1cIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xpc3RWaWV3Lm1vZHVsZS5jc3NcIjtcblxudHlwZSBMaXN0Vmlld1Byb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGhlYWRlcj86IHN0cmluZztcbiAgaGVhZGVyQWN0aW9ucz86IFJlYWN0Tm9kZTtcbn07XG5cbmZ1bmN0aW9uIExpc3RWaWV3KHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY29udGFpbmVyUmVmLFxuICBoZWFkZXIsXG4gIGhlYWRlckFjdGlvbnMsXG59OiBMaXN0Vmlld1Byb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0gY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbnRhaW5lciwgY2xhc3NOYW1lXSl9PlxuICAgICAgeyhoZWFkZXIgfHwgaGVhZGVyQWN0aW9ucykgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmhlYWRlcn0+XG4gICAgICAgICAge2hlYWRlciAmJiA8aDMgY2xhc3NOYW1lPXtzdHlsZXMuaGVhZGVyTGFiZWx9PntoZWFkZXJ9PC9oMz59XG4gICAgICAgICAge2hlYWRlckFjdGlvbnN9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICAgIDx1bCBjbGFzc05hbWU9e3N0eWxlcy5saXN0fT57Y2hpbGRyZW59PC91bD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGlzdFZpZXc7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiRGNXb0ViaW9sOXB4LUZRQV9UcE9rXCIsXCJoZWFkZXJcIjpcIl8yamF2QjhzQUR4NmREZ3FYTjNNQ0xQXCIsXCJoZWFkZXJMYWJlbFwiOlwiXzNpTU9mSXlOTDFTRW12Mko4WkREbVdcIixcImxpc3RcIjpcIl8zX0ttdGJNUHBQSGdKRk05WkJfeG5BXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIi4uL0J1dHRvblwiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9MaXN0Vmlld0l0ZW0ubW9kdWxlLmNzc1wiO1xuXG50eXBlIExpc3RWaWV3SXRlbVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBhY3RpdmU/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgc2l6ZT86IFNpemU7XG4gIGFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xuICBvbkNsaWNrPzogKCkgPT4gdm9pZCxcbn1cblxuZnVuY3Rpb24gTGlzdFZpZXdJdGVtKHtcbiAgY2hpbGRyZW4sXG4gIGFjdGl2ZSA9IGZhbHNlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIGFsaWduID0gXCJjZW50ZXJcIixcbiAgb25DbGljayA9ICgpID0+IHt9LFxufTogTGlzdFZpZXdJdGVtUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8bGkgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmxpc3RWaWV3SXRlbV0pfT5cbiAgICAgIDxCdXR0b25cbiAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBpbnZlcnRlZD17YWN0aXZlfVxuICAgICAgICB0cmFuc3BhcmVudD17dHJhbnNwYXJlbnR9XG4gICAgICAgIG5vUGFkZGluZz17bm9QYWRkaW5nfVxuICAgICAgICBhbGlnbj17YWxpZ259XG4gICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgIHN0cmV0Y2hIb3Jpem9udGFsbHlcbiAgICAgICAgbm9TaGFkb3dcbiAgICAgICAgbm9Cb3JkZXJcbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9CdXR0b24+XG4gICAgPC9saT5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGlzdFZpZXdJdGVtO1xuIiwiaW1wb3J0IFJlYWN0LCB7IEVsZW1lbnRUeXBlLCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgQnV0dG9uTGluayB9IGZyb20gXCIuLi9CdXR0b25MaW5rXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xpc3RWaWV3SXRlbS5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgTGlzdFZpZXdMaW5rSXRlbVByb3BzID1cbiAgfCB7XG4gICAgICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcbiAgICAgIGFjdGl2ZTogYm9vbGVhbjtcbiAgICAgIHRyYW5zcGFyZW50OiBib29sZWFuO1xuICAgICAgbm9QYWRkaW5nOiBib29sZWFuO1xuICAgICAgYWxpZ246IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcbiAgICAgIHNpemU6IFNpemU7XG4gICAgfVxuICB8IGFueTtcblxuZnVuY3Rpb24gTGlzdFZpZXdMaW5rSXRlbSh7XG4gIGNoaWxkcmVuLFxuICBhczogQ29tcG9uZW50LFxuICBhY3RpdmUgPSBmYWxzZSxcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgbm9QYWRkaW5nID0gZmFsc2UsXG4gIGFsaWduID0gXCJjZW50ZXJcIixcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIC4uLnByb3BzXG59OiBMaXN0Vmlld0xpbmtJdGVtUHJvcHMpIHtcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBDb21wb25lbnQgPSBcImFcIjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGxpIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5saXN0Vmlld0l0ZW1dKX0+XG4gICAgICA8QnV0dG9uTGlua1xuICAgICAgICBhcz17Q29tcG9uZW50fVxuICAgICAgICBpbnZlcnRlZD17YWN0aXZlfVxuICAgICAgICB0cmFuc3BhcmVudD17dHJhbnNwYXJlbnR9XG4gICAgICAgIG5vUGFkZGluZz17bm9QYWRkaW5nfVxuICAgICAgICBhbGlnbj17YWxpZ259XG4gICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgIHN0cmV0Y2hIb3Jpem9udGFsbHlcbiAgICAgICAgbm9TaGFkb3dcbiAgICAgICAgbm9Cb3JkZXJcbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0J1dHRvbkxpbms+XG4gICAgPC9saT5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGlzdFZpZXdMaW5rSXRlbTtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudSwgTWVudVBsYWNlbWVudCB9IGZyb20gXCIuL01lbnVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudUNvbnRhaW5lciB9IGZyb20gXCIuL01lbnVDb250YWluZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudUl0ZW0gfSBmcm9tIFwiLi9NZW51SXRlbVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51TGlua0l0ZW0gfSBmcm9tIFwiLi9NZW51TGlua0l0ZW1cIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9NZW51Lm1vZHVsZS5jc3NcIjtcblxuZXhwb3J0IHR5cGUgTWVudVBsYWNlbWVudCA9IHtcbiAgaG9yaXpvbnRhbDogXCJyaWdodFwiIHwgXCJsZWZ0XCI7XG4gIHZlcnRpY2FsOiBcInRvcFwiIHwgXCJib3R0b21cIjtcbn07XG5cbnR5cGUgTWVudVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGlzT3Blbj86IGJvb2xlYW47XG4gIGhlYWRlcj86IHN0cmluZztcbiAgcGxhY2VtZW50PzogTWVudVBsYWNlbWVudDtcbn07XG5cbmZ1bmN0aW9uIE1lbnUoe1xuICBjaGlsZHJlbixcbiAgY29udGFpbmVyUmVmLFxuICBjbGFzc05hbWUsXG4gIGlzT3BlbiA9IHRydWUsXG4gIHBsYWNlbWVudCA9IHsgaG9yaXpvbnRhbDogXCJsZWZ0XCIsIHZlcnRpY2FsOiBcImJvdHRvbVwiIH0sXG4gIGhlYWRlcixcbn06IE1lbnVQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5tZW51LFxuICAgICAgICBzdHlsZXNbcGxhY2VtZW50Lmhvcml6b250YWxdLFxuICAgICAgICBzdHlsZXNbcGxhY2VtZW50LnZlcnRpY2FsXSxcbiAgICAgICAgeyBbc3R5bGVzLm9wZW5dOiBpc09wZW4gfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgPlxuICAgICAge2hlYWRlciAmJiBpc09wZW4gJiYgPGgzIGNsYXNzTmFtZT17c3R5bGVzLm1lbnVIZWFkZXJ9PntoZWFkZXJ9PC9oMz59XG4gICAgICA8dWw+e2lzT3BlbiAmJiBjaGlsZHJlbn08L3VsPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNZW51O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJtZW51XCI6XCJfMUw1LXB2X1A2TTJvR2VvUmVNbk8ySlwiLFwidG9wXCI6XCJfMzFsZFlHVTRVMHhwS3VVXy0tV2NqYVwiLFwicmlnaHRcIjpcIk9iSHhNaXZsMzVpMUtnSTdUZ2djOVwiLFwibGVmdFwiOlwiXzJHemMwWGZMLWg1TnlIS1ZEdjVyLWtcIixcImJvdHRvbVwiOlwiXzNFRG1pU2ZQUlpNbEhsU0g5MzQ3bEdcIixcIm9wZW5cIjpcIl8xSjdwRmt2a2pRUVJXa21nLTBYVFdaXCIsXCJlbnRyYW5jZVwiOlwiXzNjcWVzUUdmOUN5dTY2RHNvS3RGMHFcIixcIm1lbnVIZWFkZXJcIjpcIl8yb3hzUE9zcEFIUENlS1RQSGVnZUhVXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnVDb250YWluZXIubW9kdWxlLmNzc1wiO1xuXG50eXBlIE1lbnVDb250YWluZXJQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICByZWY/OiAoKSA9PiB2b2lkIHwgeyBjdXJyZW50OiBhbnkgfTtcbn1cblxuZnVuY3Rpb24gTWVudUNvbnRhaW5lcih7IGNoaWxkcmVuLCBjbGFzc05hbWV9OiBNZW51Q29udGFpbmVyUHJvcHMsIHJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50Pikge1xuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtyZWZ9IGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5tZW51Q29udGFpbmVyLCBjbGFzc05hbWVdKX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZvcndhcmRSZWYoTWVudUNvbnRhaW5lcik7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVDb250YWluZXJcIjpcIl8xXzJzRkZWek5YbUpYX1BUcEhaZ0VMXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9NZW51SXRlbS5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTWVudUl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gIG5vUGFkZGluZz86IGJvb2xlYW47XG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xufTtcblxuZnVuY3Rpb24gTWVudUl0ZW0oe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBvbkNsaWNrLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgaXNBY3RpdmUgPSBmYWxzZSxcbn06IE1lbnVJdGVtUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMubWVudUl0ZW0sXG4gICAgICAgIHsgW3N0eWxlcy5hY3RpdmVdOiBpc0FjdGl2ZSB9LFxuICAgICAgICB7IFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9saT5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWVudUl0ZW07XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVJdGVtXCI6XCJfMktzUkNFZ0VfTTd3b1hqaHBSdVZ1b1wiLFwibm9QYWRkaW5nXCI6XCJfMmNxTUpISnlDakFVOFpQWkFWMFlENVwiLFwiYWN0aXZlXCI6XCJfMVhuWFppQXJodlVleVhncVVhRy1QN1wifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBFbGVtZW50VHlwZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnVMaW5rSXRlbS5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTWVudUxpbmtJdGVtUHJvcHMgPVxuICB8IHtcbiAgICAgIGFzOiBFbGVtZW50VHlwZTtcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgICBjbGFzc05hbWU6IHN0cmluZztcbiAgICAgIG5vUGFkZGluZz86IGJvb2xlYW47XG4gICAgfVxuICB8IGFueTtcblxuZnVuY3Rpb24gTWVudUxpbmtJdGVtKHtcbiAgYXM6IENvbXBvbmVudCxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgbm9QYWRkaW5nID0gZmFsc2UsXG4gIC4uLnByb3BzXG59OiBNZW51TGlua0l0ZW1Qcm9wcykge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIENvbXBvbmVudCA9IFwiYVwiO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29tcG9uZW50XG4gICAgICBkYXRhLXRlc3RpZD1cIm1lbnUtbGluay1pdGVtXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMubWVudUxpbmtJdGVtLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIHsgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcgfSxcbiAgICAgIF0pfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0NvbXBvbmVudD5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWVudUxpbmtJdGVtO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJtZW51TGlua0l0ZW1cIjpcIl8zejV0OUNBaGNBd1ZPdE9WbEFfNEd3XCIsXCJhY3RpdmVcIjpcIl8xWi1tUHZld0dVZzQ4NFFQYzlIeHEyXCIsXCJub1BhZGRpbmdcIjpcImJOWGlreUVaSUlPTTFIZ3NBaTNmdFwiLFwibWVudUl0ZW1cIjpcIl8zdElXQWhNRHRQekFINGJBcndwUk92XCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgT3ZlcmxheSB9IGZyb20gXCIuL092ZXJsYXlcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9PdmVybGF5Lm1vZHVsZS5jc3NcIjtcblxudHlwZSBPdmVybGF5UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgaXNGaXhlZD86IGJvb2xlYW47XG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xufTtcblxuZnVuY3Rpb24gT3ZlcmxheSh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIGlzRml4ZWQgPSBmYWxzZSxcbiAgb25DbGljayA9ICgpID0+IHt9LFxufTogT3ZlcmxheVByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBkYXRhLXRlc3RpZD1cIm92ZXJsYXlcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5vdmVybGF5LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMuZml4ZWRdOiBpc0ZpeGVkLFxuICAgICAgICB9LFxuICAgICAgXSl9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgT3ZlcmxheTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wib3ZlcmxheVwiOlwiSTBkbS1MZG0tU2lTMHY1WC12bzBnXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzNxZERkbHluSExub2ZOMURLdnZZUThcIixcImZpeGVkXCI6XCJfMWdYeTlYUzNGLUp0cWRqWkJjb0tTd1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIFRleHRJbnB1dCB9IGZyb20gXCIuL1RleHRJbnB1dFwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IExhYmVsIH0gZnJvbSBcIi4uL0xhYmVsXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1RleHRJbnB1dC5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplLCBUZXh0SW5wdXRUeXBlIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgVGV4dElucHV0UHJvcHMgPSB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBvbkNoYW5nZT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHR5cGU/OiBUZXh0SW5wdXRUeXBlO1xuICBzaXplPzogU2l6ZTtcbiAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWZPYmplY3Q8SFRNTElucHV0RWxlbWVudD47XG59O1xuXG5mdW5jdGlvbiBUZXh0SW5wdXQoe1xuICBsYWJlbCxcbiAgb25DaGFuZ2UsXG4gIHBsYWNlaG9sZGVyLFxuICB2YWx1ZSxcbiAgbmFtZSxcbiAgaW5wdXRSZWYsXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxuICBhdXRvRm9jdXMgPSBmYWxzZSxcbiAgdHlwZSA9IFwidGV4dFwiLFxufTogVGV4dElucHV0UHJvcHMpIHtcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IFJlYWN0LkZvcm1FdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgICAgIG9uQ2hhbmdlKChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSksXG4gICAgW29uQ2hhbmdlXVxuICApO1xuXG4gIGNvbnN0IGlucHV0RWxlbWVudCA9IChcbiAgICA8aW5wdXRcbiAgICAgIGRhdGEtdGVzdGlkPVwiaW5wdXRcIlxuICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy50ZXh0SW5wdXQsIHN0eWxlc1tzaXplXV0pfVxuICAgICAgb25DaGFuZ2U9eyFpbnB1dFJlZiA/IGhhbmRsZUNoYW5nZSA6IHVuZGVmaW5lZH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICB0eXBlPXt0eXBlfVxuICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgLz5cbiAgKTtcbiAgaWYgKGxhYmVsKSB7XG4gICAgcmV0dXJuIDxMYWJlbCB2YWx1ZT17bGFiZWx9PntpbnB1dEVsZW1lbnR9PC9MYWJlbD47XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIDw+e2lucHV0RWxlbWVudH08Lz47XG4gIH1cbn1cbmV4cG9ydCBkZWZhdWx0IFRleHRJbnB1dDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1widGV4dElucHV0XCI6XCJfMmlmRlRCeXh2UUY1ZVJZd01BU2FlN1wiLFwic21hbGxcIjpcIl8xOGlMTmhxYzVUejVQUG8yazRfVEJoXCIsXCJtZWRpdW1cIjpcIl8xamFSeWplYXRKUnhFdWpnUEd6V3p4XCIsXCJsYXJnZVwiOlwiXzM0ZDVIM1g4VzBVZ1g5QjhkdFBSQU9cIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBUb2FzdCB9IGZyb20gXCIuL1RvYXN0XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRvYXN0Q29udGFpbmVyIH0gZnJvbSBcIi4vVG9hc3RDb250YWluZXJcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1RvYXN0Lm1vZHVsZS5jc3NcIjtcblxudHlwZSBUb2FzdFByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcbn07XG5cbmZ1bmN0aW9uIFRvYXN0KHsgY2hpbGRyZW4sIGNvbnRhaW5lclJlZiwgb25DbGljayA9ICgpID0+IHt9IH06IFRvYXN0UHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnRvYXN0fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIGRhdGEtdGVzdGlkPVwidG9hc3RcIlxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVG9hc3Q7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcInRvYXN0XCI6XCJfMk4zWGlIOFJWbkVBWWx6QkRfSkNxWlwiLFwiZW50cmFuY2VcIjpcIl8xOWN3M3p4NmZVNFJNR01hR001ekpaXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Ub2FzdENvbnRhaW5lci5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgVG9hc3RDb250YWluZXJQcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59XG5mdW5jdGlvbiBUb2FzdENvbnRhaW5lcih7IGNoaWxkcmVuIH06IFRvYXN0Q29udGFpbmVyUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudG9hc3RDb250YWluZXJdKX1cbiAgICAgIGRhdGEtdGVzdGlkPVwidG9hc3QtY29udGFpbmVyXCJcbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRvYXN0Q29udGFpbmVyO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJ0b2FzdENvbnRhaW5lclwiOlwiXzNSVDJhYmZ6SzBydC1ZamNycVhMbnJcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBWaWRlbyB9IGZyb20gXCIuL1ZpZGVvXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9WaWRlby5tb2R1bGUuY3NzXCI7XG5cbi8qKlxuICogVGhlcmUgaXMgYSBrbm93biBpc3N1ZSBpbiBSZWFjdCBpbiByZWdhcmRzIHRvIHRoZSAnbXV0ZWQnIHByb3BlcnR5IHdoaWNoIGNhdXNlcyB0aGUgd2FybmluZzpcbiAqIFwiV2FybmluZzogdW5zdGFibGVfZmx1c2hEaXNjcmV0ZVVwZGF0ZXM6IENhbm5vdCBmbHVzaCB1cGRhdGVzIHdoZW4gUmVhY3QgaXMgYWxyZWFkeSByZW5kZXJpbmcuXCJcbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEwMzg5XG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzY1NDRcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90ZXN0aW5nLWxpYnJhcnkvcmVhY3QtdGVzdGluZy1saWJyYXJ5L2lzc3Vlcy80NzBcbiAqL1xuXG50eXBlIExheW91dCA9IFwiY292ZXJcIiB8IFwiY29udGFpblwiIHwgXCJzdHJldGNoSG9yaXpvbnRhbGx5XCIgfCBcInN0cmV0Y2hWZXJ0aWNhbGx5XCI7XG5cbnR5cGUgVmlkZW9Qcm9wcyA9IHtcbiAgc3JjOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgbGF5b3V0PzogTGF5b3V0O1xuICBhdXRvUGxheT86IGJvb2xlYW47XG4gIGxvb3A/OiBib29sZWFuO1xuICBtdXRlZD86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufTtcblxuZnVuY3Rpb24gVmlkZW8oe1xuICBzcmMsXG4gIHR5cGUsXG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIG11dGVkID0gdHJ1ZSxcbiAgbG9vcCA9IHRydWUsXG4gIGF1dG9QbGF5ID0gdHJ1ZSxcbiAgbGF5b3V0ID0gXCJjb250YWluXCIsXG59OiBWaWRlb1Byb3BzKSB7XG4gIHJldHVybiBjaGlsZHJlbiA/IChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIHN0eWxlcy5oYXNPdmVybGF5XSl9XG4gICAgPlxuICAgICAgPHZpZGVvXG4gICAgICAgIGRhdGEtdGVzdGlkPVwidmlkZW9cIlxuICAgICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy52aWRlbywgc3R5bGVzW2xheW91dF1dKX1cbiAgICAgICAgbXV0ZWQ9e211dGVkfVxuICAgICAgICBsb29wPXtsb29wfVxuICAgICAgICBhdXRvUGxheT17YXV0b1BsYXl9XG4gICAgICAgIHBsYXlzSW5saW5lPXt0cnVlfVxuICAgICAgPlxuICAgICAgICA8c291cmNlIGRhdGEtdGVzdGlkPVwic291cmNlXCIgc3JjPXtzcmN9IHR5cGU9e3R5cGV9IC8+XG4gICAgICA8L3ZpZGVvPlxuICAgICAge2NoaWxkcmVuICYmIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMub3ZlcmxheX0+e2NoaWxkcmVufTwvZGl2Pn1cbiAgICA8L2Rpdj5cbiAgKSA6IChcbiAgICA8dmlkZW9cbiAgICAgIGRhdGEtdGVzdGlkPVwidmlkZW9cIlxuICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLnZpZGVvLCBzdHlsZXNbbGF5b3V0XV0pfVxuICAgICAgbXV0ZWQ9e211dGVkfVxuICAgICAgbG9vcD17bG9vcH1cbiAgICAgIGF1dG9QbGF5PXthdXRvUGxheX1cbiAgICAgIHBsYXlzSW5saW5lPXt0cnVlfVxuICAgID5cbiAgICAgIDxzb3VyY2UgZGF0YS10ZXN0aWQ9XCJzb3VyY2VcIiBzcmM9e3NyY30gdHlwZT17dHlwZX0gLz5cbiAgICA8L3ZpZGVvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBWaWRlbztcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMWQ1NXdYdVFLcHQ5N1BxUUhZeDVtV1wiLFwiaGFzT3ZlcmxheVwiOlwiXzJEQU0xeDdQMXd1WU5QOFREbVhHWGNcIixcInZpZGVvXCI6XCJfM2pRX3FwVUx0cjB1RlNUV2JEME5WWlwiLFwiY292ZXJcIjpcIl8xcW5WTGhlR3pESTZObzlfbndiN2hsXCIsXCJjb250YWluXCI6XCJfMVgyODZOSVNJMHdxMktLM2RqVmh1M1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiT2VnbC04Z2QySzVsejNtVUdKX1V6XCIsXCJzdHJldGNoVmVydGljYWxseVwiOlwiXzEtSHpwVFlfV3RHY1pjMjV3Q290ZVlcIixcIm92ZXJsYXlcIjpcIl8yVHZYc3FBSVVuR1NxbTZrbkpGaEwzXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlVG9nZ2xlIH0gZnJvbSBcIi4vdXNlVG9nZ2xlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuL3VzZU91dHNpZGVDbGlja1wiO1xuIiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVRvZ2dsZShcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2Vcbik6IFtib29sZWFuLCAobmV3VmFsdWU/OiBib29sZWFuKSA9PiB2b2lkXSB7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oaW5pdGlhbFZhbHVlKTtcblxuICBjb25zdCB0b2dnbGUgPSAobmV3VmFsdWU/OiBib29sZWFuKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBuZXdWYWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIHNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0VmFsdWUoKHByZXZWYWx1ZSkgPT4ge1xuICAgICAgICByZXR1cm4gIXByZXZWYWx1ZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gW3ZhbHVlLCB1c2VDYWxsYmFjayh0b2dnbGUsIFt2YWx1ZV0pXTtcbn1cblxuIiwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxudHlwZSBDYWxsYmFjayA9IChldmVudDogRXZlbnQpID0+IHZvaWQ7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZU91dHNpZGVDbGljayhjYWxsYmFjazogQ2FsbGJhY2spIHtcbiAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICBpZiAoIXJlZi5jdXJyZW50IHx8IHJlZi5jdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNhbGxiYWNrKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZUNsaWNrKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBoYW5kbGVDbGljayk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZUNsaWNrKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsIGhhbmRsZUNsaWNrKTtcbiAgICB9O1xuICB9LCBbY2FsbGJhY2tdKTtcblxuICByZXR1cm4gcmVmO1xufVxuIiwiLyohXG4gKiBob3RrZXlzLWpzIHYzLjguMVxuICogQSBzaW1wbGUgbWljcm8tbGlicmFyeSBmb3IgZGVmaW5pbmcgYW5kIGRpc3BhdGNoaW5nIGtleWJvYXJkIHNob3J0Y3V0cy4gSXQgaGFzIG5vIGRlcGVuZGVuY2llcy5cbiAqIFxuICogQ29weXJpZ2h0IChjKSAyMDIwIGtlbm55IHdvbmcgPHdvd29ob29AcXEuY29tPlxuICogaHR0cDovL2pheXdjamxvdmUuZ2l0aHViLmlvL2hvdGtleXNcbiAqIFxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICovXG5cbnZhciBpc2ZmID0gdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgPyBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveCcpID4gMCA6IGZhbHNlOyAvLyDnu5Hlrprkuovku7ZcblxuZnVuY3Rpb24gYWRkRXZlbnQob2JqZWN0LCBldmVudCwgbWV0aG9kKSB7XG4gIGlmIChvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgIG9iamVjdC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBtZXRob2QsIGZhbHNlKTtcbiAgfSBlbHNlIGlmIChvYmplY3QuYXR0YWNoRXZlbnQpIHtcbiAgICBvYmplY3QuYXR0YWNoRXZlbnQoXCJvblwiLmNvbmNhdChldmVudCksIGZ1bmN0aW9uICgpIHtcbiAgICAgIG1ldGhvZCh3aW5kb3cuZXZlbnQpO1xuICAgIH0pO1xuICB9XG59IC8vIOS/rumlsOmUrui9rOaNouaIkOWvueW6lOeahOmUrueggVxuXG5cbmZ1bmN0aW9uIGdldE1vZHMobW9kaWZpZXIsIGtleSkge1xuICB2YXIgbW9kcyA9IGtleS5zbGljZSgwLCBrZXkubGVuZ3RoIC0gMSk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtb2RzLmxlbmd0aDsgaSsrKSB7XG4gICAgbW9kc1tpXSA9IG1vZGlmaWVyW21vZHNbaV0udG9Mb3dlckNhc2UoKV07XG4gIH1cblxuICByZXR1cm4gbW9kcztcbn0gLy8g5aSE55CG5Lyg55qEa2V55a2X56ym5Liy6L2s5o2i5oiQ5pWw57uEXG5cblxuZnVuY3Rpb24gZ2V0S2V5cyhrZXkpIHtcbiAgaWYgKHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSBrZXkgPSAnJztcbiAga2V5ID0ga2V5LnJlcGxhY2UoL1xccy9nLCAnJyk7IC8vIOWMuemFjeS7u+S9leepuueZveWtl+espizljIXmi6znqbrmoLzjgIHliLbooajnrKbjgIHmjaLpobXnrKbnrYnnrYlcblxuICB2YXIga2V5cyA9IGtleS5zcGxpdCgnLCcpOyAvLyDlkIzml7borr7nva7lpJrkuKrlv6vmjbfplK7vvIzku6UnLCfliIblibJcblxuICB2YXIgaW5kZXggPSBrZXlzLmxhc3RJbmRleE9mKCcnKTsgLy8g5b+r5o236ZSu5Y+v6IO95YyF5ZCrJywn77yM6ZyA54m55q6K5aSE55CGXG5cbiAgZm9yICg7IGluZGV4ID49IDA7KSB7XG4gICAga2V5c1tpbmRleCAtIDFdICs9ICcsJztcbiAgICBrZXlzLnNwbGljZShpbmRleCwgMSk7XG4gICAgaW5kZXggPSBrZXlzLmxhc3RJbmRleE9mKCcnKTtcbiAgfVxuXG4gIHJldHVybiBrZXlzO1xufSAvLyDmr5TovoPkv67ppbDplK7nmoTmlbDnu4RcblxuXG5mdW5jdGlvbiBjb21wYXJlQXJyYXkoYTEsIGEyKSB7XG4gIHZhciBhcnIxID0gYTEubGVuZ3RoID49IGEyLmxlbmd0aCA/IGExIDogYTI7XG4gIHZhciBhcnIyID0gYTEubGVuZ3RoID49IGEyLmxlbmd0aCA/IGEyIDogYTE7XG4gIHZhciBpc0luZGV4ID0gdHJ1ZTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGFycjEubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyMi5pbmRleE9mKGFycjFbaV0pID09PSAtMSkgaXNJbmRleCA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGlzSW5kZXg7XG59XG5cbnZhciBfa2V5TWFwID0ge1xuICBiYWNrc3BhY2U6IDgsXG4gIHRhYjogOSxcbiAgY2xlYXI6IDEyLFxuICBlbnRlcjogMTMsXG4gIHJldHVybjogMTMsXG4gIGVzYzogMjcsXG4gIGVzY2FwZTogMjcsXG4gIHNwYWNlOiAzMixcbiAgbGVmdDogMzcsXG4gIHVwOiAzOCxcbiAgcmlnaHQ6IDM5LFxuICBkb3duOiA0MCxcbiAgZGVsOiA0NixcbiAgZGVsZXRlOiA0NixcbiAgaW5zOiA0NSxcbiAgaW5zZXJ0OiA0NSxcbiAgaG9tZTogMzYsXG4gIGVuZDogMzUsXG4gIHBhZ2V1cDogMzMsXG4gIHBhZ2Vkb3duOiAzNCxcbiAgY2Fwc2xvY2s6IDIwLFxuICAn4oeqJzogMjAsXG4gICcsJzogMTg4LFxuICAnLic6IDE5MCxcbiAgJy8nOiAxOTEsXG4gICdgJzogMTkyLFxuICAnLSc6IGlzZmYgPyAxNzMgOiAxODksXG4gICc9JzogaXNmZiA/IDYxIDogMTg3LFxuICAnOyc6IGlzZmYgPyA1OSA6IDE4NixcbiAgJ1xcJyc6IDIyMixcbiAgJ1snOiAyMTksXG4gICddJzogMjIxLFxuICAnXFxcXCc6IDIyMFxufTsgLy8gTW9kaWZpZXIgS2V5c1xuXG52YXIgX21vZGlmaWVyID0ge1xuICAvLyBzaGlmdEtleVxuICAn4oenJzogMTYsXG4gIHNoaWZ0OiAxNixcbiAgLy8gYWx0S2V5XG4gICfijKUnOiAxOCxcbiAgYWx0OiAxOCxcbiAgb3B0aW9uOiAxOCxcbiAgLy8gY3RybEtleVxuICAn4oyDJzogMTcsXG4gIGN0cmw6IDE3LFxuICBjb250cm9sOiAxNyxcbiAgLy8gbWV0YUtleVxuICAn4oyYJzogOTEsXG4gIGNtZDogOTEsXG4gIGNvbW1hbmQ6IDkxXG59O1xudmFyIG1vZGlmaWVyTWFwID0ge1xuICAxNjogJ3NoaWZ0S2V5JyxcbiAgMTg6ICdhbHRLZXknLFxuICAxNzogJ2N0cmxLZXknLFxuICA5MTogJ21ldGFLZXknLFxuICBzaGlmdEtleTogMTYsXG4gIGN0cmxLZXk6IDE3LFxuICBhbHRLZXk6IDE4LFxuICBtZXRhS2V5OiA5MVxufTtcbnZhciBfbW9kcyA9IHtcbiAgMTY6IGZhbHNlLFxuICAxODogZmFsc2UsXG4gIDE3OiBmYWxzZSxcbiAgOTE6IGZhbHNlXG59O1xudmFyIF9oYW5kbGVycyA9IHt9OyAvLyBGMX5GMTIgc3BlY2lhbCBrZXlcblxuZm9yICh2YXIgayA9IDE7IGsgPCAyMDsgaysrKSB7XG4gIF9rZXlNYXBbXCJmXCIuY29uY2F0KGspXSA9IDExMSArIGs7XG59XG5cbnZhciBfZG93bktleXMgPSBbXTsgLy8g6K6w5b2V5pGB5LiL55qE57uR5a6a6ZSuXG5cbnZhciBfc2NvcGUgPSAnYWxsJzsgLy8g6buY6K6k54Ot6ZSu6IyD5Zu0XG5cbnZhciBlbGVtZW50SGFzQmluZEV2ZW50ID0gW107IC8vIOW3sue7keWumuS6i+S7tueahOiKgueCueiusOW9lVxuLy8g6L+U5Zue6ZSu56CBXG5cbnZhciBjb2RlID0gZnVuY3Rpb24gY29kZSh4KSB7XG4gIHJldHVybiBfa2V5TWFwW3gudG9Mb3dlckNhc2UoKV0gfHwgX21vZGlmaWVyW3gudG9Mb3dlckNhc2UoKV0gfHwgeC50b1VwcGVyQ2FzZSgpLmNoYXJDb2RlQXQoMCk7XG59OyAvLyDorr7nva7ojrflj5blvZPliY3ojIPlm7TvvIjpu5jorqTkuLon5omA5pyJJ++8iVxuXG5cbmZ1bmN0aW9uIHNldFNjb3BlKHNjb3BlKSB7XG4gIF9zY29wZSA9IHNjb3BlIHx8ICdhbGwnO1xufSAvLyDojrflj5blvZPliY3ojIPlm7RcblxuXG5mdW5jdGlvbiBnZXRTY29wZSgpIHtcbiAgcmV0dXJuIF9zY29wZSB8fCAnYWxsJztcbn0gLy8g6I635Y+W5pGB5LiL57uR5a6a6ZSu55qE6ZSu5YC8XG5cblxuZnVuY3Rpb24gZ2V0UHJlc3NlZEtleUNvZGVzKCkge1xuICByZXR1cm4gX2Rvd25LZXlzLnNsaWNlKDApO1xufSAvLyDooajljZXmjqfku7bmjqfku7bliKTmlq0g6L+U5ZueIEJvb2xlYW5cbi8vIGhvdGtleSBpcyBlZmZlY3RpdmUgb25seSB3aGVuIGZpbHRlciByZXR1cm4gdHJ1ZVxuXG5cbmZ1bmN0aW9uIGZpbHRlcihldmVudCkge1xuICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IHx8IGV2ZW50LnNyY0VsZW1lbnQ7XG4gIHZhciB0YWdOYW1lID0gdGFyZ2V0LnRhZ05hbWU7XG4gIHZhciBmbGFnID0gdHJ1ZTsgLy8gaWdub3JlOiBpc0NvbnRlbnRFZGl0YWJsZSA9PT0gJ3RydWUnLCA8aW5wdXQ+IGFuZCA8dGV4dGFyZWE+IHdoZW4gcmVhZE9ubHkgc3RhdGUgaXMgZmFsc2UsIDxzZWxlY3Q+XG5cbiAgaWYgKHRhcmdldC5pc0NvbnRlbnRFZGl0YWJsZSB8fCAodGFnTmFtZSA9PT0gJ0lOUFVUJyB8fCB0YWdOYW1lID09PSAnVEVYVEFSRUEnIHx8IHRhZ05hbWUgPT09ICdTRUxFQ1QnKSAmJiAhdGFyZ2V0LnJlYWRPbmx5KSB7XG4gICAgZmxhZyA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGZsYWc7XG59IC8vIOWIpOaWreaRgeS4i+eahOmUruaYr+WQpuS4uuafkOS4qumUru+8jOi/lOWbnnRydWXmiJbogIVmYWxzZVxuXG5cbmZ1bmN0aW9uIGlzUHJlc3NlZChrZXlDb2RlKSB7XG4gIGlmICh0eXBlb2Yga2V5Q29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICBrZXlDb2RlID0gY29kZShrZXlDb2RlKTsgLy8g6L2s5o2i5oiQ6ZSu56CBXG4gIH1cblxuICByZXR1cm4gX2Rvd25LZXlzLmluZGV4T2Yoa2V5Q29kZSkgIT09IC0xO1xufSAvLyDlvqrnjq/liKDpmaRoYW5kbGVyc+S4reeahOaJgOaciSBzY29wZSjojIPlm7QpXG5cblxuZnVuY3Rpb24gZGVsZXRlU2NvcGUoc2NvcGUsIG5ld1Njb3BlKSB7XG4gIHZhciBoYW5kbGVycztcbiAgdmFyIGk7IC8vIOayoeacieaMh+WumnNjb3Bl77yM6I635Y+Wc2NvcGVcblxuICBpZiAoIXNjb3BlKSBzY29wZSA9IGdldFNjb3BlKCk7XG5cbiAgZm9yICh2YXIga2V5IGluIF9oYW5kbGVycykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX2hhbmRsZXJzLCBrZXkpKSB7XG4gICAgICBoYW5kbGVycyA9IF9oYW5kbGVyc1trZXldO1xuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgaGFuZGxlcnMubGVuZ3RoOykge1xuICAgICAgICBpZiAoaGFuZGxlcnNbaV0uc2NvcGUgPT09IHNjb3BlKSBoYW5kbGVycy5zcGxpY2UoaSwgMSk7ZWxzZSBpKys7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIOWmguaenHNjb3Bl6KKr5Yig6Zmk77yM5bCGc2NvcGXph43nva7kuLphbGxcblxuXG4gIGlmIChnZXRTY29wZSgpID09PSBzY29wZSkgc2V0U2NvcGUobmV3U2NvcGUgfHwgJ2FsbCcpO1xufSAvLyDmuIXpmaTkv67ppbDplK5cblxuXG5mdW5jdGlvbiBjbGVhck1vZGlmaWVyKGV2ZW50KSB7XG4gIHZhciBrZXkgPSBldmVudC5rZXlDb2RlIHx8IGV2ZW50LndoaWNoIHx8IGV2ZW50LmNoYXJDb2RlO1xuXG4gIHZhciBpID0gX2Rvd25LZXlzLmluZGV4T2Yoa2V5KTsgLy8g5LuO5YiX6KGo5Lit5riF6Zmk5oyJ5Y6L6L+H55qE6ZSuXG5cblxuICBpZiAoaSA+PSAwKSB7XG4gICAgX2Rvd25LZXlzLnNwbGljZShpLCAxKTtcbiAgfSAvLyDnibnmrorlpITnkIYgY21tYW5kIOmUru+8jOWcqCBjbW1hbmQg57uE5ZCI5b+r5o236ZSuIGtleXVwIOWPquaJp+ihjOS4gOasoeeahOmXrumimFxuXG5cbiAgaWYgKGV2ZW50LmtleSAmJiBldmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ21ldGEnKSB7XG4gICAgX2Rvd25LZXlzLnNwbGljZSgwLCBfZG93bktleXMubGVuZ3RoKTtcbiAgfSAvLyDkv67ppbDplK4gc2hpZnRLZXkgYWx0S2V5IGN0cmxLZXkgKGNvbW1hbmR8fG1ldGFLZXkpIOa4hemZpFxuXG5cbiAgaWYgKGtleSA9PT0gOTMgfHwga2V5ID09PSAyMjQpIGtleSA9IDkxO1xuXG4gIGlmIChrZXkgaW4gX21vZHMpIHtcbiAgICBfbW9kc1trZXldID0gZmFsc2U7IC8vIOWwhuS/rumlsOmUrumHjee9ruS4umZhbHNlXG5cbiAgICBmb3IgKHZhciBrIGluIF9tb2RpZmllcikge1xuICAgICAgaWYgKF9tb2RpZmllcltrXSA9PT0ga2V5KSBob3RrZXlzW2tdID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVuYmluZChrZXlzSW5mbykge1xuICAvLyB1bmJpbmQoKSwgdW5iaW5kIGFsbCBrZXlzXG4gIGlmICgha2V5c0luZm8pIHtcbiAgICBPYmplY3Qua2V5cyhfaGFuZGxlcnMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgcmV0dXJuIGRlbGV0ZSBfaGFuZGxlcnNba2V5XTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGtleXNJbmZvKSkge1xuICAgIC8vIHN1cHBvcnQgbGlrZSA6IHVuYmluZChbe2tleTogJ2N0cmwrYScsIHNjb3BlOiAnczEnfSwge2tleTogJ2N0cmwtYScsIHNjb3BlOiAnczInLCBzcGxpdEtleTogJy0nfV0pXG4gICAga2V5c0luZm8uZm9yRWFjaChmdW5jdGlvbiAoaW5mbykge1xuICAgICAgaWYgKGluZm8ua2V5KSBlYWNoVW5iaW5kKGluZm8pO1xuICAgIH0pO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBrZXlzSW5mbyA9PT0gJ29iamVjdCcpIHtcbiAgICAvLyBzdXBwb3J0IGxpa2UgdW5iaW5kKHtrZXk6ICdjdHJsK2EsIGN0cmwrYicsIHNjb3BlOidhYmMnfSlcbiAgICBpZiAoa2V5c0luZm8ua2V5KSBlYWNoVW5iaW5kKGtleXNJbmZvKTtcbiAgfSBlbHNlIGlmICh0eXBlb2Yga2V5c0luZm8gPT09ICdzdHJpbmcnKSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgLy8gc3VwcG9ydCBvbGQgbWV0aG9kXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgIHZhciBzY29wZSA9IGFyZ3NbMF0sXG4gICAgICAgIG1ldGhvZCA9IGFyZ3NbMV07XG5cbiAgICBpZiAodHlwZW9mIHNjb3BlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBtZXRob2QgPSBzY29wZTtcbiAgICAgIHNjb3BlID0gJyc7XG4gICAgfVxuXG4gICAgZWFjaFVuYmluZCh7XG4gICAgICBrZXk6IGtleXNJbmZvLFxuICAgICAgc2NvcGU6IHNjb3BlLFxuICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICBzcGxpdEtleTogJysnXG4gICAgfSk7XG4gIH1cbn0gLy8g6Kej6Zmk57uR5a6a5p+Q5Liq6IyD5Zu055qE5b+r5o236ZSuXG5cblxudmFyIGVhY2hVbmJpbmQgPSBmdW5jdGlvbiBlYWNoVW5iaW5kKF9yZWYpIHtcbiAgdmFyIGtleSA9IF9yZWYua2V5LFxuICAgICAgc2NvcGUgPSBfcmVmLnNjb3BlLFxuICAgICAgbWV0aG9kID0gX3JlZi5tZXRob2QsXG4gICAgICBfcmVmJHNwbGl0S2V5ID0gX3JlZi5zcGxpdEtleSxcbiAgICAgIHNwbGl0S2V5ID0gX3JlZiRzcGxpdEtleSA9PT0gdm9pZCAwID8gJysnIDogX3JlZiRzcGxpdEtleTtcbiAgdmFyIG11bHRpcGxlS2V5cyA9IGdldEtleXMoa2V5KTtcbiAgbXVsdGlwbGVLZXlzLmZvckVhY2goZnVuY3Rpb24gKG9yaWdpbktleSkge1xuICAgIHZhciB1bmJpbmRLZXlzID0gb3JpZ2luS2V5LnNwbGl0KHNwbGl0S2V5KTtcbiAgICB2YXIgbGVuID0gdW5iaW5kS2V5cy5sZW5ndGg7XG4gICAgdmFyIGxhc3RLZXkgPSB1bmJpbmRLZXlzW2xlbiAtIDFdO1xuICAgIHZhciBrZXlDb2RlID0gbGFzdEtleSA9PT0gJyonID8gJyonIDogY29kZShsYXN0S2V5KTtcbiAgICBpZiAoIV9oYW5kbGVyc1trZXlDb2RlXSkgcmV0dXJuOyAvLyDliKTmlq3mmK/lkKbkvKDlhaXojIPlm7TvvIzmsqHmnInlsLHojrflj5bojIPlm7RcblxuICAgIGlmICghc2NvcGUpIHNjb3BlID0gZ2V0U2NvcGUoKTtcbiAgICB2YXIgbW9kcyA9IGxlbiA+IDEgPyBnZXRNb2RzKF9tb2RpZmllciwgdW5iaW5kS2V5cykgOiBbXTtcbiAgICBfaGFuZGxlcnNba2V5Q29kZV0gPSBfaGFuZGxlcnNba2V5Q29kZV0ubWFwKGZ1bmN0aW9uIChyZWNvcmQpIHtcbiAgICAgIC8vIOmAmui/h+WHveaVsOWIpOaWre+8jOaYr+WQpuino+mZpOe7keWumu+8jOWHveaVsOebuOetieebtOaOpei/lOWbnlxuICAgICAgdmFyIGlzTWF0Y2hpbmdNZXRob2QgPSBtZXRob2QgPyByZWNvcmQubWV0aG9kID09PSBtZXRob2QgOiB0cnVlO1xuXG4gICAgICBpZiAoaXNNYXRjaGluZ01ldGhvZCAmJiByZWNvcmQuc2NvcGUgPT09IHNjb3BlICYmIGNvbXBhcmVBcnJheShyZWNvcmQubW9kcywgbW9kcykpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVjb3JkO1xuICAgIH0pO1xuICB9KTtcbn07IC8vIOWvueebkeWQrOWvueW6lOW/q+aNt+mUrueahOWbnuiwg+WHveaVsOi/m+ihjOWkhOeQhlxuXG5cbmZ1bmN0aW9uIGV2ZW50SGFuZGxlcihldmVudCwgaGFuZGxlciwgc2NvcGUpIHtcbiAgdmFyIG1vZGlmaWVyc01hdGNoOyAvLyDnnIvlroPmmK/lkKblnKjlvZPliY3ojIPlm7RcblxuICBpZiAoaGFuZGxlci5zY29wZSA9PT0gc2NvcGUgfHwgaGFuZGxlci5zY29wZSA9PT0gJ2FsbCcpIHtcbiAgICAvLyDmo4Dmn6XmmK/lkKbljLnphY3kv67ppbDnrKbvvIjlpoLmnpzmnInov5Tlm550cnVl77yJXG4gICAgbW9kaWZpZXJzTWF0Y2ggPSBoYW5kbGVyLm1vZHMubGVuZ3RoID4gMDtcblxuICAgIGZvciAodmFyIHkgaW4gX21vZHMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX21vZHMsIHkpKSB7XG4gICAgICAgIGlmICghX21vZHNbeV0gJiYgaGFuZGxlci5tb2RzLmluZGV4T2YoK3kpID4gLTEgfHwgX21vZHNbeV0gJiYgaGFuZGxlci5tb2RzLmluZGV4T2YoK3kpID09PSAtMSkge1xuICAgICAgICAgIG1vZGlmaWVyc01hdGNoID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IC8vIOiwg+eUqOWkhOeQhueoi+W6j++8jOWmguaenOaYr+S/rumlsOmUruS4jeWBmuWkhOeQhlxuXG5cbiAgICBpZiAoaGFuZGxlci5tb2RzLmxlbmd0aCA9PT0gMCAmJiAhX21vZHNbMTZdICYmICFfbW9kc1sxOF0gJiYgIV9tb2RzWzE3XSAmJiAhX21vZHNbOTFdIHx8IG1vZGlmaWVyc01hdGNoIHx8IGhhbmRsZXIuc2hvcnRjdXQgPT09ICcqJykge1xuICAgICAgaWYgKGhhbmRsZXIubWV0aG9kKGV2ZW50LCBoYW5kbGVyKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGV2ZW50LnByZXZlbnREZWZhdWx0KSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO2Vsc2UgZXZlbnQucmV0dXJuVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGV2ZW50LnN0b3BQcm9wYWdhdGlvbikgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmIChldmVudC5jYW5jZWxCdWJibGUpIGV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59IC8vIOWkhOeQhmtleWRvd27kuovku7ZcblxuXG5mdW5jdGlvbiBkaXNwYXRjaChldmVudCkge1xuICB2YXIgYXN0ZXJpc2sgPSBfaGFuZGxlcnNbJyonXTtcbiAgdmFyIGtleSA9IGV2ZW50LmtleUNvZGUgfHwgZXZlbnQud2hpY2ggfHwgZXZlbnQuY2hhckNvZGU7IC8vIOihqOWNleaOp+S7tui/h+a7pCDpu5jorqTooajljZXmjqfku7bkuI3op6blj5Hlv6vmjbfplK5cblxuICBpZiAoIWhvdGtleXMuZmlsdGVyLmNhbGwodGhpcywgZXZlbnQpKSByZXR1cm47IC8vIEdlY2tvKEZpcmVmb3gp55qEY29tbWFuZOmUruWAvDIyNO+8jOWcqFdlYmtpdChDaHJvbWUp5Lit5L+d5oyB5LiA6Ie0XG4gIC8vIFdlYmtpdOW3puWPsyBjb21tYW5kIOmUruWAvOS4jeS4gOagt1xuXG4gIGlmIChrZXkgPT09IDkzIHx8IGtleSA9PT0gMjI0KSBrZXkgPSA5MTtcbiAgLyoqXG4gICAqIENvbGxlY3QgYm91bmQga2V5c1xuICAgKiBJZiBhbiBJbnB1dCBNZXRob2QgRWRpdG9yIGlzIHByb2Nlc3Npbmcga2V5IGlucHV0IGFuZCB0aGUgZXZlbnQgaXMga2V5ZG93biwgcmV0dXJuIDIyOS5cbiAgICogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjUwNDM5MzQvaXMtaXQtb2stdG8taWdub3JlLWtleWRvd24tZXZlbnRzLXdpdGgta2V5Y29kZS0yMjlcbiAgICogaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8yMDEwSnVsU2VwL2F0dC0wMTgyL2tleUNvZGUtc3BlYy5odG1sXG4gICAqL1xuXG4gIGlmIChfZG93bktleXMuaW5kZXhPZihrZXkpID09PSAtMSAmJiBrZXkgIT09IDIyOSkgX2Rvd25LZXlzLnB1c2goa2V5KTtcbiAgLyoqXG4gICAqIEplc3QgdGVzdCBjYXNlcyBhcmUgcmVxdWlyZWQuXG4gICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICovXG5cbiAgWydjdHJsS2V5JywgJ2FsdEtleScsICdzaGlmdEtleScsICdtZXRhS2V5J10uZm9yRWFjaChmdW5jdGlvbiAoa2V5TmFtZSkge1xuICAgIHZhciBrZXlOdW0gPSBtb2RpZmllck1hcFtrZXlOYW1lXTtcblxuICAgIGlmIChldmVudFtrZXlOYW1lXSAmJiBfZG93bktleXMuaW5kZXhPZihrZXlOdW0pID09PSAtMSkge1xuICAgICAgX2Rvd25LZXlzLnB1c2goa2V5TnVtKTtcbiAgICB9IGVsc2UgaWYgKCFldmVudFtrZXlOYW1lXSAmJiBfZG93bktleXMuaW5kZXhPZihrZXlOdW0pID4gLTEpIHtcbiAgICAgIF9kb3duS2V5cy5zcGxpY2UoX2Rvd25LZXlzLmluZGV4T2Yoa2V5TnVtKSwgMSk7XG4gICAgfSBlbHNlIGlmIChrZXlOYW1lID09PSAnbWV0YUtleScgJiYgZXZlbnRba2V5TmFtZV0gJiYgX2Rvd25LZXlzLmxlbmd0aCA9PT0gMykge1xuICAgICAgLyoqXG4gICAgICAgKiBGaXggaWYgQ29tbWFuZCBpcyBwcmVzc2VkOlxuICAgICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgICovXG4gICAgICBpZiAoIShldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSkpIHtcbiAgICAgICAgX2Rvd25LZXlzID0gX2Rvd25LZXlzLnNsaWNlKF9kb3duS2V5cy5pbmRleE9mKGtleU51bSkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIC8qKlxuICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIGlmIChrZXkgaW4gX21vZHMpIHtcbiAgICBfbW9kc1trZXldID0gdHJ1ZTsgLy8g5bCG54m55q6K5a2X56ym55qEa2V55rOo5YaM5YiwIGhvdGtleXMg5LiKXG5cbiAgICBmb3IgKHZhciBrIGluIF9tb2RpZmllcikge1xuICAgICAgaWYgKF9tb2RpZmllcltrXSA9PT0ga2V5KSBob3RrZXlzW2tdID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWFzdGVyaXNrKSByZXR1cm47XG4gIH0gLy8g5bCGIG1vZGlmaWVyTWFwIOmHjOmdoueahOS/rumlsOmUrue7keWumuWIsCBldmVudCDkuK1cblxuXG4gIGZvciAodmFyIGUgaW4gX21vZHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9tb2RzLCBlKSkge1xuICAgICAgX21vZHNbZV0gPSBldmVudFttb2RpZmllck1hcFtlXV07XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBodHRwczovL2dpdGh1Yi5jb20vamF5d2NqbG92ZS9ob3RrZXlzL3B1bGwvMTI5XG4gICAqIFRoaXMgc29sdmVzIHRoZSBpc3N1ZSBpbiBGaXJlZm94IG9uIFdpbmRvd3Mgd2hlcmUgaG90a2V5cyBjb3JyZXNwb25kaW5nIHRvIHNwZWNpYWwgY2hhcmFjdGVycyB3b3VsZCBub3QgdHJpZ2dlci5cbiAgICogQW4gZXhhbXBsZSBvZiB0aGlzIGlzIGN0cmwrYWx0K20gb24gYSBTd2VkaXNoIGtleWJvYXJkIHdoaWNoIGlzIHVzZWQgdG8gdHlwZSDOvC5cbiAgICogQnJvd3NlciBzdXBwb3J0OiBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWtleWJvYXJkZXZlbnQtZ2V0bW9kaWZpZXJzdGF0ZVxuICAgKi9cblxuXG4gIGlmIChldmVudC5nZXRNb2RpZmllclN0YXRlICYmICEoZXZlbnQuYWx0S2V5ICYmICFldmVudC5jdHJsS2V5KSAmJiBldmVudC5nZXRNb2RpZmllclN0YXRlKCdBbHRHcmFwaCcpKSB7XG4gICAgaWYgKF9kb3duS2V5cy5pbmRleE9mKDE3KSA9PT0gLTEpIHtcbiAgICAgIF9kb3duS2V5cy5wdXNoKDE3KTtcbiAgICB9XG5cbiAgICBpZiAoX2Rvd25LZXlzLmluZGV4T2YoMTgpID09PSAtMSkge1xuICAgICAgX2Rvd25LZXlzLnB1c2goMTgpO1xuICAgIH1cblxuICAgIF9tb2RzWzE3XSA9IHRydWU7XG4gICAgX21vZHNbMThdID0gdHJ1ZTtcbiAgfSAvLyDojrflj5bojIPlm7Qg6buY6K6k5Li6IGBhbGxgXG5cblxuICB2YXIgc2NvcGUgPSBnZXRTY29wZSgpOyAvLyDlr7nku7vkvZXlv6vmjbfplK7pg73pnIDopoHlgZrnmoTlpITnkIZcblxuICBpZiAoYXN0ZXJpc2spIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFzdGVyaXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYXN0ZXJpc2tbaV0uc2NvcGUgPT09IHNjb3BlICYmIChldmVudC50eXBlID09PSAna2V5ZG93bicgJiYgYXN0ZXJpc2tbaV0ua2V5ZG93biB8fCBldmVudC50eXBlID09PSAna2V5dXAnICYmIGFzdGVyaXNrW2ldLmtleXVwKSkge1xuICAgICAgICBldmVudEhhbmRsZXIoZXZlbnQsIGFzdGVyaXNrW2ldLCBzY29wZSk7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIGtleSDkuI3lnKggX2hhbmRsZXJzIOS4rei/lOWbnlxuXG5cbiAgaWYgKCEoa2V5IGluIF9oYW5kbGVycykpIHJldHVybjtcblxuICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgX2hhbmRsZXJzW2tleV0ubGVuZ3RoOyBfaSsrKSB7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyAmJiBfaGFuZGxlcnNba2V5XVtfaV0ua2V5ZG93biB8fCBldmVudC50eXBlID09PSAna2V5dXAnICYmIF9oYW5kbGVyc1trZXldW19pXS5rZXl1cCkge1xuICAgICAgaWYgKF9oYW5kbGVyc1trZXldW19pXS5rZXkpIHtcbiAgICAgICAgdmFyIHJlY29yZCA9IF9oYW5kbGVyc1trZXldW19pXTtcbiAgICAgICAgdmFyIHNwbGl0S2V5ID0gcmVjb3JkLnNwbGl0S2V5O1xuICAgICAgICB2YXIga2V5U2hvcnRjdXQgPSByZWNvcmQua2V5LnNwbGl0KHNwbGl0S2V5KTtcbiAgICAgICAgdmFyIF9kb3duS2V5c0N1cnJlbnQgPSBbXTsgLy8g6K6w5b2V5b2T5YmN5oyJ6ZSu6ZSu5YC8XG5cbiAgICAgICAgZm9yICh2YXIgYSA9IDA7IGEgPCBrZXlTaG9ydGN1dC5sZW5ndGg7IGErKykge1xuICAgICAgICAgIF9kb3duS2V5c0N1cnJlbnQucHVzaChjb2RlKGtleVNob3J0Y3V0W2FdKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoX2Rvd25LZXlzQ3VycmVudC5zb3J0KCkuam9pbignJykgPT09IF9kb3duS2V5cy5zb3J0KCkuam9pbignJykpIHtcbiAgICAgICAgICAvLyDmib7liLDlpITnkIblhoXlrrlcbiAgICAgICAgICBldmVudEhhbmRsZXIoZXZlbnQsIHJlY29yZCwgc2NvcGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IC8vIOWIpOaWrSBlbGVtZW50IOaYr+WQpuW3sue7j+e7keWumuS6i+S7tlxuXG5cbmZ1bmN0aW9uIGlzRWxlbWVudEJpbmQoZWxlbWVudCkge1xuICByZXR1cm4gZWxlbWVudEhhc0JpbmRFdmVudC5pbmRleE9mKGVsZW1lbnQpID4gLTE7XG59XG5cbmZ1bmN0aW9uIGhvdGtleXMoa2V5LCBvcHRpb24sIG1ldGhvZCkge1xuICBfZG93bktleXMgPSBbXTtcbiAgdmFyIGtleXMgPSBnZXRLZXlzKGtleSk7IC8vIOmcgOimgeWkhOeQhueahOW/q+aNt+mUruWIl+ihqFxuXG4gIHZhciBtb2RzID0gW107XG4gIHZhciBzY29wZSA9ICdhbGwnOyAvLyBzY29wZem7mOiupOS4umFsbO+8jOaJgOacieiMg+WbtOmDveacieaViFxuXG4gIHZhciBlbGVtZW50ID0gZG9jdW1lbnQ7IC8vIOW/q+aNt+mUruS6i+S7tue7keWumuiKgueCuVxuXG4gIHZhciBpID0gMDtcbiAgdmFyIGtleXVwID0gZmFsc2U7XG4gIHZhciBrZXlkb3duID0gdHJ1ZTtcbiAgdmFyIHNwbGl0S2V5ID0gJysnOyAvLyDlr7nkuLrorr7lrprojIPlm7TnmoTliKTmlq1cblxuICBpZiAobWV0aG9kID09PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9wdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIG1ldGhvZCA9IG9wdGlvbjtcbiAgfVxuXG4gIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob3B0aW9uKSA9PT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICBpZiAob3B0aW9uLnNjb3BlKSBzY29wZSA9IG9wdGlvbi5zY29wZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgaWYgKG9wdGlvbi5lbGVtZW50KSBlbGVtZW50ID0gb3B0aW9uLmVsZW1lbnQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGlmIChvcHRpb24ua2V5dXApIGtleXVwID0gb3B0aW9uLmtleXVwOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICBpZiAob3B0aW9uLmtleWRvd24gIT09IHVuZGVmaW5lZCkga2V5ZG93biA9IG9wdGlvbi5rZXlkb3duOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbi5zcGxpdEtleSA9PT0gJ3N0cmluZycpIHNwbGl0S2V5ID0gb3B0aW9uLnNwbGl0S2V5OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gIH1cblxuICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycpIHNjb3BlID0gb3B0aW9uOyAvLyDlr7nkuo7mr4/kuKrlv6vmjbfplK7ov5vooYzlpITnkIZcblxuICBmb3IgKDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBrZXlzW2ldLnNwbGl0KHNwbGl0S2V5KTsgLy8g5oyJ6ZSu5YiX6KGoXG5cbiAgICBtb2RzID0gW107IC8vIOWmguaenOaYr+e7hOWQiOW/q+aNt+mUruWPluW+l+e7hOWQiOW/q+aNt+mUrlxuXG4gICAgaWYgKGtleS5sZW5ndGggPiAxKSBtb2RzID0gZ2V0TW9kcyhfbW9kaWZpZXIsIGtleSk7IC8vIOWwhumdnuS/rumlsOmUrui9rOWMluS4uumUrueggVxuXG4gICAga2V5ID0ga2V5W2tleS5sZW5ndGggLSAxXTtcbiAgICBrZXkgPSBrZXkgPT09ICcqJyA/ICcqJyA6IGNvZGUoa2V5KTsgLy8gKuihqOekuuWMuemFjeaJgOacieW/q+aNt+mUrlxuICAgIC8vIOWIpOaWrWtleeaYr+WQpuWcqF9oYW5kbGVyc+S4re+8jOS4jeWcqOWwsei1i+S4gOS4quepuuaVsOe7hFxuXG4gICAgaWYgKCEoa2V5IGluIF9oYW5kbGVycykpIF9oYW5kbGVyc1trZXldID0gW107XG5cbiAgICBfaGFuZGxlcnNba2V5XS5wdXNoKHtcbiAgICAgIGtleXVwOiBrZXl1cCxcbiAgICAgIGtleWRvd246IGtleWRvd24sXG4gICAgICBzY29wZTogc2NvcGUsXG4gICAgICBtb2RzOiBtb2RzLFxuICAgICAgc2hvcnRjdXQ6IGtleXNbaV0sXG4gICAgICBtZXRob2Q6IG1ldGhvZCxcbiAgICAgIGtleToga2V5c1tpXSxcbiAgICAgIHNwbGl0S2V5OiBzcGxpdEtleVxuICAgIH0pO1xuICB9IC8vIOWcqOWFqOWxgGRvY3VtZW505LiK6K6+572u5b+r5o236ZSuXG5cblxuICBpZiAodHlwZW9mIGVsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmICFpc0VsZW1lbnRCaW5kKGVsZW1lbnQpICYmIHdpbmRvdykge1xuICAgIGVsZW1lbnRIYXNCaW5kRXZlbnQucHVzaChlbGVtZW50KTtcbiAgICBhZGRFdmVudChlbGVtZW50LCAna2V5ZG93bicsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBkaXNwYXRjaChlKTtcbiAgICB9KTtcbiAgICBhZGRFdmVudCh3aW5kb3csICdmb2N1cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIF9kb3duS2V5cyA9IFtdO1xuICAgIH0pO1xuICAgIGFkZEV2ZW50KGVsZW1lbnQsICdrZXl1cCcsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBkaXNwYXRjaChlKTtcbiAgICAgIGNsZWFyTW9kaWZpZXIoZSk7XG4gICAgfSk7XG4gIH1cbn1cblxudmFyIF9hcGkgPSB7XG4gIHNldFNjb3BlOiBzZXRTY29wZSxcbiAgZ2V0U2NvcGU6IGdldFNjb3BlLFxuICBkZWxldGVTY29wZTogZGVsZXRlU2NvcGUsXG4gIGdldFByZXNzZWRLZXlDb2RlczogZ2V0UHJlc3NlZEtleUNvZGVzLFxuICBpc1ByZXNzZWQ6IGlzUHJlc3NlZCxcbiAgZmlsdGVyOiBmaWx0ZXIsXG4gIHVuYmluZDogdW5iaW5kXG59O1xuXG5mb3IgKHZhciBhIGluIF9hcGkpIHtcbiAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfYXBpLCBhKSkge1xuICAgIGhvdGtleXNbYV0gPSBfYXBpW2FdO1xuICB9XG59XG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICB2YXIgX2hvdGtleXMgPSB3aW5kb3cuaG90a2V5cztcblxuICBob3RrZXlzLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoZGVlcCkge1xuICAgIGlmIChkZWVwICYmIHdpbmRvdy5ob3RrZXlzID09PSBob3RrZXlzKSB7XG4gICAgICB3aW5kb3cuaG90a2V5cyA9IF9ob3RrZXlzO1xuICAgIH1cblxuICAgIHJldHVybiBob3RrZXlzO1xuICB9O1xuXG4gIHdpbmRvdy5ob3RrZXlzID0gaG90a2V5cztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaG90a2V5cztcbiIsImltcG9ydCBob3RrZXlzIGZyb20gJ2hvdGtleXMtanMnO1xuaW1wb3J0IHsgdXNlUmVmLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5mdW5jdGlvbiB1c2VJc0hvdGtleVByZXNzZWQoKSB7XG4gIHJldHVybiBob3RrZXlzLmlzUHJlc3NlZDtcbn1cblxuZnVuY3Rpb24gdXNlSG90a2V5cyhrZXlzLCBjYWxsYmFjaywgb3B0aW9ucywgZGVwcykge1xuICBpZiAob3B0aW9ucyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgZGVwcyA9IG9wdGlvbnM7XG4gICAgb3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHZhciBfcmVmID0gb3B0aW9ucyB8fCB7fSxcbiAgICAgIGVuYWJsZU9uVGFncyA9IF9yZWYuZW5hYmxlT25UYWdzLFxuICAgICAgZmlsdGVyID0gX3JlZi5maWx0ZXIsXG4gICAgICBrZXl1cCA9IF9yZWYua2V5dXAsXG4gICAgICBrZXlkb3duID0gX3JlZi5rZXlkb3duO1xuXG4gIHZhciByZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBtZW1vaXNlZENhbGxiYWNrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGtleWJvYXJkRXZlbnQsIGhvdGtleXNFdmVudCkge1xuICAgIGlmIChyZWYuY3VycmVudCA9PT0gbnVsbCB8fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSByZWYuY3VycmVudCkge1xuICAgICAgY2FsbGJhY2soa2V5Ym9hcmRFdmVudCwgaG90a2V5c0V2ZW50KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfSwgZGVwcyA/IFtyZWZdLmNvbmNhdChkZXBzKSA6IFtyZWZdKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmVuYWJsZU9uVGFncykge1xuICAgICAgaG90a2V5cy5maWx0ZXIgPSBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgICAgdmFyIHRhcmdldCA9IF9yZWYyLnRhcmdldCxcbiAgICAgICAgICAgIHNyY0VsZW1lbnQgPSBfcmVmMi5zcmNFbGVtZW50O1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHZhciB0YXJnZXRUYWdOYW1lID0gdGFyZ2V0ICYmIHRhcmdldC50YWdOYW1lIHx8IHNyY0VsZW1lbnQgJiYgc3JjRWxlbWVudC50YWdOYW1lO1xuICAgICAgICByZXR1cm4gQm9vbGVhbih0YXJnZXRUYWdOYW1lICYmIGVuYWJsZU9uVGFncyAmJiBlbmFibGVPblRhZ3MuaW5jbHVkZXModGFyZ2V0VGFnTmFtZSkpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyKSBob3RrZXlzLmZpbHRlciA9IGZpbHRlcjtcblxuICAgIGlmIChrZXl1cCAmJiBrZXlkb3duICE9PSB0cnVlKSB7XG4gICAgICBvcHRpb25zLmtleWRvd24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBob3RrZXlzKGtleXMsIG9wdGlvbnMgfHwge30sIG1lbW9pc2VkQ2FsbGJhY2spO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gaG90a2V5cy51bmJpbmQoa2V5cywgbWVtb2lzZWRDYWxsYmFjayk7XG4gICAgfTtcbiAgfSwgW21lbW9pc2VkQ2FsbGJhY2ssIG9wdGlvbnMsIGVuYWJsZU9uVGFncywgZmlsdGVyLCBrZXlzXSk7XG4gIHJldHVybiByZWY7XG59XG5cbmV4cG9ydCB7IHVzZUhvdGtleXMsIHVzZUlzSG90a2V5UHJlc3NlZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtaG90a2V5cy1ob29rLmVzbS5qcy5tYXBcbiJdLCJzb3VyY2VSb290IjoiIn0=
11
+ var r="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function a(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on".concat(t),(function(){n(window.event)}))}function o(e,t){for(var n=t.slice(0,t.length-1),r=0;r<n.length;r++)n[r]=e[n[r].toLowerCase()];return n}function i(e){"string"!=typeof e&&(e="");for(var t=(e=e.replace(/\s/g,"")).split(","),n=t.lastIndexOf("");n>=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}for(var u={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,"⇪":20,",":188,".":190,"/":191,"`":192,"-":r?173:189,"=":r?61:187,";":r?59:186,"'":222,"[":219,"]":221,"\\":220},l={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},d={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},f={16:!1,18:!1,17:!1,91:!1},c={},s=1;s<20;s++)u["f".concat(s)]=111+s;var v=[],_="all",p=[],m=function(e){return u[e.toLowerCase()]||l[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function h(e){_=e||"all"}function y(){return _||"all"}var b=function(e){var t=e.key,n=e.scope,r=e.method,a=e.splitKey,u=void 0===a?"+":a;i(t).forEach((function(e){var t=e.split(u),a=t.length,i=t[a-1],d="*"===i?"*":m(i);if(c[d]){n||(n=y());var f=a>1?o(l,t):[];c[d]=c[d].map((function(e){return(!r||e.method===r)&&e.scope===n&&function(e,t){for(var n=e.length>=t.length?e:t,r=e.length>=t.length?t:e,a=!0,o=0;o<n.length;o++)-1===r.indexOf(n[o])&&(a=!1);return a}(e.mods,f)?{}:e}))}}))};function g(e,t,n){var r;if(t.scope===n||"all"===t.scope){for(var a in r=t.mods.length>0,f)Object.prototype.hasOwnProperty.call(f,a)&&(!f[a]&&t.mods.indexOf(+a)>-1||f[a]&&-1===t.mods.indexOf(+a))&&(r=!1);(0!==t.mods.length||f[16]||f[18]||f[17]||f[91])&&!r&&"*"!==t.shortcut||!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function O(e){var t=c["*"],n=e.keyCode||e.which||e.charCode;if(P.filter.call(this,e)){if(93!==n&&224!==n||(n=91),-1===v.indexOf(n)&&229!==n&&v.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach((function(t){var n=d[t];e[t]&&-1===v.indexOf(n)?v.push(n):!e[t]&&v.indexOf(n)>-1?v.splice(v.indexOf(n),1):"metaKey"===t&&e[t]&&3===v.length&&(e.ctrlKey||e.shiftKey||e.altKey||(v=v.slice(v.indexOf(n))))})),n in f){for(var r in f[n]=!0,l)l[r]===n&&(P[r]=!0);if(!t)return}for(var a in f)Object.prototype.hasOwnProperty.call(f,a)&&(f[a]=e[d[a]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===v.indexOf(17)&&v.push(17),-1===v.indexOf(18)&&v.push(18),f[17]=!0,f[18]=!0);var o=y();if(t)for(var i=0;i<t.length;i++)t[i].scope===o&&("keydown"===e.type&&t[i].keydown||"keyup"===e.type&&t[i].keyup)&&g(e,t[i],o);if(n in c)for(var u=0;u<c[n].length;u++)if(("keydown"===e.type&&c[n][u].keydown||"keyup"===e.type&&c[n][u].keyup)&&c[n][u].key){for(var s=c[n][u],_=s.splitKey,p=s.key.split(_),h=[],b=0;b<p.length;b++)h.push(m(p[b]));h.sort().join("")===v.sort().join("")&&g(e,s,o)}}}function P(e,t,n){v=[];var r=i(e),u=[],d="all",s=document,_=0,h=!1,y=!0,b="+";for(void 0===n&&"function"==typeof t&&(n=t),"[object Object]"===Object.prototype.toString.call(t)&&(t.scope&&(d=t.scope),t.element&&(s=t.element),t.keyup&&(h=t.keyup),void 0!==t.keydown&&(y=t.keydown),"string"==typeof t.splitKey&&(b=t.splitKey)),"string"==typeof t&&(d=t);_<r.length;_++)u=[],(e=r[_].split(b)).length>1&&(u=o(l,e)),(e="*"===(e=e[e.length-1])?"*":m(e))in c||(c[e]=[]),c[e].push({keyup:h,keydown:y,scope:d,mods:u,shortcut:r[_],method:n,key:r[_],splitKey:b});void 0!==s&&!function(e){return p.indexOf(e)>-1}(s)&&window&&(p.push(s),a(s,"keydown",(function(e){O(e)})),a(window,"focus",(function(){v=[]})),a(s,"keyup",(function(e){O(e),function(e){var t=e.keyCode||e.which||e.charCode,n=v.indexOf(t);if(n>=0&&v.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&v.splice(0,v.length),93!==t&&224!==t||(t=91),t in f)for(var r in f[t]=!1,l)l[r]===t&&(P[r]=!1)}(e)})))}var j={setScope:h,getScope:y,deleteScope:function(e,t){var n,r;for(var a in e||(e=y()),c)if(Object.prototype.hasOwnProperty.call(c,a))for(n=c[a],r=0;r<n.length;)n[r].scope===e?n.splice(r,1):r++;y()===e&&h(t||"all")},getPressedKeyCodes:function(){return v.slice(0)},isPressed:function(e){return"string"==typeof e&&(e=m(e)),-1!==v.indexOf(e)},filter:function(e){var t=e.target||e.srcElement,n=t.tagName,r=!0;return!t.isContentEditable&&("INPUT"!==n&&"TEXTAREA"!==n&&"SELECT"!==n||t.readOnly)||(r=!1),r},unbind:function(e){if(e){if(Array.isArray(e))e.forEach((function(e){e.key&&b(e)}));else if("object"==typeof e)e.key&&b(e);else if("string"==typeof e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var a=n[0],o=n[1];"function"==typeof a&&(o=a,a=""),b({key:e,scope:a,method:o,splitKey:"+"})}}else Object.keys(c).forEach((function(e){return delete c[e]}))}};for(var M in j)Object.prototype.hasOwnProperty.call(j,M)&&(P[M]=j[M]);if("undefined"!=typeof window){var w=window.hotkeys;P.noConflict=function(e){return e&&window.hotkeys===P&&(window.hotkeys=w),P},window.hotkeys=P}var E=P,k=n(0);function C(){return E.isPressed}function x(e,t,n,r){n instanceof Array&&(r=n,n=void 0);var a=n||{},o=a.enableOnTags,i=a.filter,u=a.keyup,l=a.keydown,d=Object(k.useRef)(null),f=Object(k.useCallback)((function(e,n){return(null===d.current||document.activeElement===d.current)&&(t(e,n),!0)}),r?[d].concat(r):[d]);return Object(k.useEffect)((function(){return n&&n.enableOnTags&&(E.filter=function(e){var t=e.target,n=e.srcElement,r=t&&t.tagName||n&&n.tagName;return Boolean(r&&o&&o.includes(r))}),i&&(E.filter=i),u&&!0!==l&&(n.keydown=!1),E(e,n||{},f),function(){return E.unbind(e,f)}}),[f,n,o,i,e]),d}}]));
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xhc3NjYXQvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL0J1dHRvbkJhZGdlLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25CYWRnZS9CdXR0b25CYWRnZS5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvQnV0dG9uTGluay5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NoZWNrYm94L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NoZWNrYm94L0NoZWNrYm94LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGFiZWwvTGFiZWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9DaGVja2JveC9DaGVja2JveC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclN3YXRjaC9Db2xvclN3YXRjaC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclBpY2tlci9Db2xvclBpY2tlci5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbmZpcm1hdGlvbk1vZGFsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Nb2RhbC9Nb2RhbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvTW9kYWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9GbG9hdGluZ1BhbmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uL0ljb24udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vSWNvbi5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL0ljb25CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmsvSWNvbkJ1dHRvbkxpbmsubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9JbWFnZS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSW1hZ2UvSW1hZ2UubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlldy50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlld0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3TGlua0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnUubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVDb250YWluZXIudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUNvbnRhaW5lci5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUl0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUl0ZW0ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVMaW5rSXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51TGlua0l0ZW0ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL092ZXJsYXkvT3ZlcmxheS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVGV4dElucHV0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdENvbnRhaW5lci50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3RDb250YWluZXIubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9WaWRlby50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vVmlkZW8ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2hvb2tzL3VzZVRvZ2dsZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvdXNlT3V0c2lkZUNsaWNrLnRzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ob3RrZXlzLWpzL2Rpc3QvaG90a2V5cy5lc20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWhvdGtleXMtaG9vay9kaXN0L3JlYWN0LWhvdGtleXMtaG9vay5lc20uanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJyZXF1aXJlIiwiaXNBcnJheSIsIkFycmF5IiwiY2MiLCJvYmoiLCJvdXQiLCJ0bXAiLCJrIiwibGVuZ3RoIiwiZGVmYXVsdCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiYnV0dG9uQmFkZ2UiLCJvbkNsaWNrIiwiY29udGFpbmVyUmVmIiwiZGlzYWJsZWQiLCJpbnZlcnRlZCIsInJvdW5kZWQiLCJub1NoYWRvdyIsIm5vUGFkZGluZyIsIm5vQm9yZGVyIiwidHJhbnNwYXJlbnQiLCJzdHJldGNoSG9yaXpvbnRhbGx5Iiwic3RyZXRjaFZlcnRpY2FsbHkiLCJvZmZzZXRTaWRlcyIsImFsaWduIiwic2l6ZSIsInR5cGUiLCJyZWYiLCJjb250YWluZXIiLCJsZWZ0T2Zmc2V0IiwiaW5jbHVkZXMiLCJyaWdodE9mZnNldCIsInJvbGUiLCJjb250ZW50IiwiQ29tcG9uZW50IiwicHJvcHMiLCJsYWJlbCIsIm9uQ2hhbmdlIiwicGxhY2Vob2xkZXIiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsImF1dG9Gb2N1cyIsImhhbmRsZUNoYW5nZSIsInVzZUNhbGxiYWNrIiwiZSIsInRhcmdldCIsIkxhYmVsIiwiaW5wdXRSZWYiLCJpbnB1dCIsImNvbG9ycyIsIm9uU2VsZWN0Iiwic2VsZWN0ZWRDb2xvciIsImRpcmVjdGlvbiIsImNvbG9yUGlja2VyIiwibWFwIiwiY29sb3IiLCJDb2xvclN3YXRjaCIsImlzU2VsZWN0ZWQiLCJjb2xvclN3YXRjaCIsInNlbGVjdGVkIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJoZXhDb2RlIiwic3JPbmx5IiwiQ29uZmlybWF0aW9uTW9kYWwiLCJoZWFkZXIiLCJpc09wZW4iLCJidXR0b25zTGVmdCIsImJ1dHRvbnNSaWdodCIsIm9uQ2xvc2UiLCJNb2RhbCIsIm1vZGFsSGVhZGVyIiwibW9kYWxDb250ZW50IiwibW9kYWxCdXR0b25zQ29udGFpbmVyIiwibW9kYWxCdXR0b25zIiwiZGlzcGxheU5hbWUiLCJidXR0b24iLCJ1c2VIb3RrZXlzIiwiaGFuZGxlT3ZlcmxheUNsaWNrIiwib3ZlcmxheSIsIm1vZGFsIiwibW9kYWxCdXR0b24iLCJsYXlvdXQiLCJwbGFjZW1lbnQiLCJob3Jpem9udGFsIiwidmVydGljYWwiLCJwYXJlbnQiLCJob3Jpem9udGFsUGxhY2VtZW50IiwidmVydGljYWxQbGFjZW1lbnQiLCJmaXhlZCIsInNyYyIsImFsdCIsImljb24iLCJjcm9zc09yaWdpbiIsImJhZGdlQ29udGVudCIsInRvcE9mZnNldCIsImJvdHRvbU9mZnNldCIsIkljb24iLCJCdXR0b25CYWRnZSIsImVtcHR5SW1hZ2UiLCJzcmNXaWR0aCIsInNyY0hlaWdodCIsImFuaW1hdGlvbiIsInVzZVN0YXRlIiwiaXNMb2FkZWQiLCJzZXRJc0xvYWRlZCIsImltYWdlUmVmIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiaW1hZ2UiLCJJbWFnZSIsIm9ubG9hZCIsImN1cnJlbnQiLCJzZXRBdHRyaWJ1dGUiLCJoYXNPdmVybGF5IiwiZmFkZUluIiwic2NhbGVVcCIsIndpZHRoIiwiaGVpZ2h0IiwiaGVhZGVyQWN0aW9ucyIsImhlYWRlckxhYmVsIiwibGlzdCIsImFjdGl2ZSIsImxpc3RWaWV3SXRlbSIsIkJ1dHRvbiIsIkJ1dHRvbkxpbmsiLCJhcyIsIm1lbnUiLCJvcGVuIiwibWVudUhlYWRlciIsImZvcndhcmRSZWYiLCJtZW51Q29udGFpbmVyIiwiaXNBY3RpdmUiLCJtZW51SXRlbSIsIm1lbnVMaW5rSXRlbSIsImlzRml4ZWQiLCJpbnB1dEVsZW1lbnQiLCJ0ZXh0SW5wdXQiLCJ1bmRlZmluZWQiLCJ0b2FzdCIsInRvYXN0Q29udGFpbmVyIiwibXV0ZWQiLCJsb29wIiwiYXV0b1BsYXkiLCJ2aWRlbyIsInBsYXlzSW5saW5lIiwiaW5pdGlhbFZhbHVlIiwic2V0VmFsdWUiLCJuZXdWYWx1ZSIsInByZXZWYWx1ZSIsImNhbGxiYWNrIiwiaGFuZGxlQ2xpY2siLCJldmVudCIsImNvbnRhaW5zIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImlzZmYiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJ0b0xvd2VyQ2FzZSIsImluZGV4T2YiLCJhZGRFdmVudCIsIm1ldGhvZCIsImF0dGFjaEV2ZW50IiwiY29uY2F0Iiwid2luZG93IiwiZ2V0TW9kcyIsIm1vZGlmaWVyIiwibW9kcyIsInNsaWNlIiwiZ2V0S2V5cyIsImtleXMiLCJyZXBsYWNlIiwic3BsaXQiLCJpbmRleCIsImxhc3RJbmRleE9mIiwic3BsaWNlIiwiX2tleU1hcCIsImJhY2tzcGFjZSIsInRhYiIsImNsZWFyIiwiZW50ZXIiLCJyZXR1cm4iLCJlc2MiLCJlc2NhcGUiLCJzcGFjZSIsImxlZnQiLCJ1cCIsInJpZ2h0IiwiZG93biIsImRlbCIsImRlbGV0ZSIsImlucyIsImluc2VydCIsImhvbWUiLCJlbmQiLCJwYWdldXAiLCJwYWdlZG93biIsImNhcHNsb2NrIiwiJyIsIl9tb2RpZmllciIsInNoaWZ0Iiwib3B0aW9uIiwiY3RybCIsImNvbnRyb2wiLCJjbWQiLCJjb21tYW5kIiwibW9kaWZpZXJNYXAiLCIxNiIsIjE4IiwiMTciLCI5MSIsInNoaWZ0S2V5IiwiY3RybEtleSIsImFsdEtleSIsIm1ldGFLZXkiLCJfbW9kcyIsIl9oYW5kbGVycyIsIl9kb3duS2V5cyIsIl9zY29wZSIsImVsZW1lbnRIYXNCaW5kRXZlbnQiLCJjb2RlIiwieCIsInRvVXBwZXJDYXNlIiwiY2hhckNvZGVBdCIsInNldFNjb3BlIiwic2NvcGUiLCJnZXRTY29wZSIsImVhY2hVbmJpbmQiLCJfcmVmIiwiX3JlZiRzcGxpdEtleSIsInNwbGl0S2V5IiwiZm9yRWFjaCIsIm9yaWdpbktleSIsInVuYmluZEtleXMiLCJsZW4iLCJsYXN0S2V5Iiwia2V5Q29kZSIsInJlY29yZCIsImExIiwiYTIiLCJhcnIxIiwiYXJyMiIsImlzSW5kZXgiLCJjb21wYXJlQXJyYXkiLCJldmVudEhhbmRsZXIiLCJoYW5kbGVyIiwibW9kaWZpZXJzTWF0Y2giLCJ5Iiwic2hvcnRjdXQiLCJwcmV2ZW50RGVmYXVsdCIsInJldHVyblZhbHVlIiwic3RvcFByb3BhZ2F0aW9uIiwiY2FuY2VsQnViYmxlIiwiZGlzcGF0Y2giLCJhc3RlcmlzayIsIndoaWNoIiwiY2hhckNvZGUiLCJob3RrZXlzIiwiZmlsdGVyIiwidGhpcyIsInB1c2giLCJrZXlOYW1lIiwia2V5TnVtIiwiZ2V0TW9kaWZpZXJTdGF0ZSIsImtleWRvd24iLCJrZXl1cCIsIl9pIiwia2V5U2hvcnRjdXQiLCJfZG93bktleXNDdXJyZW50IiwiYSIsInNvcnQiLCJqb2luIiwiZWxlbWVudCIsInRvU3RyaW5nIiwiaXNFbGVtZW50QmluZCIsImNsZWFyTW9kaWZpZXIiLCJfYXBpIiwiZGVsZXRlU2NvcGUiLCJuZXdTY29wZSIsImhhbmRsZXJzIiwiZ2V0UHJlc3NlZEtleUNvZGVzIiwiaXNQcmVzc2VkIiwic3JjRWxlbWVudCIsInRhZ05hbWUiLCJmbGFnIiwiaXNDb250ZW50RWRpdGFibGUiLCJyZWFkT25seSIsInVuYmluZCIsImtleXNJbmZvIiwiaW5mbyIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiX2tleSIsIl9ob3RrZXlzIiwibm9Db25mbGljdCIsImRlZXAiLCJ1c2VJc0hvdGtleVByZXNzZWQiLCJvcHRpb25zIiwiZGVwcyIsImVuYWJsZU9uVGFncyIsIm1lbW9pc2VkQ2FsbGJhY2siLCJrZXlib2FyZEV2ZW50IiwiaG90a2V5c0V2ZW50IiwiYWN0aXZlRWxlbWVudCIsIl9yZWYyIiwidGFyZ2V0VGFnTmFtZSIsIkJvb2xlYW4iXSwibWFwcGluZ3MiOiI2REFDRSxJQUFJQSxFQUFtQixHQUd2QixTQUFTQyxFQUFvQkMsR0FHNUIsR0FBR0YsRUFBaUJFLEdBQ25CLE9BQU9GLEVBQWlCRSxHQUFVQyxRQUduQyxJQUFJQyxFQUFTSixFQUFpQkUsR0FBWSxDQUN6Q0csRUFBR0gsRUFD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QUFRLEVBQVFBLE9BQVNBLEdBRXpCTyxJQUFxQixJQUFaRCxJQUNYa0MsRUFBUWxDLFNBQVUsR0FHcEIsRUFBUTlGLEVBQU1nSSxHQUFXLEdBQUlHLEdBQ3RCLFdBQ0wsT0FBTyxFQUFRZCxPQUFPckgsRUFBTW1JLE1BRTdCLENBQUNBLEVBQWtCSCxFQUFTRSxFQUFjMUMsRUFBUXhGLElBQzlDakoiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMTApO1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7IiwidmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNjKG9iaikge1xuICB2YXIgb3V0ID0gXCJcIlxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiBvYmogPT09IFwibnVtYmVyXCIpIHJldHVybiBvYmogfHwgXCJcIlxuXG4gIGlmIChpc0FycmF5KG9iaikpXG4gICAgZm9yICh2YXIgayA9IDAsIHRtcDsgayA8IG9iai5sZW5ndGg7IGsrKykge1xuICAgICAgaWYgKCh0bXAgPSBjYyhvYmpba10pKSAhPT0gXCJcIikge1xuICAgICAgICBvdXQgKz0gKG91dCAmJiBcIiBcIikgKyB0bXBcbiAgICAgIH1cbiAgICB9XG4gIGVsc2VcbiAgICBmb3IgKHZhciBrIGluIG9iaikge1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrKSAmJiBvYmpba10pIG91dCArPSAob3V0ICYmIFwiIFwiKSArIGtcbiAgICB9XG5cbiAgcmV0dXJuIG91dFxufVxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b25CYWRnZSB9IGZyb20gXCIuL0J1dHRvbkJhZGdlXCI7XHJcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTGFiZWwgfSBmcm9tIFwiLi9MYWJlbFwiO1xyXG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEljb24gfSBmcm9tIFwiLi9JY29uXCI7XHJcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uIH0gZnJvbSBcIi4vQnV0dG9uXCI7XHJcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uTGluayB9IGZyb20gXCIuL0J1dHRvbkxpbmtcIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xvclN3YXRjaCB9IGZyb20gXCIuL0NvbG9yU3dhdGNoXCI7XHJcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTW9kYWwgfSBmcm9tIFwiLi9Nb2RhbFwiO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImxpc3RWaWV3SXRlbVwiOlwiXzFmajJhbmllUTBKS3hDQVprU2FhcGtcIn07IiwiZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9CdXR0b25CYWRnZVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0J1dHRvblwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0J1dHRvbkxpbmtcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9DaGVja2JveFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0NvbG9yUGlja2VyXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2hcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWxcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JY29uXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvSWNvbkJ1dHRvblwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ljb25CdXR0b25MaW5rXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvSW1hZ2VcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9MaXN0Vmlld1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL01lbnVcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Nb2RhbFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL092ZXJsYXlcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9MYWJlbFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL1RleHRJbnB1dFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL1RvYXN0XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVmlkZW9cIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vaG9va3NcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0J1dHRvbkJhZGdlLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgQnV0dG9uQmFkZ2VQcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxufTtcclxuXHJcbmZ1bmN0aW9uIEJ1dHRvbkJhZGdlKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSB9OiBCdXR0b25CYWRnZVByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmJ1dHRvbkJhZGdlLCBjbGFzc05hbWVdKX0+e2NoaWxkcmVufTwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbkJhZGdlO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImJ1dHRvbkJhZGdlXCI6XCJfMVVsWUZFR2MzZE1ndG9OaWw2U094NVwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QsIFN5bnRoZXRpY0V2ZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQnV0dG9uLm1vZHVsZS5jc3NcIjtcclxuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5cclxudHlwZSBCdXR0b25Qcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICBpbnZlcnRlZD86IGJvb2xlYW47XHJcbiAgcm91bmRlZD86IGJvb2xlYW47XHJcbiAgbm9TaGFkb3c/OiBib29sZWFuO1xyXG4gIG5vUGFkZGluZz86IGJvb2xlYW47XHJcbiAgbm9Cb3JkZXI/OiBib29sZWFuO1xyXG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcclxuICBzdHJldGNoSG9yaXpvbnRhbGx5PzogYm9vbGVhbjtcclxuICBzdHJldGNoVmVydGljYWxseT86IGJvb2xlYW47XHJcbiAgb25DbGljaz86IChldmVudD86IFN5bnRoZXRpY0V2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4gdm9pZDtcclxuICBzaXplPzogU2l6ZTtcclxuICB0eXBlPzogXCJzdWJtaXRcIiB8IFwicmVzZXRcIiB8IFwiYnV0dG9uXCI7XHJcbiAgYWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCI7XHJcbiAgb2Zmc2V0U2lkZXM/OiBBcnJheTxcImxlZnRcIiB8IFwicmlnaHRcIj47XHJcbn07XHJcblxyXG5mdW5jdGlvbiBCdXR0b24oe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGNsYXNzTmFtZSxcclxuICBvbkNsaWNrLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBkaXNhYmxlZCA9IGZhbHNlLFxyXG4gIGludmVydGVkID0gZmFsc2UsXHJcbiAgcm91bmRlZCA9IGZhbHNlLFxyXG4gIG5vU2hhZG93ID0gZmFsc2UsXHJcbiAgbm9QYWRkaW5nID0gZmFsc2UsXHJcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcclxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxyXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHkgPSBmYWxzZSxcclxuICBzdHJldGNoVmVydGljYWxseSA9IGZhbHNlLFxyXG4gIG9mZnNldFNpZGVzID0gW10sXHJcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG4gIHR5cGUsXHJcbn06IEJ1dHRvblByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxidXR0b25cclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXHJcbiAgICAgICAgc3R5bGVzW3NpemVdLFxyXG4gICAgICAgIHN0eWxlc1thbGlnbl0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxyXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcclxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcclxuICAgICAgICAgIFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nLFxyXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxyXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxyXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoSG9yaXpvbnRhbGx5XTogc3RyZXRjaEhvcml6b250YWxseSxcclxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaFZlcnRpY2FsbHldOiBzdHJldGNoVmVydGljYWxseSxcclxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxyXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgXSl9XHJcbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cclxuICAgICAgb25DbGljaz17b25DbGlja31cclxuICAgICAgdHlwZT17dHlwZX1cclxuICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICA+XHJcbiAgICAgIHt0eXBlb2YgY2hpbGRyZW4gIT09IFwic3RyaW5nXCIgJiZcclxuICAgICAgQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiZcclxuICAgICAgY2hpbGRyZW4ubGVuZ3RoID8gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGVudH0+e2NoaWxkcmVufTwvZGl2PlxyXG4gICAgICApIDogKFxyXG4gICAgICAgIGNoaWxkcmVuXHJcbiAgICAgICl9XHJcbiAgICA8L2J1dHRvbj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBCdXR0b247XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMTJ3NVdPRjNLc2EySkI1LVlPWHlEN1wiLFwibGVmdFwiOlwiXzJURlY3MkRyUXg1SkdTaE5jdXQ0RS1cIixcInNtYWxsXCI6XCJ1VEJyY2pwSHA5NlJDd0Y1VUR6ZjBcIixcImxhcmdlXCI6XCJfMTRTU2ZzNVNWV0s3Tnh1WkJxTWd6QlwiLFwieGxhcmdlXCI6XCJfMVNRdTJRV3cyYTdldzQ3V1cxMlpTZ1wiLFwiaW52ZXJ0ZWRcIjpcIl8yaFpoaGk4QmdFX2VrUVZuOWVYOURYXCIsXCJyb3VuZGVkXCI6XCJWQkRPU2NZY1FuVTJleXRrQV9QYzZcIixcInJpZ2h0T2Zmc2V0XCI6XCJfMkdUWTNYbWFPdTkyM005c0VSczZha1wiLFwibGVmdE9mZnNldFwiOlwiXzE1UTBHR2tnWUpfYUxtMDFuR0U1WWhcIixcIm5vU2hhZG93XCI6XCJSZXdtRHFqcDZuVWVFWUhFS3pUSkRcIixcIm5vQm9yZGVyXCI6XCJuWnFJVVBUOGNaODdCVzRyOGt4VVwiLFwidHJhbnNwYXJlbnRcIjpcIl82NjlsUjR5MkFIOTdBMWx5NU1ZV09cIixcInN0cmV0Y2hIb3Jpem9udGFsbHlcIjpcIl8zaWN1dFhId3pJaW93dDdiVmEzWWliXCIsXCJzdHJldGNoVmVydGljYWxseVwiOlwiXzJrQ2t4UGtwbFAxeHFqZmtlcG95TnBcIixcIm5vUGFkZGluZ1wiOlwiXzNrTmJDZ2NJLVJfRkZRLTNPNlQwbGFcIixcImNvbnRlbnRcIjpcIl8yYkYxQVNjRXhza3VPcHV6ZC1jRF82XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIEVsZW1lbnRUeXBlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9CdXR0b25MaW5rLm1vZHVsZS5jc3NcIjtcclxuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5cclxudHlwZSBPZmZzZXRTaWRlID0gXCJsZWZ0XCIgfCBcInJpZ2h0XCI7XHJcblxyXG50eXBlIEJ1dHRvbkxpbmtQcm9wcyA9XHJcbiAgfCB7XHJcbiAgICAgIGFzPzogRWxlbWVudFR5cGU7XHJcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcclxuICAgICAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50PjtcclxuICAgICAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xyXG4gICAgICByb3VuZGVkPzogYm9vbGVhbjtcclxuICAgICAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gICAgICBub1NoYWRvdz86IGJvb2xlYW47XHJcbiAgICAgIG5vUGFkZGluZz86IGJvb2xlYW47XHJcbiAgICAgIG5vQm9yZGVyPzogYm9vbGVhbjtcclxuICAgICAgc3RyZXRjaEhvcml6b250YWxseT86IGJvb2xlYW47XHJcbiAgICAgIHN0cmV0Y2hWZXJ0aWNhbGx5PzogYm9vbGVhbjtcclxuICAgICAgc2l6ZT86IFNpemU7XHJcbiAgICAgIG9mZnNldFNpZGVzPzogQXJyYXk8T2Zmc2V0U2lkZT47XHJcbiAgICAgIGFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xyXG4gICAgfVxyXG4gIHwgYW55O1xyXG5cclxuZnVuY3Rpb24gQnV0dG9uTGluayh7XHJcbiAgYXM6IENvbXBvbmVudCxcclxuICBjaGlsZHJlbixcclxuICBjbGFzc05hbWUsXHJcbiAgc2l6ZSxcclxuICBjb250YWluZXJSZWYsXHJcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcclxuICByb3VuZGVkID0gZmFsc2UsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBub1NoYWRvdyA9IGZhbHNlLFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG4gIG5vQm9yZGVyID0gZmFsc2UsXHJcbiAgc3RyZXRjaEhvcml6b250YWxseSA9IGZhbHNlLFxyXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5ID0gZmFsc2UsXHJcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcclxuICBhbGlnbiA9IFwiY2VudGVyXCIsXHJcbiAgLi4ucHJvcHNcclxufTogQnV0dG9uTGlua1Byb3BzKSB7XHJcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgIENvbXBvbmVudCA9IFwiYVwiO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxDb21wb25lbnRcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiYnV0dG9uLWxpbmtcIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICBzdHlsZXNbYWxpZ25dLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcclxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXHJcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcclxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcclxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hWZXJ0aWNhbGx5XTogc3RyZXRjaFZlcnRpY2FsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgIF0pfVxyXG4gICAgICB7Li4ucHJvcHN9XHJcbiAgICA+XHJcbiAgICAgIHt0eXBlb2YgY2hpbGRyZW4gIT09IFwic3RyaW5nXCIgJiZcclxuICAgICAgQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiZcclxuICAgICAgY2hpbGRyZW4ubGVuZ3RoID8gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGVudH0+e2NoaWxkcmVufTwvZGl2PlxyXG4gICAgICApIDogKFxyXG4gICAgICAgIGNoaWxkcmVuXHJcbiAgICAgICl9XHJcbiAgICA8L0NvbXBvbmVudD5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBCdXR0b25MaW5rO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzJRdTlSYUc1NXBXeUphVF9fM19vRkFcIixcImxlZnRcIjpcIl8zbngzZ05Qemo2TFRfMWh3blFIeE9KXCIsXCJzbWFsbFwiOlwiXzJMdl82eHgyR2wzMzVLVDlJb29qM2dcIixcIm1lZGl1bVwiOlwiXzNIeDhwaGF6M3pMcU5zZUFwTklXWkhcIixcImxhcmdlXCI6XCJfMi1PRVlGb0l2bHM0TjJDUnVZLWVKclwiLFwieGxhcmdlXCI6XCJfNnhGWUFQQVB3QVdsaG0wZ2R0b1pSXCIsXCJpbnZlcnRlZFwiOlwiXzJwRUdpSzNLdVBuRXZ3aU9DRGdGRGFcIixcInJvdW5kZWRcIjpcIl8xenlWS3Ntb3pQUnRMSER0X2o2MTROXCIsXCJyaWdodE9mZnNldFwiOlwiXzFyWXZ0cW5aeUk0UnJ1bEM3S0djb3VcIixcImxlZnRPZmZzZXRcIjpcIl8zVHI3ZU80RXMxQm90aDJLX3NpVEFOXCIsXCJub1NoYWRvd1wiOlwiXzJ3WjNHSUkzb05kOElYN2FnYS1hTXVcIixcInRyYW5zcGFyZW50XCI6XCJfMVRLZ3BTWWxfQTBJU2tCY1Qxamx5N1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzNwMlRZNG5vZFZpdTlqeC1MekdDTmVcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfM2dFd2tScHJuU19JUkV1M0t0TnpNRFwiLFwibm9QYWRkaW5nXCI6XCJfMkpwS0pydW1BVGNUVFJUN3hpZmY5aVwiLFwibm9Cb3JkZXJcIjpcIl8xUDNQMjc0d291NmxFQTg3ZzZyRlYyXCIsXCJjb250ZW50XCI6XCJzTkRycTNjWDZJNlEtT3V1c3o3VGlcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja2JveCB9IGZyb20gXCIuL0NoZWNrYm94XCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gXCIuLi9MYWJlbFwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NoZWNrYm94Lm1vZHVsZS5jc3NcIjtcclxuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5cclxudHlwZSBDaGVja2JveFByb3BzID0ge1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgY2hlY2tlZD86IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgc2l6ZT86IFNpemU7XHJcbiAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcclxuICBpbmRldGVybWluYXRlPzogYm9vbGVhbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIENoZWNrYm94KHtcclxuICBsYWJlbCxcclxuICBvbkNoYW5nZSxcclxuICBwbGFjZWhvbGRlcixcclxuICBjaGVja2VkLFxyXG4gIGRpc2FibGVkLFxyXG4gIG5hbWUsXHJcbiAgaW5kZXRlcm1pbmF0ZSxcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICBhdXRvRm9jdXMgPSBmYWxzZSxcclxufTogQ2hlY2tib3hQcm9wcykge1xyXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxyXG4gICAgKGU6IFJlYWN0LkZvcm1FdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cclxuICAgICAgb25DaGFuZ2UoKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQpLFxyXG4gICAgW29uQ2hhbmdlXVxyXG4gICk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8TGFiZWwgdmFsdWU9e2xhYmVsfT5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaGVja2JveFwiXHJcbiAgICAgICAgcmVmPXsoaW5wdXRSZWYpID0+IHtcclxuICAgICAgICAgIGlmIChpbnB1dFJlZikge1xyXG4gICAgICAgICAgICBpbnB1dFJlZi5pbmRldGVybWluYXRlID0gaW5kZXRlcm1pbmF0ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fVxyXG4gICAgICAgIGNoZWNrZWQ9e2NoZWNrZWR9XHJcbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5pbnB1dCwgc3R5bGVzW3NpemVdXSl9XHJcbiAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cclxuICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgbmFtZT17bmFtZX1cclxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxyXG4gICAgICAvPlxyXG4gICAgPC9MYWJlbD5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDaGVja2JveDtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xhYmVsLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgTGFiZWxJbnB1dFByb3BzID0ge1xyXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MTGFiZWxFbGVtZW50PjtcclxuICB2YWx1ZTogc3RyaW5nO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gTGFiZWwoeyBjaGlsZHJlbiwgdmFsdWUsIGNvbnRhaW5lclJlZiB9OiBMYWJlbElucHV0UHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGxhYmVsIHJlZj17Y29udGFpbmVyUmVmfSBjbGFzc05hbWU9e3N0eWxlcy5jb250YWluZXJ9PlxyXG4gICAgICB7dmFsdWV9XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvbGFiZWw+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTGFiZWw7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMTVEYnNfWDVJVDl0a21Bc01YUE5WSlwifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImlucHV0XCI6XCJfMXAyaG1qbU0xcU5aVFpJaUZIRkl4dVwiLFwic21hbGxcIjpcIl8xSmlfXzlVLUQ1VWRXMk5KV1dVUHJDXCIsXCJtZWRpdW1cIjpcIl8zS0pTMkZSUzJ0ZDkwUXI2cjMzTDI4XCIsXCJsYXJnZVwiOlwiXzFqN29kQ0VFWDJEa2dncEladUY0TUlcIixcInhsYXJnZVwiOlwiXzNLWndoVW14QkplYjJ4dGs4OGdhR1dcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xvclBpY2tlciB9IGZyb20gXCIuL0NvbG9yUGlja2VyXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHsgQ29sb3JTd2F0Y2ggfSBmcm9tIFwiLi4vQ29sb3JTd2F0Y2hcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Db2xvclBpY2tlci5tb2R1bGUuY3NzXCI7XHJcbmltcG9ydCB7IENvbG9yIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIENvbG9yUGlja2VyUHJvcHMgPSB7XHJcbiAgY29sb3JzOiBDb2xvcltdO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgZGlyZWN0aW9uPzogXCJob3Jpem9udGFsXCIgfCBcInZlcnRpY2FsXCI7XHJcbiAgb25TZWxlY3Q6IChjb2xvcjogQ29sb3IpID0+IHZvaWQ7XHJcbiAgc2VsZWN0ZWRDb2xvcj86IENvbG9yO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQ29sb3JQaWNrZXIoe1xyXG4gIGNvbG9ycyxcclxuICBjb250YWluZXJSZWYsXHJcbiAgb25TZWxlY3QsXHJcbiAgc2VsZWN0ZWRDb2xvcixcclxuICBkaXJlY3Rpb24gPSBcInZlcnRpY2FsXCIsXHJcbn06IENvbG9yUGlja2VyUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbG9yUGlja2VyLCBzdHlsZXNbZGlyZWN0aW9uXV0pfVxyXG4gICAgPlxyXG4gICAgICB7Y29sb3JzLm1hcCgoY29sb3I6IENvbG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxDb2xvclN3YXRjaFxyXG4gICAgICAgICAgICBrZXk9e2NvbG9yLmtleX1cclxuICAgICAgICAgICAgY29sb3I9e2NvbG9yfVxyXG4gICAgICAgICAgICBpc1NlbGVjdGVkPXtjb2xvciA9PT0gc2VsZWN0ZWRDb2xvcn1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TZWxlY3QoY29sb3IpfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICApO1xyXG4gICAgICB9KX1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IENvbG9yUGlja2VyO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29sb3JTd2F0Y2gubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBDb2xvciB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5cclxudHlwZSBDb2xvclN3YXRjaFByb3BzID0ge1xyXG4gIGNvbG9yOiBDb2xvcjtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xyXG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xyXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQ29sb3JTd2F0Y2goe1xyXG4gIGNvbG9yLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBvbkNsaWNrLFxyXG4gIGlzU2VsZWN0ZWQgPSBmYWxzZSxcclxufTogQ29sb3JTd2F0Y2hQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29sb3JTd2F0Y2gsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy5zZWxlY3RlZF06IGlzU2VsZWN0ZWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSl9XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiY29sb3Itc3dhdGNoXCJcclxuICAgICAgb25DbGljaz17b25DbGlja31cclxuICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvci5oZXhDb2RlIH19XHJcbiAgICA+XHJcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzLnNyT25seX0+e2BTZWxlY3QgJHtjb2xvci5sYWJlbH0gY29sb3JgfTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IENvbG9yU3dhdGNoO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbG9yU3dhdGNoXCI6XCJkdjdpdWNUUXEtWmhVUlV1cC1QdVZcIixcInNlbGVjdGVkXCI6XCJfMUxiQWd5aWlFXzF1alc5MGQtNml1dVwiLFwic3JPbmx5XCI6XCJfMWV0a3VzbGhaVkVQTnNrMVFnaFRFb1wifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbG9yUGlja2VyXCI6XCJfMkYxT24tU0EzbU1raFpQRnJEaldJY1wiLFwiaG9yaXpvbnRhbFwiOlwiXzFXRll5TWtrWUxMNzNuX19yUFVVYnZcIixcInZlcnRpY2FsXCI6XCJfMWxJb2EyYmpfdGJrUWllMElwRTJMblwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbmZpcm1hdGlvbk1vZGFsIH0gZnJvbSBcIi4vQ29uZmlybWF0aW9uTW9kYWxcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0RWxlbWVudCwgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHsgTW9kYWwgfSBmcm9tIFwiLi4vTW9kYWxcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIENvbmZpcm1hdGlvbk1vZGFsUHJvcHMgPSB7XHJcbiAgYnV0dG9uc0xlZnQ/OiBSZWFjdEVsZW1lbnRbXTtcclxuICBidXR0b25zUmlnaHQ/OiBSZWFjdEVsZW1lbnRbXTtcclxuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIGhlYWRlcjogc3RyaW5nO1xyXG4gIGlzT3BlbjogYm9vbGVhbjtcclxuICBub1BhZGRpbmc/OiBib29sZWFuO1xyXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQ29uZmlybWF0aW9uTW9kYWwoe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBoZWFkZXIsXHJcbiAgaXNPcGVuLFxyXG4gIGJ1dHRvbnNMZWZ0ID0gW10sXHJcbiAgYnV0dG9uc1JpZ2h0ID0gW10sXHJcbiAgb25DbG9zZSA9ICgpID0+IHt9LFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG59OiBDb25maXJtYXRpb25Nb2RhbFByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxNb2RhbCBjb250YWluZXJSZWY9e2NvbnRhaW5lclJlZn0gaXNPcGVuPXtpc09wZW59IG9uQ2xvc2U9e29uQ2xvc2V9PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRhaW5lcn0+XHJcbiAgICAgICAgPGgxIGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsSGVhZGVyfT57aGVhZGVyfTwvaDE+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgICAgIHN0eWxlcy5tb2RhbENvbnRlbnQsXHJcbiAgICAgICAgICAgIHsgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcgfSxcclxuICAgICAgICAgIF0pfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9uc0NvbnRhaW5lcn0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9uc30+e2J1dHRvbnNMZWZ0fTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbnN9PntidXR0b25zUmlnaHR9PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9Nb2RhbD5cclxuICApO1xyXG59XHJcblxyXG5Db25maXJtYXRpb25Nb2RhbC5kaXNwbGF5TmFtZSA9IFwiQ29uZmlybWF0aW9uTW9kYWxcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IENvbmZpcm1hdGlvbk1vZGFsO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IHVzZUhvdGtleXMgfSBmcm9tIFwicmVhY3QtaG90a2V5cy1ob29rXCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTW9kYWwubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBNb2RhbFByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBpc09wZW46IGJvb2xlYW47XHJcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XHJcbiAgYnV0dG9uPzogUmVhY3ROb2RlO1xyXG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcclxuICBub1NoYWRvdz86IGJvb2xlYW47XHJcbn07XHJcblxyXG5mdW5jdGlvbiBNb2RhbCh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGlzT3BlbixcclxuICBidXR0b24sXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBub1NoYWRvdyA9IGZhbHNlLFxyXG4gIG9uQ2xvc2UgPSAoKSA9PiB7fSxcclxufTogTW9kYWxQcm9wcykge1xyXG4gIHVzZUhvdGtleXMoXCJFc2NhcGVcIiwgb25DbG9zZSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZU92ZXJsYXlDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIG9uQ2xvc2UoKTtcclxuICB9LCBbb25DbG9zZV0pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgaXNPcGVuICYmIChcclxuICAgICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMub3ZlcmxheX1cclxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwibW9kYWwtb3ZlcmxheVwiXHJcbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVPdmVybGF5Q2xpY2t9XHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgICAgc3R5bGVzLm1vZGFsLCBcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LCBcclxuICAgICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXSl9IGRhdGEtdGVzdGlkPVwibW9kYWxcIj5cclxuICAgICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB7YnV0dG9uICYmIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b259PntidXR0b259PC9kaXY+fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIClcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNb2RhbDtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJvdmVybGF5XCI6XCJfMjBaS0dZNFR3WnhwMEtaNkU3eTRXQlwiLFwibW9kYWxcIjpcIl8yNUxCTjMxX21JMUkxdUhERFA0TzBJXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzNaMktsMXJFSFpRTUxVc1hGMWY3bG9cIixcIm5vU2hhZG93XCI6XCJfM0NmU1QtdG4tdHN2Y29kU3hlbGlRcVwiLFwibW9kYWxCdXR0b25cIjpcIl8xZU8weDNNMHBOOC03OUl1WXVUX0NsXCJ9OyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJLZ0M1cHd0c0hhdnVWT0x1YkFMYWVcIixcIm1vZGFsSGVhZGVyXCI6XCJfMWJUTlhNUjVtWkZYczFvMHV4a2hSUFwiLFwibW9kYWxDb250ZW50XCI6XCJxdVA1bzRROW5sVW8xZlQ3c2JQVkFcIixcIm5vUGFkZGluZ1wiOlwiXzFVZ29fREhTVDRSYld6SXhIUGhqN25cIixcIm1vZGFsQnV0dG9uc0NvbnRhaW5lclwiOlwiXzJiR0w3WGpEeTZzRTNKbGVVOThoanlcIixcIm1vZGFsQnV0dG9uc1wiOlwiXzNYZmZGZU45VkVJcHl0aG1WSjJVOENcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBGbG9hdGluZ1BhbmVsIH0gZnJvbSBcIi4vRmxvYXRpbmdQYW5lbFwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9GbG9hdGluZ1BhbmVsLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgUGxhY2VtZW50ID0ge1xyXG4gIGhvcml6b250YWw6XHJcbiAgICB8IFwicmlnaHRcIlxyXG4gICAgfCBcInJpZ2h0RWRnZVwiXHJcbiAgICB8IFwicmlnaHRPbkVkZ2VcIlxyXG4gICAgfCBcImxlZnRcIlxyXG4gICAgfCBcImxlZnRFZGdlXCJcclxuICAgIHwgXCJsZWZ0T25FZGdlXCJcclxuICAgIHwgXCJsZWZ0T25FZGdlXCJcclxuICAgIHwgXCJjZW50ZXJcIjtcclxuICB2ZXJ0aWNhbDpcclxuICAgIHwgXCJ0b3BcIlxyXG4gICAgfCBcInRvcEVkZ2VcIlxyXG4gICAgfCBcImJvdHRvbVwiXHJcbiAgICB8IFwiYm90dG9tRWRnZVwiXHJcbiAgICB8IFwiYm90dG9tT25FZGdlXCJcclxuICAgIHwgXCJjZW50ZXJcIjtcclxuICBwYXJlbnQ6IFwidmlld3BvcnRcIiB8IFwiY29udGFpbmVyXCI7XHJcbn07XHJcblxyXG50eXBlIEZsb2F0aW5nUGFuZWxQcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgbGF5b3V0PzogXCJjb2x1bW5cIiB8IFwicm93XCI7XHJcbiAgcGxhY2VtZW50PzogUGxhY2VtZW50O1xyXG59O1xyXG5cclxuZnVuY3Rpb24gRmxvYXRpbmdQYW5lbCh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGxheW91dCA9IFwiY29sdW1uXCIsXHJcbiAgcGxhY2VtZW50ID0geyBob3Jpem9udGFsOiBcImNlbnRlclwiLCB2ZXJ0aWNhbDogXCJib3R0b21cIiwgcGFyZW50OiBcInZpZXdwb3J0XCIgfSxcclxufTogRmxvYXRpbmdQYW5lbFByb3BzKSB7XHJcbiAgY29uc3QgaG9yaXpvbnRhbFBsYWNlbWVudCA9XHJcbiAgICBwbGFjZW1lbnQuaG9yaXpvbnRhbCA9PT0gXCJjZW50ZXJcIlxyXG4gICAgICA/IFwiaG9yaXpvbnRhbENlbnRlclwiXHJcbiAgICAgIDogcGxhY2VtZW50Lmhvcml6b250YWw7XHJcblxyXG4gIGNvbnN0IHZlcnRpY2FsUGxhY2VtZW50ID1cclxuICAgIHBsYWNlbWVudC52ZXJ0aWNhbCA9PT0gXCJjZW50ZXJcIiA/IFwidmVydGljYWxDZW50ZXJcIiA6IHBsYWNlbWVudC52ZXJ0aWNhbDtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiZmxvYXRpbmctcGFuZWxcIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxyXG4gICAgICAgIHN0eWxlc1tob3Jpem9udGFsUGxhY2VtZW50XSxcclxuICAgICAgICBzdHlsZXNbdmVydGljYWxQbGFjZW1lbnRdLFxyXG4gICAgICAgIHN0eWxlc1tsYXlvdXRdLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuZml4ZWRdOiBwbGFjZW1lbnQucGFyZW50ICE9PSBcImNvbnRhaW5lclwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0pfVxyXG4gICAgPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGbG9hdGluZ1BhbmVsO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzJyMEZrWUo3U0sxWWpCM0hLSE1BaWhcIixcInJvd1wiOlwiXzNSLUZGOGVNdTBDUzRlTlgzbFRkQ1JcIixcImNvbHVtblwiOlwiXzFvS09lQWdaand4Tk0zdUdmTHQ2SU9cIixcImZpeGVkXCI6XCJfM29RR1dnU0lOYnl0YjR1djkyQ1N2VFwiLFwicGxhaW5cIjpcImlNZjhvZC1iSXFzSEF2eG9mRHV6YlwiLFwidHJhbnNwYXJlbnRcIjpcImQyb3l4NXB5c3FqODk4YVM4RzNFOFwiLFwidG9wXCI6XCJfMTFjUFlxMWRoUXl6VklNWmVrMV9Jb1wiLFwidG9wRWRnZVwiOlwiXzJfaW5lQ3kxTVFsWVA2cU1ld2QxejVcIixcInRvcE9uRWRnZVwiOlwiXzFydkNzRG9kNWJsVE95QWw0a0R3TjBcIixcInJpZ2h0XCI6XCJfMVNJWUJjUmdxUzRWUGhXOU04MFk0elwiLFwicmlnaHRFZGdlXCI6XCJRQTY5ZjBEOGJUQ0pIckRPcjhtMXJcIixcInJpZ2h0T25FZGdlXCI6XCJfMlBpVFVsMEpZekVDbk8wODUxZ3ozYVwiLFwiYm90dG9tXCI6XCJfMzA1Z0JtVHdBZVhaZkFfTTl0c1ZOb1wiLFwiYm90dG9tRWRnZVwiOlwiXzFQY0RYYkxaMlhIUGtlaV9IX3I1OHBcIixcImJvdHRvbU9uRWRnZVwiOlwiXzJ2b3Q0cXByNThXbmI2cHZIWW5qa2NcIixcImxlZnRcIjpcInNJdGdCVjRXdER4NHZaM2EtUDRpeFwiLFwibGVmdEVkZ2VcIjpcIl8xTkoxRnpJX2FiS2ktVzZrYzJyMmM2XCIsXCJsZWZ0T25FZGdlXCI6XCJfMTJFdndiYVZRTldQWmUzN1NvOExfbVwiLFwiaG9yaXpvbnRhbENlbnRlclwiOlwiXzJqaVN4RWJDVEtWekR0ZUdRMXVvRWZcIixcInZlcnRpY2FsQ2VudGVyXCI6XCJfMmY5RDQ2QkItZ2V6UHZ3OFRaeEp2cFwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9JY29uLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgSWNvblByb3BzID0ge1xyXG4gIGFsdD86IHN0cmluZztcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEltYWdlRWxlbWVudD47XHJcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xyXG4gIHNyYzogc3RyaW5nO1xyXG4gIHNpemU/OiBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiIHwgXCJ4bGFyZ2VcIjtcclxufTtcclxuZnVuY3Rpb24gSWNvbih7XHJcbiAgc3JjLFxyXG4gIGFsdCxcclxuICBjb250YWluZXJSZWYsXHJcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXHJcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcclxufTogSWNvblByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxpbWdcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5pY29uLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICB7IFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCB9LFxyXG4gICAgICBdKX1cclxuICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxyXG4gICAgICBkYXRhLXRlc3RpZD1cImljb25cIlxyXG4gICAgICBhbHQ9e2FsdH1cclxuICAgICAgc3JjPXtzcmN9XHJcbiAgICAvPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEljb247XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiaWNvblwiOlwiXzMzY1RNOGk4cWFqRkd5LTAwdHkwUndcIixcInNtYWxsXCI6XCJNVWkzaWt6Y1BaZG81OUFmb1hkT0ZcIixcIm1lZGl1bVwiOlwiXzJWQ0txeTU5TlNGZGZEaUUwb3hhc3pcIixcImxhcmdlXCI6XCJfMlVVVWYybl9hMFBZcFE4a293S0h6cFwiLFwieGxhcmdlXCI6XCJvRElFWThVNFR3Q0prakY3eGFRQk9cIixcImludmVydGVkXCI6XCJfMnF6VXRVMVRkX2M1OHZNOEFMcVNWV1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEljb25CdXR0b24gfSBmcm9tIFwiLi9JY29uQnV0dG9uXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSWNvbkJ1dHRvbi5tb2R1bGUuY3NzXCI7XHJcbmltcG9ydCB7IEJ1dHRvbkJhZGdlIH0gZnJvbSBcIi4uL0J1dHRvbkJhZGdlXCI7XHJcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuXHJcbnR5cGUgSWNvbkJ1dHRvblByb3BzID0ge1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xyXG4gIHNyYzogc3RyaW5nO1xyXG4gIGFsdDogc3RyaW5nO1xyXG4gIGJhZGdlQ29udGVudD86IFJlYWN0Tm9kZTtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xyXG4gIG5vU2hhZG93PzogYm9vbGVhbjtcclxuICBub0JvcmRlcj86IGJvb2xlYW47XHJcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gIHJvdW5kZWQ/OiBib29sZWFuO1xyXG4gIG9uQ2xpY2s/OiAoZXZlbnQ/OiBTeW50aGV0aWNFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHZvaWQ7XHJcbiAgc2l6ZT86IFNpemU7XHJcbiAgdHlwZT86IFwic3VibWl0XCIgfCBcInJlc2V0XCIgfCBcImJ1dHRvblwiO1xyXG4gIG9mZnNldFNpZGVzPzogQXJyYXk8XCJ0b3BcIiB8IFwicmlnaHRcIiB8IFwiYm90dG9tXCIgfCBcImxlZnRcIj47XHJcbn07XHJcblxyXG5mdW5jdGlvbiBJY29uQnV0dG9uKHtcclxuICBjbGFzc05hbWUsXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIHNyYyxcclxuICBhbHQsXHJcbiAgYmFkZ2VDb250ZW50ID0gbnVsbCxcclxuICBvZmZzZXRTaWRlcyA9IFtdLFxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7fSxcclxuICBkaXNhYmxlZCA9IGZhbHNlLFxyXG4gIGludmVydGVkID0gZmFsc2UsXHJcbiAgbm9TaGFkb3cgPSBmYWxzZSxcclxuICBub0JvcmRlciA9IGZhbHNlLFxyXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXHJcbiAgcm91bmRlZCA9IGZhbHNlLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG4gIHR5cGUgPSBcImJ1dHRvblwiLFxyXG59OiBJY29uQnV0dG9uUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGJ1dHRvblxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcclxuICAgICAgICBzdHlsZXNbc2l6ZV0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxyXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcclxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcclxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcclxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIFtzdHlsZXMudG9wT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInRvcFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXHJcbiAgICAgICAgICBbc3R5bGVzLmJvdHRvbU9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJib3R0b21cIiksXHJcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgXSl9XHJcbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cclxuICAgICAgb25DbGljaz17b25DbGlja31cclxuICAgICAgdHlwZT17dHlwZX1cclxuICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICA+XHJcbiAgICAgIDxJY29uIHNyYz17c3JjfSBhbHQ9e2FsdH0gc2l6ZT17c2l6ZX0gaW52ZXJ0ZWQ9e2ludmVydGVkfSAvPlxyXG4gICAgICB7YmFkZ2VDb250ZW50ICYmIDxCdXR0b25CYWRnZT57YmFkZ2VDb250ZW50fTwvQnV0dG9uQmFkZ2U+fVxyXG4gICAgPC9idXR0b24+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgSWNvbkJ1dHRvbjtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIlJneWxsWFRxcDNfalo2QTJOYnZnNlwiLFwic21hbGxcIjpcIl8xdzBoWmxPYmVMN0VHODd6c0wtOXZOXCIsXCJtZWRpdW1cIjpcIkVLMWJ2SlpqVzExOURvNzlTdEw3SVwiLFwibGFyZ2VcIjpcIlBneVFYSzF5eUNNcThCU2FZQ2JjaFwiLFwieGxhcmdlXCI6XCJxaGtIeklvSW93bnJleEh6UVN1dVVcIixcInJvdW5kZWRcIjpcIl8zcXFhMWswQzlKTVBzQlJTejZaMHlZXCIsXCJ0b3BPZmZzZXRcIjpcIl8zVlpQN0RvaGhaN3o4Zmk0ei1IOGpOXCIsXCJyaWdodE9mZnNldFwiOlwiXzJYWGhKMy1jWWNYYklWTm1tbk84eUhcIixcImJvdHRvbU9mZnNldFwiOlwiWkpJWDdWcTVtdXNqZDZzNGhDU2JQXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfMVFWV2l5aXZXOVV4ZW9OdTNVZG52NlwiLFwiaW52ZXJ0ZWRcIjpcIl8yalp6WGhuSHFxYnR1bTRkQmRsMWxLXCIsXCJub1NoYWRvd1wiOlwiXzNmeHZXaU9ORkZZdE11RGNYcDhzeXVcIixcIm5vQm9yZGVyXCI6XCJfM0V1eHVwbnFPVnVTb1VzYkt6Tm5cIixcInRyYW5zcGFyZW50XCI6XCJfMzViUklpOEJ0RDRSS1NKdlpial9zbVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEljb25CdXR0b25MaW5rIH0gZnJvbSBcIi4vSWNvbkJ1dHRvbkxpbmtcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IEVsZW1lbnRUeXBlLCBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb25cIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9JY29uQnV0dG9uTGluay5tb2R1bGUuY3NzXCI7XHJcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuaW1wb3J0IHsgQnV0dG9uQmFkZ2UgfSBmcm9tIFwiLi4vQnV0dG9uQmFkZ2VcIjtcclxuXHJcbnR5cGUgT2Zmc2V0U2lkZSA9IFwidG9wXCIgfCBcInJpZ2h0XCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCI7XHJcblxyXG50eXBlIEljb25CdXR0b25MaW5rUHJvcHMgPVxyXG4gIHwge1xyXG4gICAgICBhcz86IEVsZW1lbnRUeXBlO1xyXG4gICAgICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xyXG4gICAgICBzcmM6IHN0cmluZztcclxuICAgICAgYWx0OiBzdHJpbmc7XHJcbiAgICAgIGJhZGdlQ29udGVudD86IFJlYWN0Tm9kZTtcclxuICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gICAgICBpbnZlcnRlZD86IGJvb2xlYW47XHJcbiAgICAgIHJvdW5kZWQ/OiBib29sZWFuO1xyXG4gICAgICB0cmFuc3BhcmVudD86IGJvb2xlYW47XHJcbiAgICAgIG5vU2hhZG93PzogYm9vbGVhbjtcclxuICAgICAgbm9Cb3JkZXI/OiBib29sZWFuO1xyXG4gICAgICBzaXplPzogU2l6ZTtcclxuICAgICAgb2Zmc2V0U2lkZXM/OiBBcnJheTxPZmZzZXRTaWRlPjtcclxuICAgIH1cclxuICB8IGFueTtcclxuXHJcbmZ1bmN0aW9uIEljb25CdXR0b25MaW5rKHtcclxuICBhczogQ29tcG9uZW50LFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBjbGFzc05hbWUsXHJcbiAgc3JjLFxyXG4gIGFsdCxcclxuICBiYWRnZUNvbnRlbnQgPSBudWxsLFxyXG4gIGludmVydGVkID0gZmFsc2UsXHJcbiAgbm9TaGFkb3cgPSBmYWxzZSxcclxuICBub0JvcmRlciA9IGZhbHNlLFxyXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXHJcbiAgcm91bmRlZCA9IGZhbHNlLFxyXG4gIG9mZnNldFNpZGVzID0gW10sXHJcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXHJcbiAgLi4ucHJvcHNcclxufTogSWNvbkJ1dHRvbkxpbmtQcm9wcykge1xyXG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICBDb21wb25lbnQgPSBcImFcIjtcclxuICB9XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8Q29tcG9uZW50XHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBkYXRhLXRlc3RpZD1cImljb24tYnV0dG9uLWxpbmtcIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxyXG4gICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93LFxyXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxyXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxyXG4gICAgICAgICAgW3N0eWxlcy50b3BPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwidG9wXCIpLFxyXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMuYm90dG9tT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImJvdHRvbVwiKSxcclxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICBdKX1cclxuICAgICAgey4uLnByb3BzfVxyXG4gICAgPlxyXG4gICAgICA8SWNvbiBzcmM9e3NyY30gYWx0PXthbHR9IHNpemU9e3NpemV9IGludmVydGVkPXtpbnZlcnRlZH0gLz5cclxuICAgICAge2JhZGdlQ29udGVudCAmJiA8QnV0dG9uQmFkZ2U+e2JhZGdlQ29udGVudH08L0J1dHRvbkJhZGdlPn1cclxuICAgIDwvQ29tcG9uZW50PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEljb25CdXR0b25MaW5rO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzN3anhqQ3p2X2xwaGRXbTczSmdBeXBcIixcInNtYWxsXCI6XCJfMzJNWW1aYkh6VVUwYjNkTWNtSnNpTVwiLFwibWVkaXVtXCI6XCJfMTg5cllKMlR2YUJ5ckMzUzdDZjNubVwiLFwibGFyZ2VcIjpcIl8yYVlTU1RVZzh3dnJBRE9TMTg4eE1cIixcInhsYXJnZVwiOlwidnMzS1l2VTdaY25odzJTT3lTQ05mXCIsXCJyb3VuZGVkXCI6XCJfMThpaDY3TEwwbjdYbDYxZ0xHOHMwa1wiLFwidG9wT2Zmc2V0XCI6XCJfMXA3aDdXNlFzREhwYmE2bWd5V1VMOVwiLFwicmlnaHRPZmZzZXRcIjpcIl8zZnhNSUJfSno1Q1lJZnd1WmhRMjhpXCIsXCJib3R0b21PZmZzZXRcIjpcIl8xMTNtNENXaW1MdnNqVTl4SXhQcTdpXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfNkNob3YyTW95VXh5aFd4S24zNjhLXCIsXCJpbnZlcnRlZFwiOlwiXzNlcU9KUXo0dWUtZVhMdnEyN0FzWTVcIixcIm5vU2hhZG93XCI6XCJsRjZEX1YyMHgzMnY5WnlzcXdDNjhcIixcIm5vQm9yZGVyXCI6XCJfM3M2cUNvbExqcGpsNFJybzdtVlR4U1wiLFwidHJhbnNwYXJlbnRcIjpcIl8ySVpPOXBLMTMxVTkxY3lLWGl4Z3hEXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSW1hZ2UsIEltYWdlUHJvcHMgfSBmcm9tIFwiLi9JbWFnZVwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlUmVmLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9JbWFnZS5tb2R1bGUuY3NzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgZW1wdHlJbWFnZSA9XHJcbiAgXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQVFBQUFDMUhBd0NBQUFBQzBsRVFWUjQybU5rWUFBQUFBWUFBakNCMEM4QUFBQUFTVVZPUks1Q1lJST1cIjsgLy8gMXgxcG5nXHJcblxyXG5leHBvcnQgdHlwZSBJbWFnZVByb3BzID0ge1xyXG4gIGFuaW1hdGlvbj86IFwiZmFkZUluXCIgfCBcInNjYWxlVXBcIjtcclxuICBhbHQ/OiBzdHJpbmc7XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBsYXlvdXQ/OiBcImNvdmVyXCIgfCBcImNvbnRhaW5cIiB8IFwic3RyZXRjaEhvcml6b250YWxseVwiIHwgXCJzdHJldGNoVmVydGljYWxseVwiO1xyXG4gIHNyYzogc3RyaW5nO1xyXG4gIHNyY1dpZHRoPzogbnVtYmVyO1xyXG4gIHNyY0hlaWdodD86IG51bWJlcjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIEltYWdlQ29tcG9uZW50KHtcclxuICBzcmMsXHJcbiAgYWx0LFxyXG4gIHNyY1dpZHRoLFxyXG4gIHNyY0hlaWdodCxcclxuICBjaGlsZHJlbixcclxuICBhbmltYXRpb24sXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGxheW91dCA9IFwiY29udGFpblwiLFxyXG59OiBJbWFnZVByb3BzKSB7XHJcbiAgY29uc3QgW2lzTG9hZGVkLCBzZXRJc0xvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgaW1hZ2VSZWYgPSB1c2VSZWYobnVsbCk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBsZXQgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICAgIGltYWdlLmNyb3NzT3JpZ2luID0gXCJhbm9ueW1vdXNcIjtcclxuICAgIGltYWdlLnNyYyA9IHNyYztcclxuICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgaW1hZ2VSZWYuY3VycmVudD8uc2V0QXR0cmlidXRlKFwic3JjXCIsIHNyYyk7XHJcbiAgICAgIHNldElzTG9hZGVkKHRydWUpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBpbWFnZS5zcmMgPSBcIlwiO1xyXG4gICAgICBkZWxldGUgaW1hZ2Uub25sb2FkO1xyXG4gICAgICBkZWxldGUgaW1hZ2Uuc3JjO1xyXG4gICAgICBkZWxldGUgaW1hZ2UuY3Jvc3NPcmlnaW47XHJcbiAgICAgIGltYWdlID0gbnVsbDtcclxuICAgIH07XHJcbiAgfSwgW3NyY10pO1xyXG5cclxuICByZXR1cm4gY2hpbGRyZW4gPyAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBzdHlsZXMuaGFzT3ZlcmxheV0pfVxyXG4gICAgPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgcmVmPXtpbWFnZVJlZn1cclxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICAgIHN0eWxlcy5pbWFnZSxcclxuICAgICAgICAgIHN0eWxlc1tsYXlvdXRdLFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBbc3R5bGVzLmZhZGVJbl06IGFuaW1hdGlvbiA9PT0gXCJmYWRlSW5cIiAmJiBpc0xvYWRlZCxcclxuICAgICAgICAgICAgW3N0eWxlcy5zY2FsZVVwXTogYW5pbWF0aW9uID09PSBcInNjYWxlVXBcIiAmJiBpc0xvYWRlZCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSl9XHJcbiAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxyXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiaW1hZ2VcIlxyXG4gICAgICAgIGFsdD17YWx0fVxyXG4gICAgICAgIHNyYz17ZW1wdHlJbWFnZX1cclxuICAgICAgICB3aWR0aD17c3JjV2lkdGh9XHJcbiAgICAgICAgaGVpZ2h0PXtzcmNIZWlnaHR9XHJcbiAgICAgIC8+XHJcbiAgICAgIHtjaGlsZHJlbiAmJiA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm92ZXJsYXl9PntjaGlsZHJlbn08L2Rpdj59XHJcbiAgICA8L2Rpdj5cclxuICApIDogKFxyXG4gICAgPGltZ1xyXG4gICAgICByZWY9e2ltYWdlUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuaW1hZ2UsXHJcbiAgICAgICAgc3R5bGVzW2xheW91dF0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy5mYWRlSW5dOiBhbmltYXRpb24gPT09IFwiZmFkZUluXCIgJiYgaXNMb2FkZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLnNjYWxlVXBdOiBhbmltYXRpb24gPT09IFwic2NhbGVVcFwiICYmIGlzTG9hZGVkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0pfVxyXG4gICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiaW1hZ2VcIlxyXG4gICAgICBhbHQ9e2FsdH1cclxuICAgICAgc3JjPXtlbXB0eUltYWdlfVxyXG4gICAgICB3aWR0aD17c3JjV2lkdGh9XHJcbiAgICAgIGhlaWdodD17c3JjSGVpZ2h0fVxyXG4gICAgLz5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBJbWFnZUNvbXBvbmVudDtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xVjAwR3B6X2tlcVVXR0VmWjc0d2pTXCIsXCJoYXNPdmVybGF5XCI6XCJfMk10VWZZcHc1VjhVcHJ4cV9FX3lTYVwiLFwib3ZlcmxheVwiOlwiejFEVkh4ajFaUEs3M09JUVJjazdqXCIsXCJpbWFnZVwiOlwiXzM5T2pUR1dkN3hteGNsNm51SS1nMkxcIixcImNvdmVyXCI6XCJfM3FLZHAybUs2ZjdHNXpBelhsemdyRVwiLFwiY29udGFpblwiOlwiXzJvX0c0WGJCLVFvemJmdWs0X1YwMGhcIixcInN0cmV0Y2hIb3Jpem9udGFsbHlcIjpcIl8yeGd1RGtHdTFtUjJ5UGFZLWh6TjhvXCIsXCJzdHJldGNoVmVydGljYWxseVwiOlwiXzE5V01hM3RxUnh2VWhES0ZaOFkyUEJcIixcImZhZGVJblwiOlwiXzM2T1MyR2NzandFZ0hQMG8tOEF4MW1cIixcImZhZGVJbkFuaW1hdGlvblwiOlwiLWV5bU42aFd6Sm5SeDhYaGsxRFdPXCIsXCJzY2FsZVVwXCI6XCJfMVVVUkFCWm5NbExmMEtQVVVEMlJOelwiLFwic2NhbGVVcEFuaW1hdGlvblwiOlwiXzNrb3R3VjlqdnBIU1BtanRPVWxnN01cIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0VmlldyB9IGZyb20gXCIuL0xpc3RWaWV3XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXdJdGVtIH0gZnJvbSBcIi4vTGlzdFZpZXdJdGVtXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXdMaW5rSXRlbSB9IGZyb20gXCIuL0xpc3RWaWV3TGlua0l0ZW1cIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXcubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBMaXN0Vmlld1Byb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgaGVhZGVyPzogc3RyaW5nO1xyXG4gIGhlYWRlckFjdGlvbnM/OiBSZWFjdE5vZGU7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBMaXN0Vmlldyh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgY2xhc3NOYW1lLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBoZWFkZXIsXHJcbiAgaGVhZGVyQWN0aW9ucyxcclxufTogTGlzdFZpZXdQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IHJlZj17Y29udGFpbmVyUmVmfSBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBjbGFzc05hbWVdKX0+XHJcbiAgICAgIHsoaGVhZGVyIHx8IGhlYWRlckFjdGlvbnMpICYmIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmhlYWRlcn0+XHJcbiAgICAgICAgICB7aGVhZGVyICYmIDxoMyBjbGFzc05hbWU9e3N0eWxlcy5oZWFkZXJMYWJlbH0+e2hlYWRlcn08L2gzPn1cclxuICAgICAgICAgIHtoZWFkZXJBY3Rpb25zfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApfVxyXG4gICAgICA8dWwgY2xhc3NOYW1lPXtzdHlsZXMubGlzdH0+e2NoaWxkcmVufTwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaXN0VmlldztcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIkRjV29FYmlvbDlweC1GUUFfVHBPa1wiLFwiaGVhZGVyXCI6XCJfMmphdkI4c0FEeDZkRGdxWE4zTUNMUFwiLFwiaGVhZGVyTGFiZWxcIjpcIl8zaU1PZkl5TkwxU0VtdjJKOFpERG1XXCIsXCJsaXN0XCI6XCJfM19LbXRiTVBwUEhnSkZNOVpCX3huQVwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCIuLi9CdXR0b25cIjtcclxuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xpc3RWaWV3SXRlbS5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIExpc3RWaWV3SXRlbVByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgYWN0aXZlPzogYm9vbGVhbjtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gIG5vUGFkZGluZz86IGJvb2xlYW47XHJcbiAgc2l6ZT86IFNpemU7XHJcbiAgYWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCI7XHJcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBMaXN0Vmlld0l0ZW0oe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGFjdGl2ZSA9IGZhbHNlLFxyXG4gIGRpc2FibGVkID0gZmFsc2UsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBub1BhZGRpbmcgPSBmYWxzZSxcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICBhbGlnbiA9IFwiY2VudGVyXCIsXHJcbiAgb25DbGljayA9ICgpID0+IHt9LFxyXG59OiBMaXN0Vmlld0l0ZW1Qcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bGkgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmxpc3RWaWV3SXRlbV0pfT5cclxuICAgICAgPEJ1dHRvblxyXG4gICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XHJcbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxyXG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XHJcbiAgICAgICAgdHJhbnNwYXJlbnQ9e3RyYW5zcGFyZW50fVxyXG4gICAgICAgIG5vUGFkZGluZz17bm9QYWRkaW5nfVxyXG4gICAgICAgIGFsaWduPXthbGlnbn1cclxuICAgICAgICBzaXplPXtzaXplfVxyXG4gICAgICAgIHN0cmV0Y2hIb3Jpem9udGFsbHlcclxuICAgICAgICBub1NoYWRvd1xyXG4gICAgICAgIG5vQm9yZGVyXHJcbiAgICAgID5cclxuICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgIDwvQnV0dG9uPlxyXG4gICAgPC9saT5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0l0ZW07XHJcbiIsImltcG9ydCBSZWFjdCwgeyBFbGVtZW50VHlwZSwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IEJ1dHRvbkxpbmsgfSBmcm9tIFwiLi4vQnV0dG9uTGlua1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xpc3RWaWV3SXRlbS5tb2R1bGUuY3NzXCI7XHJcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuXHJcbnR5cGUgTGlzdFZpZXdMaW5rSXRlbVByb3BzID1cclxuICB8IHtcclxuICAgICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcclxuICAgICAgYWN0aXZlOiBib29sZWFuO1xyXG4gICAgICB0cmFuc3BhcmVudDogYm9vbGVhbjtcclxuICAgICAgbm9QYWRkaW5nOiBib29sZWFuO1xyXG4gICAgICBhbGlnbjogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xyXG4gICAgICBzaXplOiBTaXplO1xyXG4gICAgfVxyXG4gIHwgYW55O1xyXG5cclxuZnVuY3Rpb24gTGlzdFZpZXdMaW5rSXRlbSh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgYXM6IENvbXBvbmVudCxcclxuICBhY3RpdmUgPSBmYWxzZSxcclxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG4gIGFsaWduID0gXCJjZW50ZXJcIixcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICAuLi5wcm9wc1xyXG59OiBMaXN0Vmlld0xpbmtJdGVtUHJvcHMpIHtcclxuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGxpIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5saXN0Vmlld0l0ZW1dKX0+XHJcbiAgICAgIDxCdXR0b25MaW5rXHJcbiAgICAgICAgYXM9e0NvbXBvbmVudH1cclxuICAgICAgICBpbnZlcnRlZD17YWN0aXZlfVxyXG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cclxuICAgICAgICBub1BhZGRpbmc9e25vUGFkZGluZ31cclxuICAgICAgICBhbGlnbj17YWxpZ259XHJcbiAgICAgICAgc2l6ZT17c2l6ZX1cclxuICAgICAgICBzdHJldGNoSG9yaXpvbnRhbGx5XHJcbiAgICAgICAgbm9TaGFkb3dcclxuICAgICAgICBub0JvcmRlclxyXG4gICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgPC9CdXR0b25MaW5rPlxyXG4gICAgPC9saT5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0xpbmtJdGVtO1xyXG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIE1lbnUsIE1lbnVQbGFjZW1lbnQgfSBmcm9tIFwiLi9NZW51XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudUNvbnRhaW5lciB9IGZyb20gXCIuL01lbnVDb250YWluZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51SXRlbSB9IGZyb20gXCIuL01lbnVJdGVtXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudUxpbmtJdGVtIH0gZnJvbSBcIi4vTWVudUxpbmtJdGVtXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudS5tb2R1bGUuY3NzXCI7XHJcblxyXG5leHBvcnQgdHlwZSBNZW51UGxhY2VtZW50ID0ge1xyXG4gIGhvcml6b250YWw6IFwicmlnaHRcIiB8IFwibGVmdFwiO1xyXG4gIHZlcnRpY2FsOiBcInRvcFwiIHwgXCJib3R0b21cIjtcclxufTtcclxuXHJcbnR5cGUgTWVudVByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgaXNPcGVuPzogYm9vbGVhbjtcclxuICBoZWFkZXI/OiBzdHJpbmc7XHJcbiAgcGxhY2VtZW50PzogTWVudVBsYWNlbWVudDtcclxufTtcclxuXHJcbmZ1bmN0aW9uIE1lbnUoe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBjbGFzc05hbWUsXHJcbiAgaXNPcGVuID0gdHJ1ZSxcclxuICBwbGFjZW1lbnQgPSB7IGhvcml6b250YWw6IFwibGVmdFwiLCB2ZXJ0aWNhbDogXCJib3R0b21cIiB9LFxyXG4gIGhlYWRlcixcclxufTogTWVudVByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5tZW51LFxyXG4gICAgICAgIHN0eWxlc1twbGFjZW1lbnQuaG9yaXpvbnRhbF0sXHJcbiAgICAgICAgc3R5bGVzW3BsYWNlbWVudC52ZXJ0aWNhbF0sXHJcbiAgICAgICAgeyBbc3R5bGVzLm9wZW5dOiBpc09wZW4gfSxcclxuICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgIF0pfVxyXG4gICAgPlxyXG4gICAgICB7aGVhZGVyICYmIGlzT3BlbiAmJiA8aDMgY2xhc3NOYW1lPXtzdHlsZXMubWVudUhlYWRlcn0+e2hlYWRlcn08L2gzPn1cclxuICAgICAgPHVsPntpc09wZW4gJiYgY2hpbGRyZW59PC91bD5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1lbnU7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudVwiOlwiXzFMNS1wdl9QNk0yb0dlb1JlTW5PMkpcIixcInRvcFwiOlwiXzMxbGRZR1U0VTB4cEt1VV8tLVdjamFcIixcInJpZ2h0XCI6XCJPYkh4TWl2bDM1aTFLZ0k3VGdnYzlcIixcImxlZnRcIjpcIl8yR3pjMFhmTC1oNU55SEtWRHY1ci1rXCIsXCJib3R0b21cIjpcIl8zRURtaVNmUFJaTWxIbFNIOTM0N2xHXCIsXCJvcGVuXCI6XCJfMUo3cEZrdmtqUVFSV2ttZy0wWFRXWlwiLFwiZW50cmFuY2VcIjpcIl8zY3Flc1FHZjlDeXU2NkRzb0t0RjBxXCIsXCJtZW51SGVhZGVyXCI6XCJfMm94c1BPc3BBSFBDZUtUUEhlZ2VIVVwifTsiLCJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9NZW51Q29udGFpbmVyLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgTWVudUNvbnRhaW5lclByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIHJlZj86ICgpID0+IHZvaWQgfCB7IGN1cnJlbnQ6IGFueSB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBNZW51Q29udGFpbmVyKHsgY2hpbGRyZW4sIGNsYXNzTmFtZX06IE1lbnVDb250YWluZXJQcm9wcywgcmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+KSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgcmVmPXtyZWZ9IGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5tZW51Q29udGFpbmVyLCBjbGFzc05hbWVdKX0+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZvcndhcmRSZWYoTWVudUNvbnRhaW5lcik7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudUNvbnRhaW5lclwiOlwiXzFfMnNGRlZ6TlhtSlhfUFRwSFpnRUxcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnVJdGVtLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgTWVudUl0ZW1Qcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBpc0FjdGl2ZT86IGJvb2xlYW47XHJcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcclxufTtcclxuXHJcbmZ1bmN0aW9uIE1lbnVJdGVtKHtcclxuICBjaGlsZHJlbixcclxuICBjbGFzc05hbWUsXHJcbiAgb25DbGljayxcclxuICBub1BhZGRpbmcgPSBmYWxzZSxcclxuICBpc0FjdGl2ZSA9IGZhbHNlLFxyXG59OiBNZW51SXRlbVByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxsaVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMubWVudUl0ZW0sXHJcbiAgICAgICAgeyBbc3R5bGVzLmFjdGl2ZV06IGlzQWN0aXZlIH0sXHJcbiAgICAgICAgeyBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyB9LFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgXSl9XHJcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvbGk+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWVudUl0ZW07XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudUl0ZW1cIjpcIl8yS3NSQ0VnRV9NN3dvWGpocFJ1VnVvXCIsXCJub1BhZGRpbmdcIjpcIl8yY3FNSkhKeUNqQVU4WlBaQVYwWUQ1XCIsXCJhY3RpdmVcIjpcIl8xWG5YWmlBcmh2VWV5WGdxVWFHLVA3XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIEVsZW1lbnRUeXBlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUxpbmtJdGVtLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgTWVudUxpbmtJdGVtUHJvcHMgPVxyXG4gIHwge1xyXG4gICAgICBhczogRWxlbWVudFR5cGU7XHJcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xyXG4gICAgICBub1BhZGRpbmc/OiBib29sZWFuO1xyXG4gICAgfVxyXG4gIHwgYW55O1xyXG5cclxuZnVuY3Rpb24gTWVudUxpbmtJdGVtKHtcclxuICBhczogQ29tcG9uZW50LFxyXG4gIGNoaWxkcmVuLFxyXG4gIGNsYXNzTmFtZSxcclxuICBub1BhZGRpbmcgPSBmYWxzZSxcclxuICAuLi5wcm9wc1xyXG59OiBNZW51TGlua0l0ZW1Qcm9wcykge1xyXG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICBDb21wb25lbnQgPSBcImFcIjtcclxuICB9XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8Q29tcG9uZW50XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1saW5rLWl0ZW1cIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMubWVudUxpbmtJdGVtLFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgICB7IFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nIH0sXHJcbiAgICAgIF0pfVxyXG4gICAgICB7Li4ucHJvcHN9XHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvQ29tcG9uZW50PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1lbnVMaW5rSXRlbTtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJtZW51TGlua0l0ZW1cIjpcIl8zejV0OUNBaGNBd1ZPdE9WbEFfNEd3XCIsXCJhY3RpdmVcIjpcIl8xWi1tUHZld0dVZzQ4NFFQYzlIeHEyXCIsXCJub1BhZGRpbmdcIjpcImJOWGlreUVaSUlPTTFIZ3NBaTNmdFwiLFwibWVudUl0ZW1cIjpcIl8zdElXQWhNRHRQekFINGJBcndwUk92XCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgT3ZlcmxheSB9IGZyb20gXCIuL092ZXJsYXlcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9PdmVybGF5Lm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgT3ZlcmxheVByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XHJcbiAgaXNGaXhlZD86IGJvb2xlYW47XHJcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBPdmVybGF5KHtcclxuICBjaGlsZHJlbixcclxuICBjb250YWluZXJSZWYsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBpc0ZpeGVkID0gZmFsc2UsXHJcbiAgb25DbGljayA9ICgpID0+IHt9LFxyXG59OiBPdmVybGF5UHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgZGF0YS10ZXN0aWQ9XCJvdmVybGF5XCJcclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgc3R5bGVzLm92ZXJsYXksXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxyXG4gICAgICAgICAgW3N0eWxlcy5maXhlZF06IGlzRml4ZWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSl9XHJcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE92ZXJsYXk7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wib3ZlcmxheVwiOlwiSTBkbS1MZG0tU2lTMHY1WC12bzBnXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzNxZERkbHluSExub2ZOMURLdnZZUThcIixcImZpeGVkXCI6XCJfMWdYeTlYUzNGLUp0cWRqWkJjb0tTd1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIFRleHRJbnB1dCB9IGZyb20gXCIuL1RleHRJbnB1dFwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHsgTGFiZWwgfSBmcm9tIFwiLi4vTGFiZWxcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9UZXh0SW5wdXQubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplLCBUZXh0SW5wdXRUeXBlIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIFRleHRJbnB1dFByb3BzID0ge1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICB0eXBlPzogVGV4dElucHV0VHlwZTtcclxuICBzaXplPzogU2l6ZTtcclxuICBhdXRvRm9jdXM/OiBib29sZWFuO1xyXG4gIGlucHV0UmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG59O1xyXG5cclxuZnVuY3Rpb24gVGV4dElucHV0KHtcclxuICBsYWJlbCxcclxuICBvbkNoYW5nZSxcclxuICBwbGFjZWhvbGRlcixcclxuICB2YWx1ZSxcclxuICBuYW1lLFxyXG4gIGlucHV0UmVmLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG4gIGF1dG9Gb2N1cyA9IGZhbHNlLFxyXG4gIHR5cGUgPSBcInRleHRcIixcclxufTogVGV4dElucHV0UHJvcHMpIHtcclxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcclxuICAgIChlOiBSZWFjdC5Gb3JtRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+XHJcbiAgICAgIG9uQ2hhbmdlKChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSksXHJcbiAgICBbb25DaGFuZ2VdXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgaW5wdXRFbGVtZW50ID0gKFxyXG4gICAgPGlucHV0XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiaW5wdXRcIlxyXG4gICAgICByZWY9e2lucHV0UmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudGV4dElucHV0LCBzdHlsZXNbc2l6ZV1dKX1cclxuICAgICAgb25DaGFuZ2U9eyFpbnB1dFJlZiA/IGhhbmRsZUNoYW5nZSA6IHVuZGVmaW5lZH1cclxuICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxyXG4gICAgICBuYW1lPXtuYW1lfVxyXG4gICAgICB0eXBlPXt0eXBlfVxyXG4gICAgICB2YWx1ZT17dmFsdWV9XHJcbiAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxyXG4gICAgLz5cclxuICApO1xyXG4gIGlmIChsYWJlbCkge1xyXG4gICAgcmV0dXJuIDxMYWJlbCB2YWx1ZT17bGFiZWx9PntpbnB1dEVsZW1lbnR9PC9MYWJlbD47XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiA8PntpbnB1dEVsZW1lbnR9PC8+O1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBUZXh0SW5wdXQ7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1widGV4dElucHV0XCI6XCJfMmlmRlRCeXh2UUY1ZVJZd01BU2FlN1wiLFwic21hbGxcIjpcIl8xOGlMTmhxYzVUejVQUG8yazRfVEJoXCIsXCJtZWRpdW1cIjpcIl8xamFSeWplYXRKUnhFdWpnUEd6V3p4XCIsXCJsYXJnZVwiOlwiXzM0ZDVIM1g4VzBVZ1g5QjhkdFBSQU9cIixcInhsYXJnZVwiOlwiXzNzdDhFR291bk9nak51THBvRXJDMHNcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBUb2FzdCB9IGZyb20gXCIuL1RvYXN0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG9hc3RDb250YWluZXIgfSBmcm9tIFwiLi9Ub2FzdENvbnRhaW5lclwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVG9hc3QubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBUb2FzdFByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcclxufTtcclxuXHJcbmZ1bmN0aW9uIFRvYXN0KHsgY2hpbGRyZW4sIGNvbnRhaW5lclJlZiwgb25DbGljayA9ICgpID0+IHt9IH06IFRvYXN0UHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtzdHlsZXMudG9hc3R9XHJcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwidG9hc3RcIlxyXG4gICAgPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUb2FzdDtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJ0b2FzdFwiOlwiXzJOM1hpSDhSVm5FQVlsekJEX0pDcVpcIixcImVudHJhbmNlXCI6XCJfMTljdzN6eDZmVTRSTUdNYUdNNXpKWlwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVG9hc3RDb250YWluZXIubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBUb2FzdENvbnRhaW5lclByb3BzID0ge1xyXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xyXG59XHJcbmZ1bmN0aW9uIFRvYXN0Q29udGFpbmVyKHsgY2hpbGRyZW4gfTogVG9hc3RDb250YWluZXJQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy50b2FzdENvbnRhaW5lcl0pfVxyXG4gICAgICBkYXRhLXRlc3RpZD1cInRvYXN0LWNvbnRhaW5lclwiXHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRvYXN0Q29udGFpbmVyO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcInRvYXN0Q29udGFpbmVyXCI6XCJfM1JUMmFiZnpLMHJ0LVlqY3JxWExuclwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIFZpZGVvIH0gZnJvbSBcIi4vVmlkZW9cIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVmlkZW8ubW9kdWxlLmNzc1wiO1xyXG5cclxuLyoqXHJcbiAqIFRoZXJlIGlzIGEga25vd24gaXNzdWUgaW4gUmVhY3QgaW4gcmVnYXJkcyB0byB0aGUgJ211dGVkJyBwcm9wZXJ0eSB3aGljaCBjYXVzZXMgdGhlIHdhcm5pbmc6XHJcbiAqIFwiV2FybmluZzogdW5zdGFibGVfZmx1c2hEaXNjcmV0ZVVwZGF0ZXM6IENhbm5vdCBmbHVzaCB1cGRhdGVzIHdoZW4gUmVhY3QgaXMgYWxyZWFkeSByZW5kZXJpbmcuXCJcclxuICpcclxuICogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMDM4OVxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzY1NDRcclxuICogaHR0cHM6Ly9naXRodWIuY29tL3Rlc3RpbmctbGlicmFyeS9yZWFjdC10ZXN0aW5nLWxpYnJhcnkvaXNzdWVzLzQ3MFxyXG4gKi9cclxuXHJcbnR5cGUgTGF5b3V0ID0gXCJjb3ZlclwiIHwgXCJjb250YWluXCIgfCBcInN0cmV0Y2hIb3Jpem9udGFsbHlcIiB8IFwic3RyZXRjaFZlcnRpY2FsbHlcIjtcclxuXHJcbnR5cGUgVmlkZW9Qcm9wcyA9IHtcclxuICBzcmM6IHN0cmluZztcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbGF5b3V0PzogTGF5b3V0O1xyXG4gIGF1dG9QbGF5PzogYm9vbGVhbjtcclxuICBsb29wPzogYm9vbGVhbjtcclxuICBtdXRlZD86IGJvb2xlYW47XHJcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIFZpZGVvKHtcclxuICBzcmMsXHJcbiAgdHlwZSxcclxuICBjaGlsZHJlbixcclxuICBjb250YWluZXJSZWYsXHJcbiAgbXV0ZWQgPSB0cnVlLFxyXG4gIGxvb3AgPSB0cnVlLFxyXG4gIGF1dG9QbGF5ID0gdHJ1ZSxcclxuICBsYXlvdXQgPSBcImNvbnRhaW5cIixcclxufTogVmlkZW9Qcm9wcykge1xyXG4gIHJldHVybiBjaGlsZHJlbiA/IChcclxuICAgIDxkaXZcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIHN0eWxlcy5oYXNPdmVybGF5XSl9XHJcbiAgICA+XHJcbiAgICAgIDx2aWRlb1xyXG4gICAgICAgIGRhdGEtdGVzdGlkPVwidmlkZW9cIlxyXG4gICAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcclxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudmlkZW8sIHN0eWxlc1tsYXlvdXRdXSl9XHJcbiAgICAgICAgbXV0ZWQ9e211dGVkfVxyXG4gICAgICAgIGxvb3A9e2xvb3B9XHJcbiAgICAgICAgYXV0b1BsYXk9e2F1dG9QbGF5fVxyXG4gICAgICAgIHBsYXlzSW5saW5lPXt0cnVlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPHNvdXJjZSBkYXRhLXRlc3RpZD1cInNvdXJjZVwiIHNyYz17c3JjfSB0eXBlPXt0eXBlfSAvPlxyXG4gICAgICA8L3ZpZGVvPlxyXG4gICAgICB7Y2hpbGRyZW4gJiYgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5vdmVybGF5fT57Y2hpbGRyZW59PC9kaXY+fVxyXG4gICAgPC9kaXY+XHJcbiAgKSA6IChcclxuICAgIDx2aWRlb1xyXG4gICAgICBkYXRhLXRlc3RpZD1cInZpZGVvXCJcclxuICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudmlkZW8sIHN0eWxlc1tsYXlvdXRdXSl9XHJcbiAgICAgIG11dGVkPXttdXRlZH1cclxuICAgICAgbG9vcD17bG9vcH1cclxuICAgICAgYXV0b1BsYXk9e2F1dG9QbGF5fVxyXG4gICAgICBwbGF5c0lubGluZT17dHJ1ZX1cclxuICAgID5cclxuICAgICAgPHNvdXJjZSBkYXRhLXRlc3RpZD1cInNvdXJjZVwiIHNyYz17c3JjfSB0eXBlPXt0eXBlfSAvPlxyXG4gICAgPC92aWRlbz5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBWaWRlbztcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xZDU1d1h1UUtwdDk3UHFRSFl4NW1XXCIsXCJoYXNPdmVybGF5XCI6XCJfMkRBTTF4N1Axd3VZTlA4VERtWEdYY1wiLFwidmlkZW9cIjpcIl8zalFfcXBVTHRyMHVGU1RXYkQwTlZaXCIsXCJjb3ZlclwiOlwiXzFxblZMaGVHekRJNk5vOV9ud2I3aGxcIixcImNvbnRhaW5cIjpcIl8xWDI4Nk5JU0kwd3EyS0szZGpWaHUzXCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJPZWdsLThnZDJLNWx6M21VR0pfVXpcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMS1IenBUWV9XdEdjWmMyNXdDb3RlWVwiLFwib3ZlcmxheVwiOlwiXzJUdlhzcUFJVW5HU3FtNmtuSkZoTDNcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VUb2dnbGUgfSBmcm9tIFwiLi91c2VUb2dnbGVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi91c2VPdXRzaWRlQ2xpY2tcIjtcclxuIiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VUb2dnbGUoXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2VcclxuKTogW2Jvb2xlYW4sIChuZXdWYWx1ZT86IGJvb2xlYW4pID0+IHZvaWRdIHtcclxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGluaXRpYWxWYWx1ZSk7XHJcblxyXG4gIGNvbnN0IHRvZ2dsZSA9IChuZXdWYWx1ZT86IGJvb2xlYW4pID0+IHtcclxuICAgIGlmICh0eXBlb2YgbmV3VmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgIHNldFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNldFZhbHVlKChwcmV2VmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4gIXByZXZWYWx1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIFt2YWx1ZSwgdXNlQ2FsbGJhY2sodG9nZ2xlLCBbdmFsdWVdKV07XHJcbn1cclxuXHJcbiIsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG50eXBlIENhbGxiYWNrID0gKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZU91dHNpZGVDbGljayhjYWxsYmFjazogQ2FsbGJhY2spIHtcclxuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgaWYgKCFyZWYuY3VycmVudCB8fCByZWYuY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhbGxiYWNrKGV2ZW50KTtcclxuICAgIH07XHJcblxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZUNsaWNrKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsIGhhbmRsZUNsaWNrKTtcclxuXHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlQ2xpY2spO1xyXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBoYW5kbGVDbGljayk7XHJcbiAgICB9O1xyXG4gIH0sIFtjYWxsYmFja10pO1xyXG5cclxuICByZXR1cm4gcmVmO1xyXG59XHJcbiIsIi8qIVxuICogaG90a2V5cy1qcyB2My44LjFcbiAqIEEgc2ltcGxlIG1pY3JvLWxpYnJhcnkgZm9yIGRlZmluaW5nIGFuZCBkaXNwYXRjaGluZyBrZXlib2FyZCBzaG9ydGN1dHMuIEl0IGhhcyBubyBkZXBlbmRlbmNpZXMuXG4gKiBcbiAqIENvcHlyaWdodCAoYykgMjAyMCBrZW5ueSB3b25nIDx3b3dvaG9vQHFxLmNvbT5cbiAqIGh0dHA6Ly9qYXl3Y2psb3ZlLmdpdGh1Yi5pby9ob3RrZXlzXG4gKiBcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqL1xuXG52YXIgaXNmZiA9IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnID8gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2ZpcmVmb3gnKSA+IDAgOiBmYWxzZTsgLy8g57uR5a6a5LqL5Lu2XG5cbmZ1bmN0aW9uIGFkZEV2ZW50KG9iamVjdCwgZXZlbnQsIG1ldGhvZCkge1xuICBpZiAob2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgbWV0aG9kLCBmYWxzZSk7XG4gIH0gZWxzZSBpZiAob2JqZWN0LmF0dGFjaEV2ZW50KSB7XG4gICAgb2JqZWN0LmF0dGFjaEV2ZW50KFwib25cIi5jb25jYXQoZXZlbnQpLCBmdW5jdGlvbiAoKSB7XG4gICAgICBtZXRob2Qod2luZG93LmV2ZW50KTtcbiAgICB9KTtcbiAgfVxufSAvLyDkv67ppbDplK7ovazmjaLmiJDlr7nlupTnmoTplK7noIFcblxuXG5mdW5jdGlvbiBnZXRNb2RzKG1vZGlmaWVyLCBrZXkpIHtcbiAgdmFyIG1vZHMgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kcy5sZW5ndGg7IGkrKykge1xuICAgIG1vZHNbaV0gPSBtb2RpZmllclttb2RzW2ldLnRvTG93ZXJDYXNlKCldO1xuICB9XG5cbiAgcmV0dXJuIG1vZHM7XG59IC8vIOWkhOeQhuS8oOeahGtleeWtl+espuS4sui9rOaNouaIkOaVsOe7hFxuXG5cbmZ1bmN0aW9uIGdldEtleXMoa2V5KSB7XG4gIGlmICh0eXBlb2Yga2V5ICE9PSAnc3RyaW5nJykga2V5ID0gJyc7XG4gIGtleSA9IGtleS5yZXBsYWNlKC9cXHMvZywgJycpOyAvLyDljLnphY3ku7vkvZXnqbrnmb3lrZfnrKYs5YyF5ous56m65qC844CB5Yi26KGo56ym44CB5o2i6aG156ym562J562JXG5cbiAgdmFyIGtleXMgPSBrZXkuc3BsaXQoJywnKTsgLy8g5ZCM5pe26K6+572u5aSa5Liq5b+r5o236ZSu77yM5LulJywn5YiG5YmyXG5cbiAgdmFyIGluZGV4ID0ga2V5cy5sYXN0SW5kZXhPZignJyk7IC8vIOW/q+aNt+mUruWPr+iDveWMheWQqycsJ++8jOmcgOeJueauiuWkhOeQhlxuXG4gIGZvciAoOyBpbmRleCA+PSAwOykge1xuICAgIGtleXNbaW5kZXggLSAxXSArPSAnLCc7XG4gICAga2V5cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIGluZGV4ID0ga2V5cy5sYXN0SW5kZXhPZignJyk7XG4gIH1cblxuICByZXR1cm4ga2V5cztcbn0gLy8g5q+U6L6D5L+u6aWw6ZSu55qE5pWw57uEXG5cblxuZnVuY3Rpb24gY29tcGFyZUFycmF5KGExLCBhMikge1xuICB2YXIgYXJyMSA9IGExLmxlbmd0aCA+PSBhMi5sZW5ndGggPyBhMSA6IGEyO1xuICB2YXIgYXJyMiA9IGExLmxlbmd0aCA+PSBhMi5sZW5ndGggPyBhMiA6IGExO1xuICB2YXIgaXNJbmRleCA9IHRydWU7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIxLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycjIuaW5kZXhPZihhcnIxW2ldKSA9PT0gLTEpIGlzSW5kZXggPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBpc0luZGV4O1xufVxuXG52YXIgX2tleU1hcCA9IHtcbiAgYmFja3NwYWNlOiA4LFxuICB0YWI6IDksXG4gIGNsZWFyOiAxMixcbiAgZW50ZXI6IDEzLFxuICByZXR1cm46IDEzLFxuICBlc2M6IDI3LFxuICBlc2NhcGU6IDI3LFxuICBzcGFjZTogMzIsXG4gIGxlZnQ6IDM3LFxuICB1cDogMzgsXG4gIHJpZ2h0OiAzOSxcbiAgZG93bjogNDAsXG4gIGRlbDogNDYsXG4gIGRlbGV0ZTogNDYsXG4gIGluczogNDUsXG4gIGluc2VydDogNDUsXG4gIGhvbWU6IDM2LFxuICBlbmQ6IDM1LFxuICBwYWdldXA6IDMzLFxuICBwYWdlZG93bjogMzQsXG4gIGNhcHNsb2NrOiAyMCxcbiAgJ+KHqic6IDIwLFxuICAnLCc6IDE4OCxcbiAgJy4nOiAxOTAsXG4gICcvJzogMTkxLFxuICAnYCc6IDE5MixcbiAgJy0nOiBpc2ZmID8gMTczIDogMTg5LFxuICAnPSc6IGlzZmYgPyA2MSA6IDE4NyxcbiAgJzsnOiBpc2ZmID8gNTkgOiAxODYsXG4gICdcXCcnOiAyMjIsXG4gICdbJzogMjE5LFxuICAnXSc6IDIyMSxcbiAgJ1xcXFwnOiAyMjBcbn07IC8vIE1vZGlmaWVyIEtleXNcblxudmFyIF9tb2RpZmllciA9IHtcbiAgLy8gc2hpZnRLZXlcbiAgJ+KHpyc6IDE2LFxuICBzaGlmdDogMTYsXG4gIC8vIGFsdEtleVxuICAn4oylJzogMTgsXG4gIGFsdDogMTgsXG4gIG9wdGlvbjogMTgsXG4gIC8vIGN0cmxLZXlcbiAgJ+KMgyc6IDE3LFxuICBjdHJsOiAxNyxcbiAgY29udHJvbDogMTcsXG4gIC8vIG1ldGFLZXlcbiAgJ+KMmCc6IDkxLFxuICBjbWQ6IDkxLFxuICBjb21tYW5kOiA5MVxufTtcbnZhciBtb2RpZmllck1hcCA9IHtcbiAgMTY6ICdzaGlmdEtleScsXG4gIDE4OiAnYWx0S2V5JyxcbiAgMTc6ICdjdHJsS2V5JyxcbiAgOTE6ICdtZXRhS2V5JyxcbiAgc2hpZnRLZXk6IDE2LFxuICBjdHJsS2V5OiAxNyxcbiAgYWx0S2V5OiAxOCxcbiAgbWV0YUtleTogOTFcbn07XG52YXIgX21vZHMgPSB7XG4gIDE2OiBmYWxzZSxcbiAgMTg6IGZhbHNlLFxuICAxNzogZmFsc2UsXG4gIDkxOiBmYWxzZVxufTtcbnZhciBfaGFuZGxlcnMgPSB7fTsgLy8gRjF+RjEyIHNwZWNpYWwga2V5XG5cbmZvciAodmFyIGsgPSAxOyBrIDwgMjA7IGsrKykge1xuICBfa2V5TWFwW1wiZlwiLmNvbmNhdChrKV0gPSAxMTEgKyBrO1xufVxuXG52YXIgX2Rvd25LZXlzID0gW107IC8vIOiusOW9leaRgeS4i+eahOe7keWumumUrlxuXG52YXIgX3Njb3BlID0gJ2FsbCc7IC8vIOm7mOiupOeDremUruiMg+WbtFxuXG52YXIgZWxlbWVudEhhc0JpbmRFdmVudCA9IFtdOyAvLyDlt7Lnu5Hlrprkuovku7bnmoToioLngrnorrDlvZVcbi8vIOi/lOWbnumUrueggVxuXG52YXIgY29kZSA9IGZ1bmN0aW9uIGNvZGUoeCkge1xuICByZXR1cm4gX2tleU1hcFt4LnRvTG93ZXJDYXNlKCldIHx8IF9tb2RpZmllclt4LnRvTG93ZXJDYXNlKCldIHx8IHgudG9VcHBlckNhc2UoKS5jaGFyQ29kZUF0KDApO1xufTsgLy8g6K6+572u6I635Y+W5b2T5YmN6IyD5Zu077yI6buY6K6k5Li6J+aJgOaciSfvvIlcblxuXG5mdW5jdGlvbiBzZXRTY29wZShzY29wZSkge1xuICBfc2NvcGUgPSBzY29wZSB8fCAnYWxsJztcbn0gLy8g6I635Y+W5b2T5YmN6IyD5Zu0XG5cblxuZnVuY3Rpb24gZ2V0U2NvcGUoKSB7XG4gIHJldHVybiBfc2NvcGUgfHwgJ2FsbCc7XG59IC8vIOiOt+WPluaRgeS4i+e7keWumumUrueahOmUruWAvFxuXG5cbmZ1bmN0aW9uIGdldFByZXNzZWRLZXlDb2RlcygpIHtcbiAgcmV0dXJuIF9kb3duS2V5cy5zbGljZSgwKTtcbn0gLy8g6KGo5Y2V5o6n5Lu25o6n5Lu25Yik5patIOi/lOWbniBCb29sZWFuXG4vLyBob3RrZXkgaXMgZWZmZWN0aXZlIG9ubHkgd2hlbiBmaWx0ZXIgcmV0dXJuIHRydWVcblxuXG5mdW5jdGlvbiBmaWx0ZXIoZXZlbnQpIHtcbiAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVtZW50O1xuICB2YXIgdGFnTmFtZSA9IHRhcmdldC50YWdOYW1lO1xuICB2YXIgZmxhZyA9IHRydWU7IC8vIGlnbm9yZTogaXNDb250ZW50RWRpdGFibGUgPT09ICd0cnVlJywgPGlucHV0PiBhbmQgPHRleHRhcmVhPiB3aGVuIHJlYWRPbmx5IHN0YXRlIGlzIGZhbHNlLCA8c2VsZWN0PlxuXG4gIGlmICh0YXJnZXQuaXNDb250ZW50RWRpdGFibGUgfHwgKHRhZ05hbWUgPT09ICdJTlBVVCcgfHwgdGFnTmFtZSA9PT0gJ1RFWFRBUkVBJyB8fCB0YWdOYW1lID09PSAnU0VMRUNUJykgJiYgIXRhcmdldC5yZWFkT25seSkge1xuICAgIGZsYWcgPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBmbGFnO1xufSAvLyDliKTmlq3mkYHkuIvnmoTplK7mmK/lkKbkuLrmn5DkuKrplK7vvIzov5Tlm550cnVl5oiW6ICFZmFsc2VcblxuXG5mdW5jdGlvbiBpc1ByZXNzZWQoa2V5Q29kZSkge1xuICBpZiAodHlwZW9mIGtleUNvZGUgPT09ICdzdHJpbmcnKSB7XG4gICAga2V5Q29kZSA9IGNvZGUoa2V5Q29kZSk7IC8vIOi9rOaNouaIkOmUrueggVxuICB9XG5cbiAgcmV0dXJuIF9kb3duS2V5cy5pbmRleE9mKGtleUNvZGUpICE9PSAtMTtcbn0gLy8g5b6q546v5Yig6ZmkaGFuZGxlcnPkuK3nmoTmiYDmnIkgc2NvcGUo6IyD5Zu0KVxuXG5cbmZ1bmN0aW9uIGRlbGV0ZVNjb3BlKHNjb3BlLCBuZXdTY29wZSkge1xuICB2YXIgaGFuZGxlcnM7XG4gIHZhciBpOyAvLyDmsqHmnInmjIflrppzY29wZe+8jOiOt+WPlnNjb3BlXG5cbiAgaWYgKCFzY29wZSkgc2NvcGUgPSBnZXRTY29wZSgpO1xuXG4gIGZvciAodmFyIGtleSBpbiBfaGFuZGxlcnMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9oYW5kbGVycywga2V5KSkge1xuICAgICAgaGFuZGxlcnMgPSBfaGFuZGxlcnNba2V5XTtcblxuICAgICAgZm9yIChpID0gMDsgaSA8IGhhbmRsZXJzLmxlbmd0aDspIHtcbiAgICAgICAgaWYgKGhhbmRsZXJzW2ldLnNjb3BlID09PSBzY29wZSkgaGFuZGxlcnMuc3BsaWNlKGksIDEpO2Vsc2UgaSsrO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyDlpoLmnpxzY29wZeiiq+WIoOmZpO+8jOWwhnNjb3Bl6YeN572u5Li6YWxsXG5cblxuICBpZiAoZ2V0U2NvcGUoKSA9PT0gc2NvcGUpIHNldFNjb3BlKG5ld1Njb3BlIHx8ICdhbGwnKTtcbn0gLy8g5riF6Zmk5L+u6aWw6ZSuXG5cblxuZnVuY3Rpb24gY2xlYXJNb2RpZmllcihldmVudCkge1xuICB2YXIga2V5ID0gZXZlbnQua2V5Q29kZSB8fCBldmVudC53aGljaCB8fCBldmVudC5jaGFyQ29kZTtcblxuICB2YXIgaSA9IF9kb3duS2V5cy5pbmRleE9mKGtleSk7IC8vIOS7juWIl+ihqOS4rea4hemZpOaMieWOi+i/h+eahOmUrlxuXG5cbiAgaWYgKGkgPj0gMCkge1xuICAgIF9kb3duS2V5cy5zcGxpY2UoaSwgMSk7XG4gIH0gLy8g54m55q6K5aSE55CGIGNtbWFuZCDplK7vvIzlnKggY21tYW5kIOe7hOWQiOW/q+aNt+mUriBrZXl1cCDlj6rmiafooYzkuIDmrKHnmoTpl67pophcblxuXG4gIGlmIChldmVudC5rZXkgJiYgZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICdtZXRhJykge1xuICAgIF9kb3duS2V5cy5zcGxpY2UoMCwgX2Rvd25LZXlzLmxlbmd0aCk7XG4gIH0gLy8g5L+u6aWw6ZSuIHNoaWZ0S2V5IGFsdEtleSBjdHJsS2V5IChjb21tYW5kfHxtZXRhS2V5KSDmuIXpmaRcblxuXG4gIGlmIChrZXkgPT09IDkzIHx8IGtleSA9PT0gMjI0KSBrZXkgPSA5MTtcblxuICBpZiAoa2V5IGluIF9tb2RzKSB7XG4gICAgX21vZHNba2V5XSA9IGZhbHNlOyAvLyDlsIbkv67ppbDplK7ph43nva7kuLpmYWxzZVxuXG4gICAgZm9yICh2YXIgayBpbiBfbW9kaWZpZXIpIHtcbiAgICAgIGlmIChfbW9kaWZpZXJba10gPT09IGtleSkgaG90a2V5c1trXSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1bmJpbmQoa2V5c0luZm8pIHtcbiAgLy8gdW5iaW5kKCksIHVuYmluZCBhbGwga2V5c1xuICBpZiAoIWtleXNJbmZvKSB7XG4gICAgT2JqZWN0LmtleXMoX2hhbmRsZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHJldHVybiBkZWxldGUgX2hhbmRsZXJzW2tleV07XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShrZXlzSW5mbykpIHtcbiAgICAvLyBzdXBwb3J0IGxpa2UgOiB1bmJpbmQoW3trZXk6ICdjdHJsK2EnLCBzY29wZTogJ3MxJ30sIHtrZXk6ICdjdHJsLWEnLCBzY29wZTogJ3MyJywgc3BsaXRLZXk6ICctJ31dKVxuICAgIGtleXNJbmZvLmZvckVhY2goZnVuY3Rpb24gKGluZm8pIHtcbiAgICAgIGlmIChpbmZvLmtleSkgZWFjaFVuYmluZChpbmZvKTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmICh0eXBlb2Yga2V5c0luZm8gPT09ICdvYmplY3QnKSB7XG4gICAgLy8gc3VwcG9ydCBsaWtlIHVuYmluZCh7a2V5OiAnY3RybCthLCBjdHJsK2InLCBzY29wZTonYWJjJ30pXG4gICAgaWYgKGtleXNJbmZvLmtleSkgZWFjaFVuYmluZChrZXlzSW5mbyk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGtleXNJbmZvID09PSAnc3RyaW5nJykge1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIC8vIHN1cHBvcnQgb2xkIG1ldGhvZFxuICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB2YXIgc2NvcGUgPSBhcmdzWzBdLFxuICAgICAgICBtZXRob2QgPSBhcmdzWzFdO1xuXG4gICAgaWYgKHR5cGVvZiBzY29wZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgbWV0aG9kID0gc2NvcGU7XG4gICAgICBzY29wZSA9ICcnO1xuICAgIH1cblxuICAgIGVhY2hVbmJpbmQoe1xuICAgICAga2V5OiBrZXlzSW5mbyxcbiAgICAgIHNjb3BlOiBzY29wZSxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgc3BsaXRLZXk6ICcrJ1xuICAgIH0pO1xuICB9XG59IC8vIOino+mZpOe7keWumuafkOS4quiMg+WbtOeahOW/q+aNt+mUrlxuXG5cbnZhciBlYWNoVW5iaW5kID0gZnVuY3Rpb24gZWFjaFVuYmluZChfcmVmKSB7XG4gIHZhciBrZXkgPSBfcmVmLmtleSxcbiAgICAgIHNjb3BlID0gX3JlZi5zY29wZSxcbiAgICAgIG1ldGhvZCA9IF9yZWYubWV0aG9kLFxuICAgICAgX3JlZiRzcGxpdEtleSA9IF9yZWYuc3BsaXRLZXksXG4gICAgICBzcGxpdEtleSA9IF9yZWYkc3BsaXRLZXkgPT09IHZvaWQgMCA/ICcrJyA6IF9yZWYkc3BsaXRLZXk7XG4gIHZhciBtdWx0aXBsZUtleXMgPSBnZXRLZXlzKGtleSk7XG4gIG11bHRpcGxlS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChvcmlnaW5LZXkpIHtcbiAgICB2YXIgdW5iaW5kS2V5cyA9IG9yaWdpbktleS5zcGxpdChzcGxpdEtleSk7XG4gICAgdmFyIGxlbiA9IHVuYmluZEtleXMubGVuZ3RoO1xuICAgIHZhciBsYXN0S2V5ID0gdW5iaW5kS2V5c1tsZW4gLSAxXTtcbiAgICB2YXIga2V5Q29kZSA9IGxhc3RLZXkgPT09ICcqJyA/ICcqJyA6IGNvZGUobGFzdEtleSk7XG4gICAgaWYgKCFfaGFuZGxlcnNba2V5Q29kZV0pIHJldHVybjsgLy8g5Yik5pat5piv5ZCm5Lyg5YWl6IyD5Zu077yM5rKh5pyJ5bCx6I635Y+W6IyD5Zu0XG5cbiAgICBpZiAoIXNjb3BlKSBzY29wZSA9IGdldFNjb3BlKCk7XG4gICAgdmFyIG1vZHMgPSBsZW4gPiAxID8gZ2V0TW9kcyhfbW9kaWZpZXIsIHVuYmluZEtleXMpIDogW107XG4gICAgX2hhbmRsZXJzW2tleUNvZGVdID0gX2hhbmRsZXJzW2tleUNvZGVdLm1hcChmdW5jdGlvbiAocmVjb3JkKSB7XG4gICAgICAvLyDpgJrov4flh73mlbDliKTmlq3vvIzmmK/lkKbop6PpmaTnu5HlrprvvIzlh73mlbDnm7jnrYnnm7TmjqXov5Tlm55cbiAgICAgIHZhciBpc01hdGNoaW5nTWV0aG9kID0gbWV0aG9kID8gcmVjb3JkLm1ldGhvZCA9PT0gbWV0aG9kIDogdHJ1ZTtcblxuICAgICAgaWYgKGlzTWF0Y2hpbmdNZXRob2QgJiYgcmVjb3JkLnNjb3BlID09PSBzY29wZSAmJiBjb21wYXJlQXJyYXkocmVjb3JkLm1vZHMsIG1vZHMpKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9KTtcbiAgfSk7XG59OyAvLyDlr7nnm5HlkKzlr7nlupTlv6vmjbfplK7nmoTlm57osIPlh73mlbDov5vooYzlpITnkIZcblxuXG5mdW5jdGlvbiBldmVudEhhbmRsZXIoZXZlbnQsIGhhbmRsZXIsIHNjb3BlKSB7XG4gIHZhciBtb2RpZmllcnNNYXRjaDsgLy8g55yL5a6D5piv5ZCm5Zyo5b2T5YmN6IyD5Zu0XG5cbiAgaWYgKGhhbmRsZXIuc2NvcGUgPT09IHNjb3BlIHx8IGhhbmRsZXIuc2NvcGUgPT09ICdhbGwnKSB7XG4gICAgLy8g5qOA5p+l5piv5ZCm5Yy56YWN5L+u6aWw56ym77yI5aaC5p6c5pyJ6L+U5ZuedHJ1Ze+8iVxuICAgIG1vZGlmaWVyc01hdGNoID0gaGFuZGxlci5tb2RzLmxlbmd0aCA+IDA7XG5cbiAgICBmb3IgKHZhciB5IGluIF9tb2RzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9tb2RzLCB5KSkge1xuICAgICAgICBpZiAoIV9tb2RzW3ldICYmIGhhbmRsZXIubW9kcy5pbmRleE9mKCt5KSA+IC0xIHx8IF9tb2RzW3ldICYmIGhhbmRsZXIubW9kcy5pbmRleE9mKCt5KSA9PT0gLTEpIHtcbiAgICAgICAgICBtb2RpZmllcnNNYXRjaCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSAvLyDosIPnlKjlpITnkIbnqIvluo/vvIzlpoLmnpzmmK/kv67ppbDplK7kuI3lgZrlpITnkIZcblxuXG4gICAgaWYgKGhhbmRsZXIubW9kcy5sZW5ndGggPT09IDAgJiYgIV9tb2RzWzE2XSAmJiAhX21vZHNbMThdICYmICFfbW9kc1sxN10gJiYgIV9tb2RzWzkxXSB8fCBtb2RpZmllcnNNYXRjaCB8fCBoYW5kbGVyLnNob3J0Y3V0ID09PSAnKicpIHtcbiAgICAgIGlmIChoYW5kbGVyLm1ldGhvZChldmVudCwgaGFuZGxlcikgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVsdCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtlbHNlIGV2ZW50LnJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgICAgIGlmIChldmVudC5zdG9wUHJvcGFnYXRpb24pIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAoZXZlbnQuY2FuY2VsQnViYmxlKSBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSAvLyDlpITnkIZrZXlkb3du5LqL5Lu2XG5cblxuZnVuY3Rpb24gZGlzcGF0Y2goZXZlbnQpIHtcbiAgdmFyIGFzdGVyaXNrID0gX2hhbmRsZXJzWycqJ107XG4gIHZhciBrZXkgPSBldmVudC5rZXlDb2RlIHx8IGV2ZW50LndoaWNoIHx8IGV2ZW50LmNoYXJDb2RlOyAvLyDooajljZXmjqfku7bov4fmu6Qg6buY6K6k6KGo5Y2V5o6n5Lu25LiN6Kem5Y+R5b+r5o236ZSuXG5cbiAgaWYgKCFob3RrZXlzLmZpbHRlci5jYWxsKHRoaXMsIGV2ZW50KSkgcmV0dXJuOyAvLyBHZWNrbyhGaXJlZm94KeeahGNvbW1hbmTplK7lgLwyMjTvvIzlnKhXZWJraXQoQ2hyb21lKeS4reS/neaMgeS4gOiHtFxuICAvLyBXZWJraXTlt6blj7MgY29tbWFuZCDplK7lgLzkuI3kuIDmoLdcblxuICBpZiAoa2V5ID09PSA5MyB8fCBrZXkgPT09IDIyNCkga2V5ID0gOTE7XG4gIC8qKlxuICAgKiBDb2xsZWN0IGJvdW5kIGtleXNcbiAgICogSWYgYW4gSW5wdXQgTWV0aG9kIEVkaXRvciBpcyBwcm9jZXNzaW5nIGtleSBpbnB1dCBhbmQgdGhlIGV2ZW50IGlzIGtleWRvd24sIHJldHVybiAyMjkuXG4gICAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI1MDQzOTM0L2lzLWl0LW9rLXRvLWlnbm9yZS1rZXlkb3duLWV2ZW50cy13aXRoLWtleWNvZGUtMjI5XG4gICAqIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1kb20vMjAxMEp1bFNlcC9hdHQtMDE4Mi9rZXlDb2RlLXNwZWMuaHRtbFxuICAgKi9cblxuICBpZiAoX2Rvd25LZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEgJiYga2V5ICE9PSAyMjkpIF9kb3duS2V5cy5wdXNoKGtleSk7XG4gIC8qKlxuICAgKiBKZXN0IHRlc3QgY2FzZXMgYXJlIHJlcXVpcmVkLlxuICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqL1xuXG4gIFsnY3RybEtleScsICdhbHRLZXknLCAnc2hpZnRLZXknLCAnbWV0YUtleSddLmZvckVhY2goZnVuY3Rpb24gKGtleU5hbWUpIHtcbiAgICB2YXIga2V5TnVtID0gbW9kaWZpZXJNYXBba2V5TmFtZV07XG5cbiAgICBpZiAoZXZlbnRba2V5TmFtZV0gJiYgX2Rvd25LZXlzLmluZGV4T2Yoa2V5TnVtKSA9PT0gLTEpIHtcbiAgICAgIF9kb3duS2V5cy5wdXNoKGtleU51bSk7XG4gICAgfSBlbHNlIGlmICghZXZlbnRba2V5TmFtZV0gJiYgX2Rvd25LZXlzLmluZGV4T2Yoa2V5TnVtKSA+IC0xKSB7XG4gICAgICBfZG93bktleXMuc3BsaWNlKF9kb3duS2V5cy5pbmRleE9mKGtleU51bSksIDEpO1xuICAgIH0gZWxzZSBpZiAoa2V5TmFtZSA9PT0gJ21ldGFLZXknICYmIGV2ZW50W2tleU5hbWVdICYmIF9kb3duS2V5cy5sZW5ndGggPT09IDMpIHtcbiAgICAgIC8qKlxuICAgICAgICogRml4IGlmIENvbW1hbmQgaXMgcHJlc3NlZDpcbiAgICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAqL1xuICAgICAgaWYgKCEoZXZlbnQuY3RybEtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5hbHRLZXkpKSB7XG4gICAgICAgIF9kb3duS2V5cyA9IF9kb3duS2V5cy5zbGljZShfZG93bktleXMuaW5kZXhPZihrZXlOdW0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICAvKipcbiAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKi9cblxuICBpZiAoa2V5IGluIF9tb2RzKSB7XG4gICAgX21vZHNba2V5XSA9IHRydWU7IC8vIOWwhueJueauiuWtl+espueahGtleeazqOWGjOWIsCBob3RrZXlzIOS4ilxuXG4gICAgZm9yICh2YXIgayBpbiBfbW9kaWZpZXIpIHtcbiAgICAgIGlmIChfbW9kaWZpZXJba10gPT09IGtleSkgaG90a2V5c1trXSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFhc3RlcmlzaykgcmV0dXJuO1xuICB9IC8vIOWwhiBtb2RpZmllck1hcCDph4zpnaLnmoTkv67ppbDplK7nu5HlrprliLAgZXZlbnQg5LitXG5cblxuICBmb3IgKHZhciBlIGluIF9tb2RzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfbW9kcywgZSkpIHtcbiAgICAgIF9tb2RzW2VdID0gZXZlbnRbbW9kaWZpZXJNYXBbZV1dO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2pheXdjamxvdmUvaG90a2V5cy9wdWxsLzEyOVxuICAgKiBUaGlzIHNvbHZlcyB0aGUgaXNzdWUgaW4gRmlyZWZveCBvbiBXaW5kb3dzIHdoZXJlIGhvdGtleXMgY29ycmVzcG9uZGluZyB0byBzcGVjaWFsIGNoYXJhY3RlcnMgd291bGQgbm90IHRyaWdnZXIuXG4gICAqIEFuIGV4YW1wbGUgb2YgdGhpcyBpcyBjdHJsK2FsdCttIG9uIGEgU3dlZGlzaCBrZXlib2FyZCB3aGljaCBpcyB1c2VkIHRvIHR5cGUgzrwuXG4gICAqIEJyb3dzZXIgc3VwcG9ydDogaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1rZXlib2FyZGV2ZW50LWdldG1vZGlmaWVyc3RhdGVcbiAgICovXG5cblxuICBpZiAoZXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSAmJiAhKGV2ZW50LmFsdEtleSAmJiAhZXZlbnQuY3RybEtleSkgJiYgZXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSgnQWx0R3JhcGgnKSkge1xuICAgIGlmIChfZG93bktleXMuaW5kZXhPZigxNykgPT09IC0xKSB7XG4gICAgICBfZG93bktleXMucHVzaCgxNyk7XG4gICAgfVxuXG4gICAgaWYgKF9kb3duS2V5cy5pbmRleE9mKDE4KSA9PT0gLTEpIHtcbiAgICAgIF9kb3duS2V5cy5wdXNoKDE4KTtcbiAgICB9XG5cbiAgICBfbW9kc1sxN10gPSB0cnVlO1xuICAgIF9tb2RzWzE4XSA9IHRydWU7XG4gIH0gLy8g6I635Y+W6IyD5Zu0IOm7mOiupOS4uiBgYWxsYFxuXG5cbiAgdmFyIHNjb3BlID0gZ2V0U2NvcGUoKTsgLy8g5a+55Lu75L2V5b+r5o236ZSu6YO96ZyA6KaB5YGa55qE5aSE55CGXG5cbiAgaWYgKGFzdGVyaXNrKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhc3Rlcmlzay5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFzdGVyaXNrW2ldLnNjb3BlID09PSBzY29wZSAmJiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nICYmIGFzdGVyaXNrW2ldLmtleWRvd24gfHwgZXZlbnQudHlwZSA9PT0gJ2tleXVwJyAmJiBhc3Rlcmlza1tpXS5rZXl1cCkpIHtcbiAgICAgICAgZXZlbnRIYW5kbGVyKGV2ZW50LCBhc3Rlcmlza1tpXSwgc2NvcGUpO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBrZXkg5LiN5ZyoIF9oYW5kbGVycyDkuK3ov5Tlm55cblxuXG4gIGlmICghKGtleSBpbiBfaGFuZGxlcnMpKSByZXR1cm47XG5cbiAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IF9oYW5kbGVyc1trZXldLmxlbmd0aDsgX2krKykge1xuICAgIGlmIChldmVudC50eXBlID09PSAna2V5ZG93bicgJiYgX2hhbmRsZXJzW2tleV1bX2ldLmtleWRvd24gfHwgZXZlbnQudHlwZSA9PT0gJ2tleXVwJyAmJiBfaGFuZGxlcnNba2V5XVtfaV0ua2V5dXApIHtcbiAgICAgIGlmIChfaGFuZGxlcnNba2V5XVtfaV0ua2V5KSB7XG4gICAgICAgIHZhciByZWNvcmQgPSBfaGFuZGxlcnNba2V5XVtfaV07XG4gICAgICAgIHZhciBzcGxpdEtleSA9IHJlY29yZC5zcGxpdEtleTtcbiAgICAgICAgdmFyIGtleVNob3J0Y3V0ID0gcmVjb3JkLmtleS5zcGxpdChzcGxpdEtleSk7XG4gICAgICAgIHZhciBfZG93bktleXNDdXJyZW50ID0gW107IC8vIOiusOW9leW9k+WJjeaMiemUrumUruWAvFxuXG4gICAgICAgIGZvciAodmFyIGEgPSAwOyBhIDwga2V5U2hvcnRjdXQubGVuZ3RoOyBhKyspIHtcbiAgICAgICAgICBfZG93bktleXNDdXJyZW50LnB1c2goY29kZShrZXlTaG9ydGN1dFthXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF9kb3duS2V5c0N1cnJlbnQuc29ydCgpLmpvaW4oJycpID09PSBfZG93bktleXMuc29ydCgpLmpvaW4oJycpKSB7XG4gICAgICAgICAgLy8g5om+5Yiw5aSE55CG5YaF5a65XG4gICAgICAgICAgZXZlbnRIYW5kbGVyKGV2ZW50LCByZWNvcmQsIHNjb3BlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSAvLyDliKTmlq0gZWxlbWVudCDmmK/lkKblt7Lnu4/nu5Hlrprkuovku7ZcblxuXG5mdW5jdGlvbiBpc0VsZW1lbnRCaW5kKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGVsZW1lbnRIYXNCaW5kRXZlbnQuaW5kZXhPZihlbGVtZW50KSA+IC0xO1xufVxuXG5mdW5jdGlvbiBob3RrZXlzKGtleSwgb3B0aW9uLCBtZXRob2QpIHtcbiAgX2Rvd25LZXlzID0gW107XG4gIHZhciBrZXlzID0gZ2V0S2V5cyhrZXkpOyAvLyDpnIDopoHlpITnkIbnmoTlv6vmjbfplK7liJfooahcblxuICB2YXIgbW9kcyA9IFtdO1xuICB2YXIgc2NvcGUgPSAnYWxsJzsgLy8gc2NvcGXpu5jorqTkuLphbGzvvIzmiYDmnInojIPlm7Tpg73mnInmlYhcblxuICB2YXIgZWxlbWVudCA9IGRvY3VtZW50OyAvLyDlv6vmjbfplK7kuovku7bnu5HlrproioLngrlcblxuICB2YXIgaSA9IDA7XG4gIHZhciBrZXl1cCA9IGZhbHNlO1xuICB2YXIga2V5ZG93biA9IHRydWU7XG4gIHZhciBzcGxpdEtleSA9ICcrJzsgLy8g5a+55Li66K6+5a6a6IyD5Zu055qE5Yik5patXG5cbiAgaWYgKG1ldGhvZCA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiBvcHRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBtZXRob2QgPSBvcHRpb247XG4gIH1cblxuICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9wdGlvbikgPT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAgaWYgKG9wdGlvbi5zY29wZSkgc2NvcGUgPSBvcHRpb24uc2NvcGU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGlmIChvcHRpb24uZWxlbWVudCkgZWxlbWVudCA9IG9wdGlvbi5lbGVtZW50OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICBpZiAob3B0aW9uLmtleXVwKSBrZXl1cCA9IG9wdGlvbi5rZXl1cDsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgaWYgKG9wdGlvbi5rZXlkb3duICE9PSB1bmRlZmluZWQpIGtleWRvd24gPSBvcHRpb24ua2V5ZG93bjsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb24uc3BsaXRLZXkgPT09ICdzdHJpbmcnKSBzcGxpdEtleSA9IG9wdGlvbi5zcGxpdEtleTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICB9XG5cbiAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnKSBzY29wZSA9IG9wdGlvbjsgLy8g5a+55LqO5q+P5Liq5b+r5o236ZSu6L+b6KGM5aSE55CGXG5cbiAgZm9yICg7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAga2V5ID0ga2V5c1tpXS5zcGxpdChzcGxpdEtleSk7IC8vIOaMiemUruWIl+ihqFxuXG4gICAgbW9kcyA9IFtdOyAvLyDlpoLmnpzmmK/nu4TlkIjlv6vmjbfplK7lj5blvpfnu4TlkIjlv6vmjbfplK5cblxuICAgIGlmIChrZXkubGVuZ3RoID4gMSkgbW9kcyA9IGdldE1vZHMoX21vZGlmaWVyLCBrZXkpOyAvLyDlsIbpnZ7kv67ppbDplK7ovazljJbkuLrplK7noIFcblxuICAgIGtleSA9IGtleVtrZXkubGVuZ3RoIC0gMV07XG4gICAga2V5ID0ga2V5ID09PSAnKicgPyAnKicgOiBjb2RlKGtleSk7IC8vICrooajnpLrljLnphY3miYDmnInlv6vmjbfplK5cbiAgICAvLyDliKTmlq1rZXnmmK/lkKblnKhfaGFuZGxlcnPkuK3vvIzkuI3lnKjlsLHotYvkuIDkuKrnqbrmlbDnu4RcblxuICAgIGlmICghKGtleSBpbiBfaGFuZGxlcnMpKSBfaGFuZGxlcnNba2V5XSA9IFtdO1xuXG4gICAgX2hhbmRsZXJzW2tleV0ucHVzaCh7XG4gICAgICBrZXl1cDoga2V5dXAsXG4gICAgICBrZXlkb3duOiBrZXlkb3duLFxuICAgICAgc2NvcGU6IHNjb3BlLFxuICAgICAgbW9kczogbW9kcyxcbiAgICAgIHNob3J0Y3V0OiBrZXlzW2ldLFxuICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICBrZXk6IGtleXNbaV0sXG4gICAgICBzcGxpdEtleTogc3BsaXRLZXlcbiAgICB9KTtcbiAgfSAvLyDlnKjlhajlsYBkb2N1bWVudOS4iuiuvue9ruW/q+aNt+mUrlxuXG5cbiAgaWYgKHR5cGVvZiBlbGVtZW50ICE9PSAndW5kZWZpbmVkJyAmJiAhaXNFbGVtZW50QmluZChlbGVtZW50KSAmJiB3aW5kb3cpIHtcbiAgICBlbGVtZW50SGFzQmluZEV2ZW50LnB1c2goZWxlbWVudCk7XG4gICAgYWRkRXZlbnQoZWxlbWVudCwgJ2tleWRvd24nLCBmdW5jdGlvbiAoZSkge1xuICAgICAgZGlzcGF0Y2goZSk7XG4gICAgfSk7XG4gICAgYWRkRXZlbnQod2luZG93LCAnZm9jdXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfZG93bktleXMgPSBbXTtcbiAgICB9KTtcbiAgICBhZGRFdmVudChlbGVtZW50LCAna2V5dXAnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgZGlzcGF0Y2goZSk7XG4gICAgICBjbGVhck1vZGlmaWVyKGUpO1xuICAgIH0pO1xuICB9XG59XG5cbnZhciBfYXBpID0ge1xuICBzZXRTY29wZTogc2V0U2NvcGUsXG4gIGdldFNjb3BlOiBnZXRTY29wZSxcbiAgZGVsZXRlU2NvcGU6IGRlbGV0ZVNjb3BlLFxuICBnZXRQcmVzc2VkS2V5Q29kZXM6IGdldFByZXNzZWRLZXlDb2RlcyxcbiAgaXNQcmVzc2VkOiBpc1ByZXNzZWQsXG4gIGZpbHRlcjogZmlsdGVyLFxuICB1bmJpbmQ6IHVuYmluZFxufTtcblxuZm9yICh2YXIgYSBpbiBfYXBpKSB7XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX2FwaSwgYSkpIHtcbiAgICBob3RrZXlzW2FdID0gX2FwaVthXTtcbiAgfVxufVxuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgdmFyIF9ob3RrZXlzID0gd2luZG93LmhvdGtleXM7XG5cbiAgaG90a2V5cy5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKGRlZXApIHtcbiAgICBpZiAoZGVlcCAmJiB3aW5kb3cuaG90a2V5cyA9PT0gaG90a2V5cykge1xuICAgICAgd2luZG93LmhvdGtleXMgPSBfaG90a2V5cztcbiAgICB9XG5cbiAgICByZXR1cm4gaG90a2V5cztcbiAgfTtcblxuICB3aW5kb3cuaG90a2V5cyA9IGhvdGtleXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGhvdGtleXM7XG4iLCJpbXBvcnQgaG90a2V5cyBmcm9tICdob3RrZXlzLWpzJztcbmltcG9ydCB7IHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuZnVuY3Rpb24gdXNlSXNIb3RrZXlQcmVzc2VkKCkge1xuICByZXR1cm4gaG90a2V5cy5pc1ByZXNzZWQ7XG59XG5cbmZ1bmN0aW9uIHVzZUhvdGtleXMoa2V5cywgY2FsbGJhY2ssIG9wdGlvbnMsIGRlcHMpIHtcbiAgaWYgKG9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIGRlcHMgPSBvcHRpb25zO1xuICAgIG9wdGlvbnMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICB2YXIgX3JlZiA9IG9wdGlvbnMgfHwge30sXG4gICAgICBlbmFibGVPblRhZ3MgPSBfcmVmLmVuYWJsZU9uVGFncyxcbiAgICAgIGZpbHRlciA9IF9yZWYuZmlsdGVyLFxuICAgICAga2V5dXAgPSBfcmVmLmtleXVwLFxuICAgICAga2V5ZG93biA9IF9yZWYua2V5ZG93bjtcblxuICB2YXIgcmVmID0gdXNlUmVmKG51bGwpO1xuICB2YXIgbWVtb2lzZWRDYWxsYmFjayA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChrZXlib2FyZEV2ZW50LCBob3RrZXlzRXZlbnQpIHtcbiAgICBpZiAocmVmLmN1cnJlbnQgPT09IG51bGwgfHwgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gcmVmLmN1cnJlbnQpIHtcbiAgICAgIGNhbGxiYWNrKGtleWJvYXJkRXZlbnQsIGhvdGtleXNFdmVudCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sIGRlcHMgPyBbcmVmXS5jb25jYXQoZGVwcykgOiBbcmVmXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5lbmFibGVPblRhZ3MpIHtcbiAgICAgIGhvdGtleXMuZmlsdGVyID0gZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICAgIHZhciB0YXJnZXQgPSBfcmVmMi50YXJnZXQsXG4gICAgICAgICAgICBzcmNFbGVtZW50ID0gX3JlZjIuc3JjRWxlbWVudDtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB2YXIgdGFyZ2V0VGFnTmFtZSA9IHRhcmdldCAmJiB0YXJnZXQudGFnTmFtZSB8fCBzcmNFbGVtZW50ICYmIHNyY0VsZW1lbnQudGFnTmFtZTtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGFyZ2V0VGFnTmFtZSAmJiBlbmFibGVPblRhZ3MgJiYgZW5hYmxlT25UYWdzLmluY2x1ZGVzKHRhcmdldFRhZ05hbWUpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlcikgaG90a2V5cy5maWx0ZXIgPSBmaWx0ZXI7XG5cbiAgICBpZiAoa2V5dXAgJiYga2V5ZG93biAhPT0gdHJ1ZSkge1xuICAgICAgb3B0aW9ucy5rZXlkb3duID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaG90a2V5cyhrZXlzLCBvcHRpb25zIHx8IHt9LCBtZW1vaXNlZENhbGxiYWNrKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGhvdGtleXMudW5iaW5kKGtleXMsIG1lbW9pc2VkQ2FsbGJhY2spO1xuICAgIH07XG4gIH0sIFttZW1vaXNlZENhbGxiYWNrLCBvcHRpb25zLCBlbmFibGVPblRhZ3MsIGZpbHRlciwga2V5c10pO1xuICByZXR1cm4gcmVmO1xufVxuXG5leHBvcnQgeyB1c2VIb3RrZXlzLCB1c2VJc0hvdGtleVByZXNzZWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWhvdGtleXMtaG9vay5lc20uanMubWFwXG4iXSwic291cmNlUm9vdCI6IiJ9