@touchtech/baselayer-ui 2.22.4 → 2.22.5

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 +24 -24
  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 +19 -19
  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/FileInput/FileInput.d.ts +22 -22
  24. package/dist/components/FileInput/__tests__/FileInput.test.d.ts +1 -1
  25. package/dist/components/FileInput/index.d.ts +2 -2
  26. package/dist/components/FloatingPanel/FloatingPanel.d.ts +14 -14
  27. package/dist/components/FloatingPanel/__tests__/FloatingPanel.test.d.ts +1 -1
  28. package/dist/components/FloatingPanel/index.d.ts +1 -1
  29. package/dist/components/Icon/Icon.d.ts +10 -10
  30. package/dist/components/Icon/__tests__/Icon.test.d.ts +1 -1
  31. package/dist/components/Icon/index.d.ts +1 -1
  32. package/dist/components/IconButton/IconButton.d.ts +21 -21
  33. package/dist/components/IconButton/__tests__/IconButton.test.d.ts +1 -1
  34. package/dist/components/IconButton/index.d.ts +1 -1
  35. package/dist/components/IconButtonLink/IconButtonLink.d.ts +21 -20
  36. package/dist/components/IconButtonLink/__tests__/IconButtonLink.test.d.ts +1 -1
  37. package/dist/components/IconButtonLink/index.d.ts +1 -1
  38. package/dist/components/Image/Image.d.ts +14 -14
  39. package/dist/components/Image/__tests__/Image.test.d.ts +1 -1
  40. package/dist/components/Image/index.d.ts +1 -1
  41. package/dist/components/Label/Label.d.ts +9 -9
  42. package/dist/components/Label/__tests/Label.test.d.ts +1 -1
  43. package/dist/components/Label/index.d.ts +1 -1
  44. package/dist/components/ListView/ListView.d.ts +10 -10
  45. package/dist/components/ListView/ListViewItem.d.ts +14 -14
  46. package/dist/components/ListView/ListViewLinkItem.d.ts +13 -13
  47. package/dist/components/ListView/__tests__/ListView.test.d.ts +1 -1
  48. package/dist/components/ListView/index.d.ts +3 -3
  49. package/dist/components/Menu/Menu.d.ts +11 -11
  50. package/dist/components/Menu/MenuContainer.d.ts +13 -13
  51. package/dist/components/Menu/MenuItem.d.ts +10 -10
  52. package/dist/components/Menu/MenuLinkItem.d.ts +9 -9
  53. package/dist/components/Menu/__tests__/Menu.test.d.ts +1 -1
  54. package/dist/components/Menu/__tests__/MenuLinkItem.test.d.ts +1 -1
  55. package/dist/components/Menu/index.d.ts +4 -4
  56. package/dist/components/Modal/Modal.d.ts +14 -14
  57. package/dist/components/Modal/__tests__/Modal.test.d.ts +1 -1
  58. package/dist/components/Modal/index.d.ts +1 -1
  59. package/dist/components/Overlay/Overlay.d.ts +10 -10
  60. package/dist/components/Overlay/__tests__/Overlay.test.d.ts +1 -1
  61. package/dist/components/Overlay/index.d.ts +1 -1
  62. package/dist/components/TextInput/TextInput.d.ts +18 -18
  63. package/dist/components/TextInput/__tests__/TextInput.test.d.ts +1 -1
  64. package/dist/components/TextInput/index.d.ts +1 -1
  65. package/dist/components/Toast/Toast.d.ts +8 -8
  66. package/dist/components/Toast/ToastContainer.d.ts +7 -7
  67. package/dist/components/Toast/__tests__/Toast.test.d.ts +1 -1
  68. package/dist/components/Toast/__tests__/ToastContainer.test.d.ts +1 -1
  69. package/dist/components/Toast/index.d.ts +2 -2
  70. package/dist/components/Video/Video.d.ts +23 -23
  71. package/dist/components/Video/__tests__/Video.test.d.ts +1 -1
  72. package/dist/components/Video/index.d.ts +1 -1
  73. package/dist/hooks/__tests__/useToggle.test.d.ts +1 -1
  74. package/dist/hooks/index.d.ts +2 -2
  75. package/dist/hooks/useOutsideClick.d.ts +4 -4
  76. package/dist/hooks/useToggle.d.ts +1 -1
  77. package/dist/index.d.ts +22 -22
  78. package/dist/index.js +5 -5
  79. package/dist/styles.css +1343 -1333
  80. package/dist/types/index.d.ts +7 -7
  81. package/package.json +93 -93
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
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(38);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(35),t),a(n(4),t),a(n(40),t),a(n(43),t),a(n(46),t),a(n(49),t),a(n(54),t),a(n(8),t),a(n(63),t),a(n(3),t),a(n(66),t),a(n(69),t),a(n(74),t),a(n(77),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)),u=r(n(12));t.default=function(e){var t=e.children,n=e.className;return a.default.createElement("div",{className:o.default([u.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)),u=r(n(14));t.default=function(e){var t,n=e.children,r=e.className,i=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.autoFocus,C=void 0!==k&&k,x=e.offsetSides,N=void 0===x?[]:x,S=e.align,D=void 0===S?"center":S,I=e.size,z=void 0===I?"medium":I,B=e.type;return a.default.createElement("button",{ref:l,className:o.default([u.default.container,u.default[z],u.default[D],(t={},t[u.default.inverted]=s,t[u.default.rounded]=_,t[u.default.noShadow]=m,t[u.default.noPadding]=y,t[u.default.noBorder]=g,t[u.default.transparent]=P,t[u.default.stretchHorizontally]=M,t[u.default.stretchVertically]=E,t[u.default.leftOffset]=_&&N.includes("left"),t[u.default.rightOffset]=_&&N.includes("right"),t),r]),disabled:f,autoFocus:C,onClick:i,type:B,role:"button"},"string"!=typeof n&&Array.isArray(n)&&n.length?a.default.createElement("div",{className:u.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 u=o(n(0)),i=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,N=e.align,S=void 0===N?"center":N,D=a(e,["as","children","className","size","containerRef","inverted","rounded","transparent","noShadow","noPadding","noBorder","stretchHorizontally","stretchVertically","offsetSides","align"]);return void 0===n&&(n="a"),u.default.createElement(n,r({ref:c,"data-testid":"button-link",className:i.default([l.default.container,l.default[f],l.default[S],(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?u.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},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),l=u(n(1)),d=n(3),f=u(n(21));t.default=function(e){var t=e.label,n=e.onChange,r=e.placeholder,a=e.checked,o=e.disabled,u=e.name,c=e.indeterminate,s=e.size,v=void 0===s?"medium":s,_=e.autoFocus,p=void 0!==_&&_,m=i.useCallback((function(e){return n(e.target.checked)}),[n]);return i.default.createElement(d.Label,{value:t},i.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:u,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(1)),u=r(n(20));t.default=function(e){var t=e.className,n=e.children,r=e.value,i=e.containerRef;return a.default.createElement("label",{ref:i,className:o.default([u.default.container,t])},r,n)}},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)),u=n(7),i=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([i.default.colorPicker,i.default[f]])},t.map((function(e){return a.default.createElement(u.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)),u=r(n(25));t.default=function(e){var t,n=e.color,r=e.containerRef,i=e.onClick,l=e.isSelected,d=void 0!==l&&l;return a.default.createElement("button",{ref:r,className:o.default([u.default.colorSwatch,(t={},t[u.default.selected]=d,t)]),"data-testid":"color-swatch",onClick:i,style:{backgroundColor:n.hexCode}},a.default.createElement("span",{className:u.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)),u=n(8),i=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,y=e.noOverlay,b=void 0!==y&&y,g=e.noShadow,O=void 0!==g&&g,P=e.baseZIndex,j=void 0===P?1019:P;return a.default.createElement(u.Modal,{containerRef:r,isOpen:d,onClose:p,noOverlay:b,noShadow:O,baseZIndex:j},a.default.createElement("div",{className:i.default.container},a.default.createElement("h1",{className:i.default.modalHeader},l),a.default.createElement("div",{className:o.default([i.default.modalContent,(t={},t[i.default.noPadding]=h,t)])},n),a.default.createElement("div",{className:i.default.modalButtonsContainer},a.default.createElement("div",{className:i.default.modalButtons},c),a.default.createElement("div",{className:i.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},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),l=n(80),d=u(n(1)),f=u(n(30));t.default=function(e){var t,n,r=e.children,a=e.containerRef,o=e.isOpen,u=e.button,c=e.transparent,s=void 0!==c&&c,v=e.noShadow,_=void 0!==v&&v,p=e.noOverlay,m=void 0!==p&&p,h=e.onClose,y=void 0===h?function(){}:h,b=e.baseZIndex,g=void 0===b?1009:b;l.useHotkeys("Escape",y);var O=i.useCallback((function(){y()}),[y]);return o&&i.default.createElement("div",{ref:a},i.default.createElement("div",{style:{zIndex:g},className:d.default([f.default.overlay,(t={},t[f.default.noOverlay]=m,t)]),"data-testid":"modal-overlay",onClick:O}),i.default.createElement("div",{style:{zIndex:g+1},className:d.default([f.default.modal,(n={},n[f.default.transparent]=s,n[f.default.noShadow]=_,n)]),"data-testid":"modal"},r),u&&i.default.createElement("div",{style:{zIndex:g+2},className:f.default.modalButton},u))}},function(e,t,n){"use strict";n.r(t),t.default={overlay:"_20ZKGY4TwZxp0KZ6E7y4WB",noOverlay:"_2ALw2p-DHxYDhYvRzQ4inB",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.FileInput=void 0;var a=n(33);Object.defineProperty(t,"FileInput",{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)),u=r(n(34));t.default=function(e){var t,n=e.children,r=e.accept,i=e.onChange,l=e.inputRef,d=e.multiple,f=void 0!==d&&d,c=e.disabled,s=void 0!==c&&c,v=e.inverted,_=void 0!==v&&v,p=e.noShadow,m=void 0!==p&&p,h=e.noBorder,y=void 0!==h&&h,b=e.noPadding,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.rounded,C=void 0!==k&&k,x=e.size,N=void 0===x?"medium":x;return a.default.createElement("label",{className:o.default([u.default.label,u.default[N],(t={},t[u.default.inverted]=_,t[u.default.rounded]=C,t[u.default.noShadow]=m,t[u.default.noBorder]=y,t[u.default.noPadding]=g,t[u.default.transparent]=P,t[u.default.stretchHorizontally]=M,t[u.default.stretchVertically]=E,t)])},a.default.createElement("input",{className:u.default.input,type:"file",id:"file",accept:r,multiple:f,ref:l,disabled:s,onChange:i}),n)}},function(e,t,n){"use strict";n.r(t),t.default={input:"_3VXzr6zmW7T6arx9_vCAFV",label:"z7s2hdwGT3kcz51_mJxmv",small:"_2zr58hKkgcwYMB1wuAJtoR",large:"_1CNbLejI46j3CSRU7tQGbe",xlarge:"_2tjeXdwx3-dnS_921rupBl",inverted:"_32ldLMELkSydXeog8BCBi-",rounded:"Xn4Df7rQxm0QAHNeuvNL",noShadow:"NeAOoYgb0hOPnTVzwtgDD",noBorder:"_3wVzb4PRqhxupXjuB0RBlS",noPadding:"_1xPtXej_mhPDblzvcrlfO8",transparent:"S0zDfgsU1DgO0UuTSOfk4",stretchHorizontally:"emegLCH-W_n7KuTJlOsQA",stretchVertically:"VHZR6hWK6fSDfRLuhH7oN"}},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(36);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)),u=r(n(37));t.default=function(e){var t,n=e.children,r=e.containerRef,i=e.layout,l=void 0===i?"column":i,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([u.default.container,u.default[c],u.default[s],u.default[l],(t={},t[u.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)),u=r(n(39));t.default=function(e){var t,n=e.src,r=e.alt,i=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:i,className:o.default([u.default.icon,u.default[d],(t={},t[u.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(41);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)),u=n(4),i=r(n(42)),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,N=void 0===x?"medium":x,S=e.type,D=void 0===S?"button":S;return a.default.createElement("button",{ref:r,className:o.default([i.default.container,i.default[N],(t={},t[i.default.inverted]=g,t[i.default.rounded]=C,t[i.default.noShadow]=P,t[i.default.noBorder]=M,t[i.default.transparent]=E,t[i.default.topOffset]=C&&_.includes("top"),t[i.default.rightOffset]=C&&_.includes("right"),t[i.default.bottomOffset]=C&&_.includes("bottom"),t[i.default.leftOffset]=C&&_.includes("left"),t),n]),disabled:y,onClick:m,type:D,role:"button"},a.default.createElement(u.Icon,{src:d,alt:f,size:N,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(44);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 u=o(n(0)),i=o(n(1)),l=n(4),d=o(n(45)),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,N=a(e,["as","containerRef","className","src","alt","badgeContent","inverted","noShadow","noBorder","transparent","rounded","offsetSides","size"]);return void 0===n&&(n="a"),u.default.createElement(n,r({ref:o,"data-testid":"icon-button-link",className:i.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])},N),u.default.createElement(l.Icon,{src:s,alt:v,size:x,inverted:h}),p&&u.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(47);Object.defineProperty(t,"Image",{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)),u=r(n(48));t.default=function(e){var t=e.src,n=e.alt,r=e.srcWidth,i=e.srcHeight,l=e.children,d=e.containerRef,f=e.layout,c=void 0===f?"contain":f,s=e.decoding,v=void 0===s?"auto":s,_=e.loading,p=void 0===_?"eager":_,m=a.default.createElement("img",{className:o.default([u.default.image,u.default[c]]),crossOrigin:"anonymous","data-testid":"image",alt:n,src:t,width:r,height:i,decoding:v,loading:p});return l?a.default.createElement("div",{ref:d,className:o.default([u.default.container,u.default.hasOverlay])},m,l&&a.default.createElement("div",{className:u.default.overlay},l)):m}},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"}},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(50);Object.defineProperty(t,"ListView",{enumerable:!0,get:function(){return r(a).default}});var o=n(52);Object.defineProperty(t,"ListViewItem",{enumerable:!0,get:function(){return r(o).default}});var u=n(53);Object.defineProperty(t,"ListViewLinkItem",{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)),u=r(n(51));t.default=function(e){var t=e.children,n=e.className,r=e.containerRef,i=e.header,l=e.headerActions;return a.default.createElement("div",{ref:r,className:o.default([u.default.container,n])},(i||l)&&a.default.createElement("div",{className:u.default.header},i&&a.default.createElement("h3",{className:u.default.headerLabel},i),l),a.default.createElement("ul",{className:u.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)),u=n(5),i=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([i.default.listViewItem])},a.default.createElement(u.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 u=o(n(0)),i=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"),u.default.createElement("li",{className:i.default([d.default.listViewItem])},u.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(55);Object.defineProperty(t,"Menu",{enumerable:!0,get:function(){return r(a).default}});var o=n(57);Object.defineProperty(t,"MenuContainer",{enumerable:!0,get:function(){return r(o).default}});var u=n(59);Object.defineProperty(t,"MenuItem",{enumerable:!0,get:function(){return r(u).default}});var i=n(61);Object.defineProperty(t,"MenuLinkItem",{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)),u=r(n(56));t.default=function(e){var t,n,r=e.children,i=e.containerRef,l=e.className,d=e.isOpen,f=void 0===d||d,c=e.header,s=e.footer;return f?a.default.createElement(a.default.Fragment,null,a.default.createElement("div",{ref:i,className:o.default([u.default.menu,(t={},t[u.default.open]=f,t),l])},a.default.createElement("div",{className:u.default.scrollContainer},c&&f&&a.default.createElement("h3",{className:u.default.header},c),a.default.createElement("ul",null,f&&r)),s&&f&&a.default.createElement("div",{className:o.default([u.default.footer,(n={},n[u.default.noBorder]=!r,n)])},s))):null}},function(e,t,n){"use strict";n.r(t),t.default={menu:"_1L5-pv_P6M2oGeoReMnO2J",open:"_1J7pFkvkjQQRWkmg-0XTWZ",entrance:"_3cqesQGf9Cyu66DsoKtF0q",header:"pOPYaV01o9WB7Bw4Vgiw",footer:"_3mCccnvNdN-XZZS7PLxav0",noBorder:"_26tUOf9gI-aRfaf_IeyPUI",scrollContainer:"_1mqMUrd13-1TlovGCBOepf"}},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},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),l=u(n(1)),d=u(n(58));t.default=i.forwardRef((function(e,t){var n=e.children,r=e.button,a=e.className,o=e.placement,u=void 0===o?{horizontal:"left",vertical:"bottom"}:o;return i.default.createElement("div",{ref:t,className:l.default([d.default.container,a])},r,i.default.createElement("div",{className:l.default([d.default.menuContainer,d.default[u.horizontal],d.default[u.vertical]])},n))}))},function(e,t,n){"use strict";n.r(t),t.default={container:"_3D4IQZWCtH8MTXrv59MYKF",menuContainer:"_1_2sFFVzNXmJX_PTpHZgEL",top:"QvC4y6mf1YW-blK6PSN5I",right:"_3mrVbwkmVmlcFDadPoecc7",left:"XfQ4bjnKFaAYmQTuRK-6A",bottom:"_39_tybX5JZ6Y-uj47gPsKV"}},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)),u=r(n(60));t.default=function(e){var t,n,r=e.children,i=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([u.default.menuItem,(t={},t[u.default.active]=s,t),(n={},n[u.default.noPadding]=f,n),i]),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 u=o(n(0)),i=o(n(1)),l=o(n(62));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"),u.default.createElement(n,r({"data-testid":"menu-link-item",className:i.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",noPadding:"bNXikyEZIIOM1HgsAi3ft",active:"_1Z-mPvewGUg484QPc9Hxq2",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(64);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)),u=r(n(65));t.default=function(e){var t,n=e.children,r=e.containerRef,i=e.transparent,l=void 0!==i&&i,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([u.default.overlay,(t={},t[u.default.transparent]=l,t[u.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(67);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},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),l=u(n(1)),d=n(3),f=u(n(68));t.default=function(e){var t,n=e.label,r=e.onChange,a=e.onBlur,o=e.onKeyDown,u=e.placeholder,c=e.value,s=e.name,v=e.inputRef,_=e.size,p=void 0===_?"medium":_,m=e.type,h=void 0===m?"text":m,y=e.autoFocus,b=void 0!==y&&y,g=e.noBorder,O=void 0!==g&&g,P=i.useCallback((function(e){r&&r(e.target.value)}),[r]),j=i.default.createElement("input",{"data-testid":"input",ref:v,className:l.default([f.default.textInput,f.default[p],(t={},t[f.default.noBorder]=O,t)]),onChange:P,onBlur:a,onKeyDown:o,placeholder:u,name:s,type:h,value:c,autoFocus:b});return n?i.default.createElement(d.Label,{value:n},j):i.default.createElement(i.default.Fragment,null,j)}},function(e,t,n){"use strict";n.r(t),t.default={textInput:"_2ifFTByxvQF5eRYwMASae7",small:"_18iLNhqc5Tz5PPo2k4_TBh",medium:"_1jaRyjeatJRxEujgPGzWzx",large:"_34d5H3X8W0UgX9B8dtPRAO",xlarge:"_3st8EGounOgjNuLpoErC0s",noBorder:"ptRZ7A5giW7FB3mk8QLCM"}},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(70);Object.defineProperty(t,"Toast",{enumerable:!0,get:function(){return r(a).default}});var o=n(72);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(71));t.default=function(e){var t=e.children,n=e.containerRef,r=e.onClick,u=void 0===r?function(){}:r;return a.default.createElement("div",{ref:n,className:o.default.toast,onClick:u,"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)),u=r(n(73));t.default=function(e){var t=e.children,n=e.baseZIndex;return a.default.createElement("div",{className:o.default([u.default.toastContainer]),style:{zIndex:n},"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(75);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)),u=r(n(76));t.default=function(e){var t=e.src,n=e.type,r=e.children,i=e.containerRef,l=e.poster,d=e.muted,f=void 0===d||d,c=e.loop,s=void 0===c||c,v=e.autoPlay,_=void 0===v||v,p=e.layout,m=void 0===p?"contain":p;return r?a.default.createElement("div",{ref:i,className:o.default([u.default.container,u.default.hasOverlay])},a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([u.default.video,u.default[m]]),muted:f,loop:s,autoPlay:_,poster:l,playsInline:!0},a.default.createElement("source",{"data-testid":"source",src:t,type:n})),r&&a.default.createElement("div",{className:u.default.overlay},r)):a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([u.default.video,u.default[m]]),muted:f,loop:s,autoPlay:_,poster:l,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(78);Object.defineProperty(t,"useToggle",{enumerable:!0,get:function(){return r(a).default}});var o=n(79);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})}),[])]}},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("mouseup",n),document.addEventListener("touchend",n),function(){document.removeEventListener("mouseup",n),document.removeEventListener("touchend",n)}}),[e]),t}},function(e,t,n){"use strict";n.r(t),n.d(t,"useHotkeys",(function(){return N})),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(38);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(35),t),a(n(4),t),a(n(40),t),a(n(43),t),a(n(46),t),a(n(49),t),a(n(54),t),a(n(8),t),a(n(63),t),a(n(3),t),a(n(66),t),a(n(69),t),a(n(74),t),a(n(77),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)),u=r(n(12));t.default=function(e){var t=e.children,n=e.className;return a.default.createElement("div",{className:o.default([u.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)),u=r(n(14));t.default=function(e){var t,n=e.children,r=e.className,i=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.autoFocus,C=void 0!==k&&k,x=e.offsetSides,S=void 0===x?[]:x,N=e.align,D=void 0===N?"center":N,I=e.size,z=void 0===I?"medium":I,B=e.type;return a.default.createElement("button",{ref:l,className:o.default([u.default.container,u.default[z],u.default[D],(t={},t[u.default.inverted]=s,t[u.default.rounded]=_,t[u.default.noShadow]=m,t[u.default.noPadding]=y,t[u.default.noBorder]=g,t[u.default.transparent]=P,t[u.default.stretchHorizontally]=M,t[u.default.stretchVertically]=E,t[u.default.leftOffset]=_&&S.includes("left"),t[u.default.rightOffset]=_&&S.includes("right"),t),r]),disabled:f,autoFocus:C,onClick:i,type:B,role:"button"},"string"!=typeof n&&Array.isArray(n)&&n.length?a.default.createElement("div",{className:u.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 u=o(n(0)),i=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"),u.default.createElement(n,r({ref:c,"data-testid":"button-link",className:i.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?u.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},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),l=u(n(1)),d=n(3),f=u(n(21));t.default=function(e){var t=e.label,n=e.onChange,r=e.placeholder,a=e.checked,o=e.disabled,u=e.name,c=e.indeterminate,s=e.size,v=void 0===s?"medium":s,_=e.autoFocus,p=void 0!==_&&_,m=i.useCallback((function(e){return n(e.target.checked)}),[n]);return i.default.createElement(d.Label,{value:t},i.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:u,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(1)),u=r(n(20));t.default=function(e){var t=e.className,n=e.children,r=e.value,i=e.containerRef;return a.default.createElement("label",{ref:i,className:o.default([u.default.container,t])},r,n)}},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)),u=n(7),i=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([i.default.colorPicker,i.default[f]])},t.map((function(e){return a.default.createElement(u.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)),u=r(n(25));t.default=function(e){var t,n=e.color,r=e.containerRef,i=e.onClick,l=e.isSelected,d=void 0!==l&&l;return a.default.createElement("button",{ref:r,className:o.default([u.default.colorSwatch,(t={},t[u.default.selected]=d,t)]),"data-testid":"color-swatch",onClick:i,style:{backgroundColor:n.hexCode}},a.default.createElement("span",{className:u.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)),u=n(8),i=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,y=e.noOverlay,b=void 0!==y&&y,g=e.noShadow,O=void 0!==g&&g,P=e.baseZIndex,j=void 0===P?1019:P;return a.default.createElement(u.Modal,{containerRef:r,isOpen:d,onClose:p,noOverlay:b,noShadow:O,baseZIndex:j},a.default.createElement("div",{className:i.default.container},a.default.createElement("h1",{className:i.default.modalHeader},l),a.default.createElement("div",{className:o.default([i.default.modalContent,(t={},t[i.default.noPadding]=h,t)])},n),a.default.createElement("div",{className:i.default.modalButtonsContainer},a.default.createElement("div",{className:i.default.modalButtons},c),a.default.createElement("div",{className:i.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},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),l=n(80),d=u(n(1)),f=u(n(30));t.default=function(e){var t,n,r=e.children,a=e.containerRef,o=e.isOpen,u=e.button,c=e.transparent,s=void 0!==c&&c,v=e.noShadow,_=void 0!==v&&v,p=e.noOverlay,m=void 0!==p&&p,h=e.onClose,y=void 0===h?function(){}:h,b=e.baseZIndex,g=void 0===b?1009:b;l.useHotkeys("Escape",y);var O=i.useCallback((function(){y()}),[y]);return o&&i.default.createElement("div",{ref:a},i.default.createElement("div",{style:{zIndex:g},className:d.default([f.default.overlay,(t={},t[f.default.noOverlay]=m,t)]),"data-testid":"modal-overlay",onClick:O}),i.default.createElement("div",{style:{zIndex:g+1},className:d.default([f.default.modal,(n={},n[f.default.transparent]=s,n[f.default.noShadow]=_,n)]),"data-testid":"modal"},r),u&&i.default.createElement("div",{style:{zIndex:g+2},className:f.default.modalButton},u))}},function(e,t,n){"use strict";n.r(t),t.default={overlay:"_20ZKGY4TwZxp0KZ6E7y4WB",noOverlay:"_2ALw2p-DHxYDhYvRzQ4inB",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.FileInput=void 0;var a=n(33);Object.defineProperty(t,"FileInput",{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)),u=r(n(34));t.default=function(e){var t,n=e.children,r=e.accept,i=e.onChange,l=e.inputRef,d=e.multiple,f=void 0!==d&&d,c=e.disabled,s=void 0!==c&&c,v=e.inverted,_=void 0!==v&&v,p=e.noShadow,m=void 0!==p&&p,h=e.noBorder,y=void 0!==h&&h,b=e.noPadding,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.rounded,C=void 0!==k&&k,x=e.size,S=void 0===x?"medium":x;return a.default.createElement("label",{className:o.default([u.default.label,u.default[S],(t={},t[u.default.inverted]=_,t[u.default.rounded]=C,t[u.default.noShadow]=m,t[u.default.noBorder]=y,t[u.default.noPadding]=g,t[u.default.transparent]=P,t[u.default.stretchHorizontally]=M,t[u.default.stretchVertically]=E,t)])},a.default.createElement("input",{className:u.default.input,type:"file",id:"file",accept:r,multiple:f,ref:l,disabled:s,onChange:i}),n)}},function(e,t,n){"use strict";n.r(t),t.default={input:"_3VXzr6zmW7T6arx9_vCAFV",label:"z7s2hdwGT3kcz51_mJxmv",small:"_2zr58hKkgcwYMB1wuAJtoR",large:"_1CNbLejI46j3CSRU7tQGbe",xlarge:"_2tjeXdwx3-dnS_921rupBl",inverted:"_32ldLMELkSydXeog8BCBi-",rounded:"Xn4Df7rQxm0QAHNeuvNL",noShadow:"NeAOoYgb0hOPnTVzwtgDD",noBorder:"_3wVzb4PRqhxupXjuB0RBlS",noPadding:"_1xPtXej_mhPDblzvcrlfO8",transparent:"S0zDfgsU1DgO0UuTSOfk4",stretchHorizontally:"emegLCH-W_n7KuTJlOsQA",stretchVertically:"VHZR6hWK6fSDfRLuhH7oN"}},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(36);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)),u=r(n(37));t.default=function(e){var t,n=e.children,r=e.containerRef,i=e.layout,l=void 0===i?"column":i,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([u.default.container,u.default[c],u.default[s],u.default[l],(t={},t[u.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)),u=r(n(39));t.default=function(e){var t,n=e.src,r=e.alt,i=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:i,className:o.default([u.default.icon,u.default[d],(t={},t[u.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(41);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)),u=n(4),i=r(n(42)),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([i.default.container,i.default[S],(t={},t[i.default.inverted]=g,t[i.default.rounded]=C,t[i.default.noShadow]=P,t[i.default.noBorder]=M,t[i.default.transparent]=E,t[i.default.topOffset]=C&&_.includes("top"),t[i.default.rightOffset]=C&&_.includes("right"),t[i.default.bottomOffset]=C&&_.includes("bottom"),t[i.default.leftOffset]=C&&_.includes("left"),t),n]),disabled:y,onClick:m,type:D,role:"button"},a.default.createElement(u.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(44);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 u=o(n(0)),i=o(n(1)),l=n(4),d=o(n(45)),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.disabled,x=void 0!==C&&C,S=e.size,N=void 0===S?"medium":S,D=a(e,["as","containerRef","className","src","alt","badgeContent","inverted","noShadow","noBorder","transparent","rounded","offsetSides","disabled","size"]);return void 0===n&&(n="a"),u.default.createElement(n,r({ref:o,"data-testid":"icon-button-link",className:i.default([d.default.container,d.default[N],(t={},t[d.default.inverted]=h,t[d.default.rounded]=w,t[d.default.noShadow]=b,t[d.default.noBorder]=O,t[d.default.disabled]=x,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])},D),u.default.createElement(l.Icon,{src:s,alt:v,size:N,inverted:h}),p&&u.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",disabled:"_1jQgX7kg-lSYVm-PgDiYqp"}},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(47);Object.defineProperty(t,"Image",{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)),u=r(n(48));t.default=function(e){var t=e.src,n=e.alt,r=e.srcWidth,i=e.srcHeight,l=e.children,d=e.containerRef,f=e.layout,c=void 0===f?"contain":f,s=e.decoding,v=void 0===s?"auto":s,_=e.loading,p=void 0===_?"eager":_,m=a.default.createElement("img",{className:o.default([u.default.image,u.default[c]]),crossOrigin:"anonymous","data-testid":"image",alt:n,src:t,width:r,height:i,decoding:v,loading:p});return l?a.default.createElement("div",{ref:d,className:o.default([u.default.container,u.default.hasOverlay])},m,l&&a.default.createElement("div",{className:u.default.overlay},l)):m}},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"}},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(50);Object.defineProperty(t,"ListView",{enumerable:!0,get:function(){return r(a).default}});var o=n(52);Object.defineProperty(t,"ListViewItem",{enumerable:!0,get:function(){return r(o).default}});var u=n(53);Object.defineProperty(t,"ListViewLinkItem",{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)),u=r(n(51));t.default=function(e){var t=e.children,n=e.className,r=e.containerRef,i=e.header,l=e.headerActions;return a.default.createElement("div",{ref:r,className:o.default([u.default.container,n])},(i||l)&&a.default.createElement("div",{className:u.default.header},i&&a.default.createElement("h3",{className:u.default.headerLabel},i),l),a.default.createElement("ul",{className:u.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)),u=n(5),i=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([i.default.listViewItem])},a.default.createElement(u.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 u=o(n(0)),i=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"),u.default.createElement("li",{className:i.default([d.default.listViewItem])},u.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(55);Object.defineProperty(t,"Menu",{enumerable:!0,get:function(){return r(a).default}});var o=n(57);Object.defineProperty(t,"MenuContainer",{enumerable:!0,get:function(){return r(o).default}});var u=n(59);Object.defineProperty(t,"MenuItem",{enumerable:!0,get:function(){return r(u).default}});var i=n(61);Object.defineProperty(t,"MenuLinkItem",{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)),u=r(n(56));t.default=function(e){var t,n,r=e.children,i=e.containerRef,l=e.className,d=e.isOpen,f=void 0===d||d,c=e.header,s=e.footer;return f?a.default.createElement(a.default.Fragment,null,a.default.createElement("div",{ref:i,className:o.default([u.default.menu,(t={},t[u.default.open]=f,t),l])},a.default.createElement("div",{className:u.default.scrollContainer},c&&f&&a.default.createElement("h3",{className:u.default.header},c),a.default.createElement("ul",null,f&&r)),s&&f&&a.default.createElement("div",{className:o.default([u.default.footer,(n={},n[u.default.noBorder]=!r,n)])},s))):null}},function(e,t,n){"use strict";n.r(t),t.default={menu:"_1L5-pv_P6M2oGeoReMnO2J",open:"_1J7pFkvkjQQRWkmg-0XTWZ",entrance:"_3cqesQGf9Cyu66DsoKtF0q",header:"pOPYaV01o9WB7Bw4Vgiw",footer:"_3mCccnvNdN-XZZS7PLxav0",noBorder:"_26tUOf9gI-aRfaf_IeyPUI",scrollContainer:"_1mqMUrd13-1TlovGCBOepf"}},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},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),l=u(n(1)),d=u(n(58));t.default=i.forwardRef((function(e,t){var n=e.children,r=e.button,a=e.className,o=e.placement,u=void 0===o?{horizontal:"left",vertical:"bottom"}:o;return i.default.createElement("div",{ref:t,className:l.default([d.default.container,a])},r,i.default.createElement("div",{className:l.default([d.default.menuContainer,d.default[u.horizontal],d.default[u.vertical]])},n))}))},function(e,t,n){"use strict";n.r(t),t.default={container:"_3D4IQZWCtH8MTXrv59MYKF",menuContainer:"_1_2sFFVzNXmJX_PTpHZgEL",top:"QvC4y6mf1YW-blK6PSN5I",right:"_3mrVbwkmVmlcFDadPoecc7",left:"XfQ4bjnKFaAYmQTuRK-6A",bottom:"_39_tybX5JZ6Y-uj47gPsKV"}},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)),u=r(n(60));t.default=function(e){var t,n,r=e.children,i=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([u.default.menuItem,(t={},t[u.default.active]=s,t),(n={},n[u.default.noPadding]=f,n),i]),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 u=o(n(0)),i=o(n(1)),l=o(n(62));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"),u.default.createElement(n,r({"data-testid":"menu-link-item",className:i.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",noPadding:"bNXikyEZIIOM1HgsAi3ft",active:"_1Z-mPvewGUg484QPc9Hxq2",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(64);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)),u=r(n(65));t.default=function(e){var t,n=e.children,r=e.containerRef,i=e.transparent,l=void 0!==i&&i,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([u.default.overlay,(t={},t[u.default.transparent]=l,t[u.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(67);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},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),l=u(n(1)),d=n(3),f=u(n(68));t.default=function(e){var t,n=e.label,r=e.onChange,a=e.onBlur,o=e.onKeyDown,u=e.placeholder,c=e.value,s=e.name,v=e.inputRef,_=e.size,p=void 0===_?"medium":_,m=e.type,h=void 0===m?"text":m,y=e.autoFocus,b=void 0!==y&&y,g=e.noBorder,O=void 0!==g&&g,P=i.useCallback((function(e){r&&r(e.target.value)}),[r]),j=i.default.createElement("input",{"data-testid":"input",ref:v,className:l.default([f.default.textInput,f.default[p],(t={},t[f.default.noBorder]=O,t)]),onChange:P,onBlur:a,onKeyDown:o,placeholder:u,name:s,type:h,value:c,autoFocus:b});return n?i.default.createElement(d.Label,{value:n},j):i.default.createElement(i.default.Fragment,null,j)}},function(e,t,n){"use strict";n.r(t),t.default={textInput:"_2ifFTByxvQF5eRYwMASae7",small:"_18iLNhqc5Tz5PPo2k4_TBh",medium:"_1jaRyjeatJRxEujgPGzWzx",large:"_34d5H3X8W0UgX9B8dtPRAO",xlarge:"_3st8EGounOgjNuLpoErC0s",noBorder:"ptRZ7A5giW7FB3mk8QLCM"}},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(70);Object.defineProperty(t,"Toast",{enumerable:!0,get:function(){return r(a).default}});var o=n(72);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(71));t.default=function(e){var t=e.children,n=e.containerRef,r=e.onClick,u=void 0===r?function(){}:r;return a.default.createElement("div",{ref:n,className:o.default.toast,onClick:u,"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)),u=r(n(73));t.default=function(e){var t=e.children,n=e.baseZIndex;return a.default.createElement("div",{className:o.default([u.default.toastContainer]),style:{zIndex:n},"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(75);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)),u=r(n(76));t.default=function(e){var t=e.src,n=e.type,r=e.children,i=e.containerRef,l=e.poster,d=e.muted,f=void 0===d||d,c=e.loop,s=void 0===c||c,v=e.autoPlay,_=void 0===v||v,p=e.layout,m=void 0===p?"contain":p;return r?a.default.createElement("div",{ref:i,className:o.default([u.default.container,u.default.hasOverlay])},a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([u.default.video,u.default[m]]),muted:f,loop:s,autoPlay:_,poster:l,playsInline:!0},a.default.createElement("source",{"data-testid":"source",src:t,type:n})),r&&a.default.createElement("div",{className:u.default.overlay},r)):a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([u.default.video,u.default[m]]),muted:f,loop:s,autoPlay:_,poster:l,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(78);Object.defineProperty(t,"useToggle",{enumerable:!0,get:function(){return r(a).default}});var o=n(79);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})}),[])]}},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("mouseup",n),document.addEventListener("touchend",n),function(){document.removeEventListener("mouseup",n),document.removeEventListener("touchend",n)}}),[e]),t}},function(e,t,n){"use strict";n.r(t),n.d(t,"isHotkeyPressed",(function(){return N})),n.d(t,"useHotkeys",(function(){return S})),n.d(t,"useIsHotkeyPressed",(function(){return C}));
2
2
  /*!
3
- * hotkeys-js v3.8.1
3
+ * hotkeys-js v3.8.7
4
4
  * A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.
5
5
  *
6
- * Copyright (c) 2020 kenny wong <wowohoo@qq.com>
6
+ * Copyright (c) 2021 kenny wong <wowohoo@qq.com>
7
7
  * http://jaywcjlove.github.io/hotkeys
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 u(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 i={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++)i["f".concat(s)]=111+s;var v=[],_="all",p=[],m=function(e){return i[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,i=void 0===a?"+":a;u(t).forEach((function(e){var t=e.split(i),a=t.length,u=t[a-1],d="*"===u?"*":m(u);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 u=0;u<t.length;u++)t[u].scope===o&&("keydown"===e.type&&t[u].keydown||"keyup"===e.type&&t[u].keyup)&&g(e,t[u],o);if(n in c)for(var i=0;i<c[n].length;i++)if(("keydown"===e.type&&c[n][i].keydown||"keyup"===e.type&&c[n][i].keyup)&&c[n][i].key){for(var s=c[n][i],_=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=u(e),i=[],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;_++)i=[],(e=r[_].split(b)).length>1&&(i=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:i,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}E.filter=function(){return!0};var x=function(e,t){var n=e.target,r=e.srcElement,a=n&&n.tagName||r&&r.tagName;return Boolean(a&&t&&t.includes(a))};function N(e,t,n,r){n instanceof Array&&(r=n,n=void 0);var a=n||{},o=a.enableOnTags,u=a.filter,i=a.keyup,l=a.keydown,d=Object(k.useRef)(null),f=Object(k.useCallback)((function(e,n){return!(u&&!u(e))&&(!(!x(e,["INPUT","TEXTAREA","SELECT"])||x(e,o))||(null===d.current||document.activeElement===d.current)&&(t(e,n),!0))}),r?[d,o,u].concat(r):[d,o,u]);return Object(k.useEffect)((function(){return i&&!0!==l&&(n.keydown=!1),E(e,n||{},f),function(){return E.unbind(e,f)}}),[f,n,e]),d}}]));
12
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xhc3NjYXQvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3M/OWE0ZSIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uQmFkZ2UvQnV0dG9uQmFkZ2UudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL0J1dHRvbkJhZGdlLm1vZHVsZS5jc3M/MzJhYiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLm1vZHVsZS5jc3M/Y2Q0NiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvQnV0dG9uTGluay5tb2R1bGUuY3NzPzA4NDEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL0xhYmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tb2R1bGUuY3NzPzFmMTEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gubW9kdWxlLmNzcz80ZWViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclN3YXRjaC9Db2xvclN3YXRjaC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcz8yM2ViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLm1vZHVsZS5jc3M/ZTE4OCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvTW9kYWwudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vZGFsL01vZGFsLm1vZHVsZS5jc3M/MGVkZiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzPzI3YjMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmlsZUlucHV0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ZpbGVJbnB1dC9GaWxlSW5wdXQudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ZpbGVJbnB1dC9GaWxlSW5wdXQubW9kdWxlLmNzcz8xMjk5Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9GbG9hdGluZ1BhbmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzcz83YWJmIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vSWNvbi50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbi9JY29uLm1vZHVsZS5jc3M/OWI5MyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b24vSWNvbkJ1dHRvbi50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLm1vZHVsZS5jc3M/ZDI4ZCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmsvSWNvbkJ1dHRvbkxpbmsubW9kdWxlLmNzcz9jYzM3Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL0ltYWdlLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9JbWFnZS5tb2R1bGUuY3NzPzk1YTciLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3Lm1vZHVsZS5jc3M/NDY0ZSIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlld0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3TGlua0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnUubW9kdWxlLmNzcz8zNzA5Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUNvbnRhaW5lci50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Q29udGFpbmVyLm1vZHVsZS5jc3M/OTZkMiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLm1vZHVsZS5jc3M/NTA0OSIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVMaW5rSXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51TGlua0l0ZW0ubW9kdWxlLmNzcz8wNDI3Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL092ZXJsYXkvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkubW9kdWxlLmNzcz8yMWM1Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0Lm1vZHVsZS5jc3M/Y2QzNiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QubW9kdWxlLmNzcz9jZjYxIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0Q29udGFpbmVyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdENvbnRhaW5lci5tb2R1bGUuY3NzPzlhMzYiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vVmlkZW8udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1ZpZGVvL1ZpZGVvLm1vZHVsZS5jc3M/ZTIyMyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2hvb2tzL3VzZVRvZ2dsZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvdXNlT3V0c2lkZUNsaWNrLnRzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ob3RrZXlzLWpzL2Rpc3QvaG90a2V5cy5lc20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWhvdGtleXMtaG9vay9kaXN0L3JlYWN0LWhvdGtleXMtaG9vay5lc20uanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJyZXF1aXJlIiwiaXNBcnJheSIsIkFycmF5IiwiY2MiLCJvYmoiLCJvdXQiLCJ0bXAiLCJrIiwibGVuZ3RoIiwiZGVmYXVsdCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiYnV0dG9uQmFkZ2UiLCJvbkNsaWNrIiwiY29udGFpbmVyUmVmIiwiZGlzYWJsZWQiLCJpbnZlcnRlZCIsInJvdW5kZWQiLCJub1NoYWRvdyIsIm5vUGFkZGluZyIsIm5vQm9yZGVyIiwidHJhbnNwYXJlbnQiLCJzdHJldGNoSG9yaXpvbnRhbGx5Iiwic3RyZXRjaFZlcnRpY2FsbHkiLCJhdXRvRm9jdXMiLCJvZmZzZXRTaWRlcyIsImFsaWduIiwic2l6ZSIsInR5cGUiLCJyZWYiLCJjb250YWluZXIiLCJsZWZ0T2Zmc2V0IiwiaW5jbHVkZXMiLCJyaWdodE9mZnNldCIsInJvbGUiLCJjb250ZW50IiwiQ29tcG9uZW50IiwicHJvcHMiLCJsYWJlbCIsIm9uQ2hhbmdlIiwicGxhY2Vob2xkZXIiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsImhhbmRsZUNoYW5nZSIsInVzZUNhbGxiYWNrIiwiZSIsInRhcmdldCIsIkxhYmVsIiwiaW5wdXRSZWYiLCJpbnB1dCIsImNvbG9ycyIsIm9uU2VsZWN0Iiwic2VsZWN0ZWRDb2xvciIsImRpcmVjdGlvbiIsImNvbG9yUGlja2VyIiwibWFwIiwiY29sb3IiLCJDb2xvclN3YXRjaCIsImlzU2VsZWN0ZWQiLCJjb2xvclN3YXRjaCIsInNlbGVjdGVkIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJoZXhDb2RlIiwic3JPbmx5IiwiQ29uZmlybWF0aW9uTW9kYWwiLCJoZWFkZXIiLCJpc09wZW4iLCJidXR0b25zTGVmdCIsImJ1dHRvbnNSaWdodCIsIm9uQ2xvc2UiLCJub092ZXJsYXkiLCJiYXNlWkluZGV4IiwiTW9kYWwiLCJtb2RhbEhlYWRlciIsIm1vZGFsQ29udGVudCIsIm1vZGFsQnV0dG9uc0NvbnRhaW5lciIsIm1vZGFsQnV0dG9ucyIsImRpc3BsYXlOYW1lIiwiYnV0dG9uIiwidXNlSG90a2V5cyIsImhhbmRsZU92ZXJsYXlDbGljayIsInpJbmRleCIsIm92ZXJsYXkiLCJtb2RhbCIsIm1vZGFsQnV0dG9uIiwiYWNjZXB0IiwibXVsdGlwbGUiLCJpZCIsImxheW91dCIsInBsYWNlbWVudCIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCIsInBhcmVudCIsImhvcml6b250YWxQbGFjZW1lbnQiLCJ2ZXJ0aWNhbFBsYWNlbWVudCIsImZpeGVkIiwic3JjIiwiYWx0IiwiaWNvbiIsImNyb3NzT3JpZ2luIiwiYmFkZ2VDb250ZW50IiwidG9wT2Zmc2V0IiwiYm90dG9tT2Zmc2V0IiwiSWNvbiIsIkJ1dHRvbkJhZGdlIiwic3JjV2lkdGgiLCJzcmNIZWlnaHQiLCJkZWNvZGluZyIsImxvYWRpbmciLCJpbWFnZUVsZW1lbnQiLCJpbWFnZSIsIndpZHRoIiwiaGVpZ2h0IiwiaGFzT3ZlcmxheSIsImhlYWRlckFjdGlvbnMiLCJoZWFkZXJMYWJlbCIsImxpc3QiLCJhY3RpdmUiLCJsaXN0Vmlld0l0ZW0iLCJCdXR0b24iLCJCdXR0b25MaW5rIiwiYXMiLCJmb290ZXIiLCJtZW51Iiwib3BlbiIsInNjcm9sbENvbnRhaW5lciIsImZvcndhcmRSZWYiLCJtZW51Q29udGFpbmVyIiwiaXNBY3RpdmUiLCJtZW51SXRlbSIsIm1lbnVMaW5rSXRlbSIsImlzRml4ZWQiLCJvbkJsdXIiLCJvbktleURvd24iLCJpbnB1dEVsZW1lbnQiLCJ0ZXh0SW5wdXQiLCJ0b2FzdCIsInRvYXN0Q29udGFpbmVyIiwicG9zdGVyIiwibXV0ZWQiLCJsb29wIiwiYXV0b1BsYXkiLCJ2aWRlbyIsInBsYXlzSW5saW5lIiwiaW5pdGlhbFZhbHVlIiwidXNlU3RhdGUiLCJzZXRWYWx1ZSIsIm5ld1ZhbHVlIiwicHJldlZhbHVlIiwiY2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJoYW5kbGVDbGljayIsImV2ZW50IiwiY3VycmVudCIsImNvbnRhaW5zIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImlzZmYiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJ0b0xvd2VyQ2FzZSIsImluZGV4T2YiLCJhZGRFdmVudCIsIm1ldGhvZCIsImF0dGFjaEV2ZW50IiwiY29uY2F0Iiwid2luZG93IiwiZ2V0TW9kcyIsIm1vZGlmaWVyIiwibW9kcyIsInNsaWNlIiwiZ2V0S2V5cyIsImtleXMiLCJyZXBsYWNlIiwic3BsaXQiLCJpbmRleCIsImxhc3RJbmRleE9mIiwic3BsaWNlIiwiX2tleU1hcCIsImJhY2tzcGFjZSIsInRhYiIsImNsZWFyIiwiZW50ZXIiLCJyZXR1cm4iLCJlc2MiLCJlc2NhcGUiLCJzcGFjZSIsImxlZnQiLCJ1cCIsInJpZ2h0IiwiZG93biIsImRlbCIsImRlbGV0ZSIsImlucyIsImluc2VydCIsImhvbWUiLCJlbmQiLCJwYWdldXAiLCJwYWdlZG93biIsImNhcHNsb2NrIiwiJyIsIl9tb2RpZmllciIsInNoaWZ0Iiwib3B0aW9uIiwiY3RybCIsImNvbnRyb2wiLCJjbWQiLCJjb21tYW5kIiwibW9kaWZpZXJNYXAiLCIxNiIsIjE4IiwiMTciLCI5MSIsInNoaWZ0S2V5IiwiY3RybEtleSIsImFsdEtleSIsIm1ldGFLZXkiLCJfbW9kcyIsIl9oYW5kbGVycyIsIl9kb3duS2V5cyIsIl9zY29wZSIsImVsZW1lbnRIYXNCaW5kRXZlbnQiLCJjb2RlIiwieCIsInRvVXBwZXJDYXNlIiwiY2hhckNvZGVBdCIsInNldFNjb3BlIiwic2NvcGUiLCJnZXRTY29wZSIsImVhY2hVbmJpbmQiLCJfcmVmIiwiX3JlZiRzcGxpdEtleSIsInNwbGl0S2V5IiwiZm9yRWFjaCIsIm9yaWdpbktleSIsInVuYmluZEtleXMiLCJsZW4iLCJsYXN0S2V5Iiwia2V5Q29kZSIsInJlY29yZCIsImExIiwiYTIiLCJhcnIxIiwiYXJyMiIsImlzSW5kZXgiLCJjb21wYXJlQXJyYXkiLCJldmVudEhhbmRsZXIiLCJoYW5kbGVyIiwibW9kaWZpZXJzTWF0Y2giLCJ5Iiwic2hvcnRjdXQiLCJwcmV2ZW50RGVmYXVsdCIsInJldHVyblZhbHVlIiwic3RvcFByb3BhZ2F0aW9uIiwiY2FuY2VsQnViYmxlIiwiZGlzcGF0Y2giLCJhc3RlcmlzayIsIndoaWNoIiwiY2hhckNvZGUiLCJob3RrZXlzIiwiZmlsdGVyIiwidGhpcyIsInB1c2giLCJrZXlOYW1lIiwia2V5TnVtIiwiZ2V0TW9kaWZpZXJTdGF0ZSIsImtleWRvd24iLCJrZXl1cCIsIl9pIiwia2V5U2hvcnRjdXQiLCJfZG93bktleXNDdXJyZW50IiwiYSIsInNvcnQiLCJqb2luIiwiZWxlbWVudCIsInVuZGVmaW5lZCIsInRvU3RyaW5nIiwiaXNFbGVtZW50QmluZCIsImNsZWFyTW9kaWZpZXIiLCJfYXBpIiwiZGVsZXRlU2NvcGUiLCJuZXdTY29wZSIsImhhbmRsZXJzIiwiZ2V0UHJlc3NlZEtleUNvZGVzIiwiaXNQcmVzc2VkIiwic3JjRWxlbWVudCIsInRhZ05hbWUiLCJmbGFnIiwiaXNDb250ZW50RWRpdGFibGUiLCJyZWFkT25seSIsInVuYmluZCIsImtleXNJbmZvIiwiaW5mbyIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiX2tleSIsIl9ob3RrZXlzIiwibm9Db25mbGljdCIsImRlZXAiLCJ1c2VJc0hvdGtleVByZXNzZWQiLCJ0YWdGaWx0ZXIiLCJlbmFibGVPblRhZ3MiLCJ0YXJnZXRUYWdOYW1lIiwiQm9vbGVhbiIsIm9wdGlvbnMiLCJkZXBzIiwiX3JlZjIiLCJtZW1vaXNlZENhbGxiYWNrIiwia2V5Ym9hcmRFdmVudCIsImhvdGtleXNFdmVudCIsImFjdGl2ZUVsZW1lbnQiXSwibWFwcGluZ3MiOiI2REFDRSxJQUFJQSxFQUFtQixHQUd2QixTQUFTQyxFQUFvQkMsR0FHNUIsR0FBR0YsRUFBaUJFLEdBQ25CLE9BQU9GLEVBQWlCRSxHQUFVQyxRQUduQyxJQUFJQyxFQUFTSixFQUFpQkUsR0FBWSxDQUN6Q0csRUFBR0gsRUFDSEksR0FBRyxFQUNISCxRQUFTLElBVVYsT0FOQUksRUFBUUwsR0FBVU0sS0FBS0osRUFBT0QsUUFBU0MsRUFBUUEsRUFBT0QsUUFBU0YsR0FHL0RHLEVBQU9FLEdBQUksRUFHSkYsRUFBT0QsUUEwRGYsT0FyREFGLEVBQW9CUSxFQUFJRixFQUd4Qk4sRUFBb0JTLEVBQUlWLEVBR3hCQyxFQUFvQlUsRUFBSSxTQUFTUixFQUFTUyxFQUFNQyxHQUMzQ1osRUFBb0JhLEVBQUVYLEVBQVNTLElBQ2xDRyxPQUFPQyxlQUFlYixFQUFTUyxFQUFNLENBQUVLLFlBQVksRUFBTUMsSUFBS0wsS0FLaEVaLEVBQW9Ca0IsRUFBSSxTQUFTaEIsR0FDWCxvQkFBWGlCLFFBQTBCQSxPQUFPQyxhQUMxQ04sT0FBT0MsZUFBZWIsRUFBU2lCLE9BQU9DLFlBQWEsQ0FBRUMsTUFBTyxXQUU3RFAsT0FBT0MsZUFBZWIsRUFBUyxhQUFjLENBQUVtQixPQUFPLEtBUXZEckIsRUFBb0JzQixFQUFJLFNBQVNELEVBQU9FLEdBRXZDLEdBRFUsRUFBUEEsSUFBVUYsRUFBUXJCLEVBQW9CcUIsSUFDL0IsRUFBUEUsRUFBVSxPQUFPRixFQUNwQixHQUFXLEVBQVBFLEdBQThCLGlCQUFWRixHQUFzQkEsR0FBU0EsRUFBTUcsV0FBWSxPQUFPSCxF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UXhCLE9BQVMsV0FDZixPQUFPLEdBR1QsSUFBSXlDLEVBQVksU0FBbUJ2RSxFQUFNd0UsR0FDdkMsSUFBSW5RLEVBQVMyTCxFQUFLM0wsT0FDZGtQLEVBQWF2RCxFQUFLdUQsV0FFbEJrQixFQUFnQnBRLEdBQVVBLEVBQU9tUCxTQUFXRCxHQUFjQSxFQUFXQyxRQUN6RSxPQUFPa0IsUUFBUUQsR0FBaUJELEdBQWdCQSxFQUFhalIsU0FBU2tSLEtBT3hFLFNBQVNsTyxFQUFXK0YsRUFBTXpCLEVBQVU4SixFQUFTQyxHQUN2Q0QsYUFBbUJsVCxRQUNyQm1ULEVBQU9ELEVBQ1BBLE9BQVU5QixHQUdaLElBQUlnQyxFQUFRRixHQUFXLEdBQ25CSCxFQUFlSyxFQUFNTCxhQUNyQjFDLEVBQVMrQyxFQUFNL0MsT0FDZk8sRUFBUXdDLEVBQU14QyxNQUNkRCxFQUFVeUMsRUFBTXpDLFFBRWhCaFAsRUFBTSxpQkFBTyxNQUNiMFIsRUFBbUIsdUJBQVksU0FBVUMsRUFBZUMsR0FDMUQsUUFBSWxELElBQVdBLEVBQU9pRCxTQWpCakJSLEVBcUIrQlEsRUFyQmpCLENBQUMsUUFBUyxXQUFZLFlBcUJjUixFQUFVUSxFQUFlUCxNQUk1RCxPQUFoQnBSLEVBQUk4SCxTQUFvQkUsU0FBUzZKLGdCQUFrQjdSLEVBQUk4SCxXQUN6REwsRUFBU2tLLEVBQWVDLElBQ2pCLE1BSVJKLEVBQU8sQ0FBQ3hSLEVBQUtvUixFQUFjMUMsR0FBUS9GLE9BQU82SSxHQUFRLENBQUN4UixFQUFLb1IsRUFBYzFDLElBV3pFLE9BVkEscUJBQVUsV0FNUixPQUxJTyxJQUFxQixJQUFaRCxJQUNYdUMsRUFBUXZDLFNBQVUsR0FHcEIsRUFBUTlGLEVBQU1xSSxHQUFXLEdBQUlHLEdBQ3RCLFdBQ0wsT0FBTyxFQUFRbEIsT0FBT3RILEVBQU13SSxNQUU3QixDQUFDQSxFQUFrQkgsRUFBU3JJLElBQ3hCbEoiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMTApO1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7IiwidmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNjKG9iaikge1xuICB2YXIgb3V0ID0gXCJcIlxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiBvYmogPT09IFwibnVtYmVyXCIpIHJldHVybiBvYmogfHwgXCJcIlxuXG4gIGlmIChpc0FycmF5KG9iaikpXG4gICAgZm9yICh2YXIgayA9IDAsIHRtcDsgayA8IG9iai5sZW5ndGg7IGsrKykge1xuICAgICAgaWYgKCh0bXAgPSBjYyhvYmpba10pKSAhPT0gXCJcIikge1xuICAgICAgICBvdXQgKz0gKG91dCAmJiBcIiBcIikgKyB0bXBcbiAgICAgIH1cbiAgICB9XG4gIGVsc2VcbiAgICBmb3IgKHZhciBrIGluIG9iaikge1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrKSAmJiBvYmpba10pIG91dCArPSAob3V0ICYmIFwiIFwiKSArIGtcbiAgICB9XG5cbiAgcmV0dXJuIG91dFxufVxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b25CYWRnZSB9IGZyb20gXCIuL0J1dHRvbkJhZGdlXCI7XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIExhYmVsIH0gZnJvbSBcIi4vTGFiZWxcIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbiB9IGZyb20gXCIuL0ljb25cIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uIH0gZnJvbSBcIi4vQnV0dG9uXCI7XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEJ1dHRvbkxpbmsgfSBmcm9tIFwiLi9CdXR0b25MaW5rXCI7XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbG9yU3dhdGNoIH0gZnJvbSBcIi4vQ29sb3JTd2F0Y2hcIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTW9kYWwgfSBmcm9tIFwiLi9Nb2RhbFwiO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJsaXN0Vmlld0l0ZW1cIjpcIl8xZmoyYW5pZVEwSkt4Q0Faa1NhYXBrXCJ9OyIsImV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uQmFkZ2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0J1dHRvbkxpbmtcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQ2hlY2tib3hcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQ29sb3JQaWNrZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2hcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQ29uZmlybWF0aW9uTW9kYWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvRmlsZUlucHV0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvSWNvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JY29uQnV0dG9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ljb25CdXR0b25MaW5rXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ltYWdlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0xpc3RWaWV3XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL01lbnVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvTW9kYWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvT3ZlcmxheVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9MYWJlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9UZXh0SW5wdXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVG9hc3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVmlkZW9cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2hvb2tzXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQnV0dG9uQmFkZ2UubW9kdWxlLmNzc1wiO1xuXG50eXBlIEJ1dHRvbkJhZGdlUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIEJ1dHRvbkJhZGdlKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSB9OiBCdXR0b25CYWRnZVByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuYnV0dG9uQmFkZ2UsIGNsYXNzTmFtZV0pfT57Y2hpbGRyZW59PC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbkJhZGdlO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJidXR0b25CYWRnZVwiOlwiXzFVbFlGRUdjM2RNZ3RvTmlsNlNPeDVcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0LCBTeW50aGV0aWNFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0J1dHRvbi5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQnV0dG9uUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50PjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpbnZlcnRlZD86IGJvb2xlYW47XG4gIHJvdW5kZWQ/OiBib29sZWFuO1xuICBub1NoYWRvdz86IGJvb2xlYW47XG4gIG5vUGFkZGluZz86IGJvb2xlYW47XG4gIG5vQm9yZGVyPzogYm9vbGVhbjtcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICBzdHJldGNoSG9yaXpvbnRhbGx5PzogYm9vbGVhbjtcbiAgc3RyZXRjaFZlcnRpY2FsbHk/OiBib29sZWFuO1xuICBhdXRvRm9jdXM/OiBib29sZWFuO1xuICBvbkNsaWNrPzogKGV2ZW50PzogU3ludGhldGljRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB2b2lkO1xuICBzaXplPzogU2l6ZTtcbiAgdHlwZT86IFwic3VibWl0XCIgfCBcInJlc2V0XCIgfCBcImJ1dHRvblwiO1xuICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcbiAgb2Zmc2V0U2lkZXM/OiBBcnJheTxcImxlZnRcIiB8IFwicmlnaHRcIj47XG59O1xuXG5mdW5jdGlvbiBCdXR0b24oe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBvbkNsaWNrLFxuICBjb250YWluZXJSZWYsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGludmVydGVkID0gZmFsc2UsXG4gIHJvdW5kZWQgPSBmYWxzZSxcbiAgbm9TaGFkb3cgPSBmYWxzZSxcbiAgbm9QYWRkaW5nID0gZmFsc2UsXG4gIG5vQm9yZGVyID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHkgPSBmYWxzZSxcbiAgc3RyZXRjaFZlcnRpY2FsbHkgPSBmYWxzZSxcbiAgYXV0b0ZvY3VzID0gZmFsc2UsXG4gIG9mZnNldFNpZGVzID0gW10sXG4gIGFsaWduID0gXCJjZW50ZXJcIixcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIHR5cGUsXG59OiBCdXR0b25Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAgc3R5bGVzW2FsaWduXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoVmVydGljYWxseV06IHN0cmV0Y2hWZXJ0aWNhbGx5LFxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgdHlwZT17dHlwZX1cbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIHt0eXBlb2YgY2hpbGRyZW4gIT09IFwic3RyaW5nXCIgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pICYmXG4gICAgICBjaGlsZHJlbi5sZW5ndGggPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGVudH0+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgICl9XG4gICAgPC9idXR0b24+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbjtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMTJ3NVdPRjNLc2EySkI1LVlPWHlEN1wiLFwibGVmdFwiOlwiXzJURlY3MkRyUXg1SkdTaE5jdXQ0RS1cIixcInNtYWxsXCI6XCJ1VEJyY2pwSHA5NlJDd0Y1VUR6ZjBcIixcImxhcmdlXCI6XCJfMTRTU2ZzNVNWV0s3Tnh1WkJxTWd6QlwiLFwieGxhcmdlXCI6XCJfMVNRdTJRV3cyYTdldzQ3V1cxMlpTZ1wiLFwiaW52ZXJ0ZWRcIjpcIl8yaFpoaGk4QmdFX2VrUVZuOWVYOURYXCIsXCJyb3VuZGVkXCI6XCJWQkRPU2NZY1FuVTJleXRrQV9QYzZcIixcInJpZ2h0T2Zmc2V0XCI6XCJfMkdUWTNYbWFPdTkyM005c0VSczZha1wiLFwibGVmdE9mZnNldFwiOlwiXzE1UTBHR2tnWUpfYUxtMDFuR0U1WWhcIixcIm5vU2hhZG93XCI6XCJSZXdtRHFqcDZuVWVFWUhFS3pUSkRcIixcIm5vQm9yZGVyXCI6XCJuWnFJVVBUOGNaODdCVzRyOGt4VVwiLFwidHJhbnNwYXJlbnRcIjpcIl82NjlsUjR5MkFIOTdBMWx5NU1ZV09cIixcInN0cmV0Y2hIb3Jpem9udGFsbHlcIjpcIl8zaWN1dFhId3pJaW93dDdiVmEzWWliXCIsXCJzdHJldGNoVmVydGljYWxseVwiOlwiXzJrQ2t4UGtwbFAxeHFqZmtlcG95TnBcIixcIm5vUGFkZGluZ1wiOlwiXzNrTmJDZ2NJLVJfRkZRLTNPNlQwbGFcIixcImNvbnRlbnRcIjpcIl8yYkYxQVNjRXhza3VPcHV6ZC1jRF82XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIEVsZW1lbnRUeXBlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9CdXR0b25MaW5rLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBPZmZzZXRTaWRlID0gXCJsZWZ0XCIgfCBcInJpZ2h0XCI7XG5cbnR5cGUgQnV0dG9uTGlua1Byb3BzID1cbiAgfCB7XG4gICAgICBhcz86IEVsZW1lbnRUeXBlO1xuICAgICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRWxlbWVudD47XG4gICAgICBpbnZlcnRlZD86IGJvb2xlYW47XG4gICAgICByb3VuZGVkPzogYm9vbGVhbjtcbiAgICAgIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgICAgIG5vU2hhZG93PzogYm9vbGVhbjtcbiAgICAgIG5vUGFkZGluZz86IGJvb2xlYW47XG4gICAgICBub0JvcmRlcj86IGJvb2xlYW47XG4gICAgICBzdHJldGNoSG9yaXpvbnRhbGx5PzogYm9vbGVhbjtcbiAgICAgIHN0cmV0Y2hWZXJ0aWNhbGx5PzogYm9vbGVhbjtcbiAgICAgIHNpemU/OiBTaXplO1xuICAgICAgb2Zmc2V0U2lkZXM/OiBBcnJheTxPZmZzZXRTaWRlPjtcbiAgICAgIGFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xuICAgIH1cbiAgfCBhbnk7XG5cbmZ1bmN0aW9uIEJ1dHRvbkxpbmsoe1xuICBhczogQ29tcG9uZW50LFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBzaXplLFxuICBjb250YWluZXJSZWYsXG4gIGludmVydGVkID0gZmFsc2UsXG4gIHJvdW5kZWQgPSBmYWxzZSxcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgbm9TaGFkb3cgPSBmYWxzZSxcbiAgbm9QYWRkaW5nID0gZmFsc2UsXG4gIG5vQm9yZGVyID0gZmFsc2UsXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHkgPSBmYWxzZSxcbiAgc3RyZXRjaFZlcnRpY2FsbHkgPSBmYWxzZSxcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxuICAuLi5wcm9wc1xufTogQnV0dG9uTGlua1Byb3BzKSB7XG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb21wb25lbnRcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJidXR0b24tbGlua1wiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcbiAgICAgICAgc3R5bGVzW3NpemVdLFxuICAgICAgICBzdHlsZXNbYWxpZ25dLFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXG4gICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93LFxuICAgICAgICAgIFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nLFxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoSG9yaXpvbnRhbGx5XTogc3RyZXRjaEhvcml6b250YWxseSxcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hWZXJ0aWNhbGx5XTogc3RyZXRjaFZlcnRpY2FsbHksXG4gICAgICAgICAgW3N0eWxlcy5sZWZ0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImxlZnRcIiksXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge3R5cGVvZiBjaGlsZHJlbiAhPT0gXCJzdHJpbmdcIiAmJlxuICAgICAgQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiZcbiAgICAgIGNoaWxkcmVuLmxlbmd0aCA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jb250ZW50fT57Y2hpbGRyZW59PC9kaXY+XG4gICAgICApIDogKFxuICAgICAgICBjaGlsZHJlblxuICAgICAgKX1cbiAgICA8L0NvbXBvbmVudD5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQnV0dG9uTGluaztcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMlF1OVJhRzU1cFd5SmFUX18zX29GQVwiLFwibGVmdFwiOlwiXzNueDNnTlB6ajZMVF8xaHduUUh4T0pcIixcInNtYWxsXCI6XCJfMkx2XzZ4eDJHbDMzNUtUOUlvb2ozZ1wiLFwibWVkaXVtXCI6XCJfM0h4OHBoYXozekxxTnNlQXBOSVdaSFwiLFwibGFyZ2VcIjpcIl8yLU9FWUZvSXZsczROMkNSdVktZUpyXCIsXCJ4bGFyZ2VcIjpcIl82eEZZQVBBUHdBV2xobTBnZHRvWlJcIixcImludmVydGVkXCI6XCJfMnBFR2lLM0t1UG5FdndpT0NEZ0ZEYVwiLFwicm91bmRlZFwiOlwiXzF6eVZLc21velBSdExIRHRfajYxNE5cIixcInJpZ2h0T2Zmc2V0XCI6XCJfMXJZdnRxblp5STRScnVsQzdLR2NvdVwiLFwibGVmdE9mZnNldFwiOlwiXzNUcjdlTzRFczFCb3RoMktfc2lUQU5cIixcIm5vU2hhZG93XCI6XCJfMndaM0dJSTNvTmQ4SVg3YWdhLWFNdVwiLFwidHJhbnNwYXJlbnRcIjpcIl8xVEtncFNZbF9BMElTa0JjVDFqbHk3XCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJfM3AyVFk0bm9kVml1OWp4LUx6R0NOZVwiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8zZ0V3a1Jwcm5TX0lSRXUzS3ROek1EXCIsXCJub1BhZGRpbmdcIjpcIl8ySnBLSnJ1bUFUY1RUUlQ3eGlmZjlpXCIsXCJub0JvcmRlclwiOlwiXzFQM1AyNzR3b3U2bEVBODdnNnJGVjJcIixcImNvbnRlbnRcIjpcInNORHJxM2NYNkk2US1PdXVzejdUaVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrYm94IH0gZnJvbSBcIi4vQ2hlY2tib3hcIjtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gXCIuLi9MYWJlbFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9DaGVja2JveC5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQ2hlY2tib3hQcm9wcyA9IHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBjaGVja2VkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBuYW1lPzogc3RyaW5nO1xuICBzaXplPzogU2l6ZTtcbiAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XG59O1xuXG5mdW5jdGlvbiBDaGVja2JveCh7XG4gIGxhYmVsLFxuICBvbkNoYW5nZSxcbiAgcGxhY2Vob2xkZXIsXG4gIGNoZWNrZWQsXG4gIGRpc2FibGVkLFxuICBuYW1lLFxuICBpbmRldGVybWluYXRlLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgYXV0b0ZvY3VzID0gZmFsc2UsXG59OiBDaGVja2JveFByb3BzKSB7XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5Gb3JtRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+XG4gICAgICBvbkNoYW5nZSgoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCksXG4gICAgW29uQ2hhbmdlXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPExhYmVsIHZhbHVlPXtsYWJlbH0+XG4gICAgICA8aW5wdXRcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaGVja2JveFwiXG4gICAgICAgIHJlZj17KGlucHV0UmVmKSA9PiB7XG4gICAgICAgICAgaWYgKGlucHV0UmVmKSB7XG4gICAgICAgICAgICBpbnB1dFJlZi5pbmRldGVybWluYXRlID0gaW5kZXRlcm1pbmF0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH19XG4gICAgICAgIGNoZWNrZWQ9e2NoZWNrZWR9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmlucHV0LCBzdHlsZXNbc2l6ZV1dKX1cbiAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cbiAgICAgIC8+XG4gICAgPC9MYWJlbD5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2hlY2tib3g7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9MYWJlbC5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTGFiZWxJbnB1dFByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTExhYmVsRWxlbWVudD47XG4gIHZhbHVlOiBSZWFjdE5vZGU7XG59O1xuXG5mdW5jdGlvbiBMYWJlbCh7IGNsYXNzTmFtZSwgY2hpbGRyZW4sIHZhbHVlLCBjb250YWluZXJSZWYgfTogTGFiZWxJbnB1dFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGxhYmVsXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIGNsYXNzTmFtZV0pfVxuICAgID5cbiAgICAgIHt2YWx1ZX1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2xhYmVsPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMYWJlbDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMTVEYnNfWDVJVDl0a21Bc01YUE5WSlwifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImlucHV0XCI6XCJfMXAyaG1qbU0xcU5aVFpJaUZIRkl4dVwiLFwic21hbGxcIjpcIl8xSmlfXzlVLUQ1VWRXMk5KV1dVUHJDXCIsXCJtZWRpdW1cIjpcIl8zS0pTMkZSUzJ0ZDkwUXI2cjMzTDI4XCIsXCJsYXJnZVwiOlwiXzFqN29kQ0VFWDJEa2dncEladUY0TUlcIixcInhsYXJnZVwiOlwiXzNLWndoVW14QkplYjJ4dGs4OGdhR1dcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xvclBpY2tlciB9IGZyb20gXCIuL0NvbG9yUGlja2VyXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IENvbG9yU3dhdGNoIH0gZnJvbSBcIi4uL0NvbG9yU3dhdGNoXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbG9yUGlja2VyLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IENvbG9yIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQ29sb3JQaWNrZXJQcm9wcyA9IHtcbiAgY29sb3JzOiBDb2xvcltdO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBkaXJlY3Rpb24/OiBcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIjtcbiAgb25TZWxlY3Q6IChjb2xvcjogQ29sb3IpID0+IHZvaWQ7XG4gIHNlbGVjdGVkQ29sb3I/OiBDb2xvcjtcbn07XG5cbmZ1bmN0aW9uIENvbG9yUGlja2VyKHtcbiAgY29sb3JzLFxuICBjb250YWluZXJSZWYsXG4gIG9uU2VsZWN0LFxuICBzZWxlY3RlZENvbG9yLFxuICBkaXJlY3Rpb24gPSBcInZlcnRpY2FsXCIsXG59OiBDb2xvclBpY2tlclByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29sb3JQaWNrZXIsIHN0eWxlc1tkaXJlY3Rpb25dXSl9XG4gICAgPlxuICAgICAge2NvbG9ycy5tYXAoKGNvbG9yOiBDb2xvcikgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxDb2xvclN3YXRjaFxuICAgICAgICAgICAga2V5PXtjb2xvci5rZXl9XG4gICAgICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgICAgICBpc1NlbGVjdGVkPXtjb2xvciA9PT0gc2VsZWN0ZWRDb2xvcn1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2VsZWN0KGNvbG9yKX1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbG9yUGlja2VyO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbG9yU3dhdGNoLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IENvbG9yIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQ29sb3JTd2F0Y2hQcm9wcyA9IHtcbiAgY29sb3I6IENvbG9yO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBpc1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBDb2xvclN3YXRjaCh7XG4gIGNvbG9yLFxuICBjb250YWluZXJSZWYsXG4gIG9uQ2xpY2ssXG4gIGlzU2VsZWN0ZWQgPSBmYWxzZSxcbn06IENvbG9yU3dhdGNoUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuY29sb3JTd2F0Y2gsXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLnNlbGVjdGVkXTogaXNTZWxlY3RlZCxcbiAgICAgICAgfSxcbiAgICAgIF0pfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJjb2xvci1zd2F0Y2hcIlxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogY29sb3IuaGV4Q29kZSB9fVxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzLnNyT25seX0+e2BTZWxlY3QgJHtjb2xvci5sYWJlbH0gY29sb3JgfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29sb3JTd2F0Y2g7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbG9yU3dhdGNoXCI6XCJkdjdpdWNUUXEtWmhVUlV1cC1QdVZcIixcInNlbGVjdGVkXCI6XCJfMUxiQWd5aWlFXzF1alc5MGQtNml1dVwiLFwic3JPbmx5XCI6XCJfMWV0a3VzbGhaVkVQTnNrMVFnaFRFb1wifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbG9yUGlja2VyXCI6XCJfMkYxT24tU0EzbU1raFpQRnJEaldJY1wiLFwiaG9yaXpvbnRhbFwiOlwiXzFXRll5TWtrWUxMNzNuX19yUFVVYnZcIixcInZlcnRpY2FsXCI6XCJfMWxJb2EyYmpfdGJrUWllMElwRTJMblwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbmZpcm1hdGlvbk1vZGFsIH0gZnJvbSBcIi4vQ29uZmlybWF0aW9uTW9kYWxcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdEVsZW1lbnQsIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IE1vZGFsIH0gZnJvbSBcIi4uL01vZGFsXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbmZpcm1hdGlvbk1vZGFsLm1vZHVsZS5jc3NcIjtcblxudHlwZSBDb25maXJtYXRpb25Nb2RhbFByb3BzID0ge1xuICBidXR0b25zTGVmdD86IFJlYWN0RWxlbWVudFtdO1xuICBidXR0b25zUmlnaHQ/OiBSZWFjdEVsZW1lbnRbXTtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGhlYWRlcjogc3RyaW5nO1xuICBpc09wZW46IGJvb2xlYW47XG4gIG5vUGFkZGluZz86IGJvb2xlYW47XG4gIG5vT3ZlcmxheT86IGJvb2xlYW47XG4gIG5vU2hhZG93PzogYm9vbGVhbjtcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XG4gIGJhc2VaSW5kZXg/OiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBDb25maXJtYXRpb25Nb2RhbCh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGhlYWRlcixcbiAgaXNPcGVuLFxuICBidXR0b25zTGVmdCA9IFtdLFxuICBidXR0b25zUmlnaHQgPSBbXSxcbiAgb25DbG9zZSA9ICgpID0+IHt9LFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgbm9PdmVybGF5ID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIGJhc2VaSW5kZXggPSAxMDE5LFxufTogQ29uZmlybWF0aW9uTW9kYWxQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxNb2RhbFxuICAgICAgY29udGFpbmVyUmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBpc09wZW49e2lzT3Blbn1cbiAgICAgIG9uQ2xvc2U9e29uQ2xvc2V9XG4gICAgICBub092ZXJsYXk9e25vT3ZlcmxheX1cbiAgICAgIG5vU2hhZG93PXtub1NoYWRvd31cbiAgICAgIGJhc2VaSW5kZXg9e2Jhc2VaSW5kZXh9XG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jb250YWluZXJ9PlxuICAgICAgICA8aDEgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxIZWFkZXJ9PntoZWFkZXJ9PC9oMT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICAgICAgc3R5bGVzLm1vZGFsQ29udGVudCxcbiAgICAgICAgICAgIHsgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcgfSxcbiAgICAgICAgICBdKX1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b25zQ29udGFpbmVyfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9uc30+e2J1dHRvbnNMZWZ0fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b25zfT57YnV0dG9uc1JpZ2h0fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvTW9kYWw+XG4gICk7XG59XG5cbkNvbmZpcm1hdGlvbk1vZGFsLmRpc3BsYXlOYW1lID0gXCJDb25maXJtYXRpb25Nb2RhbFwiO1xuXG5leHBvcnQgZGVmYXVsdCBDb25maXJtYXRpb25Nb2RhbDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUhvdGtleXMgfSBmcm9tIFwicmVhY3QtaG90a2V5cy1ob29rXCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTW9kYWwubW9kdWxlLmNzc1wiO1xuXG50eXBlIE1vZGFsUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XG4gIGJ1dHRvbj86IFJlYWN0Tm9kZTtcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICBub1NoYWRvdz86IGJvb2xlYW47XG4gIG5vT3ZlcmxheT86IGJvb2xlYW47XG4gIGJhc2VaSW5kZXg/OiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBNb2RhbCh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGlzT3BlbixcbiAgYnV0dG9uLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBub1NoYWRvdyA9IGZhbHNlLFxuICBub092ZXJsYXkgPSBmYWxzZSxcbiAgb25DbG9zZSA9ICgpID0+IHt9LFxuICBiYXNlWkluZGV4ID0gMTAwOSxcbn06IE1vZGFsUHJvcHMpIHtcbiAgdXNlSG90a2V5cyhcIkVzY2FwZVwiLCBvbkNsb3NlKTtcblxuICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgb25DbG9zZSgpO1xuICB9LCBbb25DbG9zZV0pO1xuXG4gIHJldHVybiAoXG4gICAgaXNPcGVuICYmIChcbiAgICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgc3R5bGU9e3sgekluZGV4OiBiYXNlWkluZGV4IH19XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgICAgICBzdHlsZXMub3ZlcmxheSxcbiAgICAgICAgICAgIHsgW3N0eWxlcy5ub092ZXJsYXldOiBub092ZXJsYXkgfSxcbiAgICAgICAgICBdKX1cbiAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vZGFsLW92ZXJsYXlcIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU92ZXJsYXlDbGlja31cbiAgICAgICAgLz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIHN0eWxlPXt7IHpJbmRleDogYmFzZVpJbmRleCArIDEgfX1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgICAgIHN0eWxlcy5tb2RhbCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0pfVxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwibW9kYWxcIlxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge2J1dHRvbiAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgc3R5bGU9e3sgekluZGV4OiBiYXNlWkluZGV4ICsgMiB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b259XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2J1dHRvbn1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTW9kYWw7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm92ZXJsYXlcIjpcIl8yMFpLR1k0VHdaeHAwS1o2RTd5NFdCXCIsXCJub092ZXJsYXlcIjpcIl8yQUx3MnAtREh4WURoWXZSelE0aW5CXCIsXCJtb2RhbFwiOlwiXzI1TEJOMzFfbUkxSTF1SEREUDRPMElcIixcInRyYW5zcGFyZW50XCI6XCJfM1oyS2wxckVIWlFNTFVzWEYxZjdsb1wiLFwibm9TaGFkb3dcIjpcIl8zQ2ZTVC10bi10c3Zjb2RTeGVsaVFxXCIsXCJtb2RhbEJ1dHRvblwiOlwiXzFlTzB4M00wcE44LTc5SXVZdVRfQ2xcIn07IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIktnQzVwd3RzSGF2dVZPTHViQUxhZVwiLFwibW9kYWxIZWFkZXJcIjpcIl8xYlROWE1SNW1aRlhzMW8wdXhraFJQXCIsXCJtb2RhbENvbnRlbnRcIjpcInF1UDVvNFE5bmxVbzFmVDdzYlBWQVwiLFwibm9QYWRkaW5nXCI6XCJfMVVnb19ESFNUNFJiV3pJeEhQaGo3blwiLFwibW9kYWxCdXR0b25zQ29udGFpbmVyXCI6XCJfMmJHTDdYakR5NnNFM0psZVU5OGhqeVwiLFwibW9kYWxCdXR0b25zXCI6XCJfM1hmZkZlTjlWRUlweXRobVZKMlU4Q1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVJbnB1dCB9IGZyb20gXCIuL0ZpbGVJbnB1dFwiO1xuZXhwb3J0IHsgRmlsZUlucHV0U2l6ZSB9IGZyb20gXCIuL0ZpbGVJbnB1dFwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IENoYW5nZUV2ZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vRmlsZUlucHV0Lm1vZHVsZS5jc3NcIjtcblxuZXhwb3J0IHR5cGUgRmlsZUlucHV0U2l6ZSA9IFNpemU7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIG9uQ2hhbmdlOiAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHZvaWQ7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG4gIGFjY2VwdD86IHN0cmluZztcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGlucHV0UmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBpbnZlcnRlZD86IGJvb2xlYW47XG4gIG5vU2hhZG93PzogYm9vbGVhbjtcbiAgbm9Cb3JkZXI/OiBib29sZWFuO1xuICBub1BhZGRpbmc/OiBib29sZWFuO1xuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gIHN0cmV0Y2hIb3Jpem9udGFsbHk/OiBib29sZWFuO1xuICBzdHJldGNoVmVydGljYWxseT86IGJvb2xlYW47XG4gIHJvdW5kZWQ/OiBib29sZWFuO1xuICBzaXplPzogRmlsZUlucHV0U2l6ZTtcbn07XG5cbmZ1bmN0aW9uIEZpbGVJbnB1dCh7XG4gIGNoaWxkcmVuLFxuICBhY2NlcHQsXG4gIG9uQ2hhbmdlLFxuICBpbnB1dFJlZixcbiAgbXVsdGlwbGUgPSBmYWxzZSxcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcbiAgbm9TaGFkb3cgPSBmYWxzZSxcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcbiAgbm9QYWRkaW5nID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHkgPSBmYWxzZSxcbiAgc3RyZXRjaFZlcnRpY2FsbHkgPSBmYWxzZSxcbiAgcm91bmRlZCA9IGZhbHNlLFxuICBzaXplID0gXCJtZWRpdW1cIixcbn06IFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGxhYmVsXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLmxhYmVsLFxuICAgICAgICBzdHlsZXNbc2l6ZV0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQsXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxuICAgICAgICAgIFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nLFxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hIb3Jpem9udGFsbHldOiBzdHJldGNoSG9yaXpvbnRhbGx5LFxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaFZlcnRpY2FsbHldOiBzdHJldGNoVmVydGljYWxseSxcbiAgICAgICAgfSxcbiAgICAgIF0pfVxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5pbnB1dH1cbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICBpZD1cImZpbGVcIlxuICAgICAgICBhY2NlcHQ9e2FjY2VwdH1cbiAgICAgICAgbXVsdGlwbGU9e211bHRpcGxlfVxuICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIC8+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9sYWJlbD5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRmlsZUlucHV0O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJpbnB1dFwiOlwiXzNWWHpyNnptVzdUNmFyeDlfdkNBRlZcIixcImxhYmVsXCI6XCJ6N3MyaGR3R1Qza2N6NTFfbUp4bXZcIixcInNtYWxsXCI6XCJfMnpyNThoS2tnY3dZTUIxd3VBSnRvUlwiLFwibGFyZ2VcIjpcIl8xQ05iTGVqSTQ2ajNDU1JVN3RRR2JlXCIsXCJ4bGFyZ2VcIjpcIl8ydGplWGR3eDMtZG5TXzkyMXJ1cEJsXCIsXCJpbnZlcnRlZFwiOlwiXzMybGRMTUVMa1N5ZFhlb2c4QkNCaS1cIixcInJvdW5kZWRcIjpcIlhuNERmN3JReG0wUUFITmV1dk5MXCIsXCJub1NoYWRvd1wiOlwiTmVBT29ZZ2IwaE9QblRWend0Z0REXCIsXCJub0JvcmRlclwiOlwiXzN3VnpiNFBScWh4dXBYanVCMFJCbFNcIixcIm5vUGFkZGluZ1wiOlwiXzF4UHRYZWpfbWhQRGJsenZjcmxmTzhcIixcInRyYW5zcGFyZW50XCI6XCJTMHpEZmdzVTFEZ08wVXVUU09mazRcIixcInN0cmV0Y2hIb3Jpem9udGFsbHlcIjpcImVtZWdMQ0gtV19uN0t1VEpsT3NRQVwiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIlZIWlI2aFdLNmZTRGZSTHVoSDdvTlwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEZsb2F0aW5nUGFuZWwgfSBmcm9tIFwiLi9GbG9hdGluZ1BhbmVsXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9GbG9hdGluZ1BhbmVsLm1vZHVsZS5jc3NcIjtcblxudHlwZSBQbGFjZW1lbnQgPSB7XG4gIGhvcml6b250YWw6XG4gICAgfCBcInJpZ2h0XCJcbiAgICB8IFwicmlnaHRFZGdlXCJcbiAgICB8IFwicmlnaHRPbkVkZ2VcIlxuICAgIHwgXCJsZWZ0XCJcbiAgICB8IFwibGVmdEVkZ2VcIlxuICAgIHwgXCJsZWZ0T25FZGdlXCJcbiAgICB8IFwibGVmdE9uRWRnZVwiXG4gICAgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbDpcbiAgICB8IFwidG9wXCJcbiAgICB8IFwidG9wRWRnZVwiXG4gICAgfCBcInRvcE9uRWRnZVwiXG4gICAgfCBcImJvdHRvbVwiXG4gICAgfCBcImJvdHRvbUVkZ2VcIlxuICAgIHwgXCJib3R0b21PbkVkZ2VcIlxuICAgIHwgXCJjZW50ZXJcIjtcbiAgcGFyZW50OiBcInZpZXdwb3J0XCIgfCBcImNvbnRhaW5lclwiO1xufTtcblxudHlwZSBGbG9hdGluZ1BhbmVsUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGxheW91dD86IFwiY29sdW1uXCIgfCBcInJvd1wiO1xuICBwbGFjZW1lbnQ/OiBQbGFjZW1lbnQ7XG59O1xuXG5mdW5jdGlvbiBGbG9hdGluZ1BhbmVsKHtcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgbGF5b3V0ID0gXCJjb2x1bW5cIixcbiAgcGxhY2VtZW50ID0geyBob3Jpem9udGFsOiBcImNlbnRlclwiLCB2ZXJ0aWNhbDogXCJib3R0b21cIiwgcGFyZW50OiBcInZpZXdwb3J0XCIgfSxcbn06IEZsb2F0aW5nUGFuZWxQcm9wcykge1xuICBjb25zdCBob3Jpem9udGFsUGxhY2VtZW50ID1cbiAgICBwbGFjZW1lbnQuaG9yaXpvbnRhbCA9PT0gXCJjZW50ZXJcIlxuICAgICAgPyBcImhvcml6b250YWxDZW50ZXJcIlxuICAgICAgOiBwbGFjZW1lbnQuaG9yaXpvbnRhbDtcblxuICBjb25zdCB2ZXJ0aWNhbFBsYWNlbWVudCA9XG4gICAgcGxhY2VtZW50LnZlcnRpY2FsID09PSBcImNlbnRlclwiID8gXCJ2ZXJ0aWNhbENlbnRlclwiIDogcGxhY2VtZW50LnZlcnRpY2FsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBkYXRhLXRlc3RpZD1cImZsb2F0aW5nLXBhbmVsXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxuICAgICAgICBzdHlsZXNbaG9yaXpvbnRhbFBsYWNlbWVudF0sXG4gICAgICAgIHN0eWxlc1t2ZXJ0aWNhbFBsYWNlbWVudF0sXG4gICAgICAgIHN0eWxlc1tsYXlvdXRdLFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5maXhlZF06IHBsYWNlbWVudC5wYXJlbnQgIT09IFwiY29udGFpbmVyXCIsXG4gICAgICAgIH0sXG4gICAgICBdKX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZsb2F0aW5nUGFuZWw7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzJyMEZrWUo3U0sxWWpCM0hLSE1BaWhcIixcInJvd1wiOlwiXzNSLUZGOGVNdTBDUzRlTlgzbFRkQ1JcIixcImNvbHVtblwiOlwiXzFvS09lQWdaand4Tk0zdUdmTHQ2SU9cIixcImZpeGVkXCI6XCJfM29RR1dnU0lOYnl0YjR1djkyQ1N2VFwiLFwicGxhaW5cIjpcImlNZjhvZC1iSXFzSEF2eG9mRHV6YlwiLFwidHJhbnNwYXJlbnRcIjpcImQyb3l4NXB5c3FqODk4YVM4RzNFOFwiLFwidG9wXCI6XCJfMTFjUFlxMWRoUXl6VklNWmVrMV9Jb1wiLFwidG9wRWRnZVwiOlwiXzJfaW5lQ3kxTVFsWVA2cU1ld2QxejVcIixcInRvcE9uRWRnZVwiOlwiXzFydkNzRG9kNWJsVE95QWw0a0R3TjBcIixcInJpZ2h0XCI6XCJfMVNJWUJjUmdxUzRWUGhXOU04MFk0elwiLFwicmlnaHRFZGdlXCI6XCJRQTY5ZjBEOGJUQ0pIckRPcjhtMXJcIixcInJpZ2h0T25FZGdlXCI6XCJfMlBpVFVsMEpZekVDbk8wODUxZ3ozYVwiLFwiYm90dG9tXCI6XCJfMzA1Z0JtVHdBZVhaZkFfTTl0c1ZOb1wiLFwiYm90dG9tRWRnZVwiOlwiXzFQY0RYYkxaMlhIUGtlaV9IX3I1OHBcIixcImJvdHRvbU9uRWRnZVwiOlwiXzJ2b3Q0cXByNThXbmI2cHZIWW5qa2NcIixcImxlZnRcIjpcInNJdGdCVjRXdER4NHZaM2EtUDRpeFwiLFwibGVmdEVkZ2VcIjpcIl8xTkoxRnpJX2FiS2ktVzZrYzJyMmM2XCIsXCJsZWZ0T25FZGdlXCI6XCJfMTJFdndiYVZRTldQWmUzN1NvOExfbVwiLFwiaG9yaXpvbnRhbENlbnRlclwiOlwiXzJqaVN4RWJDVEtWekR0ZUdRMXVvRWZcIixcInZlcnRpY2FsQ2VudGVyXCI6XCJfMmY5RDQ2QkItZ2V6UHZ3OFRaeEp2cFwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ljb24ubW9kdWxlLmNzc1wiO1xuXG50eXBlIEljb25Qcm9wcyA9IHtcbiAgYWx0Pzogc3RyaW5nO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEltYWdlRWxlbWVudD47XG4gIGludmVydGVkPzogYm9vbGVhbjtcbiAgc3JjOiBzdHJpbmc7XG4gIHNpemU/OiBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiIHwgXCJ4bGFyZ2VcIjtcbn07XG5mdW5jdGlvbiBJY29uKHtcbiAgc3JjLFxuICBhbHQsXG4gIGNvbnRhaW5lclJlZixcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIGludmVydGVkID0gZmFsc2UsXG59OiBJY29uUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8aW1nXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuaWNvbixcbiAgICAgICAgc3R5bGVzW3NpemVdLFxuICAgICAgICB7IFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCB9LFxuICAgICAgXSl9XG4gICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICBkYXRhLXRlc3RpZD1cImljb25cIlxuICAgICAgYWx0PXthbHR9XG4gICAgICBzcmM9e3NyY31cbiAgICAvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBJY29uO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJpY29uXCI6XCJfMzNjVE04aThxYWpGR3ktMDB0eTBSd1wiLFwic21hbGxcIjpcIk1VaTNpa3pjUFpkbzU5QWZvWGRPRlwiLFwibWVkaXVtXCI6XCJfMlZDS3F5NTlOU0ZkZkRpRTBveGFzelwiLFwibGFyZ2VcIjpcIl8yVVVVZjJuX2EwUFlwUThrb3dLSHpwXCIsXCJ4bGFyZ2VcIjpcIm9ESUVZOFU0VHdDSmtqRjd4YVFCT1wiLFwiaW52ZXJ0ZWRcIjpcIl8ycXpVdFUxVGRfYzU4dk04QUxxU1ZXXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbkJ1dHRvbiB9IGZyb20gXCIuL0ljb25CdXR0b25cIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ljb25CdXR0b24ubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgQnV0dG9uQmFkZ2UgfSBmcm9tIFwiLi4vQnV0dG9uQmFkZ2VcIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBJY29uQnV0dG9uUHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50PjtcbiAgc3JjOiBzdHJpbmc7XG4gIGFsdDogc3RyaW5nO1xuICBiYWRnZUNvbnRlbnQ/OiBSZWFjdE5vZGU7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICBub1NoYWRvdz86IGJvb2xlYW47XG4gIG5vQm9yZGVyPzogYm9vbGVhbjtcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICByb3VuZGVkPzogYm9vbGVhbjtcbiAgb25DbGljaz86IChldmVudD86IFN5bnRoZXRpY0V2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4gdm9pZDtcbiAgc2l6ZT86IFNpemU7XG4gIHR5cGU/OiBcInN1Ym1pdFwiIHwgXCJyZXNldFwiIHwgXCJidXR0b25cIjtcbiAgb2Zmc2V0U2lkZXM/OiBBcnJheTxcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiPjtcbn07XG5cbmZ1bmN0aW9uIEljb25CdXR0b24oe1xuICBjbGFzc05hbWUsXG4gIGNvbnRhaW5lclJlZixcbiAgc3JjLFxuICBhbHQsXG4gIGJhZGdlQ29udGVudCA9IG51bGwsXG4gIG9mZnNldFNpZGVzID0gW10sXG4gIG9uQ2xpY2sgPSAoKSA9PiB7fSxcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcbiAgbm9TaGFkb3cgPSBmYWxzZSxcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgcm91bmRlZCA9IGZhbHNlLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgdHlwZSA9IFwiYnV0dG9uXCIsXG59OiBJY29uQnV0dG9uUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxuICAgICAgICBzdHlsZXNbc2l6ZV0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQsXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcbiAgICAgICAgICBbc3R5bGVzLnRvcE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJ0b3BcIiksXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcbiAgICAgICAgICBbc3R5bGVzLmJvdHRvbU9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJib3R0b21cIiksXG4gICAgICAgICAgW3N0eWxlcy5sZWZ0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImxlZnRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIHR5cGU9e3R5cGV9XG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICA8SWNvbiBzcmM9e3NyY30gYWx0PXthbHR9IHNpemU9e3NpemV9IGludmVydGVkPXtpbnZlcnRlZH0gLz5cbiAgICAgIHtiYWRnZUNvbnRlbnQgJiYgPEJ1dHRvbkJhZGdlPntiYWRnZUNvbnRlbnR9PC9CdXR0b25CYWRnZT59XG4gICAgPC9idXR0b24+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEljb25CdXR0b247XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiUmd5bGxYVHFwM19qWjZBMk5idmc2XCIsXCJzbWFsbFwiOlwiXzF3MGhabE9iZUw3RUc4N3pzTC05dk5cIixcIm1lZGl1bVwiOlwiRUsxYnZKWmpXMTE5RG83OVN0TDdJXCIsXCJsYXJnZVwiOlwiUGd5UVhLMXl5Q01xOEJTYVlDYmNoXCIsXCJ4bGFyZ2VcIjpcInFoa0h6SW9Jb3ducmV4SHpRU3V1VVwiLFwicm91bmRlZFwiOlwiXzNxcWExazBDOUpNUHNCUlN6NloweVlcIixcInRvcE9mZnNldFwiOlwiXzNWWlA3RG9oaFo3ejhmaTR6LUg4ak5cIixcInJpZ2h0T2Zmc2V0XCI6XCJfMlhYaEozLWNZY1hiSVZObW1uTzh5SFwiLFwiYm90dG9tT2Zmc2V0XCI6XCJaSklYN1ZxNW11c2pkNnM0aENTYlBcIixcImxlZnRPZmZzZXRcIjpcIl8xUVZXaXlpdlc5VXhlb051M1VkbnY2XCIsXCJpbnZlcnRlZFwiOlwiXzJqWnpYaG5IcXFidHVtNGRCZGwxbEtcIixcIm5vU2hhZG93XCI6XCJfM2Z4dldpT05GRll0TXVEY1hwOHN5dVwiLFwibm9Cb3JkZXJcIjpcIl8zRXV4dXBucU9WdVNvVXNiS3pOblwiLFwidHJhbnNwYXJlbnRcIjpcIl8zNWJSSWk4QnRENFJLU0p2WmJqX3NtXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbkJ1dHRvbkxpbmsgfSBmcm9tIFwiLi9JY29uQnV0dG9uTGlua1wiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IEVsZW1lbnRUeXBlLCBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb25cIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSWNvbkJ1dHRvbkxpbmsubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgQnV0dG9uQmFkZ2UgfSBmcm9tIFwiLi4vQnV0dG9uQmFkZ2VcIjtcblxudHlwZSBPZmZzZXRTaWRlID0gXCJ0b3BcIiB8IFwicmlnaHRcIiB8IFwiYm90dG9tXCIgfCBcImxlZnRcIjtcblxudHlwZSBJY29uQnV0dG9uTGlua1Byb3BzID1cbiAgfCB7XG4gICAgICBhcz86IEVsZW1lbnRUeXBlO1xuICAgICAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50PjtcbiAgICAgIHNyYzogc3RyaW5nO1xuICAgICAgYWx0OiBzdHJpbmc7XG4gICAgICBiYWRnZUNvbnRlbnQ/OiBSZWFjdE5vZGU7XG4gICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICBpbnZlcnRlZD86IGJvb2xlYW47XG4gICAgICByb3VuZGVkPzogYm9vbGVhbjtcbiAgICAgIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgICAgIG5vU2hhZG93PzogYm9vbGVhbjtcbiAgICAgIG5vQm9yZGVyPzogYm9vbGVhbjtcbiAgICAgIHNpemU/OiBTaXplO1xuICAgICAgb2Zmc2V0U2lkZXM/OiBBcnJheTxPZmZzZXRTaWRlPjtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBJY29uQnV0dG9uTGluayh7XG4gIGFzOiBDb21wb25lbnQsXG4gIGNvbnRhaW5lclJlZixcbiAgY2xhc3NOYW1lLFxuICBzcmMsXG4gIGFsdCxcbiAgYmFkZ2VDb250ZW50ID0gbnVsbCxcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcbiAgbm9TaGFkb3cgPSBmYWxzZSxcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgcm91bmRlZCA9IGZhbHNlLFxuICBvZmZzZXRTaWRlcyA9IFtdLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgLi4ucHJvcHNcbn06IEljb25CdXR0b25MaW5rUHJvcHMpIHtcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBDb21wb25lbnQgPSBcImFcIjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPENvbXBvbmVudFxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBkYXRhLXRlc3RpZD1cImljb24tYnV0dG9uLWxpbmtcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMudG9wT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInRvcFwiKSxcbiAgICAgICAgICBbc3R5bGVzLnJpZ2h0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInJpZ2h0XCIpLFxuICAgICAgICAgIFtzdHlsZXMuYm90dG9tT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImJvdHRvbVwiKSxcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAgPEljb24gc3JjPXtzcmN9IGFsdD17YWx0fSBzaXplPXtzaXplfSBpbnZlcnRlZD17aW52ZXJ0ZWR9IC8+XG4gICAgICB7YmFkZ2VDb250ZW50ICYmIDxCdXR0b25CYWRnZT57YmFkZ2VDb250ZW50fTwvQnV0dG9uQmFkZ2U+fVxuICAgIDwvQ29tcG9uZW50PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBJY29uQnV0dG9uTGluaztcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfM3dqeGpDenZfbHBoZFdtNzNKZ0F5cFwiLFwic21hbGxcIjpcIl8zMk1ZbVpiSHpVVTBiM2RNY21Kc2lNXCIsXCJtZWRpdW1cIjpcIl8xODlyWUoyVHZhQnlyQzNTN0NmM25tXCIsXCJsYXJnZVwiOlwiXzJhWVNTVFVnOHd2ckFET1MxODh4TVwiLFwieGxhcmdlXCI6XCJ2czNLWXZVN1pjbmh3MlNPeVNDTmZcIixcInJvdW5kZWRcIjpcIl8xOGloNjdMTDBuN1hsNjFnTEc4czBrXCIsXCJ0b3BPZmZzZXRcIjpcIl8xcDdoN1c2UXNESHBiYTZtZ3lXVUw5XCIsXCJyaWdodE9mZnNldFwiOlwiXzNmeE1JQl9KejVDWUlmd3VaaFEyOGlcIixcImJvdHRvbU9mZnNldFwiOlwiXzExM200Q1dpbUx2c2pVOXhJeFBxN2lcIixcImxlZnRPZmZzZXRcIjpcIl82Q2hvdjJNb3lVeHloV3hLbjM2OEtcIixcImludmVydGVkXCI6XCJfM2VxT0pRejR1ZS1lWEx2cTI3QXNZNVwiLFwibm9TaGFkb3dcIjpcImxGNkRfVjIweDMydjlaeXNxd0M2OFwiLFwibm9Cb3JkZXJcIjpcIl8zczZxQ29sTGpwamw0UnJvN21WVHhTXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzJJWk85cEsxMzFVOTFjeUtYaXhneERcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJbWFnZSwgSW1hZ2VQcm9wcyB9IGZyb20gXCIuL0ltYWdlXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSW1hZ2UubW9kdWxlLmNzc1wiO1xuXG5leHBvcnQgdHlwZSBJbWFnZVByb3BzID0ge1xuICBhbHQ/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBsYXlvdXQ/OiBcImNvdmVyXCIgfCBcImNvbnRhaW5cIiB8IFwic3RyZXRjaEhvcml6b250YWxseVwiIHwgXCJzdHJldGNoVmVydGljYWxseVwiO1xuICBzcmM6IHN0cmluZztcbiAgc3JjV2lkdGg/OiBudW1iZXI7XG4gIHNyY0hlaWdodD86IG51bWJlcjtcbiAgZGVjb2Rpbmc/OiBcImFzeW5jXCIgfCBcInN5bmNcIiB8IFwiYXV0b1wiLFxuICBsb2FkaW5nPzogXCJlYWdlclwiIHwgXCJsYXp5XCJcbn07XG5cbmZ1bmN0aW9uIEltYWdlQ29tcG9uZW50KHtcbiAgc3JjLFxuICBhbHQsXG4gIHNyY1dpZHRoLFxuICBzcmNIZWlnaHQsXG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGxheW91dCA9IFwiY29udGFpblwiLFxuICBkZWNvZGluZz0gXCJhdXRvXCIsXG4gIGxvYWRpbmc9IFwiZWFnZXJcIlxufTogSW1hZ2VQcm9wcykge1xuICBjb25zdCBpbWFnZUVsZW1lbnQgPSAoXG4gICAgPGltZ1xuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmltYWdlLCBzdHlsZXNbbGF5b3V0XV0pfVxuICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgZGF0YS10ZXN0aWQ9XCJpbWFnZVwiXG4gICAgICBhbHQ9e2FsdH1cbiAgICAgIHNyYz17c3JjfVxuICAgICAgd2lkdGg9e3NyY1dpZHRofVxuICAgICAgaGVpZ2h0PXtzcmNIZWlnaHR9XG4gICAgICBkZWNvZGluZz17ZGVjb2Rpbmd9XG4gICAgICBsb2FkaW5nPXtsb2FkaW5nfVxuICAgIC8+XG4gICk7XG5cbiAgcmV0dXJuIGNoaWxkcmVuID8gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbnRhaW5lciwgc3R5bGVzLmhhc092ZXJsYXldKX1cbiAgICA+XG4gICAgICB7aW1hZ2VFbGVtZW50fVxuICAgICAge2NoaWxkcmVuICYmIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMub3ZlcmxheX0+e2NoaWxkcmVufTwvZGl2Pn1cbiAgICA8L2Rpdj5cbiAgKSA6IChcbiAgICBpbWFnZUVsZW1lbnRcbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSW1hZ2VDb21wb25lbnQ7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzFWMDBHcHpfa2VxVVdHRWZaNzR3alNcIixcImhhc092ZXJsYXlcIjpcIl8yTXRVZllwdzVWOFVwcnhxX0VfeVNhXCIsXCJvdmVybGF5XCI6XCJ6MURWSHhqMVpQSzczT0lRUmNrN2pcIixcImltYWdlXCI6XCJfMzlPalRHV2Q3eG14Y2w2bnVJLWcyTFwiLFwiY292ZXJcIjpcIl8zcUtkcDJtSzZmN0c1ekF6WGx6Z3JFXCIsXCJjb250YWluXCI6XCJfMm9fRzRYYkItUW96YmZ1azRfVjAwaFwiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzJ4Z3VEa0d1MW1SMnlQYVktaHpOOG9cIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMTlXTWEzdHFSeHZVaERLRlo4WTJQQlwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIExpc3RWaWV3IH0gZnJvbSBcIi4vTGlzdFZpZXdcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXdJdGVtIH0gZnJvbSBcIi4vTGlzdFZpZXdJdGVtXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3RWaWV3TGlua0l0ZW0gfSBmcm9tIFwiLi9MaXN0Vmlld0xpbmtJdGVtXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9MaXN0Vmlldy5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTGlzdFZpZXdQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIGhlYWRlckFjdGlvbnM/OiBSZWFjdE5vZGU7XG59O1xuXG5mdW5jdGlvbiBMaXN0Vmlldyh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbnRhaW5lclJlZixcbiAgaGVhZGVyLFxuICBoZWFkZXJBY3Rpb25zLFxufTogTGlzdFZpZXdQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9IGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIGNsYXNzTmFtZV0pfT5cbiAgICAgIHsoaGVhZGVyIHx8IGhlYWRlckFjdGlvbnMpICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5oZWFkZXJ9PlxuICAgICAgICAgIHtoZWFkZXIgJiYgPGgzIGNsYXNzTmFtZT17c3R5bGVzLmhlYWRlckxhYmVsfT57aGVhZGVyfTwvaDM+fVxuICAgICAgICAgIHtoZWFkZXJBY3Rpb25zfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICA8dWwgY2xhc3NOYW1lPXtzdHlsZXMubGlzdH0+e2NoaWxkcmVufTwvdWw+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RWaWV3O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIkRjV29FYmlvbDlweC1GUUFfVHBPa1wiLFwiaGVhZGVyXCI6XCJfMmphdkI4c0FEeDZkRGdxWE4zTUNMUFwiLFwiaGVhZGVyTGFiZWxcIjpcIl8zaU1PZkl5TkwxU0VtdjJKOFpERG1XXCIsXCJsaXN0XCI6XCJfM19LbXRiTVBwUEhnSkZNOVpCX3huQVwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCIuLi9CdXR0b25cIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3NcIjtcblxudHlwZSBMaXN0Vmlld0l0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gIG5vUGFkZGluZz86IGJvb2xlYW47XG4gIHNpemU/OiBTaXplO1xuICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBMaXN0Vmlld0l0ZW0oe1xuICBjaGlsZHJlbixcbiAgYWN0aXZlID0gZmFsc2UsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxuICBvbkNsaWNrID0gKCkgPT4ge30sXG59OiBMaXN0Vmlld0l0ZW1Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxsaSBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMubGlzdFZpZXdJdGVtXSl9PlxuICAgICAgPEJ1dHRvblxuICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cbiAgICAgICAgbm9QYWRkaW5nPXtub1BhZGRpbmd9XG4gICAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgc3RyZXRjaEhvcml6b250YWxseVxuICAgICAgICBub1NoYWRvd1xuICAgICAgICBub0JvcmRlclxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0J1dHRvbj5cbiAgICA8L2xpPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0l0ZW07XG4iLCJpbXBvcnQgUmVhY3QsIHsgRWxlbWVudFR5cGUsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBCdXR0b25MaW5rIH0gZnJvbSBcIi4uL0J1dHRvbkxpbmtcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBMaXN0Vmlld0xpbmtJdGVtUHJvcHMgPVxuICB8IHtcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgICBhcz86IEVsZW1lbnRUeXBlO1xuICAgICAgYWN0aXZlOiBib29sZWFuO1xuICAgICAgdHJhbnNwYXJlbnQ6IGJvb2xlYW47XG4gICAgICBub1BhZGRpbmc6IGJvb2xlYW47XG4gICAgICBhbGlnbjogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xuICAgICAgc2l6ZTogU2l6ZTtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBMaXN0Vmlld0xpbmtJdGVtKHtcbiAgY2hpbGRyZW4sXG4gIGFzOiBDb21wb25lbnQsXG4gIGFjdGl2ZSA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgLi4ucHJvcHNcbn06IExpc3RWaWV3TGlua0l0ZW1Qcm9wcykge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIENvbXBvbmVudCA9IFwiYVwiO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8bGkgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmxpc3RWaWV3SXRlbV0pfT5cbiAgICAgIDxCdXR0b25MaW5rXG4gICAgICAgIGFzPXtDb21wb25lbnR9XG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cbiAgICAgICAgbm9QYWRkaW5nPXtub1BhZGRpbmd9XG4gICAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgc3RyZXRjaEhvcml6b250YWxseVxuICAgICAgICBub1NoYWRvd1xuICAgICAgICBub0JvcmRlclxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvQnV0dG9uTGluaz5cbiAgICA8L2xpPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0xpbmtJdGVtO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51IH0gZnJvbSBcIi4vTWVudVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51Q29udGFpbmVyLCBNZW51UGxhY2VtZW50IH0gZnJvbSBcIi4vTWVudUNvbnRhaW5lclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51SXRlbSB9IGZyb20gXCIuL01lbnVJdGVtXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lbnVMaW5rSXRlbSB9IGZyb20gXCIuL01lbnVMaW5rSXRlbVwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudS5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTWVudVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGlzT3Blbj86IGJvb2xlYW47XG4gIGhlYWRlcj86IHN0cmluZztcbiAgZm9vdGVyPzogUmVhY3ROb2RlO1xufTtcblxuZnVuY3Rpb24gTWVudSh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGNsYXNzTmFtZSxcbiAgaXNPcGVuID0gdHJ1ZSxcbiAgaGVhZGVyLFxuICBmb290ZXIsXG59OiBNZW51UHJvcHMpIHtcbiAgaWYgKCFpc09wZW4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICAgIHN0eWxlcy5tZW51LFxuICAgICAgICAgIHsgW3N0eWxlcy5vcGVuXTogaXNPcGVuIH0sXG4gICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBdKX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5zY3JvbGxDb250YWluZXJ9PlxuICAgICAgICAgIHtoZWFkZXIgJiYgaXNPcGVuICYmIDxoMyBjbGFzc05hbWU9e3N0eWxlcy5oZWFkZXJ9PntoZWFkZXJ9PC9oMz59XG4gICAgICAgICAgPHVsPntpc09wZW4gJiYgY2hpbGRyZW59PC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtmb290ZXIgJiYgaXNPcGVuICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgICAgICAgc3R5bGVzLmZvb3RlcixcbiAgICAgICAgICAgICAgeyBbc3R5bGVzLm5vQm9yZGVyXTogIWNoaWxkcmVuIH0sXG4gICAgICAgICAgICBdKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Zm9vdGVyfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnU7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVcIjpcIl8xTDUtcHZfUDZNMm9HZW9SZU1uTzJKXCIsXCJvcGVuXCI6XCJfMUo3cEZrdmtqUVFSV2ttZy0wWFRXWlwiLFwiZW50cmFuY2VcIjpcIl8zY3Flc1FHZjlDeXU2NkRzb0t0RjBxXCIsXCJoZWFkZXJcIjpcInBPUFlhVjAxbzlXQjdCdzRWZ2l3XCIsXCJmb290ZXJcIjpcIl8zbUNjY252TmROLVhaWlM3UEx4YXYwXCIsXCJub0JvcmRlclwiOlwiXzI2dFVPZjlnSS1hUmZhZl9JZXlQVUlcIixcInNjcm9sbENvbnRhaW5lclwiOlwiXzFtcU1VcmQxMy0xVGxvdkdDQk9lcGZcIn07IiwiaW1wb3J0IFJlYWN0LCB7XG4gIFJlYWN0Tm9kZSxcbiAgUmVhY3RFbGVtZW50LFxuICBmb3J3YXJkUmVmLFxuICBGb3J3YXJkZWRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnVDb250YWluZXIubW9kdWxlLmNzc1wiO1xuXG5leHBvcnQgdHlwZSBNZW51UGxhY2VtZW50ID0ge1xuICBob3Jpem9udGFsOiBcInJpZ2h0XCIgfCBcImxlZnRcIjtcbiAgdmVydGljYWw6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBNZW51Q29udGFpbmVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGJ1dHRvbj86IFJlYWN0RWxlbWVudDtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBwbGFjZW1lbnQ/OiBNZW51UGxhY2VtZW50O1xufTtcblxuZnVuY3Rpb24gTWVudUNvbnRhaW5lcihcbiAge1xuICAgIGNoaWxkcmVuLFxuICAgIGJ1dHRvbixcbiAgICBjbGFzc05hbWUsXG4gICAgcGxhY2VtZW50ID0geyBob3Jpem9udGFsOiBcImxlZnRcIiwgdmVydGljYWw6IFwiYm90dG9tXCIgfSxcbiAgfTogTWVudUNvbnRhaW5lclByb3BzLFxuICByZWY6IEZvcndhcmRlZFJlZjxIVE1MRGl2RWxlbWVudD5cbikge1xuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtyZWZ9IGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIGNsYXNzTmFtZV0pfT5cbiAgICAgIHtidXR0b259XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgICAgc3R5bGVzLm1lbnVDb250YWluZXIsXG4gICAgICAgICAgc3R5bGVzW3BsYWNlbWVudC5ob3Jpem9udGFsXSxcbiAgICAgICAgICBzdHlsZXNbcGxhY2VtZW50LnZlcnRpY2FsXSxcbiAgICAgICAgXSl9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmb3J3YXJkUmVmKE1lbnVDb250YWluZXIpO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8zRDRJUVpXQ3RIOE1UWHJ2NTlNWUtGXCIsXCJtZW51Q29udGFpbmVyXCI6XCJfMV8yc0ZGVnpOWG1KWF9QVHBIWmdFTFwiLFwidG9wXCI6XCJRdkM0eTZtZjFZVy1ibEs2UFNONUlcIixcInJpZ2h0XCI6XCJfM21yVmJ3a21WbWxjRkRhZFBvZWNjN1wiLFwibGVmdFwiOlwiWGZRNGJqbktGYUFZbVFUdVJLLTZBXCIsXCJib3R0b21cIjpcIl8zOV90eWJYNUpaNlktdWo0N2dQc0tWXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFN5bnRoZXRpY0V2ZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUl0ZW0ubW9kdWxlLmNzc1wiO1xuXG50eXBlIE1lbnVJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBub1BhZGRpbmc/OiBib29sZWFuO1xuICBvbkNsaWNrPzogKGV2ZW50PzogU3ludGhldGljRXZlbnQ8SFRNTExJRWxlbWVudD4pID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBNZW51SXRlbSh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIG9uQ2xpY2ssXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBpc0FjdGl2ZSA9IGZhbHNlLFxufTogTWVudUl0ZW1Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5tZW51SXRlbSxcbiAgICAgICAgeyBbc3R5bGVzLmFjdGl2ZV06IGlzQWN0aXZlIH0sXG4gICAgICAgIHsgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcgfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2xpPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNZW51SXRlbTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudUl0ZW1cIjpcIl8yS3NSQ0VnRV9NN3dvWGpocFJ1VnVvXCIsXCJub1BhZGRpbmdcIjpcIl8yY3FNSkhKeUNqQVU4WlBaQVYwWUQ1XCIsXCJhY3RpdmVcIjpcIl8xWG5YWmlBcmh2VWV5WGdxVWFHLVA3XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIEVsZW1lbnRUeXBlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUxpbmtJdGVtLm1vZHVsZS5jc3NcIjtcblxudHlwZSBNZW51TGlua0l0ZW1Qcm9wcyA9XG4gIHwge1xuICAgICAgYXM6IEVsZW1lbnRUeXBlO1xuICAgICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgICAgbm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBNZW51TGlua0l0ZW0oe1xuICBhczogQ29tcG9uZW50LFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgLi4ucHJvcHNcbn06IE1lbnVMaW5rSXRlbVByb3BzKSB7XG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb21wb25lbnRcbiAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1saW5rLWl0ZW1cIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5tZW51TGlua0l0ZW0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgeyBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyB9LFxuICAgICAgXSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvQ29tcG9uZW50PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNZW51TGlua0l0ZW07XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVMaW5rSXRlbVwiOlwiXzN6NXQ5Q0FoY0F3Vk90T1ZsQV80R3dcIixcIm5vUGFkZGluZ1wiOlwiYk5YaWt5RVpJSU9NMUhnc0FpM2Z0XCIsXCJhY3RpdmVcIjpcIl8xWi1tUHZld0dVZzQ4NFFQYzlIeHEyXCIsXCJtZW51SXRlbVwiOlwiXzN0SVdBaE1EdFB6QUg0YkFyd3BST3ZcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBPdmVybGF5IH0gZnJvbSBcIi4vT3ZlcmxheVwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL092ZXJsYXkubW9kdWxlLmNzc1wiO1xuXG50eXBlIE92ZXJsYXlQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICBpc0ZpeGVkPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBPdmVybGF5KHtcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgaXNGaXhlZCA9IGZhbHNlLFxuICBvbkNsaWNrID0gKCkgPT4ge30sXG59OiBPdmVybGF5UHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGRhdGEtdGVzdGlkPVwib3ZlcmxheVwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLm92ZXJsYXksXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXG4gICAgICAgICAgW3N0eWxlcy5maXhlZF06IGlzRml4ZWQsXG4gICAgICAgIH0sXG4gICAgICBdKX1cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBPdmVybGF5O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJvdmVybGF5XCI6XCJJMGRtLUxkbS1TaVMwdjVYLXZvMGdcIixcInRyYW5zcGFyZW50XCI6XCJfM3FkRGRseW5ITG5vZk4xREt2dllROFwiLFwiZml4ZWRcIjpcIl8xZ1h5OVhTM0YtSnRxZGpaQmNvS1N3XCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dElucHV0IH0gZnJvbSBcIi4vVGV4dElucHV0XCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgTGFiZWwgfSBmcm9tIFwiLi4vTGFiZWxcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVGV4dElucHV0Lm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUsIFRleHRJbnB1dFR5cGUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBUZXh0SW5wdXRQcm9wcyA9IHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQmx1cj86ICgpID0+IHZvaWQ7XG4gIG9uS2V5RG93bj86IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogVGV4dElucHV0VHlwZTtcbiAgc2l6ZT86IFNpemU7XG4gIG5vQm9yZGVyPzogYm9vbGVhbjtcbiAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWZPYmplY3Q8SFRNTElucHV0RWxlbWVudD47XG59O1xuXG5mdW5jdGlvbiBUZXh0SW5wdXQoe1xuICBsYWJlbCxcbiAgb25DaGFuZ2UsXG4gIG9uQmx1cixcbiAgb25LZXlEb3duLFxuICBwbGFjZWhvbGRlcixcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlucHV0UmVmLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgdHlwZSA9IFwidGV4dFwiLFxuICBhdXRvRm9jdXMgPSBmYWxzZSxcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcbn06IFRleHRJbnB1dFByb3BzKSB7XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5Gb3JtRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgICBvbkNoYW5nZSgoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uQ2hhbmdlXVxuICApO1xuXG4gIGNvbnN0IGlucHV0RWxlbWVudCA9IChcbiAgICA8aW5wdXRcbiAgICAgIGRhdGEtdGVzdGlkPVwiaW5wdXRcIlxuICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy50ZXh0SW5wdXQsIHN0eWxlc1tzaXplXSwge1tzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcn1dKX1cbiAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgbmFtZT17bmFtZX1cbiAgICAgIHR5cGU9e3R5cGV9XG4gICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cbiAgICAvPlxuICApO1xuICBpZiAobGFiZWwpIHtcbiAgICByZXR1cm4gPExhYmVsIHZhbHVlPXtsYWJlbH0+e2lucHV0RWxlbWVudH08L0xhYmVsPjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gPD57aW5wdXRFbGVtZW50fTwvPjtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgVGV4dElucHV0O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJ0ZXh0SW5wdXRcIjpcIl8yaWZGVEJ5eHZRRjVlUll3TUFTYWU3XCIsXCJzbWFsbFwiOlwiXzE4aUxOaHFjNVR6NVBQbzJrNF9UQmhcIixcIm1lZGl1bVwiOlwiXzFqYVJ5amVhdEpSeEV1amdQR3pXenhcIixcImxhcmdlXCI6XCJfMzRkNUgzWDhXMFVnWDlCOGR0UFJBT1wiLFwieGxhcmdlXCI6XCJfM3N0OEVHb3VuT2dqTnVMcG9FckMwc1wiLFwibm9Cb3JkZXJcIjpcInB0Ulo3QTVnaVc3RkIzbWs4UUxDTVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIFRvYXN0IH0gZnJvbSBcIi4vVG9hc3RcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG9hc3RDb250YWluZXIgfSBmcm9tIFwiLi9Ub2FzdENvbnRhaW5lclwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVG9hc3QubW9kdWxlLmNzc1wiO1xuXG50eXBlIFRvYXN0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xufTtcblxuZnVuY3Rpb24gVG9hc3QoeyBjaGlsZHJlbiwgY29udGFpbmVyUmVmLCBvbkNsaWNrID0gKCkgPT4ge30gfTogVG9hc3RQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtzdHlsZXMudG9hc3R9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJ0b2FzdFwiXG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBUb2FzdDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1widG9hc3RcIjpcIl8yTjNYaUg4UlZuRUFZbHpCRF9KQ3FaXCIsXCJlbnRyYW5jZVwiOlwiXzE5Y3czeng2ZlU0Uk1HTWFHTTV6SlpcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1RvYXN0Q29udGFpbmVyLm1vZHVsZS5jc3NcIjtcblxudHlwZSBUb2FzdENvbnRhaW5lclByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgYmFzZVpJbmRleD86IG51bWJlcjtcbn07XG5mdW5jdGlvbiBUb2FzdENvbnRhaW5lcih7IGNoaWxkcmVuLCBiYXNlWkluZGV4IH06IFRvYXN0Q29udGFpbmVyUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudG9hc3RDb250YWluZXJdKX1cbiAgICAgIHN0eWxlPXt7IHpJbmRleDogYmFzZVpJbmRleCB9fVxuICAgICAgZGF0YS10ZXN0aWQ9XCJ0b2FzdC1jb250YWluZXJcIlxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVG9hc3RDb250YWluZXI7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcInRvYXN0Q29udGFpbmVyXCI6XCJfM1JUMmFiZnpLMHJ0LVlqY3JxWExuclwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIFZpZGVvLCBWaWRlb1Byb3BzIH0gZnJvbSBcIi4vVmlkZW9cIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1ZpZGVvLm1vZHVsZS5jc3NcIjtcblxuLyoqXG4gKiBUaGVyZSBpcyBhIGtub3duIGlzc3VlIGluIFJlYWN0IGluIHJlZ2FyZHMgdG8gdGhlICdtdXRlZCcgcHJvcGVydHkgd2hpY2ggY2F1c2VzIHRoZSB3YXJuaW5nOlxuICogXCJXYXJuaW5nOiB1bnN0YWJsZV9mbHVzaERpc2NyZXRlVXBkYXRlczogQ2Fubm90IGZsdXNoIHVwZGF0ZXMgd2hlbiBSZWFjdCBpcyBhbHJlYWR5IHJlbmRlcmluZy5cIlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTAzODlcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNjU0NFxuICogaHR0cHM6Ly9naXRodWIuY29tL3Rlc3RpbmctbGlicmFyeS9yZWFjdC10ZXN0aW5nLWxpYnJhcnkvaXNzdWVzLzQ3MFxuICovXG5cbnR5cGUgTGF5b3V0ID0gXCJjb3ZlclwiIHwgXCJjb250YWluXCIgfCBcInN0cmV0Y2hIb3Jpem9udGFsbHlcIiB8IFwic3RyZXRjaFZlcnRpY2FsbHlcIjtcblxuZXhwb3J0IHR5cGUgVmlkZW9Qcm9wcyA9IHtcbiAgc3JjOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgbGF5b3V0PzogTGF5b3V0O1xuICBhdXRvUGxheT86IGJvb2xlYW47XG4gIGxvb3A/OiBib29sZWFuO1xuICBtdXRlZD86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBwb3N0ZXI/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBWaWRlbyh7XG4gIHNyYyxcbiAgdHlwZSxcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgcG9zdGVyLFxuICBtdXRlZCA9IHRydWUsXG4gIGxvb3AgPSB0cnVlLFxuICBhdXRvUGxheSA9IHRydWUsXG4gIGxheW91dCA9IFwiY29udGFpblwiLFxufTogVmlkZW9Qcm9wcykge1xuICByZXR1cm4gY2hpbGRyZW4gPyAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBzdHlsZXMuaGFzT3ZlcmxheV0pfVxuICAgID5cbiAgICAgIDx2aWRlb1xuICAgICAgICBkYXRhLXRlc3RpZD1cInZpZGVvXCJcbiAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudmlkZW8sIHN0eWxlc1tsYXlvdXRdXSl9XG4gICAgICAgIG11dGVkPXttdXRlZH1cbiAgICAgICAgbG9vcD17bG9vcH1cbiAgICAgICAgYXV0b1BsYXk9e2F1dG9QbGF5fVxuICAgICAgICBwb3N0ZXI9e3Bvc3Rlcn1cbiAgICAgICAgcGxheXNJbmxpbmVcbiAgICAgID5cbiAgICAgICAgPHNvdXJjZSBkYXRhLXRlc3RpZD1cInNvdXJjZVwiIHNyYz17c3JjfSB0eXBlPXt0eXBlfSAvPlxuICAgICAgPC92aWRlbz5cbiAgICAgIHtjaGlsZHJlbiAmJiA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm92ZXJsYXl9PntjaGlsZHJlbn08L2Rpdj59XG4gICAgPC9kaXY+XG4gICkgOiAoXG4gICAgPHZpZGVvXG4gICAgICBkYXRhLXRlc3RpZD1cInZpZGVvXCJcbiAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy52aWRlbywgc3R5bGVzW2xheW91dF1dKX1cbiAgICAgIG11dGVkPXttdXRlZH1cbiAgICAgIGxvb3A9e2xvb3B9XG4gICAgICBhdXRvUGxheT17YXV0b1BsYXl9XG4gICAgICBwb3N0ZXI9e3Bvc3Rlcn1cbiAgICAgIHBsYXlzSW5saW5lXG4gICAgPlxuICAgICAgPHNvdXJjZSBkYXRhLXRlc3RpZD1cInNvdXJjZVwiIHNyYz17c3JjfSB0eXBlPXt0eXBlfSAvPlxuICAgIDwvdmlkZW8+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZpZGVvO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xZDU1d1h1UUtwdDk3UHFRSFl4NW1XXCIsXCJoYXNPdmVybGF5XCI6XCJfMkRBTTF4N1Axd3VZTlA4VERtWEdYY1wiLFwidmlkZW9cIjpcIl8zalFfcXBVTHRyMHVGU1RXYkQwTlZaXCIsXCJjb3ZlclwiOlwiXzFxblZMaGVHekRJNk5vOV9ud2I3aGxcIixcImNvbnRhaW5cIjpcIl8xWDI4Nk5JU0kwd3EyS0szZGpWaHUzXCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJPZWdsLThnZDJLNWx6M21VR0pfVXpcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMS1IenBUWV9XdEdjWmMyNXdDb3RlWVwiLFwib3ZlcmxheVwiOlwiXzJUdlhzcUFJVW5HU3FtNmtuSkZoTDNcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VUb2dnbGUgfSBmcm9tIFwiLi91c2VUb2dnbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4vdXNlT3V0c2lkZUNsaWNrXCI7XG4iLCJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlVG9nZ2xlKFxuICBpbml0aWFsVmFsdWUgPSBmYWxzZVxuKTogW2Jvb2xlYW4sIChuZXdWYWx1ZT86IGJvb2xlYW4pID0+IHZvaWRdIHtcbiAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZTxib29sZWFuPihpbml0aWFsVmFsdWUpO1xuXG4gIGNvbnN0IHRvZ2dsZSA9IHVzZUNhbGxiYWNrKChuZXdWYWx1ZT86IGJvb2xlYW4pID0+IHtcbiAgICBpZiAodHlwZW9mIG5ld1ZhbHVlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgc2V0VmFsdWUobmV3VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRWYWx1ZSgocHJldlZhbHVlKSA9PiB7XG4gICAgICAgIHJldHVybiAhcHJldlZhbHVlO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgcmV0dXJuIFt2YWx1ZSwgdG9nZ2xlXTtcbn1cbiIsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbnR5cGUgQ2FsbGJhY2sgPSAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VPdXRzaWRlQ2xpY2soY2FsbGJhY2s6IENhbGxiYWNrKSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgaWYgKCFyZWYuY3VycmVudCB8fCByZWYuY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfTtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIGhhbmRsZUNsaWNrKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgaGFuZGxlQ2xpY2spO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIGhhbmRsZUNsaWNrKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBoYW5kbGVDbGljayk7XG4gICAgfTtcbiAgfSwgW2NhbGxiYWNrXSk7XG5cbiAgcmV0dXJuIHJlZjtcbn1cbiIsIi8qIVxuICogaG90a2V5cy1qcyB2My44LjFcbiAqIEEgc2ltcGxlIG1pY3JvLWxpYnJhcnkgZm9yIGRlZmluaW5nIGFuZCBkaXNwYXRjaGluZyBrZXlib2FyZCBzaG9ydGN1dHMuIEl0IGhhcyBubyBkZXBlbmRlbmNpZXMuXG4gKiBcbiAqIENvcHlyaWdodCAoYykgMjAyMCBrZW5ueSB3b25nIDx3b3dvaG9vQHFxLmNvbT5cbiAqIGh0dHA6Ly9qYXl3Y2psb3ZlLmdpdGh1Yi5pby9ob3RrZXlzXG4gKiBcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqL1xuXG52YXIgaXNmZiA9IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnID8gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2ZpcmVmb3gnKSA+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+mUrlxuXG5cbiAgaWYgKHR5cGVvZiBlbGVtZW50ICE9PSAndW5kZWZpbmVkJyAmJiAhaXNFbGVtZW50QmluZChlbGVtZW50KSAmJiB3aW5kb3cpIHtcbiAgICBlbGVtZW50SGFzQmluZEV2ZW50LnB1c2goZWxlbWVudCk7XG4gICAgYWRkRXZlbnQoZWxlbWVudCwgJ2tleWRvd24nLCBmdW5jdGlvbiAoZSkge1xuICAgICAgZGlzcGF0Y2goZSk7XG4gICAgfSk7XG4gICAgYWRkRXZlbnQod2luZG93LCAnZm9jdXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfZG93bktleXMgPSBbXTtcbiAgICB9KTtcbiAgICBhZGRFdmVudChlbGVtZW50LCAna2V5dXAnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgZGlzcGF0Y2goZSk7XG4gICAgICBjbGVhck1vZGlmaWVyKGUpO1xuICAgIH0pO1xuICB9XG59XG5cbnZhciBfYXBpID0ge1xuICBzZXRTY29wZTogc2V0U2NvcGUsXG4gIGdldFNjb3BlOiBnZXRTY29wZSxcbiAgZGVsZXRlU2NvcGU6IGRlbGV0ZVNjb3BlLFxuICBnZXRQcmVzc2VkS2V5Q29kZXM6IGdldFByZXNzZWRLZXlDb2RlcyxcbiAgaXNQcmVzc2VkOiBpc1ByZXNzZWQsXG4gIGZpbHRlcjogZmlsdGVyLFxuICB1bmJpbmQ6IHVuYmluZFxufTtcblxuZm9yICh2YXIgYSBpbiBfYXBpKSB7XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX2FwaSwgYSkpIHtcbiAgICBob3RrZXlzW2FdID0gX2FwaVthXTtcbiAgfVxufVxuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgdmFyIF9ob3RrZXlzID0gd2luZG93LmhvdGtleXM7XG5cbiAgaG90a2V5cy5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKGRlZXApIHtcbiAgICBpZiAoZGVlcCAmJiB3aW5kb3cuaG90a2V5cyA9PT0gaG90a2V5cykge1xuICAgICAgd2luZG93LmhvdGtleXMgPSBfaG90a2V5cztcbiAgICB9XG5cbiAgICByZXR1cm4gaG90a2V5cztcbiAgfTtcblxuICB3aW5kb3cuaG90a2V5cyA9IGhvdGtleXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGhvdGtleXM7XG4iLCJpbXBvcnQgaG90a2V5cyBmcm9tICdob3RrZXlzLWpzJztcbmltcG9ydCB7IHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuZnVuY3Rpb24gdXNlSXNIb3RrZXlQcmVzc2VkKCkge1xuICByZXR1cm4gaG90a2V5cy5pc1ByZXNzZWQ7XG59XG5cbmhvdGtleXMuZmlsdGVyID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdHJ1ZTtcbn07XG5cbnZhciB0YWdGaWx0ZXIgPSBmdW5jdGlvbiB0YWdGaWx0ZXIoX3JlZiwgZW5hYmxlT25UYWdzKSB7XG4gIHZhciB0YXJnZXQgPSBfcmVmLnRhcmdldCxcbiAgICAgIHNyY0VsZW1lbnQgPSBfcmVmLnNyY0VsZW1lbnQ7XG4gIC8vIEB0cy1pZ25vcmVcbiAgdmFyIHRhcmdldFRhZ05hbWUgPSB0YXJnZXQgJiYgdGFyZ2V0LnRhZ05hbWUgfHwgc3JjRWxlbWVudCAmJiBzcmNFbGVtZW50LnRhZ05hbWU7XG4gIHJldHVybiBCb29sZWFuKHRhcmdldFRhZ05hbWUgJiYgZW5hYmxlT25UYWdzICYmIGVuYWJsZU9uVGFncy5pbmNsdWRlcyh0YXJnZXRUYWdOYW1lKSk7XG59O1xuXG52YXIgaXNLZXlib2FyZEV2ZW50VHJpZ2dlcmVkQnlJbnB1dCA9IGZ1bmN0aW9uIGlzS2V5Ym9hcmRFdmVudFRyaWdnZXJlZEJ5SW5wdXQoZXYpIHtcbiAgcmV0dXJuIHRhZ0ZpbHRlcihldiwgWydJTlBVVCcsICdURVhUQVJFQScsICdTRUxFQ1QnXSk7XG59O1xuXG5mdW5jdGlvbiB1c2VIb3RrZXlzKGtleXMsIGNhbGxiYWNrLCBvcHRpb25zLCBkZXBzKSB7XG4gIGlmIChvcHRpb25zIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICBkZXBzID0gb3B0aW9ucztcbiAgICBvcHRpb25zID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgdmFyIF9yZWYyID0gb3B0aW9ucyB8fCB7fSxcbiAgICAgIGVuYWJsZU9uVGFncyA9IF9yZWYyLmVuYWJsZU9uVGFncyxcbiAgICAgIGZpbHRlciA9IF9yZWYyLmZpbHRlcixcbiAgICAgIGtleXVwID0gX3JlZjIua2V5dXAsXG4gICAgICBrZXlkb3duID0gX3JlZjIua2V5ZG93bjtcblxuICB2YXIgcmVmID0gdXNlUmVmKG51bGwpO1xuICB2YXIgbWVtb2lzZWRDYWxsYmFjayA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChrZXlib2FyZEV2ZW50LCBob3RrZXlzRXZlbnQpIHtcbiAgICBpZiAoZmlsdGVyICYmICFmaWx0ZXIoa2V5Ym9hcmRFdmVudCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoaXNLZXlib2FyZEV2ZW50VHJpZ2dlcmVkQnlJbnB1dChrZXlib2FyZEV2ZW50KSAmJiAhdGFnRmlsdGVyKGtleWJvYXJkRXZlbnQsIGVuYWJsZU9uVGFncykpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChyZWYuY3VycmVudCA9PT0gbnVsbCB8fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSByZWYuY3VycmVudCkge1xuICAgICAgY2FsbGJhY2soa2V5Ym9hcmRFdmVudCwgaG90a2V5c0V2ZW50KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfSwgZGVwcyA/IFtyZWYsIGVuYWJsZU9uVGFncywgZmlsdGVyXS5jb25jYXQoZGVwcykgOiBbcmVmLCBlbmFibGVPblRhZ3MsIGZpbHRlcl0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChrZXl1cCAmJiBrZXlkb3duICE9PSB0cnVlKSB7XG4gICAgICBvcHRpb25zLmtleWRvd24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBob3RrZXlzKGtleXMsIG9wdGlvbnMgfHwge30sIG1lbW9pc2VkQ2FsbGJhY2spO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gaG90a2V5cy51bmJpbmQoa2V5cywgbWVtb2lzZWRDYWxsYmFjayk7XG4gICAgfTtcbiAgfSwgW21lbW9pc2VkQ2FsbGJhY2ssIG9wdGlvbnMsIGtleXNdKTtcbiAgcmV0dXJuIHJlZjtcbn1cblxuZXhwb3J0IHsgdXNlSG90a2V5cywgdXNlSXNIb3RrZXlQcmVzc2VkIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1ob3RrZXlzLWhvb2suZXNtLmpzLm1hcFxuIl0sInNvdXJjZVJvb3QiOiIifQ==
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 u(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 i={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,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":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++)i["f".concat(s)]=111+s;var v=[],_="all",p=[],m=function(e){return i[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,i=void 0===a?"+":a;u(t).forEach((function(e){var t=e.split(i),a=t.length,u=t[a-1],d="*"===u?"*":m(u);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 u=0;u<t.length;u++)t[u].scope===o&&("keydown"===e.type&&t[u].keydown||"keyup"===e.type&&t[u].keyup)&&g(e,t[u],o);if(n in c)for(var i=0;i<c[n].length;i++)if(("keydown"===e.type&&c[n][i].keydown||"keyup"===e.type&&c[n][i].keyup)&&c[n][i].key){for(var s=c[n][i],_=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=u(e),i=[],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;_++)i=[],(e=r[_].split(b)).length>1&&(i=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:i,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}E.filter=function(){return!0};var x=function(e,t){var n=e.target,r=n&&n.tagName;return Boolean(r&&t&&t.includes(r))};function S(e,t,n,r){n instanceof Array&&(r=n,n=void 0);var a=n||{},o=a.enableOnTags,u=a.filter,i=a.keyup,l=a.keydown,d=a.filterPreventDefault,f=void 0===d||d,c=a.enabled,s=void 0===c||c,v=a.enableOnContentEditable,_=void 0!==v&&v,p=Object(k.useRef)(null),m=Object(k.useCallback)((function(e,n){var r;return u&&!u(e)?!f:!!(x(e,["INPUT","TEXTAREA","SELECT"])&&!x(e,o)||null!=(r=e.target)&&r.isContentEditable&&!_)||(null===p.current||document.activeElement===p.current)&&(t(e,n),!0)}),r?[p,o,u].concat(r):[p,o,u]);return Object(k.useEffect)((function(){if(s)return i&&!0!==l&&(n.keydown=!1),E(e,n||{},m),function(){return E.unbind(e,m)}}),[m,e,s]),p}var N=E.isPressed}]));
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xhc3NjYXQvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3M/OWE0ZSIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uQmFkZ2UvQnV0dG9uQmFkZ2UudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL0J1dHRvbkJhZGdlLm1vZHVsZS5jc3M/MzJhYiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLm1vZHVsZS5jc3M/Y2Q0NiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvQnV0dG9uTGluay5tb2R1bGUuY3NzPzA4NDEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL0xhYmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tb2R1bGUuY3NzPzFmMTEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gubW9kdWxlLmNzcz80ZWViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclN3YXRjaC9Db2xvclN3YXRjaC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcz8yM2ViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLm1vZHVsZS5jc3M/ZTE4OCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvTW9kYWwudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vZGFsL01vZGFsLm1vZHVsZS5jc3M/MGVkZiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzPzI3YjMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmlsZUlucHV0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ZpbGVJbnB1dC9GaWxlSW5wdXQudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ZpbGVJbnB1dC9GaWxlSW5wdXQubW9kdWxlLmNzcz8xMjk5Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9GbG9hdGluZ1BhbmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzcz83YWJmIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vSWNvbi50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbi9JY29uLm1vZHVsZS5jc3M/OWI5MyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b24vSWNvbkJ1dHRvbi50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLm1vZHVsZS5jc3M/ZDI4ZCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmsvSWNvbkJ1dHRvbkxpbmsubW9kdWxlLmNzcz9jYzM3Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL0ltYWdlLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9JbWFnZS5tb2R1bGUuY3NzPzk1YTciLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3Lm1vZHVsZS5jc3M/NDY0ZSIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlld0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3TGlua0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnUubW9kdWxlLmNzcz8zNzA5Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUNvbnRhaW5lci50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Q29udGFpbmVyLm1vZHVsZS5jc3M/OTZkMiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLm1vZHVsZS5jc3M/NTA0OSIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVMaW5rSXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51TGlua0l0ZW0ubW9kdWxlLmNzcz8wNDI3Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL092ZXJsYXkvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkubW9kdWxlLmNzcz8yMWM1Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0Lm1vZHVsZS5jc3M/Y2QzNiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QubW9kdWxlLmNzcz9jZjYxIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0Q29udGFpbmVyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdENvbnRhaW5lci5tb2R1bGUuY3NzPzlhMzYiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vVmlkZW8udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1ZpZGVvL1ZpZGVvLm1vZHVsZS5jc3M/ZTIyMyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2hvb2tzL3VzZVRvZ2dsZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvdXNlT3V0c2lkZUNsaWNrLnRzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ob3RrZXlzLWpzL2Rpc3QvaG90a2V5cy5lc20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWhvdGtleXMtaG9vay9kaXN0L3JlYWN0LWhvdGtleXMtaG9vay5lc20uanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJyZXF1aXJlIiwiaXNBcnJheSIsIkFycmF5IiwiY2MiLCJvYmoiLCJvdXQiLCJ0bXAiLCJrIiwibGVuZ3RoIiwiZGVmYXVsdCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiYnV0dG9uQmFkZ2UiLCJvbkNsaWNrIiwiY29udGFpbmVyUmVmIiwiZGlzYWJsZWQiLCJpbnZlcnRlZCIsInJvdW5kZWQiLCJub1NoYWRvdyIsIm5vUGFkZGluZyIsIm5vQm9yZGVyIiwidHJhbnNwYXJlbnQiLCJzdHJldGNoSG9yaXpvbnRhbGx5Iiwic3RyZXRjaFZlcnRpY2FsbHkiLCJhdXRvRm9jdXMiLCJvZmZzZXRTaWRlcyIsImFsaWduIiwic2l6ZSIsInR5cGUiLCJyZWYiLCJjb250YWluZXIiLCJsZWZ0T2Zmc2V0IiwiaW5jbHVkZXMiLCJyaWdodE9mZnNldCIsInJvbGUiLCJjb250ZW50IiwiQ29tcG9uZW50IiwicHJvcHMiLCJsYWJlbCIsIm9uQ2hhbmdlIiwicGxhY2Vob2xkZXIiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsImhhbmRsZUNoYW5nZSIsInVzZUNhbGxiYWNrIiwiZSIsInRhcmdldCIsIkxhYmVsIiwiaW5wdXRSZWYiLCJpbnB1dCIsImNvbG9ycyIsIm9uU2VsZWN0Iiwic2VsZWN0ZWRDb2xvciIsImRpcmVjdGlvbiIsImNvbG9yUGlja2VyIiwibWFwIiwiY29sb3IiLCJDb2xvclN3YXRjaCIsImlzU2VsZWN0ZWQiLCJjb2xvclN3YXRjaCIsInNlbGVjdGVkIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJoZXhDb2RlIiwic3JPbmx5IiwiQ29uZmlybWF0aW9uTW9kYWwiLCJoZWFkZXIiLCJpc09wZW4iLCJidXR0b25zTGVmdCIsImJ1dHRvbnNSaWdodCIsIm9uQ2xvc2UiLCJub092ZXJsYXkiLCJiYXNlWkluZGV4IiwiTW9kYWwiLCJtb2RhbEhlYWRlciIsIm1vZGFsQ29udGVudCIsIm1vZGFsQnV0dG9uc0NvbnRhaW5lciIsIm1vZGFsQnV0dG9ucyIsImRpc3BsYXlOYW1lIiwiYnV0dG9uIiwidXNlSG90a2V5cyIsImhhbmRsZU92ZXJsYXlDbGljayIsInpJbmRleCIsIm92ZXJsYXkiLCJtb2RhbCIsIm1vZGFsQnV0dG9uIiwiYWNjZXB0IiwibXVsdGlwbGUiLCJpZCIsImxheW91dCIsInBsYWNlbWVudCIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCIsInBhcmVudCIsImhvcml6b250YWxQbGFjZW1lbnQiLCJ2ZXJ0aWNhbFBsYWNlbWVudCIsImZpeGVkIiwic3JjIiwiYWx0IiwiaWNvbiIsImNyb3NzT3JpZ2luIiwiYmFkZ2VDb250ZW50IiwidG9wT2Zmc2V0IiwiYm90dG9tT2Zmc2V0IiwiSWNvbiIsIkJ1dHRvbkJhZGdlIiwic3JjV2lkdGgiLCJzcmNIZWlnaHQiLCJkZWNvZGluZyIsImxvYWRpbmciLCJpbWFnZUVsZW1lbnQiLCJpbWFnZSIsIndpZHRoIiwiaGVpZ2h0IiwiaGFzT3ZlcmxheSIsImhlYWRlckFjdGlvbnMiLCJoZWFkZXJMYWJlbCIsImxpc3QiLCJhY3RpdmUiLCJsaXN0Vmlld0l0ZW0iLCJCdXR0b24iLCJCdXR0b25MaW5rIiwiYXMiLCJmb290ZXIiLCJtZW51Iiwib3BlbiIsInNjcm9sbENvbnRhaW5lciIsImZvcndhcmRSZWYiLCJtZW51Q29udGFpbmVyIiwiaXNBY3RpdmUiLCJtZW51SXRlbSIsIm1lbnVMaW5rSXRlbSIsImlzRml4ZWQiLCJvbkJsdXIiLCJvbktleURvd24iLCJpbnB1dEVsZW1lbnQiLCJ0ZXh0SW5wdXQiLCJ0b2FzdCIsInRvYXN0Q29udGFpbmVyIiwicG9zdGVyIiwibXV0ZWQiLCJsb29wIiwiYXV0b1BsYXkiLCJ2aWRlbyIsInBsYXlzSW5saW5lIiwiaW5pdGlhbFZhbHVlIiwidXNlU3RhdGUiLCJzZXRWYWx1ZSIsIm5ld1ZhbHVlIiwicHJldlZhbHVlIiwiY2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJoYW5kbGVDbGljayIsImV2ZW50IiwiY3VycmVudCIsImNvbnRhaW5zIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImlzZmYiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJ0b0xvd2VyQ2FzZSIsImluZGV4T2YiLCJhZGRFdmVudCIsIm1ldGhvZCIsImF0dGFjaEV2ZW50IiwiY29uY2F0Iiwid2luZG93IiwiZ2V0TW9kcyIsIm1vZGlmaWVyIiwibW9kcyIsInNsaWNlIiwiZ2V0S2V5cyIsImtleXMiLCJyZXBsYWNlIiwic3BsaXQiLCJpbmRleCIsImxhc3RJbmRleE9mIiwic3BsaWNlIiwiX2tleU1hcCIsImJhY2tzcGFjZSIsInRhYiIsImNsZWFyIiwiZW50ZXIiLCJyZXR1cm4iLCJlc2MiLCJlc2NhcGUiLCJzcGFjZSIsImxlZnQiLCJ1cCIsInJpZ2h0IiwiZG93biIsImRlbCIsImRlbGV0ZSIsImlucyIsImluc2VydCIsImhvbWUiLCJlbmQiLCJwYWdldXAiLCJwYWdlZG93biIsImNhcHNsb2NrIiwibnVtXzAiLCJudW1fMSIsIm51bV8yIiwibnVtXzMiLCJudW1fNCIsIm51bV81IiwibnVtXzYiLCJudW1fNyIsIm51bV84IiwibnVtXzkiLCJudW1fbXVsdGlwbHkiLCJudW1fYWRkIiwibnVtX2VudGVyIiwibnVtX3N1YnRyYWN0IiwibnVtX2RlY2ltYWwiLCJudW1fZGl2aWRlIiwiJyIsIl9tb2RpZmllciIsInNoaWZ0Iiwib3B0aW9uIiwiY3RybCIsImNvbnRyb2wiLCJjbWQiLCJjb21tYW5kIiwibW9kaWZpZXJNYXAiLCIxNiIsIjE4IiwiMTciLCI5MSIsInNoaWZ0S2V5IiwiY3RybEtleSIsImFsdEtleSIsIm1ldGFLZXkiLCJfbW9kcyIsIl9oYW5kbGVycyIsIl9kb3duS2V5cyIsIl9zY29wZSIsImVsZW1lbnRIYXNCaW5kRXZlbnQiLCJjb2RlIiwieCIsInRvVXBwZXJDYXNlIiwiY2hhckNvZGVBdCIsInNldFNjb3BlIiwic2NvcGUiLCJnZXRTY29wZSIsImVhY2hVbmJpbmQiLCJfcmVmIiwiX3JlZiRzcGxpdEtleSIsInNwbGl0S2V5IiwiZm9yRWFjaCIsIm9yaWdpbktleSIsInVuYmluZEtleXMiLCJsZW4iLCJsYXN0S2V5Iiwia2V5Q29kZSIsInJlY29yZCIsImExIiwiYTIiLCJhcnIxIiwiYXJyMiIsImlzSW5kZXgiLCJjb21wYXJlQXJyYXkiLCJldmVudEhhbmRsZXIiLCJoYW5kbGVyIiwibW9kaWZpZXJzTWF0Y2giLCJ5Iiwic2hvcnRjdXQiLCJwcmV2ZW50RGVmYXVsdCIsInJldHVyblZhbHVlIiwic3RvcFByb3BhZ2F0aW9uIiwiY2FuY2VsQnViYmxlIiwiZGlzcGF0Y2giLCJhc3RlcmlzayIsIndoaWNoIiwiY2hhckNvZGUiLCJob3RrZXlzIiwiZmlsdGVyIiwidGhpcyIsInB1c2giLCJrZXlOYW1lIiwia2V5TnVtIiwiZ2V0TW9kaWZpZXJTdGF0ZSIsImtleWRvd24iLCJrZXl1cCIsIl9pIiwia2V5U2hvcnRjdXQiLCJfZG93bktleXNDdXJyZW50IiwiYSIsInNvcnQiLCJqb2luIiwiZWxlbWVudCIsInVuZGVmaW5lZCIsInRvU3RyaW5nIiwiaXNFbGVtZW50QmluZCIsImNsZWFyTW9kaWZpZXIiLCJfYXBpIiwiZGVsZXRlU2NvcGUiLCJuZXdTY29wZSIsImhhbmRsZXJzIiwiZ2V0UHJlc3NlZEtleUNvZGVzIiwiaXNQcmVzc2VkIiwic3JjRWxlbWVudCIsInRhZ05hbWUiLCJmbGFnIiwiaXNDb250ZW50RWRpdGFibGUiLCJyZWFkT25seSIsInVuYmluZCIsImtleXNJbmZvIiwiaW5mbyIsIl9sZW4iLCJhcmd1bWVudHMiLCJhcmdzIiwiX2tleSIsIl9ob3RrZXlzIiwibm9Db25mbGljdCIsImRlZXAiLCJ1c2VJc0hvdGtleVByZXNzZWQiLCJ0YWdGaWx0ZXIiLCJlbmFibGVPblRhZ3MiLCJ0YXJnZXRUYWdOYW1lIiwiQm9vbGVhbiIsIm9wdGlvbnMiLCJkZXBzIiwiX3JlZjIiLCJfcmVmMiRmaWx0ZXJQcmV2ZW50RGUiLCJmaWx0ZXJQcmV2ZW50RGVmYXVsdCIsIl9yZWYyJGVuYWJsZWQiLCJlbmFibGVkIiwiX3JlZjIkZW5hYmxlT25Db250ZW50IiwiZW5hYmxlT25Db250ZW50RWRpdGFibGUiLCJtZW1vaXNlZENhbGxiYWNrIiwia2V5Ym9hcmRFdmVudCIsImhvdGtleXNFdmVudCIsIl9rZXlib2FyZEV2ZW50JHRhcmdldCIsImFjdGl2ZUVsZW1lbnQiLCJpc0hvdGtleVByZXNzZWQiXSwibWFwcGluZ3MiOiI2REFDRSxJQUFJQSxFQUFtQixHQUd2QixTQUFTQyxFQUFvQkMsR0FHNUIsR0FBR0YsRUFBaUJFLEdBQ25CLE9BQU9GLEVBQWlCRSxHQUFVQyxRQUduQyxJQUFJQyxFQUFTSixFQUFpQkUsR0FBWSxDQUN6Q0csRUFBR0gsRUFDSEksR0FBRyxFQUNISCxRQUFTLElBVVYsT0FOQUksRUFBUUwsR0FBVU0sS0FBS0osRUFBT0QsUUFBU0MsRUFBUUEsRUFBT0QsUUFBU0YsR0FHL0RHLEVBQU9FLEdBQUksRUFHSkYsRUFBT0QsUUEwRGYsT0FyREFGLEVBQW9CUSxFQUFJRixFQUd4Qk4sRUFBb0JTLEVBQUlWLEVBR3hCQyxFQUFvQlUsRUFBSSxTQUFTUixFQUFTUyxFQUFNQyxHQUMzQ1osRUFBb0JhLEVBQUVYLEVBQVNTLElBQ2xDRyxPQUFPQyxlQUFlYixFQUFTUyxF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ekMsUUFDaEIwQyxFQUF3QkQsRUFBTUUscUJBQzlCQSxPQUFpRCxJQUExQkQsR0FBMENBLEVBQ2pFRSxFQUFnQkgsRUFBTUksUUFDdEJBLE9BQTRCLElBQWxCRCxHQUFrQ0EsRUFDNUNFLEVBQXdCTCxFQUFNTSx3QkFDOUJBLE9BQW9ELElBQTFCRCxHQUEyQ0EsRUFFckU5UyxFQUFNLGlCQUFPLE1BRWJnVCxFQUFtQix1QkFBWSxTQUFVQyxFQUFlQyxHQUMxRCxJQUFJQyxFQUVKLE9BQUl6RCxJQUFXQSxFQUFPdUQsSUFDWk4sS0EzQkxSLEVBK0IrQmMsRUEvQmpCLENBQUMsUUFBUyxXQUFZLGFBK0JjZCxFQUFVYyxFQUFlYixJQUFtRSxPQUFqRGUsRUFBd0JGLEVBQWNoUyxTQUFtQmtTLEVBQXNCN0Isb0JBQXNCeUIsS0FJbkwsT0FBaEIvUyxFQUFJOEgsU0FBb0JFLFNBQVNvTCxnQkFBa0JwVCxFQUFJOEgsV0FDekRMLEVBQVN3TCxFQUFlQyxJQUNqQixLQUlSVixFQUFPLENBQUN4UyxFQUFLb1MsRUFBYzFDLEdBQVEvRyxPQUFPNkosR0FBUSxDQUFDeFMsRUFBS29TLEVBQWMxQyxJQWdCekUsT0FmQSxxQkFBVSxXQUNSLEdBQUttRCxFQVVMLE9BTEk1QyxJQUFxQixJQUFaRCxJQUNYdUMsRUFBUXZDLFNBQVUsR0FHcEIsRUFBUTlHLEVBQU1xSixHQUFXLEdBQUlTLEdBQ3RCLFdBQ0wsT0FBTyxFQUFReEIsT0FBT3RJLEVBQU04SixNQUU3QixDQUFDQSxFQUFrQjlKLEVBQU0ySixJQUNyQjdTLEVBR1QsSUFBSXFULEVBQWtCLEVBQVFuQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAxMCk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJ2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY2Mob2JqKSB7XG4gIHZhciBvdXQgPSBcIlwiXG5cbiAgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJudW1iZXJcIikgcmV0dXJuIG9iaiB8fCBcIlwiXG5cbiAgaWYgKGlzQXJyYXkob2JqKSlcbiAgICBmb3IgKHZhciBrID0gMCwgdG1wOyBrIDwgb2JqLmxlbmd0aDsgaysrKSB7XG4gICAgICBpZiAoKHRtcCA9IGNjKG9ialtrXSkpICE9PSBcIlwiKSB7XG4gICAgICAgIG91dCArPSAob3V0ICYmIFwiIFwiKSArIHRtcFxuICAgICAgfVxuICAgIH1cbiAgZWxzZVxuICAgIGZvciAodmFyIGsgaW4gb2JqKSB7XG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGspICYmIG9ialtrXSkgb3V0ICs9IChvdXQgJiYgXCIgXCIpICsga1xuICAgIH1cblxuICByZXR1cm4gb3V0XG59XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEJ1dHRvbkJhZGdlIH0gZnJvbSBcIi4vQnV0dG9uQmFkZ2VcIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBMYWJlbCB9IGZyb20gXCIuL0xhYmVsXCI7XHJcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbiB9IGZyb20gXCIuL0ljb25cIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b24gfSBmcm9tIFwiLi9CdXR0b25cIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b25MaW5rIH0gZnJvbSBcIi4vQnV0dG9uTGlua1wiO1xyXG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbG9yU3dhdGNoIH0gZnJvbSBcIi4vQ29sb3JTd2F0Y2hcIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBNb2RhbCB9IGZyb20gXCIuL01vZGFsXCI7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibGlzdFZpZXdJdGVtXCI6XCJfMWZqMmFuaWVRMEpLeENBWmtTYWFwa1wifTsiLCJleHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0J1dHRvbkJhZGdlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uTGlua1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0NoZWNrYm94XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQ29sb3JQaWNrZXJcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclN3YXRjaFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0NvbmZpcm1hdGlvbk1vZGFsXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvRmlsZUlucHV0XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ljb25cIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JY29uQnV0dG9uXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmtcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JbWFnZVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0xpc3RWaWV3XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvTWVudVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL01vZGFsXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvT3ZlcmxheVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0xhYmVsXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVGV4dElucHV0XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVG9hc3RcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9WaWRlb1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9ob29rc1wiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQnV0dG9uQmFkZ2UubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBCdXR0b25CYWRnZVByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQnV0dG9uQmFkZ2UoeyBjaGlsZHJlbiwgY2xhc3NOYW1lIH06IEJ1dHRvbkJhZGdlUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuYnV0dG9uQmFkZ2UsIGNsYXNzTmFtZV0pfT57Y2hpbGRyZW59PC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgQnV0dG9uQmFkZ2U7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiYnV0dG9uQmFkZ2VcIjpcIl8xVWxZRkVHYzNkTWd0b05pbDZTT3g1XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9CdXR0b24ubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIEJ1dHRvblByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGludmVydGVkPzogYm9vbGVhbjtcclxuICByb3VuZGVkPzogYm9vbGVhbjtcclxuICBub1NoYWRvdz86IGJvb2xlYW47XHJcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICBub0JvcmRlcj86IGJvb2xlYW47XHJcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHk/OiBib29sZWFuO1xyXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5PzogYm9vbGVhbjtcclxuICBhdXRvRm9jdXM/OiBib29sZWFuO1xyXG4gIG9uQ2xpY2s/OiAoZXZlbnQ/OiBTeW50aGV0aWNFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHZvaWQ7XHJcbiAgc2l6ZT86IFNpemU7XHJcbiAgdHlwZT86IFwic3VibWl0XCIgfCBcInJlc2V0XCIgfCBcImJ1dHRvblwiO1xyXG4gIGFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xyXG4gIG9mZnNldFNpZGVzPzogQXJyYXk8XCJsZWZ0XCIgfCBcInJpZ2h0XCI+O1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQnV0dG9uKHtcclxuICBjaGlsZHJlbixcclxuICBjbGFzc05hbWUsXHJcbiAgb25DbGljayxcclxuICBjb250YWluZXJSZWYsXHJcbiAgZGlzYWJsZWQgPSBmYWxzZSxcclxuICBpbnZlcnRlZCA9IGZhbHNlLFxyXG4gIHJvdW5kZWQgPSBmYWxzZSxcclxuICBub1NoYWRvdyA9IGZhbHNlLFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG4gIG5vQm9yZGVyID0gZmFsc2UsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBzdHJldGNoSG9yaXpvbnRhbGx5ID0gZmFsc2UsXHJcbiAgc3RyZXRjaFZlcnRpY2FsbHkgPSBmYWxzZSxcclxuICBhdXRvRm9jdXMgPSBmYWxzZSxcclxuICBvZmZzZXRTaWRlcyA9IFtdLFxyXG4gIGFsaWduID0gXCJjZW50ZXJcIixcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICB0eXBlLFxyXG59OiBCdXR0b25Qcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICBzdHlsZXNbYWxpZ25dLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcclxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXHJcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcclxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcclxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hWZXJ0aWNhbGx5XTogc3RyZXRjaFZlcnRpY2FsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgIF0pfVxyXG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxyXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxyXG4gICAgICB0eXBlPXt0eXBlfVxyXG4gICAgICByb2xlPVwiYnV0dG9uXCJcclxuICAgID5cclxuICAgICAge3R5cGVvZiBjaGlsZHJlbiAhPT0gXCJzdHJpbmdcIiAmJlxyXG4gICAgICBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSAmJlxyXG4gICAgICBjaGlsZHJlbi5sZW5ndGggPyAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jb250ZW50fT57Y2hpbGRyZW59PC9kaXY+XHJcbiAgICAgICkgOiAoXHJcbiAgICAgICAgY2hpbGRyZW5cclxuICAgICAgKX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbjtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xMnc1V09GM0tzYTJKQjUtWU9YeUQ3XCIsXCJsZWZ0XCI6XCJfMlRGVjcyRHJReDVKR1NoTmN1dDRFLVwiLFwic21hbGxcIjpcInVUQnJjanBIcDk2UkN3RjVVRHpmMFwiLFwibGFyZ2VcIjpcIl8xNFNTZnM1U1ZXSzdOeHVaQnFNZ3pCXCIsXCJ4bGFyZ2VcIjpcIl8xU1F1MlFXdzJhN2V3NDdXVzEyWlNnXCIsXCJpbnZlcnRlZFwiOlwiXzJoWmhoaThCZ0VfZWtRVm45ZVg5RFhcIixcInJvdW5kZWRcIjpcIlZCRE9TY1ljUW5VMmV5dGtBX1BjNlwiLFwicmlnaHRPZmZzZXRcIjpcIl8yR1RZM1htYU91OTIzTTlzRVJzNmFrXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfMTVRMEdHa2dZSl9hTG0wMW5HRTVZaFwiLFwibm9TaGFkb3dcIjpcIlJld21EcWpwNm5VZUVZSEVLelRKRFwiLFwibm9Cb3JkZXJcIjpcIm5acUlVUFQ4Y1o4N0JXNHI4a3hVXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzY2OWxSNHkyQUg5N0ExbHk1TVlXT1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzNpY3V0WEh3eklpb3d0N2JWYTNZaWJcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMmtDa3hQa3BsUDF4cWpma2Vwb3lOcFwiLFwibm9QYWRkaW5nXCI6XCJfM2tOYkNnY0ktUl9GRlEtM082VDBsYVwiLFwiY29udGVudFwiOlwiXzJiRjFBU2NFeHNrdU9wdXpkLWNEXzZcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgRWxlbWVudFR5cGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0J1dHRvbkxpbmsubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIE9mZnNldFNpZGUgPSBcImxlZnRcIiB8IFwicmlnaHRcIjtcclxuXHJcbnR5cGUgQnV0dG9uTGlua1Byb3BzID1cclxuICB8IHtcclxuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcclxuICAgICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gICAgICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xyXG4gICAgICBpbnZlcnRlZD86IGJvb2xlYW47XHJcbiAgICAgIHJvdW5kZWQ/OiBib29sZWFuO1xyXG4gICAgICB0cmFuc3BhcmVudD86IGJvb2xlYW47XHJcbiAgICAgIG5vU2hhZG93PzogYm9vbGVhbjtcclxuICAgICAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICAgICAgbm9Cb3JkZXI/OiBib29sZWFuO1xyXG4gICAgICBzdHJldGNoSG9yaXpvbnRhbGx5PzogYm9vbGVhbjtcclxuICAgICAgc3RyZXRjaFZlcnRpY2FsbHk/OiBib29sZWFuO1xyXG4gICAgICBzaXplPzogU2l6ZTtcclxuICAgICAgb2Zmc2V0U2lkZXM/OiBBcnJheTxPZmZzZXRTaWRlPjtcclxuICAgICAgYWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCI7XHJcbiAgICB9XHJcbiAgfCBhbnk7XHJcblxyXG5mdW5jdGlvbiBCdXR0b25MaW5rKHtcclxuICBhczogQ29tcG9uZW50LFxyXG4gIGNoaWxkcmVuLFxyXG4gIGNsYXNzTmFtZSxcclxuICBzaXplLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBpbnZlcnRlZCA9IGZhbHNlLFxyXG4gIHJvdW5kZWQgPSBmYWxzZSxcclxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxyXG4gIG5vU2hhZG93ID0gZmFsc2UsXHJcbiAgbm9QYWRkaW5nID0gZmFsc2UsXHJcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcclxuICBzdHJldGNoSG9yaXpvbnRhbGx5ID0gZmFsc2UsXHJcbiAgc3RyZXRjaFZlcnRpY2FsbHkgPSBmYWxzZSxcclxuICBvZmZzZXRTaWRlcyA9IFtdLFxyXG4gIGFsaWduID0gXCJjZW50ZXJcIixcclxuICAuLi5wcm9wc1xyXG59OiBCdXR0b25MaW5rUHJvcHMpIHtcclxuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPENvbXBvbmVudFxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgZGF0YS10ZXN0aWQ9XCJidXR0b24tbGlua1wiXHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXHJcbiAgICAgICAgc3R5bGVzW3NpemVdLFxyXG4gICAgICAgIHN0eWxlc1thbGlnbl0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxyXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcclxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcclxuICAgICAgICAgIFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nLFxyXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxyXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxyXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoSG9yaXpvbnRhbGx5XTogc3RyZXRjaEhvcml6b250YWxseSxcclxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaFZlcnRpY2FsbHldOiBzdHJldGNoVmVydGljYWxseSxcclxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxyXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgXSl9XHJcbiAgICAgIHsuLi5wcm9wc31cclxuICAgID5cclxuICAgICAge3R5cGVvZiBjaGlsZHJlbiAhPT0gXCJzdHJpbmdcIiAmJlxyXG4gICAgICBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSAmJlxyXG4gICAgICBjaGlsZHJlbi5sZW5ndGggPyAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jb250ZW50fT57Y2hpbGRyZW59PC9kaXY+XHJcbiAgICAgICkgOiAoXHJcbiAgICAgICAgY2hpbGRyZW5cclxuICAgICAgKX1cclxuICAgIDwvQ29tcG9uZW50PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbkxpbms7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMlF1OVJhRzU1cFd5SmFUX18zX29GQVwiLFwibGVmdFwiOlwiXzNueDNnTlB6ajZMVF8xaHduUUh4T0pcIixcInNtYWxsXCI6XCJfMkx2XzZ4eDJHbDMzNUtUOUlvb2ozZ1wiLFwibWVkaXVtXCI6XCJfM0h4OHBoYXozekxxTnNlQXBOSVdaSFwiLFwibGFyZ2VcIjpcIl8yLU9FWUZvSXZsczROMkNSdVktZUpyXCIsXCJ4bGFyZ2VcIjpcIl82eEZZQVBBUHdBV2xobTBnZHRvWlJcIixcImludmVydGVkXCI6XCJfMnBFR2lLM0t1UG5FdndpT0NEZ0ZEYVwiLFwicm91bmRlZFwiOlwiXzF6eVZLc21velBSdExIRHRfajYxNE5cIixcInJpZ2h0T2Zmc2V0XCI6XCJfMXJZdnRxblp5STRScnVsQzdLR2NvdVwiLFwibGVmdE9mZnNldFwiOlwiXzNUcjdlTzRFczFCb3RoMktfc2lUQU5cIixcIm5vU2hhZG93XCI6XCJfMndaM0dJSTNvTmQ4SVg3YWdhLWFNdVwiLFwidHJhbnNwYXJlbnRcIjpcIl8xVEtncFNZbF9BMElTa0JjVDFqbHk3XCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJfM3AyVFk0bm9kVml1OWp4LUx6R0NOZVwiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8zZ0V3a1Jwcm5TX0lSRXUzS3ROek1EXCIsXCJub1BhZGRpbmdcIjpcIl8ySnBLSnJ1bUFUY1RUUlQ3eGlmZjlpXCIsXCJub0JvcmRlclwiOlwiXzFQM1AyNzR3b3U2bEVBODdnNnJGVjJcIixcImNvbnRlbnRcIjpcInNORHJxM2NYNkk2US1PdXVzejdUaVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrYm94IH0gZnJvbSBcIi4vQ2hlY2tib3hcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IExhYmVsIH0gZnJvbSBcIi4uL0xhYmVsXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ2hlY2tib3gubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIENoZWNrYm94UHJvcHMgPSB7XHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgb25DaGFuZ2U6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBjaGVja2VkPzogYm9vbGVhbjtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBzaXplPzogU2l6ZTtcclxuICBhdXRvRm9jdXM/OiBib29sZWFuO1xyXG4gIGluZGV0ZXJtaW5hdGU/OiBib29sZWFuO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQ2hlY2tib3goe1xyXG4gIGxhYmVsLFxyXG4gIG9uQ2hhbmdlLFxyXG4gIHBsYWNlaG9sZGVyLFxyXG4gIGNoZWNrZWQsXHJcbiAgZGlzYWJsZWQsXHJcbiAgbmFtZSxcclxuICBpbmRldGVybWluYXRlLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG4gIGF1dG9Gb2N1cyA9IGZhbHNlLFxyXG59OiBDaGVja2JveFByb3BzKSB7XHJcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXHJcbiAgICAoZTogUmVhY3QuRm9ybUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxyXG4gICAgICBvbkNoYW5nZSgoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCksXHJcbiAgICBbb25DaGFuZ2VdXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxMYWJlbCB2YWx1ZT17bGFiZWx9PlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBkYXRhLXRlc3RpZD1cImNoZWNrYm94XCJcclxuICAgICAgICByZWY9eyhpbnB1dFJlZikgPT4ge1xyXG4gICAgICAgICAgaWYgKGlucHV0UmVmKSB7XHJcbiAgICAgICAgICAgIGlucHV0UmVmLmluZGV0ZXJtaW5hdGUgPSBpbmRldGVybWluYXRlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH19XHJcbiAgICAgICAgY2hlY2tlZD17Y2hlY2tlZH1cclxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmlucHV0LCBzdHlsZXNbc2l6ZV1dKX1cclxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxyXG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cclxuICAgICAgICBuYW1lPXtuYW1lfVxyXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XHJcbiAgICAgIC8+XHJcbiAgICA8L0xhYmVsPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IENoZWNrYm94O1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9MYWJlbC5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIExhYmVsSW5wdXRQcm9wcyA9IHtcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxMYWJlbEVsZW1lbnQ+O1xyXG4gIHZhbHVlOiBSZWFjdE5vZGU7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBMYWJlbCh7IGNsYXNzTmFtZSwgY2hpbGRyZW4sIHZhbHVlLCBjb250YWluZXJSZWYgfTogTGFiZWxJbnB1dFByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxsYWJlbFxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbnRhaW5lciwgY2xhc3NOYW1lXSl9XHJcbiAgICA+XHJcbiAgICAgIHt2YWx1ZX1cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9sYWJlbD5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMYWJlbDtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xNURic19YNUlUOXRrbUFzTVhQTlZKXCJ9OyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiaW5wdXRcIjpcIl8xcDJobWptTTFxTlpUWklpRkhGSXh1XCIsXCJzbWFsbFwiOlwiXzFKaV9fOVUtRDVVZFcyTkpXV1VQckNcIixcIm1lZGl1bVwiOlwiXzNLSlMyRlJTMnRkOTBRcjZyMzNMMjhcIixcImxhcmdlXCI6XCJfMWo3b2RDRUVYMkRrZ2dwSVp1RjRNSVwiLFwieGxhcmdlXCI6XCJfM0tad2hVbXhCSmViMnh0azg4Z2FHV1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbG9yUGlja2VyIH0gZnJvbSBcIi4vQ29sb3JQaWNrZXJcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgeyBDb2xvclN3YXRjaCB9IGZyb20gXCIuLi9Db2xvclN3YXRjaFwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbG9yUGlja2VyLm1vZHVsZS5jc3NcIjtcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuXHJcbnR5cGUgQ29sb3JQaWNrZXJQcm9wcyA9IHtcclxuICBjb2xvcnM6IENvbG9yW107XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBkaXJlY3Rpb24/OiBcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIjtcclxuICBvblNlbGVjdDogKGNvbG9yOiBDb2xvcikgPT4gdm9pZDtcclxuICBzZWxlY3RlZENvbG9yPzogQ29sb3I7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBDb2xvclBpY2tlcih7XHJcbiAgY29sb3JzLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBvblNlbGVjdCxcclxuICBzZWxlY3RlZENvbG9yLFxyXG4gIGRpcmVjdGlvbiA9IFwidmVydGljYWxcIixcclxufTogQ29sb3JQaWNrZXJQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29sb3JQaWNrZXIsIHN0eWxlc1tkaXJlY3Rpb25dXSl9XHJcbiAgICA+XHJcbiAgICAgIHtjb2xvcnMubWFwKChjb2xvcjogQ29sb3IpID0+IHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPENvbG9yU3dhdGNoXHJcbiAgICAgICAgICAgIGtleT17Y29sb3Iua2V5fVxyXG4gICAgICAgICAgICBjb2xvcj17Y29sb3J9XHJcbiAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e2NvbG9yID09PSBzZWxlY3RlZENvbG9yfVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblNlbGVjdChjb2xvcil9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pfVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgQ29sb3JQaWNrZXI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Db2xvclN3YXRjaC5tb2R1bGUuY3NzXCI7XHJcbmltcG9ydCB7IENvbG9yIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIENvbG9yU3dhdGNoUHJvcHMgPSB7XHJcbiAgY29sb3I6IENvbG9yO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XHJcbiAgaXNTZWxlY3RlZD86IGJvb2xlYW47XHJcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBDb2xvclN3YXRjaCh7XHJcbiAgY29sb3IsXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIG9uQ2xpY2ssXHJcbiAgaXNTZWxlY3RlZCA9IGZhbHNlLFxyXG59OiBDb2xvclN3YXRjaFByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxidXR0b25cclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5jb2xvclN3YXRjaCxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBbc3R5bGVzLnNlbGVjdGVkXTogaXNTZWxlY3RlZCxcclxuICAgICAgICB9LFxyXG4gICAgICBdKX1cclxuICAgICAgZGF0YS10ZXN0aWQ9XCJjb2xvci1zd2F0Y2hcIlxyXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxyXG4gICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmhleENvZGUgfX1cclxuICAgID5cclxuICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuc3JPbmx5fT57YFNlbGVjdCAke2NvbG9yLmxhYmVsfSBjb2xvcmB9PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgQ29sb3JTd2F0Y2g7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29sb3JTd2F0Y2hcIjpcImR2N2l1Y1RRcS1aaFVSVXVwLVB1VlwiLFwic2VsZWN0ZWRcIjpcIl8xTGJBZ3lpaUVfMXVqVzkwZC02aXV1XCIsXCJzck9ubHlcIjpcIl8xZXRrdXNsaFpWRVBOc2sxUWdoVEVvXCJ9OyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29sb3JQaWNrZXJcIjpcIl8yRjFPbi1TQTNtTWtoWlBGckRqV0ljXCIsXCJob3Jpem9udGFsXCI6XCJfMVdGWXlNa2tZTEw3M25fX3JQVVVidlwiLFwidmVydGljYWxcIjpcIl8xbElvYTJial90YmtRaWUwSXBFMkxuXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQ29uZmlybWF0aW9uTW9kYWwgfSBmcm9tIFwiLi9Db25maXJtYXRpb25Nb2RhbFwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgeyBNb2RhbCB9IGZyb20gXCIuLi9Nb2RhbFwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbmZpcm1hdGlvbk1vZGFsLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgQ29uZmlybWF0aW9uTW9kYWxQcm9wcyA9IHtcclxuICBidXR0b25zTGVmdD86IFJlYWN0RWxlbWVudFtdO1xyXG4gIGJ1dHRvbnNSaWdodD86IFJlYWN0RWxlbWVudFtdO1xyXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgaGVhZGVyOiBzdHJpbmc7XHJcbiAgaXNPcGVuOiBib29sZWFuO1xyXG4gIG5vUGFkZGluZz86IGJvb2xlYW47XHJcbiAgbm9PdmVybGF5PzogYm9vbGVhbjtcclxuICBub1NoYWRvdz86IGJvb2xlYW47XHJcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XHJcbiAgYmFzZVpJbmRleD86IG51bWJlcjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIENvbmZpcm1hdGlvbk1vZGFsKHtcclxuICBjaGlsZHJlbixcclxuICBjb250YWluZXJSZWYsXHJcbiAgaGVhZGVyLFxyXG4gIGlzT3BlbixcclxuICBidXR0b25zTGVmdCA9IFtdLFxyXG4gIGJ1dHRvbnNSaWdodCA9IFtdLFxyXG4gIG9uQ2xvc2UgPSAoKSA9PiB7fSxcclxuICBub1BhZGRpbmcgPSBmYWxzZSxcclxuICBub092ZXJsYXkgPSBmYWxzZSxcclxuICBub1NoYWRvdyA9IGZhbHNlLFxyXG4gIGJhc2VaSW5kZXggPSAxMDE5LFxyXG59OiBDb25maXJtYXRpb25Nb2RhbFByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxNb2RhbFxyXG4gICAgICBjb250YWluZXJSZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgaXNPcGVuPXtpc09wZW59XHJcbiAgICAgIG9uQ2xvc2U9e29uQ2xvc2V9XHJcbiAgICAgIG5vT3ZlcmxheT17bm9PdmVybGF5fVxyXG4gICAgICBub1NoYWRvdz17bm9TaGFkb3d9XHJcbiAgICAgIGJhc2VaSW5kZXg9e2Jhc2VaSW5kZXh9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGFpbmVyfT5cclxuICAgICAgICA8aDEgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxIZWFkZXJ9PntoZWFkZXJ9PC9oMT5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICAgICAgc3R5bGVzLm1vZGFsQ29udGVudCxcclxuICAgICAgICAgICAgeyBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyB9LFxyXG4gICAgICAgICAgXSl9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b25zQ29udGFpbmVyfT5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b25zfT57YnV0dG9uc0xlZnR9PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9uc30+e2J1dHRvbnNSaWdodH08L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L01vZGFsPlxyXG4gICk7XHJcbn1cclxuXHJcbkNvbmZpcm1hdGlvbk1vZGFsLmRpc3BsYXlOYW1lID0gXCJDb25maXJtYXRpb25Nb2RhbFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgQ29uZmlybWF0aW9uTW9kYWw7XHJcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgdXNlSG90a2V5cyB9IGZyb20gXCJyZWFjdC1ob3RrZXlzLWhvb2tcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Nb2RhbC5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIE1vZGFsUHJvcHMgPSB7XHJcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIGlzT3BlbjogYm9vbGVhbjtcclxuICBvbkNsb3NlPzogKCkgPT4gdm9pZDtcclxuICBidXR0b24/OiBSZWFjdE5vZGU7XHJcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gIG5vU2hhZG93PzogYm9vbGVhbjtcclxuICBub092ZXJsYXk/OiBib29sZWFuO1xyXG4gIGJhc2VaSW5kZXg/OiBudW1iZXI7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBNb2RhbCh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGlzT3BlbixcclxuICBidXR0b24sXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBub1NoYWRvdyA9IGZhbHNlLFxyXG4gIG5vT3ZlcmxheSA9IGZhbHNlLFxyXG4gIG9uQ2xvc2UgPSAoKSA9PiB7fSxcclxuICBiYXNlWkluZGV4ID0gMTAwOSxcclxufTogTW9kYWxQcm9wcykge1xyXG4gIHVzZUhvdGtleXMoXCJFc2NhcGVcIiwgb25DbG9zZSk7XHJcblxyXG4gIGNvbnN0IGhhbmRsZU92ZXJsYXlDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcclxuICAgIG9uQ2xvc2UoKTtcclxuICB9LCBbb25DbG9zZV0pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgaXNPcGVuICYmIChcclxuICAgICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgc3R5bGU9e3sgekluZGV4OiBiYXNlWkluZGV4IH19XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICAgICAgc3R5bGVzLm92ZXJsYXksXHJcbiAgICAgICAgICAgIHsgW3N0eWxlcy5ub092ZXJsYXldOiBub092ZXJsYXkgfSxcclxuICAgICAgICAgIF0pfVxyXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJtb2RhbC1vdmVybGF5XCJcclxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU92ZXJsYXlDbGlja31cclxuICAgICAgICAvPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIHN0eWxlPXt7IHpJbmRleDogYmFzZVpJbmRleCArIDEgfX1cclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgICAgICBzdHlsZXMubW9kYWwsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXHJcbiAgICAgICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXSl9XHJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vZGFsXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAge2J1dHRvbiAmJiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIHN0eWxlPXt7IHpJbmRleDogYmFzZVpJbmRleCArIDIgfX1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b259XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtidXR0b259XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIClcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNb2RhbDtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJvdmVybGF5XCI6XCJfMjBaS0dZNFR3WnhwMEtaNkU3eTRXQlwiLFwibm9PdmVybGF5XCI6XCJfMkFMdzJwLURIeFlEaFl2UnpRNGluQlwiLFwibW9kYWxcIjpcIl8yNUxCTjMxX21JMUkxdUhERFA0TzBJXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzNaMktsMXJFSFpRTUxVc1hGMWY3bG9cIixcIm5vU2hhZG93XCI6XCJfM0NmU1QtdG4tdHN2Y29kU3hlbGlRcVwiLFwibW9kYWxCdXR0b25cIjpcIl8xZU8weDNNMHBOOC03OUl1WXVUX0NsXCJ9OyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJLZ0M1cHd0c0hhdnVWT0x1YkFMYWVcIixcIm1vZGFsSGVhZGVyXCI6XCJfMWJUTlhNUjVtWkZYczFvMHV4a2hSUFwiLFwibW9kYWxDb250ZW50XCI6XCJxdVA1bzRROW5sVW8xZlQ3c2JQVkFcIixcIm5vUGFkZGluZ1wiOlwiXzFVZ29fREhTVDRSYld6SXhIUGhqN25cIixcIm1vZGFsQnV0dG9uc0NvbnRhaW5lclwiOlwiXzJiR0w3WGpEeTZzRTNKbGVVOThoanlcIixcIm1vZGFsQnV0dG9uc1wiOlwiXzNYZmZGZU45VkVJcHl0aG1WSjJVOENcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlSW5wdXQgfSBmcm9tIFwiLi9GaWxlSW5wdXRcIjtcclxuZXhwb3J0IHsgRmlsZUlucHV0U2l6ZSB9IGZyb20gXCIuL0ZpbGVJbnB1dFwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgQ2hhbmdlRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ZpbGVJbnB1dC5tb2R1bGUuY3NzXCI7XHJcblxyXG5leHBvcnQgdHlwZSBGaWxlSW5wdXRTaXplID0gU2l6ZTtcclxuXHJcbnR5cGUgUHJvcHMgPSB7XHJcbiAgb25DaGFuZ2U6IChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcclxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIGFjY2VwdD86IHN0cmluZztcclxuICBtdWx0aXBsZT86IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlucHV0UmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIGludmVydGVkPzogYm9vbGVhbjtcclxuICBub1NoYWRvdz86IGJvb2xlYW47XHJcbiAgbm9Cb3JkZXI/OiBib29sZWFuO1xyXG4gIG5vUGFkZGluZz86IGJvb2xlYW47XHJcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHk/OiBib29sZWFuO1xyXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5PzogYm9vbGVhbjtcclxuICByb3VuZGVkPzogYm9vbGVhbjtcclxuICBzaXplPzogRmlsZUlucHV0U2l6ZTtcclxufTtcclxuXHJcbmZ1bmN0aW9uIEZpbGVJbnB1dCh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgYWNjZXB0LFxyXG4gIG9uQ2hhbmdlLFxyXG4gIGlucHV0UmVmLFxyXG4gIG11bHRpcGxlID0gZmFsc2UsXHJcbiAgZGlzYWJsZWQgPSBmYWxzZSxcclxuICBpbnZlcnRlZCA9IGZhbHNlLFxyXG4gIG5vU2hhZG93ID0gZmFsc2UsXHJcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcclxuICBub1BhZGRpbmcgPSBmYWxzZSxcclxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxyXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHkgPSBmYWxzZSxcclxuICBzdHJldGNoVmVydGljYWxseSA9IGZhbHNlLFxyXG4gIHJvdW5kZWQgPSBmYWxzZSxcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxufTogUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGxhYmVsXHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5sYWJlbCxcclxuICAgICAgICBzdHlsZXNbc2l6ZV0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxyXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcclxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcclxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcclxuICAgICAgICAgIFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nLFxyXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxyXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoSG9yaXpvbnRhbGx5XTogc3RyZXRjaEhvcml6b250YWxseSxcclxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaFZlcnRpY2FsbHldOiBzdHJldGNoVmVydGljYWxseSxcclxuICAgICAgICB9LFxyXG4gICAgICBdKX1cclxuICAgID5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMuaW5wdXR9XHJcbiAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgIGlkPVwiZmlsZVwiXHJcbiAgICAgICAgYWNjZXB0PXthY2NlcHR9XHJcbiAgICAgICAgbXVsdGlwbGU9e211bHRpcGxlfVxyXG4gICAgICAgIHJlZj17aW5wdXRSZWZ9XHJcbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxyXG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cclxuICAgICAgLz5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9sYWJlbD5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGaWxlSW5wdXQ7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiaW5wdXRcIjpcIl8zVlh6cjZ6bVc3VDZhcng5X3ZDQUZWXCIsXCJsYWJlbFwiOlwiejdzMmhkd0dUM2tjejUxX21KeG12XCIsXCJzbWFsbFwiOlwiXzJ6cjU4aEtrZ2N3WU1CMXd1QUp0b1JcIixcImxhcmdlXCI6XCJfMUNOYkxlakk0NmozQ1NSVTd0UUdiZVwiLFwieGxhcmdlXCI6XCJfMnRqZVhkd3gzLWRuU185MjFydXBCbFwiLFwiaW52ZXJ0ZWRcIjpcIl8zMmxkTE1FTGtTeWRYZW9nOEJDQmktXCIsXCJyb3VuZGVkXCI6XCJYbjREZjdyUXhtMFFBSE5ldXZOTFwiLFwibm9TaGFkb3dcIjpcIk5lQU9vWWdiMGhPUG5UVnp3dGdERFwiLFwibm9Cb3JkZXJcIjpcIl8zd1Z6YjRQUnFoeHVwWGp1QjBSQmxTXCIsXCJub1BhZGRpbmdcIjpcIl8xeFB0WGVqX21oUERibHp2Y3JsZk84XCIsXCJ0cmFuc3BhcmVudFwiOlwiUzB6RGZnc1UxRGdPMFV1VFNPZms0XCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJlbWVnTENILVdfbjdLdVRKbE9zUUFcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJWSFpSNmhXSzZmU0RmUkx1aEg3b05cIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBGbG9hdGluZ1BhbmVsIH0gZnJvbSBcIi4vRmxvYXRpbmdQYW5lbFwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9GbG9hdGluZ1BhbmVsLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgUGxhY2VtZW50ID0ge1xyXG4gIGhvcml6b250YWw6XHJcbiAgICB8IFwicmlnaHRcIlxyXG4gICAgfCBcInJpZ2h0RWRnZVwiXHJcbiAgICB8IFwicmlnaHRPbkVkZ2VcIlxyXG4gICAgfCBcImxlZnRcIlxyXG4gICAgfCBcImxlZnRFZGdlXCJcclxuICAgIHwgXCJsZWZ0T25FZGdlXCJcclxuICAgIHwgXCJsZWZ0T25FZGdlXCJcclxuICAgIHwgXCJjZW50ZXJcIjtcclxuICB2ZXJ0aWNhbDpcclxuICAgIHwgXCJ0b3BcIlxyXG4gICAgfCBcInRvcEVkZ2VcIlxyXG4gICAgfCBcInRvcE9uRWRnZVwiXHJcbiAgICB8IFwiYm90dG9tXCJcclxuICAgIHwgXCJib3R0b21FZGdlXCJcclxuICAgIHwgXCJib3R0b21PbkVkZ2VcIlxyXG4gICAgfCBcImNlbnRlclwiO1xyXG4gIHBhcmVudDogXCJ2aWV3cG9ydFwiIHwgXCJjb250YWluZXJcIjtcclxufTtcclxuXHJcbnR5cGUgRmxvYXRpbmdQYW5lbFByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBsYXlvdXQ/OiBcImNvbHVtblwiIHwgXCJyb3dcIjtcclxuICBwbGFjZW1lbnQ/OiBQbGFjZW1lbnQ7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBGbG9hdGluZ1BhbmVsKHtcclxuICBjaGlsZHJlbixcclxuICBjb250YWluZXJSZWYsXHJcbiAgbGF5b3V0ID0gXCJjb2x1bW5cIixcclxuICBwbGFjZW1lbnQgPSB7IGhvcml6b250YWw6IFwiY2VudGVyXCIsIHZlcnRpY2FsOiBcImJvdHRvbVwiLCBwYXJlbnQ6IFwidmlld3BvcnRcIiB9LFxyXG59OiBGbG9hdGluZ1BhbmVsUHJvcHMpIHtcclxuICBjb25zdCBob3Jpem9udGFsUGxhY2VtZW50ID1cclxuICAgIHBsYWNlbWVudC5ob3Jpem9udGFsID09PSBcImNlbnRlclwiXHJcbiAgICAgID8gXCJob3Jpem9udGFsQ2VudGVyXCJcclxuICAgICAgOiBwbGFjZW1lbnQuaG9yaXpvbnRhbDtcclxuXHJcbiAgY29uc3QgdmVydGljYWxQbGFjZW1lbnQgPVxyXG4gICAgcGxhY2VtZW50LnZlcnRpY2FsID09PSBcImNlbnRlclwiID8gXCJ2ZXJ0aWNhbENlbnRlclwiIDogcGxhY2VtZW50LnZlcnRpY2FsO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgZGF0YS10ZXN0aWQ9XCJmbG9hdGluZy1wYW5lbFwiXHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXHJcbiAgICAgICAgc3R5bGVzW2hvcml6b250YWxQbGFjZW1lbnRdLFxyXG4gICAgICAgIHN0eWxlc1t2ZXJ0aWNhbFBsYWNlbWVudF0sXHJcbiAgICAgICAgc3R5bGVzW2xheW91dF0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy5maXhlZF06IHBsYWNlbWVudC5wYXJlbnQgIT09IFwiY29udGFpbmVyXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSl9XHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZsb2F0aW5nUGFuZWw7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMnIwRmtZSjdTSzFZakIzSEtITUFpaFwiLFwicm93XCI6XCJfM1ItRkY4ZU11MENTNGVOWDNsVGRDUlwiLFwiY29sdW1uXCI6XCJfMW9LT2VBZ1pqd3hOTTN1R2ZMdDZJT1wiLFwiZml4ZWRcIjpcIl8zb1FHV2dTSU5ieXRiNHV2OTJDU3ZUXCIsXCJwbGFpblwiOlwiaU1mOG9kLWJJcXNIQXZ4b2ZEdXpiXCIsXCJ0cmFuc3BhcmVudFwiOlwiZDJveXg1cHlzcWo4OThhUzhHM0U4XCIsXCJ0b3BcIjpcIl8xMWNQWXExZGhReXpWSU1aZWsxX0lvXCIsXCJ0b3BFZGdlXCI6XCJfMl9pbmVDeTFNUWxZUDZxTWV3ZDF6NVwiLFwidG9wT25FZGdlXCI6XCJfMXJ2Q3NEb2Q1YmxUT3lBbDRrRHdOMFwiLFwicmlnaHRcIjpcIl8xU0lZQmNSZ3FTNFZQaFc5TTgwWTR6XCIsXCJyaWdodEVkZ2VcIjpcIlFBNjlmMEQ4YlRDSkhyRE9yOG0xclwiLFwicmlnaHRPbkVkZ2VcIjpcIl8yUGlUVWwwSll6RUNuTzA4NTFnejNhXCIsXCJib3R0b21cIjpcIl8zMDVnQm1Ud0FlWFpmQV9NOXRzVk5vXCIsXCJib3R0b21FZGdlXCI6XCJfMVBjRFhiTFoyWEhQa2VpX0hfcjU4cFwiLFwiYm90dG9tT25FZGdlXCI6XCJfMnZvdDRxcHI1OFduYjZwdkhZbmprY1wiLFwibGVmdFwiOlwic0l0Z0JWNFd0RHg0dlozYS1QNGl4XCIsXCJsZWZ0RWRnZVwiOlwiXzFOSjFGeklfYWJLaS1XNmtjMnIyYzZcIixcImxlZnRPbkVkZ2VcIjpcIl8xMkV2d2JhVlFOV1BaZTM3U284TF9tXCIsXCJob3Jpem9udGFsQ2VudGVyXCI6XCJfMmppU3hFYkNUS1Z6RHRlR1ExdW9FZlwiLFwidmVydGljYWxDZW50ZXJcIjpcIl8yZjlENDZCQi1nZXpQdnc4VFp4SnZwXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ljb24ubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBJY29uUHJvcHMgPSB7XHJcbiAgYWx0Pzogc3RyaW5nO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MSW1hZ2VFbGVtZW50PjtcclxuICBpbnZlcnRlZD86IGJvb2xlYW47XHJcbiAgc3JjOiBzdHJpbmc7XHJcbiAgc2l6ZT86IFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCIgfCBcInhsYXJnZVwiO1xyXG59O1xyXG5mdW5jdGlvbiBJY29uKHtcclxuICBzcmMsXHJcbiAgYWx0LFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICBpbnZlcnRlZCA9IGZhbHNlLFxyXG59OiBJY29uUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGltZ1xyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgc3R5bGVzLmljb24sXHJcbiAgICAgICAgc3R5bGVzW3NpemVdLFxyXG4gICAgICAgIHsgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkIH0sXHJcbiAgICAgIF0pfVxyXG4gICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiaWNvblwiXHJcbiAgICAgIGFsdD17YWx0fVxyXG4gICAgICBzcmM9e3NyY31cclxuICAgIC8+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgSWNvbjtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJpY29uXCI6XCJfMzNjVE04aThxYWpGR3ktMDB0eTBSd1wiLFwic21hbGxcIjpcIk1VaTNpa3pjUFpkbzU5QWZvWGRPRlwiLFwibWVkaXVtXCI6XCJfMlZDS3F5NTlOU0ZkZkRpRTBveGFzelwiLFwibGFyZ2VcIjpcIl8yVVVVZjJuX2EwUFlwUThrb3dLSHpwXCIsXCJ4bGFyZ2VcIjpcIm9ESUVZOFU0VHdDSmtqRjd4YVFCT1wiLFwiaW52ZXJ0ZWRcIjpcIl8ycXpVdFUxVGRfYzU4dk04QUxxU1ZXXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbkJ1dHRvbiB9IGZyb20gXCIuL0ljb25CdXR0b25cIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0LCBTeW50aGV0aWNFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb25cIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9JY29uQnV0dG9uLm1vZHVsZS5jc3NcIjtcclxuaW1wb3J0IHsgQnV0dG9uQmFkZ2UgfSBmcm9tIFwiLi4vQnV0dG9uQmFkZ2VcIjtcclxuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5cclxudHlwZSBJY29uQnV0dG9uUHJvcHMgPSB7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XHJcbiAgc3JjOiBzdHJpbmc7XHJcbiAgYWx0OiBzdHJpbmc7XHJcbiAgYmFkZ2VDb250ZW50PzogUmVhY3ROb2RlO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICBpbnZlcnRlZD86IGJvb2xlYW47XHJcbiAgbm9TaGFkb3c/OiBib29sZWFuO1xyXG4gIG5vQm9yZGVyPzogYm9vbGVhbjtcclxuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XHJcbiAgcm91bmRlZD86IGJvb2xlYW47XHJcbiAgb25DbGljaz86IChldmVudD86IFN5bnRoZXRpY0V2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4gdm9pZDtcclxuICBzaXplPzogU2l6ZTtcclxuICB0eXBlPzogXCJzdWJtaXRcIiB8IFwicmVzZXRcIiB8IFwiYnV0dG9uXCI7XHJcbiAgb2Zmc2V0U2lkZXM/OiBBcnJheTxcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiPjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIEljb25CdXR0b24oe1xyXG4gIGNsYXNzTmFtZSxcclxuICBjb250YWluZXJSZWYsXHJcbiAgc3JjLFxyXG4gIGFsdCxcclxuICBiYWRnZUNvbnRlbnQgPSBudWxsLFxyXG4gIG9mZnNldFNpZGVzID0gW10sXHJcbiAgb25DbGljayA9ICgpID0+IHt9LFxyXG4gIGRpc2FibGVkID0gZmFsc2UsXHJcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcclxuICBub1NoYWRvdyA9IGZhbHNlLFxyXG4gIG5vQm9yZGVyID0gZmFsc2UsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICByb3VuZGVkID0gZmFsc2UsXHJcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXHJcbiAgdHlwZSA9IFwiYnV0dG9uXCIsXHJcbn06IEljb25CdXR0b25Qcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxyXG4gICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93LFxyXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxyXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxyXG4gICAgICAgICAgW3N0eWxlcy50b3BPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwidG9wXCIpLFxyXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMuYm90dG9tT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImJvdHRvbVwiKSxcclxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICBdKX1cclxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxyXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxyXG4gICAgICB0eXBlPXt0eXBlfVxyXG4gICAgICByb2xlPVwiYnV0dG9uXCJcclxuICAgID5cclxuICAgICAgPEljb24gc3JjPXtzcmN9IGFsdD17YWx0fSBzaXplPXtzaXplfSBpbnZlcnRlZD17aW52ZXJ0ZWR9IC8+XHJcbiAgICAgIHtiYWRnZUNvbnRlbnQgJiYgPEJ1dHRvbkJhZGdlPntiYWRnZUNvbnRlbnR9PC9CdXR0b25CYWRnZT59XHJcbiAgICA8L2J1dHRvbj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBJY29uQnV0dG9uO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiUmd5bGxYVHFwM19qWjZBMk5idmc2XCIsXCJzbWFsbFwiOlwiXzF3MGhabE9iZUw3RUc4N3pzTC05dk5cIixcIm1lZGl1bVwiOlwiRUsxYnZKWmpXMTE5RG83OVN0TDdJXCIsXCJsYXJnZVwiOlwiUGd5UVhLMXl5Q01xOEJTYVlDYmNoXCIsXCJ4bGFyZ2VcIjpcInFoa0h6SW9Jb3ducmV4SHpRU3V1VVwiLFwicm91bmRlZFwiOlwiXzNxcWExazBDOUpNUHNCUlN6NloweVlcIixcInRvcE9mZnNldFwiOlwiXzNWWlA3RG9oaFo3ejhmaTR6LUg4ak5cIixcInJpZ2h0T2Zmc2V0XCI6XCJfMlhYaEozLWNZY1hiSVZObW1uTzh5SFwiLFwiYm90dG9tT2Zmc2V0XCI6XCJaSklYN1ZxNW11c2pkNnM0aENTYlBcIixcImxlZnRPZmZzZXRcIjpcIl8xUVZXaXlpdlc5VXhlb051M1VkbnY2XCIsXCJpbnZlcnRlZFwiOlwiXzJqWnpYaG5IcXFidHVtNGRCZGwxbEtcIixcIm5vU2hhZG93XCI6XCJfM2Z4dldpT05GRll0TXVEY1hwOHN5dVwiLFwibm9Cb3JkZXJcIjpcIl8zRXV4dXBucU9WdVNvVXNiS3pOblwiLFwidHJhbnNwYXJlbnRcIjpcIl8zNWJSSWk4QnRENFJLU0p2WmJqX3NtXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbkJ1dHRvbkxpbmsgfSBmcm9tIFwiLi9JY29uQnV0dG9uTGlua1wiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgRWxlbWVudFR5cGUsIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvblwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ljb25CdXR0b25MaW5rLm1vZHVsZS5jc3NcIjtcclxuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5pbXBvcnQgeyBCdXR0b25CYWRnZSB9IGZyb20gXCIuLi9CdXR0b25CYWRnZVwiO1xyXG5cclxudHlwZSBPZmZzZXRTaWRlID0gXCJ0b3BcIiB8IFwicmlnaHRcIiB8IFwiYm90dG9tXCIgfCBcImxlZnRcIjtcclxuXHJcbnR5cGUgSWNvbkJ1dHRvbkxpbmtQcm9wcyA9XHJcbiAgfCB7XHJcbiAgICAgIGFzPzogRWxlbWVudFR5cGU7XHJcbiAgICAgIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRWxlbWVudD47XHJcbiAgICAgIHNyYzogc3RyaW5nO1xyXG4gICAgICBhbHQ6IHN0cmluZztcclxuICAgICAgYmFkZ2VDb250ZW50PzogUmVhY3ROb2RlO1xyXG4gICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgICAgIGludmVydGVkPzogYm9vbGVhbjtcclxuICAgICAgcm91bmRlZD86IGJvb2xlYW47XHJcbiAgICAgIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcclxuICAgICAgbm9TaGFkb3c/OiBib29sZWFuO1xyXG4gICAgICBub0JvcmRlcj86IGJvb2xlYW47XHJcbiAgICAgIHNpemU/OiBTaXplO1xyXG4gICAgICBvZmZzZXRTaWRlcz86IEFycmF5PE9mZnNldFNpZGU+O1xyXG4gICAgICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgICB9XHJcbiAgfCBhbnk7XHJcblxyXG5mdW5jdGlvbiBJY29uQnV0dG9uTGluayh7XHJcbiAgYXM6IENvbXBvbmVudCxcclxuICBjb250YWluZXJSZWYsXHJcbiAgY2xhc3NOYW1lLFxyXG4gIHNyYyxcclxuICBhbHQsXHJcbiAgYmFkZ2VDb250ZW50ID0gbnVsbCxcclxuICBpbnZlcnRlZCA9IGZhbHNlLFxyXG4gIG5vU2hhZG93ID0gZmFsc2UsXHJcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcclxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxyXG4gIHJvdW5kZWQgPSBmYWxzZSxcclxuICBvZmZzZXRTaWRlcyA9IFtdLFxyXG4gIGRpc2FibGVkID0gZmFsc2UsXHJcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXHJcbiAgLi4ucHJvcHNcclxufTogSWNvbkJ1dHRvbkxpbmtQcm9wcykge1xyXG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICBDb21wb25lbnQgPSBcImFcIjtcclxuICB9XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8Q29tcG9uZW50XHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBkYXRhLXRlc3RpZD1cImljb24tYnV0dG9uLWxpbmtcIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxyXG4gICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93LFxyXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxyXG4gICAgICAgICAgW3N0eWxlcy5kaXNhYmxlZF06IGRpc2FibGVkLFxyXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxyXG4gICAgICAgICAgW3N0eWxlcy50b3BPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwidG9wXCIpLFxyXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMuYm90dG9tT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImJvdHRvbVwiKSxcclxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICBdKX1cclxuICAgICAgey4uLnByb3BzfVxyXG4gICAgPlxyXG4gICAgICA8SWNvbiBzcmM9e3NyY30gYWx0PXthbHR9IHNpemU9e3NpemV9IGludmVydGVkPXtpbnZlcnRlZH0gLz5cclxuICAgICAge2JhZGdlQ29udGVudCAmJiA8QnV0dG9uQmFkZ2U+e2JhZGdlQ29udGVudH08L0J1dHRvbkJhZGdlPn1cclxuICAgIDwvQ29tcG9uZW50PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEljb25CdXR0b25MaW5rO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzN3anhqQ3p2X2xwaGRXbTczSmdBeXBcIixcInNtYWxsXCI6XCJfMzJNWW1aYkh6VVUwYjNkTWNtSnNpTVwiLFwibWVkaXVtXCI6XCJfMTg5cllKMlR2YUJ5ckMzUzdDZjNubVwiLFwibGFyZ2VcIjpcIl8yYVlTU1RVZzh3dnJBRE9TMTg4eE1cIixcInhsYXJnZVwiOlwidnMzS1l2VTdaY25odzJTT3lTQ05mXCIsXCJyb3VuZGVkXCI6XCJfMThpaDY3TEwwbjdYbDYxZ0xHOHMwa1wiLFwidG9wT2Zmc2V0XCI6XCJfMXA3aDdXNlFzREhwYmE2bWd5V1VMOVwiLFwicmlnaHRPZmZzZXRcIjpcIl8zZnhNSUJfSno1Q1lJZnd1WmhRMjhpXCIsXCJib3R0b21PZmZzZXRcIjpcIl8xMTNtNENXaW1MdnNqVTl4SXhQcTdpXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfNkNob3YyTW95VXh5aFd4S24zNjhLXCIsXCJpbnZlcnRlZFwiOlwiXzNlcU9KUXo0dWUtZVhMdnEyN0FzWTVcIixcIm5vU2hhZG93XCI6XCJsRjZEX1YyMHgzMnY5WnlzcXdDNjhcIixcIm5vQm9yZGVyXCI6XCJfM3M2cUNvbExqcGpsNFJybzdtVlR4U1wiLFwidHJhbnNwYXJlbnRcIjpcIl8ySVpPOXBLMTMxVTkxY3lLWGl4Z3hEXCIsXCJkaXNhYmxlZFwiOlwiXzFqUWdYN2tnLWxTWVZtLVBnRGlZcXBcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJbWFnZSwgSW1hZ2VQcm9wcyB9IGZyb20gXCIuL0ltYWdlXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9JbWFnZS5tb2R1bGUuY3NzXCI7XHJcblxyXG5leHBvcnQgdHlwZSBJbWFnZVByb3BzID0ge1xyXG4gIGFsdD86IHN0cmluZztcclxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIGxheW91dD86IFwiY292ZXJcIiB8IFwiY29udGFpblwiIHwgXCJzdHJldGNoSG9yaXpvbnRhbGx5XCIgfCBcInN0cmV0Y2hWZXJ0aWNhbGx5XCI7XHJcbiAgc3JjOiBzdHJpbmc7XHJcbiAgc3JjV2lkdGg/OiBudW1iZXI7XHJcbiAgc3JjSGVpZ2h0PzogbnVtYmVyO1xyXG4gIGRlY29kaW5nPzogXCJhc3luY1wiIHwgXCJzeW5jXCIgfCBcImF1dG9cIixcclxuICBsb2FkaW5nPzogXCJlYWdlclwiIHwgXCJsYXp5XCJcclxufTtcclxuXHJcbmZ1bmN0aW9uIEltYWdlQ29tcG9uZW50KHtcclxuICBzcmMsXHJcbiAgYWx0LFxyXG4gIHNyY1dpZHRoLFxyXG4gIHNyY0hlaWdodCxcclxuICBjaGlsZHJlbixcclxuICBjb250YWluZXJSZWYsXHJcbiAgbGF5b3V0ID0gXCJjb250YWluXCIsXHJcbiAgZGVjb2Rpbmc9IFwiYXV0b1wiLFxyXG4gIGxvYWRpbmc9IFwiZWFnZXJcIlxyXG59OiBJbWFnZVByb3BzKSB7XHJcbiAgY29uc3QgaW1hZ2VFbGVtZW50ID0gKFxyXG4gICAgPGltZ1xyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuaW1hZ2UsIHN0eWxlc1tsYXlvdXRdXSl9XHJcbiAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcclxuICAgICAgZGF0YS10ZXN0aWQ9XCJpbWFnZVwiXHJcbiAgICAgIGFsdD17YWx0fVxyXG4gICAgICBzcmM9e3NyY31cclxuICAgICAgd2lkdGg9e3NyY1dpZHRofVxyXG4gICAgICBoZWlnaHQ9e3NyY0hlaWdodH1cclxuICAgICAgZGVjb2Rpbmc9e2RlY29kaW5nfVxyXG4gICAgICBsb2FkaW5nPXtsb2FkaW5nfVxyXG4gICAgLz5cclxuICApO1xyXG5cclxuICByZXR1cm4gY2hpbGRyZW4gPyAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBzdHlsZXMuaGFzT3ZlcmxheV0pfVxyXG4gICAgPlxyXG4gICAgICB7aW1hZ2VFbGVtZW50fVxyXG4gICAgICB7Y2hpbGRyZW4gJiYgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5vdmVybGF5fT57Y2hpbGRyZW59PC9kaXY+fVxyXG4gICAgPC9kaXY+XHJcbiAgKSA6IChcclxuICAgIGltYWdlRWxlbWVudFxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEltYWdlQ29tcG9uZW50O1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzFWMDBHcHpfa2VxVVdHRWZaNzR3alNcIixcImhhc092ZXJsYXlcIjpcIl8yTXRVZllwdzVWOFVwcnhxX0VfeVNhXCIsXCJvdmVybGF5XCI6XCJ6MURWSHhqMVpQSzczT0lRUmNrN2pcIixcImltYWdlXCI6XCJfMzlPalRHV2Q3eG14Y2w2bnVJLWcyTFwiLFwiY292ZXJcIjpcIl8zcUtkcDJtSzZmN0c1ekF6WGx6Z3JFXCIsXCJjb250YWluXCI6XCJfMm9fRzRYYkItUW96YmZ1azRfVjAwaFwiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzJ4Z3VEa0d1MW1SMnlQYVktaHpOOG9cIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMTlXTWEzdHFSeHZVaERLRlo4WTJQQlwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIExpc3RWaWV3IH0gZnJvbSBcIi4vTGlzdFZpZXdcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0Vmlld0l0ZW0gfSBmcm9tIFwiLi9MaXN0Vmlld0l0ZW1cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0Vmlld0xpbmtJdGVtIH0gZnJvbSBcIi4vTGlzdFZpZXdMaW5rSXRlbVwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9MaXN0Vmlldy5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIExpc3RWaWV3UHJvcHMgPSB7XHJcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBoZWFkZXI/OiBzdHJpbmc7XHJcbiAgaGVhZGVyQWN0aW9ucz86IFJlYWN0Tm9kZTtcclxufTtcclxuXHJcbmZ1bmN0aW9uIExpc3RWaWV3KHtcclxuICBjaGlsZHJlbixcclxuICBjbGFzc05hbWUsXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGhlYWRlcixcclxuICBoZWFkZXJBY3Rpb25zLFxyXG59OiBMaXN0Vmlld1Byb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9IGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIGNsYXNzTmFtZV0pfT5cclxuICAgICAgeyhoZWFkZXIgfHwgaGVhZGVyQWN0aW9ucykgJiYgKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuaGVhZGVyfT5cclxuICAgICAgICAgIHtoZWFkZXIgJiYgPGgzIGNsYXNzTmFtZT17c3R5bGVzLmhlYWRlckxhYmVsfT57aGVhZGVyfTwvaDM+fVxyXG4gICAgICAgICAge2hlYWRlckFjdGlvbnN9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICl9XHJcbiAgICAgIDx1bCBjbGFzc05hbWU9e3N0eWxlcy5saXN0fT57Y2hpbGRyZW59PC91bD5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IExpc3RWaWV3O1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiRGNXb0ViaW9sOXB4LUZRQV9UcE9rXCIsXCJoZWFkZXJcIjpcIl8yamF2QjhzQUR4NmREZ3FYTjNNQ0xQXCIsXCJoZWFkZXJMYWJlbFwiOlwiXzNpTU9mSXlOTDFTRW12Mko4WkREbVdcIixcImxpc3RcIjpcIl8zX0ttdGJNUHBQSGdKRk05WkJfeG5BXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIi4uL0J1dHRvblwiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgTGlzdFZpZXdJdGVtUHJvcHMgPSB7XHJcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICBhY3RpdmU/OiBib29sZWFuO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XHJcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICBzaXplPzogU2l6ZTtcclxuICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcclxuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcclxufTtcclxuXHJcbmZ1bmN0aW9uIExpc3RWaWV3SXRlbSh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgYWN0aXZlID0gZmFsc2UsXHJcbiAgZGlzYWJsZWQgPSBmYWxzZSxcclxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG4gIGFsaWduID0gXCJjZW50ZXJcIixcclxuICBvbkNsaWNrID0gKCkgPT4ge30sXHJcbn06IExpc3RWaWV3SXRlbVByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxsaSBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMubGlzdFZpZXdJdGVtXSl9PlxyXG4gICAgICA8QnV0dG9uXHJcbiAgICAgICAgb25DbGljaz17b25DbGlja31cclxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgICAgaW52ZXJ0ZWQ9e2FjdGl2ZX1cclxuICAgICAgICB0cmFuc3BhcmVudD17dHJhbnNwYXJlbnR9XHJcbiAgICAgICAgbm9QYWRkaW5nPXtub1BhZGRpbmd9XHJcbiAgICAgICAgYWxpZ249e2FsaWdufVxyXG4gICAgICAgIHNpemU9e3NpemV9XHJcbiAgICAgICAgc3RyZXRjaEhvcml6b250YWxseVxyXG4gICAgICAgIG5vU2hhZG93XHJcbiAgICAgICAgbm9Cb3JkZXJcclxuICAgICAgPlxyXG4gICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgPC9CdXR0b24+XHJcbiAgICA8L2xpPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IExpc3RWaWV3SXRlbTtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IEVsZW1lbnRUeXBlLCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHsgQnV0dG9uTGluayB9IGZyb20gXCIuLi9CdXR0b25MaW5rXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3NcIjtcclxuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5cclxudHlwZSBMaXN0Vmlld0xpbmtJdGVtUHJvcHMgPVxyXG4gIHwge1xyXG4gICAgICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gICAgICBhcz86IEVsZW1lbnRUeXBlO1xyXG4gICAgICBhY3RpdmU6IGJvb2xlYW47XHJcbiAgICAgIHRyYW5zcGFyZW50OiBib29sZWFuO1xyXG4gICAgICBub1BhZGRpbmc6IGJvb2xlYW47XHJcbiAgICAgIGFsaWduOiBcImxlZnRcIiB8IFwiY2VudGVyXCI7XHJcbiAgICAgIHNpemU6IFNpemU7XHJcbiAgICB9XHJcbiAgfCBhbnk7XHJcblxyXG5mdW5jdGlvbiBMaXN0Vmlld0xpbmtJdGVtKHtcclxuICBjaGlsZHJlbixcclxuICBhczogQ29tcG9uZW50LFxyXG4gIGFjdGl2ZSA9IGZhbHNlLFxyXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXHJcbiAgbm9QYWRkaW5nID0gZmFsc2UsXHJcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG4gIC4uLnByb3BzXHJcbn06IExpc3RWaWV3TGlua0l0ZW1Qcm9wcykge1xyXG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICBDb21wb25lbnQgPSBcImFcIjtcclxuICB9XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8bGkgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmxpc3RWaWV3SXRlbV0pfT5cclxuICAgICAgPEJ1dHRvbkxpbmtcclxuICAgICAgICBhcz17Q29tcG9uZW50fVxyXG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XHJcbiAgICAgICAgdHJhbnNwYXJlbnQ9e3RyYW5zcGFyZW50fVxyXG4gICAgICAgIG5vUGFkZGluZz17bm9QYWRkaW5nfVxyXG4gICAgICAgIGFsaWduPXthbGlnbn1cclxuICAgICAgICBzaXplPXtzaXplfVxyXG4gICAgICAgIHN0cmV0Y2hIb3Jpem9udGFsbHlcclxuICAgICAgICBub1NoYWRvd1xyXG4gICAgICAgIG5vQm9yZGVyXHJcbiAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICA+XHJcbiAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICA8L0J1dHRvbkxpbms+XHJcbiAgICA8L2xpPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IExpc3RWaWV3TGlua0l0ZW07XHJcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudSB9IGZyb20gXCIuL01lbnVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51Q29udGFpbmVyLCBNZW51UGxhY2VtZW50IH0gZnJvbSBcIi4vTWVudUNvbnRhaW5lclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lbnVJdGVtIH0gZnJvbSBcIi4vTWVudUl0ZW1cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51TGlua0l0ZW0gfSBmcm9tIFwiLi9NZW51TGlua0l0ZW1cIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudS5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIE1lbnVQcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIGlzT3Blbj86IGJvb2xlYW47XHJcbiAgaGVhZGVyPzogc3RyaW5nO1xyXG4gIGZvb3Rlcj86IFJlYWN0Tm9kZTtcclxufTtcclxuXHJcbmZ1bmN0aW9uIE1lbnUoe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBjbGFzc05hbWUsXHJcbiAgaXNPcGVuID0gdHJ1ZSxcclxuICBoZWFkZXIsXHJcbiAgZm9vdGVyLFxyXG59OiBNZW51UHJvcHMpIHtcclxuICBpZiAoIWlzT3Blbikge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgICAgc3R5bGVzLm1lbnUsXHJcbiAgICAgICAgICB7IFtzdHlsZXMub3Blbl06IGlzT3BlbiB9LFxyXG4gICAgICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICAgIF0pfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5zY3JvbGxDb250YWluZXJ9PlxyXG4gICAgICAgICAge2hlYWRlciAmJiBpc09wZW4gJiYgPGgzIGNsYXNzTmFtZT17c3R5bGVzLmhlYWRlcn0+e2hlYWRlcn08L2gzPn1cclxuICAgICAgICAgIDx1bD57aXNPcGVuICYmIGNoaWxkcmVufTwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAge2Zvb3RlciAmJiBpc09wZW4gJiYgKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICAgICAgICBzdHlsZXMuZm9vdGVyLFxyXG4gICAgICAgICAgICAgIHsgW3N0eWxlcy5ub0JvcmRlcl06ICFjaGlsZHJlbiB9LFxyXG4gICAgICAgICAgICBdKX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge2Zvb3Rlcn1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC8+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWVudTtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJtZW51XCI6XCJfMUw1LXB2X1A2TTJvR2VvUmVNbk8ySlwiLFwib3BlblwiOlwiXzFKN3BGa3ZralFRUldrbWctMFhUV1pcIixcImVudHJhbmNlXCI6XCJfM2NxZXNRR2Y5Q3l1NjZEc29LdEYwcVwiLFwiaGVhZGVyXCI6XCJwT1BZYVYwMW85V0I3Qnc0Vmdpd1wiLFwiZm9vdGVyXCI6XCJfM21DY2Nudk5kTi1YWlpTN1BMeGF2MFwiLFwibm9Cb3JkZXJcIjpcIl8yNnRVT2Y5Z0ktYVJmYWZfSWV5UFVJXCIsXCJzY3JvbGxDb250YWluZXJcIjpcIl8xbXFNVXJkMTMtMVRsb3ZHQ0JPZXBmXCJ9OyIsImltcG9ydCBSZWFjdCwge1xyXG4gIFJlYWN0Tm9kZSxcclxuICBSZWFjdEVsZW1lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBGb3J3YXJkZWRSZWYsXHJcbn0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUNvbnRhaW5lci5tb2R1bGUuY3NzXCI7XHJcblxyXG5leHBvcnQgdHlwZSBNZW51UGxhY2VtZW50ID0ge1xyXG4gIGhvcml6b250YWw6IFwicmlnaHRcIiB8IFwibGVmdFwiO1xyXG4gIHZlcnRpY2FsOiBcInRvcFwiIHwgXCJib3R0b21cIjtcclxufTtcclxuXHJcbnR5cGUgTWVudUNvbnRhaW5lclByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgYnV0dG9uPzogUmVhY3RFbGVtZW50O1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBwbGFjZW1lbnQ/OiBNZW51UGxhY2VtZW50O1xyXG59O1xyXG5cclxuZnVuY3Rpb24gTWVudUNvbnRhaW5lcihcclxuICB7XHJcbiAgICBjaGlsZHJlbixcclxuICAgIGJ1dHRvbixcclxuICAgIGNsYXNzTmFtZSxcclxuICAgIHBsYWNlbWVudCA9IHsgaG9yaXpvbnRhbDogXCJsZWZ0XCIsIHZlcnRpY2FsOiBcImJvdHRvbVwiIH0sXHJcbiAgfTogTWVudUNvbnRhaW5lclByb3BzLFxyXG4gIHJlZjogRm9yd2FyZGVkUmVmPEhUTUxEaXZFbGVtZW50PlxyXG4pIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiByZWY9e3JlZn0gY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbnRhaW5lciwgY2xhc3NOYW1lXSl9PlxyXG4gICAgICB7YnV0dG9ufVxyXG5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgICAgc3R5bGVzLm1lbnVDb250YWluZXIsXHJcbiAgICAgICAgICBzdHlsZXNbcGxhY2VtZW50Lmhvcml6b250YWxdLFxyXG4gICAgICAgICAgc3R5bGVzW3BsYWNlbWVudC52ZXJ0aWNhbF0sXHJcbiAgICAgICAgXSl9XHJcbiAgICAgID5cclxuICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZm9yd2FyZFJlZihNZW51Q29udGFpbmVyKTtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8zRDRJUVpXQ3RIOE1UWHJ2NTlNWUtGXCIsXCJtZW51Q29udGFpbmVyXCI6XCJfMV8yc0ZGVnpOWG1KWF9QVHBIWmdFTFwiLFwidG9wXCI6XCJRdkM0eTZtZjFZVy1ibEs2UFNONUlcIixcInJpZ2h0XCI6XCJfM21yVmJ3a21WbWxjRkRhZFBvZWNjN1wiLFwibGVmdFwiOlwiWGZRNGJqbktGYUFZbVFUdVJLLTZBXCIsXCJib3R0b21cIjpcIl8zOV90eWJYNUpaNlktdWo0N2dQc0tWXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFN5bnRoZXRpY0V2ZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUl0ZW0ubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBNZW51SXRlbVByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcclxuICBub1BhZGRpbmc/OiBib29sZWFuO1xyXG4gIG9uQ2xpY2s/OiAoZXZlbnQ/OiBTeW50aGV0aWNFdmVudDxIVE1MTElFbGVtZW50PikgPT4gdm9pZDtcclxufTtcclxuXHJcbmZ1bmN0aW9uIE1lbnVJdGVtKHtcclxuICBjaGlsZHJlbixcclxuICBjbGFzc05hbWUsXHJcbiAgb25DbGljayxcclxuICBub1BhZGRpbmcgPSBmYWxzZSxcclxuICBpc0FjdGl2ZSA9IGZhbHNlLFxyXG59OiBNZW51SXRlbVByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxsaVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMubWVudUl0ZW0sXHJcbiAgICAgICAgeyBbc3R5bGVzLmFjdGl2ZV06IGlzQWN0aXZlIH0sXHJcbiAgICAgICAgeyBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyB9LFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgXSl9XHJcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvbGk+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWVudUl0ZW07XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudUl0ZW1cIjpcIl8yS3NSQ0VnRV9NN3dvWGpocFJ1VnVvXCIsXCJub1BhZGRpbmdcIjpcIl8yY3FNSkhKeUNqQVU4WlBaQVYwWUQ1XCIsXCJhY3RpdmVcIjpcIl8xWG5YWmlBcmh2VWV5WGdxVWFHLVA3XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIEVsZW1lbnRUeXBlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUxpbmtJdGVtLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgTWVudUxpbmtJdGVtUHJvcHMgPVxyXG4gIHwge1xyXG4gICAgICBhczogRWxlbWVudFR5cGU7XHJcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xyXG4gICAgICBub1BhZGRpbmc/OiBib29sZWFuO1xyXG4gICAgfVxyXG4gIHwgYW55O1xyXG5cclxuZnVuY3Rpb24gTWVudUxpbmtJdGVtKHtcclxuICBhczogQ29tcG9uZW50LFxyXG4gIGNoaWxkcmVuLFxyXG4gIGNsYXNzTmFtZSxcclxuICBub1BhZGRpbmcgPSBmYWxzZSxcclxuICAuLi5wcm9wc1xyXG59OiBNZW51TGlua0l0ZW1Qcm9wcykge1xyXG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICBDb21wb25lbnQgPSBcImFcIjtcclxuICB9XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8Q29tcG9uZW50XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1saW5rLWl0ZW1cIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMubWVudUxpbmtJdGVtLFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgICB7IFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nIH0sXHJcbiAgICAgIF0pfVxyXG4gICAgICB7Li4ucHJvcHN9XHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvQ29tcG9uZW50PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1lbnVMaW5rSXRlbTtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJtZW51TGlua0l0ZW1cIjpcIl8zejV0OUNBaGNBd1ZPdE9WbEFfNEd3XCIsXCJub1BhZGRpbmdcIjpcImJOWGlreUVaSUlPTTFIZ3NBaTNmdFwiLFwiYWN0aXZlXCI6XCJfMVotbVB2ZXdHVWc0ODRRUGM5SHhxMlwiLFwibWVudUl0ZW1cIjpcIl8zdElXQWhNRHRQekFINGJBcndwUk92XCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgT3ZlcmxheSB9IGZyb20gXCIuL092ZXJsYXlcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9PdmVybGF5Lm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgT3ZlcmxheVByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XHJcbiAgaXNGaXhlZD86IGJvb2xlYW47XHJcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBPdmVybGF5KHtcclxuICBjaGlsZHJlbixcclxuICBjb250YWluZXJSZWYsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBpc0ZpeGVkID0gZmFsc2UsXHJcbiAgb25DbGljayA9ICgpID0+IHt9LFxyXG59OiBPdmVybGF5UHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgZGF0YS10ZXN0aWQ9XCJvdmVybGF5XCJcclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgc3R5bGVzLm92ZXJsYXksXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxyXG4gICAgICAgICAgW3N0eWxlcy5maXhlZF06IGlzRml4ZWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSl9XHJcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE92ZXJsYXk7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wib3ZlcmxheVwiOlwiSTBkbS1MZG0tU2lTMHY1WC12bzBnXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzNxZERkbHluSExub2ZOMURLdnZZUThcIixcImZpeGVkXCI6XCJfMWdYeTlYUzNGLUp0cWRqWkJjb0tTd1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIFRleHRJbnB1dCB9IGZyb20gXCIuL1RleHRJbnB1dFwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHsgTGFiZWwgfSBmcm9tIFwiLi4vTGFiZWxcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9UZXh0SW5wdXQubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplLCBUZXh0SW5wdXRUeXBlIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIFRleHRJbnB1dFByb3BzID0ge1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XHJcbiAgb25CbHVyPzogKCkgPT4gdm9pZDtcclxuICBvbktleURvd24/OiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHZvaWQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICB0eXBlPzogVGV4dElucHV0VHlwZTtcclxuICBzaXplPzogU2l6ZTtcclxuICBub0JvcmRlcj86IGJvb2xlYW47XHJcbiAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcclxuICBpbnB1dFJlZj86IFJlYWN0LlJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50PjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIFRleHRJbnB1dCh7XHJcbiAgbGFiZWwsXHJcbiAgb25DaGFuZ2UsXHJcbiAgb25CbHVyLFxyXG4gIG9uS2V5RG93bixcclxuICBwbGFjZWhvbGRlcixcclxuICB2YWx1ZSxcclxuICBuYW1lLFxyXG4gIGlucHV0UmVmLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG4gIHR5cGUgPSBcInRleHRcIixcclxuICBhdXRvRm9jdXMgPSBmYWxzZSxcclxuICBub0JvcmRlciA9IGZhbHNlLFxyXG59OiBUZXh0SW5wdXRQcm9wcykge1xyXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxyXG4gICAgKGU6IFJlYWN0LkZvcm1FdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xyXG4gICAgICBpZiAob25DaGFuZ2UpIHtcclxuICAgICAgICBvbkNoYW5nZSgoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgW29uQ2hhbmdlXVxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGlucHV0RWxlbWVudCA9IChcclxuICAgIDxpbnB1dFxyXG4gICAgICBkYXRhLXRlc3RpZD1cImlucHV0XCJcclxuICAgICAgcmVmPXtpbnB1dFJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLnRleHRJbnB1dCwgc3R5bGVzW3NpemVdLCB7W3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyfV0pfVxyXG4gICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxyXG4gICAgICBvbkJsdXI9e29uQmx1cn1cclxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XHJcbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cclxuICAgICAgbmFtZT17bmFtZX1cclxuICAgICAgdHlwZT17dHlwZX1cclxuICAgICAgdmFsdWU9e3ZhbHVlfVxyXG4gICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cclxuICAgIC8+XHJcbiAgKTtcclxuICBpZiAobGFiZWwpIHtcclxuICAgIHJldHVybiA8TGFiZWwgdmFsdWU9e2xhYmVsfT57aW5wdXRFbGVtZW50fTwvTGFiZWw+O1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gPD57aW5wdXRFbGVtZW50fTwvPjtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgVGV4dElucHV0O1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcInRleHRJbnB1dFwiOlwiXzJpZkZUQnl4dlFGNWVSWXdNQVNhZTdcIixcInNtYWxsXCI6XCJfMThpTE5ocWM1VHo1UFBvMms0X1RCaFwiLFwibWVkaXVtXCI6XCJfMWphUnlqZWF0SlJ4RXVqZ1BHeld6eFwiLFwibGFyZ2VcIjpcIl8zNGQ1SDNYOFcwVWdYOUI4ZHRQUkFPXCIsXCJ4bGFyZ2VcIjpcIl8zc3Q4RUdvdW5PZ2pOdUxwb0VyQzBzXCIsXCJub0JvcmRlclwiOlwicHRSWjdBNWdpVzdGQjNtazhRTENNXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgVG9hc3QgfSBmcm9tIFwiLi9Ub2FzdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRvYXN0Q29udGFpbmVyIH0gZnJvbSBcIi4vVG9hc3RDb250YWluZXJcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1RvYXN0Lm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgVG9hc3RQcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBUb2FzdCh7IGNoaWxkcmVuLCBjb250YWluZXJSZWYsIG9uQ2xpY2sgPSAoKSA9PiB7fSB9OiBUb2FzdFByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnRvYXN0fVxyXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxyXG4gICAgICBkYXRhLXRlc3RpZD1cInRvYXN0XCJcclxuICAgID5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgVG9hc3Q7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1widG9hc3RcIjpcIl8yTjNYaUg4UlZuRUFZbHpCRF9KQ3FaXCIsXCJlbnRyYW5jZVwiOlwiXzE5Y3czeng2ZlU0Uk1HTWFHTTV6SlpcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1RvYXN0Q29udGFpbmVyLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgVG9hc3RDb250YWluZXJQcm9wcyA9IHtcclxuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcclxuICBiYXNlWkluZGV4PzogbnVtYmVyO1xyXG59O1xyXG5mdW5jdGlvbiBUb2FzdENvbnRhaW5lcih7IGNoaWxkcmVuLCBiYXNlWkluZGV4IH06IFRvYXN0Q29udGFpbmVyUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudG9hc3RDb250YWluZXJdKX1cclxuICAgICAgc3R5bGU9e3sgekluZGV4OiBiYXNlWkluZGV4IH19XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwidG9hc3QtY29udGFpbmVyXCJcclxuICAgID5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgVG9hc3RDb250YWluZXI7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1widG9hc3RDb250YWluZXJcIjpcIl8zUlQyYWJmekswcnQtWWpjcnFYTG5yXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgVmlkZW8sIFZpZGVvUHJvcHMgfSBmcm9tIFwiLi9WaWRlb1wiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9WaWRlby5tb2R1bGUuY3NzXCI7XHJcblxyXG4vKipcclxuICogVGhlcmUgaXMgYSBrbm93biBpc3N1ZSBpbiBSZWFjdCBpbiByZWdhcmRzIHRvIHRoZSAnbXV0ZWQnIHByb3BlcnR5IHdoaWNoIGNhdXNlcyB0aGUgd2FybmluZzpcclxuICogXCJXYXJuaW5nOiB1bnN0YWJsZV9mbHVzaERpc2NyZXRlVXBkYXRlczogQ2Fubm90IGZsdXNoIHVwZGF0ZXMgd2hlbiBSZWFjdCBpcyBhbHJlYWR5IHJlbmRlcmluZy5cIlxyXG4gKlxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEwMzg5XHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNjU0NFxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vdGVzdGluZy1saWJyYXJ5L3JlYWN0LXRlc3RpbmctbGlicmFyeS9pc3N1ZXMvNDcwXHJcbiAqL1xyXG5cclxudHlwZSBMYXlvdXQgPSBcImNvdmVyXCIgfCBcImNvbnRhaW5cIiB8IFwic3RyZXRjaEhvcml6b250YWxseVwiIHwgXCJzdHJldGNoVmVydGljYWxseVwiO1xyXG5cclxuZXhwb3J0IHR5cGUgVmlkZW9Qcm9wcyA9IHtcclxuICBzcmM6IHN0cmluZztcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbGF5b3V0PzogTGF5b3V0O1xyXG4gIGF1dG9QbGF5PzogYm9vbGVhbjtcclxuICBsb29wPzogYm9vbGVhbjtcclxuICBtdXRlZD86IGJvb2xlYW47XHJcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBwb3N0ZXI/OiBzdHJpbmc7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBWaWRlbyh7XHJcbiAgc3JjLFxyXG4gIHR5cGUsXHJcbiAgY2hpbGRyZW4sXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIHBvc3RlcixcclxuICBtdXRlZCA9IHRydWUsXHJcbiAgbG9vcCA9IHRydWUsXHJcbiAgYXV0b1BsYXkgPSB0cnVlLFxyXG4gIGxheW91dCA9IFwiY29udGFpblwiLFxyXG59OiBWaWRlb1Byb3BzKSB7XHJcbiAgcmV0dXJuIGNoaWxkcmVuID8gKFxyXG4gICAgPGRpdlxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbnRhaW5lciwgc3R5bGVzLmhhc092ZXJsYXldKX1cclxuICAgID5cclxuICAgICAgPHZpZGVvXHJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJ2aWRlb1wiXHJcbiAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy52aWRlbywgc3R5bGVzW2xheW91dF1dKX1cclxuICAgICAgICBtdXRlZD17bXV0ZWR9XHJcbiAgICAgICAgbG9vcD17bG9vcH1cclxuICAgICAgICBhdXRvUGxheT17YXV0b1BsYXl9XHJcbiAgICAgICAgcG9zdGVyPXtwb3N0ZXJ9XHJcbiAgICAgICAgcGxheXNJbmxpbmVcclxuICAgICAgPlxyXG4gICAgICAgIDxzb3VyY2UgZGF0YS10ZXN0aWQ9XCJzb3VyY2VcIiBzcmM9e3NyY30gdHlwZT17dHlwZX0gLz5cclxuICAgICAgPC92aWRlbz5cclxuICAgICAge2NoaWxkcmVuICYmIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMub3ZlcmxheX0+e2NoaWxkcmVufTwvZGl2Pn1cclxuICAgIDwvZGl2PlxyXG4gICkgOiAoXHJcbiAgICA8dmlkZW9cclxuICAgICAgZGF0YS10ZXN0aWQ9XCJ2aWRlb1wiXHJcbiAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLnZpZGVvLCBzdHlsZXNbbGF5b3V0XV0pfVxyXG4gICAgICBtdXRlZD17bXV0ZWR9XHJcbiAgICAgIGxvb3A9e2xvb3B9XHJcbiAgICAgIGF1dG9QbGF5PXthdXRvUGxheX1cclxuICAgICAgcG9zdGVyPXtwb3N0ZXJ9XHJcbiAgICAgIHBsYXlzSW5saW5lXHJcbiAgICA+XHJcbiAgICAgIDxzb3VyY2UgZGF0YS10ZXN0aWQ9XCJzb3VyY2VcIiBzcmM9e3NyY30gdHlwZT17dHlwZX0gLz5cclxuICAgIDwvdmlkZW8+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgVmlkZW87XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMWQ1NXdYdVFLcHQ5N1BxUUhZeDVtV1wiLFwiaGFzT3ZlcmxheVwiOlwiXzJEQU0xeDdQMXd1WU5QOFREbVhHWGNcIixcInZpZGVvXCI6XCJfM2pRX3FwVUx0cjB1RlNUV2JEME5WWlwiLFwiY292ZXJcIjpcIl8xcW5WTGhlR3pESTZObzlfbndiN2hsXCIsXCJjb250YWluXCI6XCJfMVgyODZOSVNJMHdxMktLM2RqVmh1M1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiT2VnbC04Z2QySzVsejNtVUdKX1V6XCIsXCJzdHJldGNoVmVydGljYWxseVwiOlwiXzEtSHpwVFlfV3RHY1pjMjV3Q290ZVlcIixcIm92ZXJsYXlcIjpcIl8yVHZYc3FBSVVuR1NxbTZrbkpGaEwzXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlVG9nZ2xlIH0gZnJvbSBcIi4vdXNlVG9nZ2xlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4vdXNlT3V0c2lkZUNsaWNrXCI7XHJcbiIsImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlVG9nZ2xlKFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlXHJcbik6IFtib29sZWFuLCAobmV3VmFsdWU/OiBib29sZWFuKSA9PiB2b2lkXSB7XHJcbiAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZTxib29sZWFuPihpbml0aWFsVmFsdWUpO1xyXG5cclxuICBjb25zdCB0b2dnbGUgPSB1c2VDYWxsYmFjaygobmV3VmFsdWU/OiBib29sZWFuKSA9PiB7XHJcbiAgICBpZiAodHlwZW9mIG5ld1ZhbHVlID09PSBcImJvb2xlYW5cIikge1xyXG4gICAgICBzZXRWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXRWYWx1ZSgocHJldlZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICFwcmV2VmFsdWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIFt2YWx1ZSwgdG9nZ2xlXTtcclxufVxyXG4iLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xyXG5cclxudHlwZSBDYWxsYmFjayA9IChldmVudDogRXZlbnQpID0+IHZvaWQ7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VPdXRzaWRlQ2xpY2soY2FsbGJhY2s6IENhbGxiYWNrKSB7XHJcbiAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmICghcmVmLmN1cnJlbnQgfHwgcmVmLmN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYWxsYmFjayhldmVudCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIGhhbmRsZUNsaWNrKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBoYW5kbGVDbGljayk7XHJcblxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgaGFuZGxlQ2xpY2spO1xyXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgaGFuZGxlQ2xpY2spO1xyXG4gICAgfTtcclxuICB9LCBbY2FsbGJhY2tdKTtcclxuXHJcbiAgcmV0dXJuIHJlZjtcclxufVxyXG4iLCIvKiFcbiAqIGhvdGtleXMtanMgdjMuOC43XG4gKiBBIHNpbXBsZSBtaWNyby1saWJyYXJ5IGZvciBkZWZpbmluZyBhbmQgZGlzcGF0Y2hpbmcga2V5Ym9hcmQgc2hvcnRjdXRzLiBJdCBoYXMgbm8gZGVwZW5kZW5jaWVzLlxuICogXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEga2Vubnkgd29uZyA8d293b2hvb0BxcS5jb20+XG4gKiBodHRwOi8vamF5d2NqbG92ZS5naXRodWIuaW8vaG90a2V5c1xuICogXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKi9cblxudmFyIGlzZmYgPSB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyA/IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdmaXJlZm94JykgPiAwIDogZmFsc2U7IC8vIOe7keWumuS6i+S7tlxuXG5mdW5jdGlvbiBhZGRFdmVudChvYmplY3QsIGV2ZW50LCBtZXRob2QpIHtcbiAgaWYgKG9iamVjdC5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgb2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIG1ldGhvZCwgZmFsc2UpO1xuICB9IGVsc2UgaWYgKG9iamVjdC5hdHRhY2hFdmVudCkge1xuICAgIG9iamVjdC5hdHRhY2hFdmVudChcIm9uXCIuY29uY2F0KGV2ZW50KSwgZnVuY3Rpb24gKCkge1xuICAgICAgbWV0aG9kKHdpbmRvdy5ldmVudCk7XG4gICAgfSk7XG4gIH1cbn0gLy8g5L+u6aWw6ZSu6L2s5o2i5oiQ5a+55bqU55qE6ZSu56CBXG5cblxuZnVuY3Rpb24gZ2V0TW9kcyhtb2RpZmllciwga2V5KSB7XG4gIHZhciBtb2RzID0ga2V5LnNsaWNlKDAsIGtleS5sZW5ndGggLSAxKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IG1vZHMubGVuZ3RoOyBpKyspIHtcbiAgICBtb2RzW2ldID0gbW9kaWZpZXJbbW9kc1tpXS50b0xvd2VyQ2FzZSgpXTtcbiAgfVxuXG4gIHJldHVybiBtb2RzO1xufSAvLyDlpITnkIbkvKDnmoRrZXnlrZfnrKbkuLLovazmjaLmiJDmlbDnu4RcblxuXG5mdW5jdGlvbiBnZXRLZXlzKGtleSkge1xuICBpZiAodHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIGtleSA9ICcnO1xuICBrZXkgPSBrZXkucmVwbGFjZSgvXFxzL2csICcnKTsgLy8g5Yy56YWN5Lu75L2V56m655m95a2X56ymLOWMheaLrOepuuagvOOAgeWItuihqOespuOAgeaNoumhteespuetieetiVxuXG4gIHZhciBrZXlzID0ga2V5LnNwbGl0KCcsJyk7IC8vIOWQjOaXtuiuvue9ruWkmuS4quW/q+aNt+mUru+8jOS7pScsJ+WIhuWJslxuXG4gIHZhciBpbmRleCA9IGtleXMubGFzdEluZGV4T2YoJycpOyAvLyDlv6vmjbfplK7lj6/og73ljIXlkKsnLCfvvIzpnIDnibnmrorlpITnkIZcblxuICBmb3IgKDsgaW5kZXggPj0gMDspIHtcbiAgICBrZXlzW2luZGV4IC0gMV0gKz0gJywnO1xuICAgIGtleXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICBpbmRleCA9IGtleXMubGFzdEluZGV4T2YoJycpO1xuICB9XG5cbiAgcmV0dXJuIGtleXM7XG59IC8vIOavlOi+g+S/rumlsOmUrueahOaVsOe7hFxuXG5cbmZ1bmN0aW9uIGNvbXBhcmVBcnJheShhMSwgYTIpIHtcbiAgdmFyIGFycjEgPSBhMS5sZW5ndGggPj0gYTIubGVuZ3RoID8gYTEgOiBhMjtcbiAgdmFyIGFycjIgPSBhMS5sZW5ndGggPj0gYTIubGVuZ3RoID8gYTIgOiBhMTtcbiAgdmFyIGlzSW5kZXggPSB0cnVlO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyMS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcnIyLmluZGV4T2YoYXJyMVtpXSkgPT09IC0xKSBpc0luZGV4ID0gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gaXNJbmRleDtcbn1cblxudmFyIF9rZXlNYXAgPSB7XG4gIGJhY2tzcGFjZTogOCxcbiAgdGFiOiA5LFxuICBjbGVhcjogMTIsXG4gIGVudGVyOiAxMyxcbiAgcmV0dXJuOiAxMyxcbiAgZXNjOiAyNyxcbiAgZXNjYXBlOiAyNyxcbiAgc3BhY2U6IDMyLFxuICBsZWZ0OiAzNyxcbiAgdXA6IDM4LFxuICByaWdodDogMzksXG4gIGRvd246IDQwLFxuICBkZWw6IDQ2LFxuICBkZWxldGU6IDQ2LFxuICBpbnM6IDQ1LFxuICBpbnNlcnQ6IDQ1LFxuICBob21lOiAzNixcbiAgZW5kOiAzNSxcbiAgcGFnZXVwOiAzMyxcbiAgcGFnZWRvd246IDM0LFxuICBjYXBzbG9jazogMjAsXG4gIG51bV8wOiA5NixcbiAgbnVtXzE6IDk3LFxuICBudW1fMjogOTgsXG4gIG51bV8zOiA5OSxcbiAgbnVtXzQ6IDEwMCxcbiAgbnVtXzU6IDEwMSxcbiAgbnVtXzY6IDEwMixcbiAgbnVtXzc6IDEwMyxcbiAgbnVtXzg6IDEwNCxcbiAgbnVtXzk6IDEwNSxcbiAgbnVtX211bHRpcGx5OiAxMDYsXG4gIG51bV9hZGQ6IDEwNyxcbiAgbnVtX2VudGVyOiAxMDgsXG4gIG51bV9zdWJ0cmFjdDogMTA5LFxuICBudW1fZGVjaW1hbDogMTEwLFxuICBudW1fZGl2aWRlOiAxMTEsXG4gICfih6onOiAyMCxcbiAgJywnOiAxODgsXG4gICcuJzogMTkwLFxuICAnLyc6IDE5MSxcbiAgJ2AnOiAxOTIsXG4gICctJzogaXNmZiA/IDE3MyA6IDE4OSxcbiAgJz0nOiBpc2ZmID8gNjEgOiAxODcsXG4gICc7JzogaXNmZiA/IDU5IDogMTg2LFxuICAnXFwnJzogMjIyLFxuICAnWyc6IDIxOSxcbiAgJ10nOiAyMjEsXG4gICdcXFxcJzogMjIwXG59OyAvLyBNb2RpZmllciBLZXlzXG5cbnZhciBfbW9kaWZpZXIgPSB7XG4gIC8vIHNoaWZ0S2V5XG4gICfih6cnOiAxNixcbiAgc2hpZnQ6IDE2LFxuICAvLyBhbHRLZXlcbiAgJ+KMpSc6IDE4LFxuICBhbHQ6IDE4LFxuICBvcHRpb246IDE4LFxuICAvLyBjdHJsS2V5XG4gICfijIMnOiAxNyxcbiAgY3RybDogMTcsXG4gIGNvbnRyb2w6IDE3LFxuICAvLyBtZXRhS2V5XG4gICfijJgnOiA5MSxcbiAgY21kOiA5MSxcbiAgY29tbWFuZDogOTFcbn07XG52YXIgbW9kaWZpZXJNYXAgPSB7XG4gIDE2OiAnc2hpZnRLZXknLFxuICAxODogJ2FsdEtleScsXG4gIDE3OiAnY3RybEtleScsXG4gIDkxOiAnbWV0YUtleScsXG4gIHNoaWZ0S2V5OiAxNixcbiAgY3RybEtleTogMTcsXG4gIGFsdEtleTogMTgsXG4gIG1ldGFLZXk6IDkxXG59O1xudmFyIF9tb2RzID0ge1xuICAxNjogZmFsc2UsXG4gIDE4OiBmYWxzZSxcbiAgMTc6IGZhbHNlLFxuICA5MTogZmFsc2Vcbn07XG52YXIgX2hhbmRsZXJzID0ge307IC8vIEYxfkYxMiBzcGVjaWFsIGtleVxuXG5mb3IgKHZhciBrID0gMTsgayA8IDIwOyBrKyspIHtcbiAgX2tleU1hcFtcImZcIi5jb25jYXQoayldID0gMTExICsgaztcbn1cblxudmFyIF9kb3duS2V5cyA9IFtdOyAvLyDorrDlvZXmkYHkuIvnmoTnu5HlrprplK5cblxudmFyIF9zY29wZSA9ICdhbGwnOyAvLyDpu5jorqTng63plK7ojIPlm7RcblxudmFyIGVsZW1lbnRIYXNCaW5kRXZlbnQgPSBbXTsgLy8g5bey57uR5a6a5LqL5Lu255qE6IqC54K56K6w5b2VXG4vLyDov5Tlm57plK7noIFcblxudmFyIGNvZGUgPSBmdW5jdGlvbiBjb2RlKHgpIHtcbiAgcmV0dXJuIF9rZXlNYXBbeC50b0xvd2VyQ2FzZSgpXSB8fCBfbW9kaWZpZXJbeC50b0xvd2VyQ2FzZSgpXSB8fCB4LnRvVXBwZXJDYXNlKCkuY2hhckNvZGVBdCgwKTtcbn07IC8vIOiuvue9ruiOt+WPluW9k+WJjeiMg+WbtO+8iOm7mOiupOS4uifmiYDmnIkn77yJXG5cblxuZnVuY3Rpb24gc2V0U2NvcGUoc2NvcGUpIHtcbiAgX3Njb3BlID0gc2NvcGUgfHwgJ2FsbCc7XG59IC8vIOiOt+WPluW9k+WJjeiMg+WbtFxuXG5cbmZ1bmN0aW9uIGdldFNjb3BlKCkge1xuICByZXR1cm4gX3Njb3BlIHx8ICdhbGwnO1xufSAvLyDojrflj5bmkYHkuIvnu5HlrprplK7nmoTplK7lgLxcblxuXG5mdW5jdGlvbiBnZXRQcmVzc2VkS2V5Q29kZXMoKSB7XG4gIHJldHVybiBfZG93bktleXMuc2xpY2UoMCk7XG59IC8vIOihqOWNleaOp+S7tuaOp+S7tuWIpOaWrSDov5Tlm54gQm9vbGVhblxuLy8gaG90a2V5IGlzIGVmZmVjdGl2ZSBvbmx5IHdoZW4gZmlsdGVyIHJldHVybiB0cnVlXG5cblxuZnVuY3Rpb24gZmlsdGVyKGV2ZW50KSB7XG4gIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQgfHwgZXZlbnQuc3JjRWxlbWVudDtcbiAgdmFyIHRhZ05hbWUgPSB0YXJnZXQudGFnTmFtZTtcbiAgdmFyIGZsYWcgPSB0cnVlOyAvLyBpZ25vcmU6IGlzQ29udGVudEVkaXRhYmxlID09PSAndHJ1ZScsIDxpbnB1dD4gYW5kIDx0ZXh0YXJlYT4gd2hlbiByZWFkT25seSBzdGF0ZSBpcyBmYWxzZSwgPHNlbGVjdD5cblxuICBpZiAodGFyZ2V0LmlzQ29udGVudEVkaXRhYmxlIHx8ICh0YWdOYW1lID09PSAnSU5QVVQnIHx8IHRhZ05hbWUgPT09ICdURVhUQVJFQScgfHwgdGFnTmFtZSA9PT0gJ1NFTEVDVCcpICYmICF0YXJnZXQucmVhZE9ubHkpIHtcbiAgICBmbGFnID0gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gZmxhZztcbn0gLy8g5Yik5pat5pGB5LiL55qE6ZSu5piv5ZCm5Li65p+Q5Liq6ZSu77yM6L+U5ZuedHJ1ZeaIluiAhWZhbHNlXG5cblxuZnVuY3Rpb24gaXNQcmVzc2VkKGtleUNvZGUpIHtcbiAgaWYgKHR5cGVvZiBrZXlDb2RlID09PSAnc3RyaW5nJykge1xuICAgIGtleUNvZGUgPSBjb2RlKGtleUNvZGUpOyAvLyDovazmjaLmiJDplK7noIFcbiAgfVxuXG4gIHJldHVybiBfZG93bktleXMuaW5kZXhPZihrZXlDb2RlKSAhPT0gLTE7XG59IC8vIOW+queOr+WIoOmZpGhhbmRsZXJz5Lit55qE5omA5pyJIHNjb3BlKOiMg+WbtClcblxuXG5mdW5jdGlvbiBkZWxldGVTY29wZShzY29wZSwgbmV3U2NvcGUpIHtcbiAgdmFyIGhhbmRsZXJzO1xuICB2YXIgaTsgLy8g5rKh5pyJ5oyH5a6ac2NvcGXvvIzojrflj5ZzY29wZVxuXG4gIGlmICghc2NvcGUpIHNjb3BlID0gZ2V0U2NvcGUoKTtcblxuICBmb3IgKHZhciBrZXkgaW4gX2hhbmRsZXJzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfaGFuZGxlcnMsIGtleSkpIHtcbiAgICAgIGhhbmRsZXJzID0gX2hhbmRsZXJzW2tleV07XG5cbiAgICAgIGZvciAoaSA9IDA7IGkgPCBoYW5kbGVycy5sZW5ndGg7KSB7XG4gICAgICAgIGlmIChoYW5kbGVyc1tpXS5zY29wZSA9PT0gc2NvcGUpIGhhbmRsZXJzLnNwbGljZShpLCAxKTtlbHNlIGkrKztcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8g5aaC5p6cc2NvcGXooqvliKDpmaTvvIzlsIZzY29wZemHjee9ruS4umFsbFxuXG5cbiAgaWYgKGdldFNjb3BlKCkgPT09IHNjb3BlKSBzZXRTY29wZShuZXdTY29wZSB8fCAnYWxsJyk7XG59IC8vIOa4hemZpOS/rumlsOmUrlxuXG5cbmZ1bmN0aW9uIGNsZWFyTW9kaWZpZXIoZXZlbnQpIHtcbiAgdmFyIGtleSA9IGV2ZW50LmtleUNvZGUgfHwgZXZlbnQud2hpY2ggfHwgZXZlbnQuY2hhckNvZGU7XG5cbiAgdmFyIGkgPSBfZG93bktleXMuaW5kZXhPZihrZXkpOyAvLyDku47liJfooajkuK3muIXpmaTmjInljovov4fnmoTplK5cblxuXG4gIGlmIChpID49IDApIHtcbiAgICBfZG93bktleXMuc3BsaWNlKGksIDEpO1xuICB9IC8vIOeJueauiuWkhOeQhiBjbW1hbmQg6ZSu77yM5ZyoIGNtbWFuZCDnu4TlkIjlv6vmjbfplK4ga2V5dXAg5Y+q5omn6KGM5LiA5qyh55qE6Zeu6aKYXG5cblxuICBpZiAoZXZlbnQua2V5ICYmIGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAnbWV0YScpIHtcbiAgICBfZG93bktleXMuc3BsaWNlKDAsIF9kb3duS2V5cy5sZW5ndGgpO1xuICB9IC8vIOS/rumlsOmUriBzaGlmdEtleSBhbHRLZXkgY3RybEtleSAoY29tbWFuZHx8bWV0YUtleSkg5riF6ZmkXG5cblxuICBpZiAoa2V5ID09PSA5MyB8fCBrZXkgPT09IDIyNCkga2V5ID0gOTE7XG5cbiAgaWYgKGtleSBpbiBfbW9kcykge1xuICAgIF9tb2RzW2tleV0gPSBmYWxzZTsgLy8g5bCG5L+u6aWw6ZSu6YeN572u5Li6ZmFsc2VcblxuICAgIGZvciAodmFyIGsgaW4gX21vZGlmaWVyKSB7XG4gICAgICBpZiAoX21vZGlmaWVyW2tdID09PSBrZXkpIGhvdGtleXNba10gPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdW5iaW5kKGtleXNJbmZvKSB7XG4gIC8vIHVuYmluZCgpLCB1bmJpbmQgYWxsIGtleXNcbiAgaWYgKCFrZXlzSW5mbykge1xuICAgIE9iamVjdC5rZXlzKF9oYW5kbGVycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICByZXR1cm4gZGVsZXRlIF9oYW5kbGVyc1trZXldO1xuICAgIH0pO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoa2V5c0luZm8pKSB7XG4gICAgLy8gc3VwcG9ydCBsaWtlIDogdW5iaW5kKFt7a2V5OiAnY3RybCthJywgc2NvcGU6ICdzMSd9LCB7a2V5OiAnY3RybC1hJywgc2NvcGU6ICdzMicsIHNwbGl0S2V5OiAnLSd9XSlcbiAgICBrZXlzSW5mby5mb3JFYWNoKGZ1bmN0aW9uIChpbmZvKSB7XG4gICAgICBpZiAoaW5mby5rZXkpIGVhY2hVbmJpbmQoaW5mbyk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGtleXNJbmZvID09PSAnb2JqZWN0Jykge1xuICAgIC8vIHN1cHBvcnQgbGlrZSB1bmJpbmQoe2tleTogJ2N0cmwrYSwgY3RybCtiJywgc2NvcGU6J2FiYyd9KVxuICAgIGlmIChrZXlzSW5mby5rZXkpIGVhY2hVbmJpbmQoa2V5c0luZm8pO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBrZXlzSW5mbyA9PT0gJ3N0cmluZycpIHtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICAvLyBzdXBwb3J0IG9sZCBtZXRob2RcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgdmFyIHNjb3BlID0gYXJnc1swXSxcbiAgICAgICAgbWV0aG9kID0gYXJnc1sxXTtcblxuICAgIGlmICh0eXBlb2Ygc2NvcGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIG1ldGhvZCA9IHNjb3BlO1xuICAgICAgc2NvcGUgPSAnJztcbiAgICB9XG5cbiAgICBlYWNoVW5iaW5kKHtcbiAgICAgIGtleToga2V5c0luZm8sXG4gICAgICBzY29wZTogc2NvcGUsXG4gICAgICBtZXRob2Q6IG1ldGhvZCxcbiAgICAgIHNwbGl0S2V5OiAnKydcbiAgICB9KTtcbiAgfVxufSAvLyDop6PpmaTnu5Hlrprmn5DkuKrojIPlm7TnmoTlv6vmjbfplK5cblxuXG52YXIgZWFjaFVuYmluZCA9IGZ1bmN0aW9uIGVhY2hVbmJpbmQoX3JlZikge1xuICB2YXIga2V5ID0gX3JlZi5rZXksXG4gICAgICBzY29wZSA9IF9yZWYuc2NvcGUsXG4gICAgICBtZXRob2QgPSBfcmVmLm1ldGhvZCxcbiAgICAgIF9yZWYkc3BsaXRLZXkgPSBfcmVmLnNwbGl0S2V5LFxuICAgICAgc3BsaXRLZXkgPSBfcmVmJHNwbGl0S2V5ID09PSB2b2lkIDAgPyAnKycgOiBfcmVmJHNwbGl0S2V5O1xuICB2YXIgbXVsdGlwbGVLZXlzID0gZ2V0S2V5cyhrZXkpO1xuICBtdWx0aXBsZUtleXMuZm9yRWFjaChmdW5jdGlvbiAob3JpZ2luS2V5KSB7XG4gICAgdmFyIHVuYmluZEtleXMgPSBvcmlnaW5LZXkuc3BsaXQoc3BsaXRLZXkpO1xuICAgIHZhciBsZW4gPSB1bmJpbmRLZXlzLmxlbmd0aDtcbiAgICB2YXIgbGFzdEtleSA9IHVuYmluZEtleXNbbGVuIC0gMV07XG4gICAgdmFyIGtleUNvZGUgPSBsYXN0S2V5ID09PSAnKicgPyAnKicgOiBjb2RlKGxhc3RLZXkpO1xuICAgIGlmICghX2hhbmRsZXJzW2tleUNvZGVdKSByZXR1cm47IC8vIOWIpOaWreaYr+WQpuS8oOWFpeiMg+WbtO+8jOayoeacieWwseiOt+WPluiMg+WbtFxuXG4gICAgaWYgKCFzY29wZSkgc2NvcGUgPSBnZXRTY29wZSgpO1xuICAgIHZhciBtb2RzID0gbGVuID4gMSA/IGdldE1vZHMoX21vZGlmaWVyLCB1bmJpbmRLZXlzKSA6IFtdO1xuICAgIF9oYW5kbGVyc1trZXlDb2RlXSA9IF9oYW5kbGVyc1trZXlDb2RlXS5tYXAoZnVuY3Rpb24gKHJlY29yZCkge1xuICAgICAgLy8g6YCa6L+H5Ye95pWw5Yik5pat77yM5piv5ZCm6Kej6Zmk57uR5a6a77yM5Ye95pWw55u4562J55u05o6l6L+U5ZueXG4gICAgICB2YXIgaXNNYXRjaGluZ01ldGhvZCA9IG1ldGhvZCA/IHJlY29yZC5tZXRob2QgPT09IG1ldGhvZCA6IHRydWU7XG5cbiAgICAgIGlmIChpc01hdGNoaW5nTWV0aG9kICYmIHJlY29yZC5zY29wZSA9PT0gc2NvcGUgJiYgY29tcGFyZUFycmF5KHJlY29yZC5tb2RzLCBtb2RzKSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgfSk7XG4gIH0pO1xufTsgLy8g5a+555uR5ZCs5a+55bqU5b+r5o236ZSu55qE5Zue6LCD5Ye95pWw6L+b6KGM5aSE55CGXG5cblxuZnVuY3Rpb24gZXZlbnRIYW5kbGVyKGV2ZW50LCBoYW5kbGVyLCBzY29wZSkge1xuICB2YXIgbW9kaWZpZXJzTWF0Y2g7IC8vIOeci+Wug+aYr+WQpuWcqOW9k+WJjeiMg+WbtFxuXG4gIGlmIChoYW5kbGVyLnNjb3BlID09PSBzY29wZSB8fCBoYW5kbGVyLnNjb3BlID09PSAnYWxsJykge1xuICAgIC8vIOajgOafpeaYr+WQpuWMuemFjeS/rumlsOespu+8iOWmguaenOaciei/lOWbnnRydWXvvIlcbiAgICBtb2RpZmllcnNNYXRjaCA9IGhhbmRsZXIubW9kcy5sZW5ndGggPiAwO1xuXG4gICAgZm9yICh2YXIgeSBpbiBfbW9kcykge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfbW9kcywgeSkpIHtcbiAgICAgICAgaWYgKCFfbW9kc1t5XSAmJiBoYW5kbGVyLm1vZHMuaW5kZXhPZigreSkgPiAtMSB8fCBfbW9kc1t5XSAmJiBoYW5kbGVyLm1vZHMuaW5kZXhPZigreSkgPT09IC0xKSB7XG4gICAgICAgICAgbW9kaWZpZXJzTWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gLy8g6LCD55So5aSE55CG56iL5bqP77yM5aaC5p6c5piv5L+u6aWw6ZSu5LiN5YGa5aSE55CGXG5cblxuICAgIGlmIChoYW5kbGVyLm1vZHMubGVuZ3RoID09PSAwICYmICFfbW9kc1sxNl0gJiYgIV9tb2RzWzE4XSAmJiAhX21vZHNbMTddICYmICFfbW9kc1s5MV0gfHwgbW9kaWZpZXJzTWF0Y2ggfHwgaGFuZGxlci5zaG9ydGN1dCA9PT0gJyonKSB7XG4gICAgICBpZiAoaGFuZGxlci5tZXRob2QoZXZlbnQsIGhhbmRsZXIpID09PSBmYWxzZSkge1xuICAgICAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7ZWxzZSBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlO1xuICAgICAgICBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKGV2ZW50LmNhbmNlbEJ1YmJsZSkgZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0gLy8g5aSE55CGa2V5ZG93buS6i+S7tlxuXG5cbmZ1bmN0aW9uIGRpc3BhdGNoKGV2ZW50KSB7XG4gIHZhciBhc3RlcmlzayA9IF9oYW5kbGVyc1snKiddO1xuICB2YXIga2V5ID0gZXZlbnQua2V5Q29kZSB8fCBldmVudC53aGljaCB8fCBldmVudC5jaGFyQ29kZTsgLy8g6KGo5Y2V5o6n5Lu26L+H5rukIOm7mOiupOihqOWNleaOp+S7tuS4jeinpuWPkeW/q+aNt+mUrlxuXG4gIGlmICghaG90a2V5cy5maWx0ZXIuY2FsbCh0aGlzLCBldmVudCkpIHJldHVybjsgLy8gR2Vja28oRmlyZWZveCnnmoRjb21tYW5k6ZSu5YC8MjI077yM5ZyoV2Via2l0KENocm9tZSnkuK3kv53mjIHkuIDoh7RcbiAgLy8gV2Via2l05bem5Y+zIGNvbW1hbmQg6ZSu5YC85LiN5LiA5qC3XG5cbiAgaWYgKGtleSA9PT0gOTMgfHwga2V5ID09PSAyMjQpIGtleSA9IDkxO1xuICAvKipcbiAgICogQ29sbGVjdCBib3VuZCBrZXlzXG4gICAqIElmIGFuIElucHV0IE1ldGhvZCBFZGl0b3IgaXMgcHJvY2Vzc2luZyBrZXkgaW5wdXQgYW5kIHRoZSBldmVudCBpcyBrZXlkb3duLCByZXR1cm4gMjI5LlxuICAgKiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNTA0MzkzNC9pcy1pdC1vay10by1pZ25vcmUta2V5ZG93bi1ldmVudHMtd2l0aC1rZXljb2RlLTIyOVxuICAgKiBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctZG9tLzIwMTBKdWxTZXAvYXR0LTAxODIva2V5Q29kZS1zcGVjLmh0bWxcbiAgICovXG5cbiAgaWYgKF9kb3duS2V5cy5pbmRleE9mKGtleSkgPT09IC0xICYmIGtleSAhPT0gMjI5KSBfZG93bktleXMucHVzaChrZXkpO1xuICAvKipcbiAgICogSmVzdCB0ZXN0IGNhc2VzIGFyZSByZXF1aXJlZC5cbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgKi9cblxuICBbJ2N0cmxLZXknLCAnYWx0S2V5JywgJ3NoaWZ0S2V5JywgJ21ldGFLZXknXS5mb3JFYWNoKGZ1bmN0aW9uIChrZXlOYW1lKSB7XG4gICAgdmFyIGtleU51bSA9IG1vZGlmaWVyTWFwW2tleU5hbWVdO1xuXG4gICAgaWYgKGV2ZW50W2tleU5hbWVdICYmIF9kb3duS2V5cy5pbmRleE9mKGtleU51bSkgPT09IC0xKSB7XG4gICAgICBfZG93bktleXMucHVzaChrZXlOdW0pO1xuICAgIH0gZWxzZSBpZiAoIWV2ZW50W2tleU5hbWVdICYmIF9kb3duS2V5cy5pbmRleE9mKGtleU51bSkgPiAtMSkge1xuICAgICAgX2Rvd25LZXlzLnNwbGljZShfZG93bktleXMuaW5kZXhPZihrZXlOdW0pLCAxKTtcbiAgICB9IGVsc2UgaWYgKGtleU5hbWUgPT09ICdtZXRhS2V5JyAmJiBldmVudFtrZXlOYW1lXSAmJiBfZG93bktleXMubGVuZ3RoID09PSAzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEZpeCBpZiBDb21tYW5kIGlzIHByZXNzZWQ6XG4gICAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAgKi9cbiAgICAgIGlmICghKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQuYWx0S2V5KSkge1xuICAgICAgICBfZG93bktleXMgPSBfZG93bktleXMuc2xpY2UoX2Rvd25LZXlzLmluZGV4T2Yoa2V5TnVtKSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgLyoqXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICovXG5cbiAgaWYgKGtleSBpbiBfbW9kcykge1xuICAgIF9tb2RzW2tleV0gPSB0cnVlOyAvLyDlsIbnibnmrorlrZfnrKbnmoRrZXnms6jlhozliLAgaG90a2V5cyDkuIpcblxuICAgIGZvciAodmFyIGsgaW4gX21vZGlmaWVyKSB7XG4gICAgICBpZiAoX21vZGlmaWVyW2tdID09PSBrZXkpIGhvdGtleXNba10gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghYXN0ZXJpc2spIHJldHVybjtcbiAgfSAvLyDlsIYgbW9kaWZpZXJNYXAg6YeM6Z2i55qE5L+u6aWw6ZSu57uR5a6a5YiwIGV2ZW50IOS4rVxuXG5cbiAgZm9yICh2YXIgZSBpbiBfbW9kcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX21vZHMsIGUpKSB7XG4gICAgICBfbW9kc1tlXSA9IGV2ZW50W21vZGlmaWVyTWFwW2VdXTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9qYXl3Y2psb3ZlL2hvdGtleXMvcHVsbC8xMjlcbiAgICogVGhpcyBzb2x2ZXMgdGhlIGlzc3VlIGluIEZpcmVmb3ggb24gV2luZG93cyB3aGVyZSBob3RrZXlzIGNvcnJlc3BvbmRpbmcgdG8gc3BlY2lhbCBjaGFyYWN0ZXJzIHdvdWxkIG5vdCB0cmlnZ2VyLlxuICAgKiBBbiBleGFtcGxlIG9mIHRoaXMgaXMgY3RybCthbHQrbSBvbiBhIFN3ZWRpc2gga2V5Ym9hcmQgd2hpY2ggaXMgdXNlZCB0byB0eXBlIM68LlxuICAgKiBCcm93c2VyIHN1cHBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9a2V5Ym9hcmRldmVudC1nZXRtb2RpZmllcnN0YXRlXG4gICAqL1xuXG5cbiAgaWYgKGV2ZW50LmdldE1vZGlmaWVyU3RhdGUgJiYgIShldmVudC5hbHRLZXkgJiYgIWV2ZW50LmN0cmxLZXkpICYmIGV2ZW50LmdldE1vZGlmaWVyU3RhdGUoJ0FsdEdyYXBoJykpIHtcbiAgICBpZiAoX2Rvd25LZXlzLmluZGV4T2YoMTcpID09PSAtMSkge1xuICAgICAgX2Rvd25LZXlzLnB1c2goMTcpO1xuICAgIH1cblxuICAgIGlmIChfZG93bktleXMuaW5kZXhPZigxOCkgPT09IC0xKSB7XG4gICAgICBfZG93bktleXMucHVzaCgxOCk7XG4gICAgfVxuXG4gICAgX21vZHNbMTddID0gdHJ1ZTtcbiAgICBfbW9kc1sxOF0gPSB0cnVlO1xuICB9IC8vIOiOt+WPluiMg+WbtCDpu5jorqTkuLogYGFsbGBcblxuXG4gIHZhciBzY29wZSA9IGdldFNjb3BlKCk7IC8vIOWvueS7u+S9leW/q+aNt+mUrumDvemcgOimgeWBmueahOWkhOeQhlxuXG4gIGlmIChhc3Rlcmlzaykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXN0ZXJpc2subGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhc3Rlcmlza1tpXS5zY29wZSA9PT0gc2NvcGUgJiYgKGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyAmJiBhc3Rlcmlza1tpXS5rZXlkb3duIHx8IGV2ZW50LnR5cGUgPT09ICdrZXl1cCcgJiYgYXN0ZXJpc2tbaV0ua2V5dXApKSB7XG4gICAgICAgIGV2ZW50SGFuZGxlcihldmVudCwgYXN0ZXJpc2tbaV0sIHNjb3BlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8ga2V5IOS4jeWcqCBfaGFuZGxlcnMg5Lit6L+U5ZueXG5cblxuICBpZiAoIShrZXkgaW4gX2hhbmRsZXJzKSkgcmV0dXJuO1xuXG4gIGZvciAodmFyIF9pID0gMDsgX2kgPCBfaGFuZGxlcnNba2V5XS5sZW5ndGg7IF9pKyspIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nICYmIF9oYW5kbGVyc1trZXldW19pXS5rZXlkb3duIHx8IGV2ZW50LnR5cGUgPT09ICdrZXl1cCcgJiYgX2hhbmRsZXJzW2tleV1bX2ldLmtleXVwKSB7XG4gICAgICBpZiAoX2hhbmRsZXJzW2tleV1bX2ldLmtleSkge1xuICAgICAgICB2YXIgcmVjb3JkID0gX2hhbmRsZXJzW2tleV1bX2ldO1xuICAgICAgICB2YXIgc3BsaXRLZXkgPSByZWNvcmQuc3BsaXRLZXk7XG4gICAgICAgIHZhciBrZXlTaG9ydGN1dCA9IHJlY29yZC5rZXkuc3BsaXQoc3BsaXRLZXkpO1xuICAgICAgICB2YXIgX2Rvd25LZXlzQ3VycmVudCA9IFtdOyAvLyDorrDlvZXlvZPliY3mjInplK7plK7lgLxcblxuICAgICAgICBmb3IgKHZhciBhID0gMDsgYSA8IGtleVNob3J0Y3V0Lmxlbmd0aDsgYSsrKSB7XG4gICAgICAgICAgX2Rvd25LZXlzQ3VycmVudC5wdXNoKGNvZGUoa2V5U2hvcnRjdXRbYV0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfZG93bktleXNDdXJyZW50LnNvcnQoKS5qb2luKCcnKSA9PT0gX2Rvd25LZXlzLnNvcnQoKS5qb2luKCcnKSkge1xuICAgICAgICAgIC8vIOaJvuWIsOWkhOeQhuWGheWuuVxuICAgICAgICAgIGV2ZW50SGFuZGxlcihldmVudCwgcmVjb3JkLCBzY29wZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0gLy8g5Yik5patIGVsZW1lbnQg5piv5ZCm5bey57uP57uR5a6a5LqL5Lu2XG5cblxuZnVuY3Rpb24gaXNFbGVtZW50QmluZChlbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50SGFzQmluZEV2ZW50LmluZGV4T2YoZWxlbWVudCkgPiAtMTtcbn1cblxuZnVuY3Rpb24gaG90a2V5cyhrZXksIG9wdGlvbiwgbWV0aG9kKSB7XG4gIF9kb3duS2V5cyA9IFtdO1xuICB2YXIga2V5cyA9IGdldEtleXMoa2V5KTsgLy8g6ZyA6KaB5aSE55CG55qE5b+r5o236ZSu5YiX6KGoXG5cbiAgdmFyIG1vZHMgPSBbXTtcbiAgdmFyIHNjb3BlID0gJ2FsbCc7IC8vIHNjb3Bl6buY6K6k5Li6YWxs77yM5omA5pyJ6IyD5Zu06YO95pyJ5pWIXG5cbiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudDsgLy8g5b+r5o236ZSu5LqL5Lu257uR5a6a6IqC54K5XG5cbiAgdmFyIGkgPSAwO1xuICB2YXIga2V5dXAgPSBmYWxzZTtcbiAgdmFyIGtleWRvd24gPSB0cnVlO1xuICB2YXIgc3BsaXRLZXkgPSAnKyc7IC8vIOWvueS4uuiuvuWumuiMg+WbtOeahOWIpOaWrVxuXG4gIGlmIChtZXRob2QgPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb3B0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgbWV0aG9kID0gb3B0aW9uO1xuICB9XG5cbiAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvcHRpb24pID09PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgIGlmIChvcHRpb24uc2NvcGUpIHNjb3BlID0gb3B0aW9uLnNjb3BlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICBpZiAob3B0aW9uLmVsZW1lbnQpIGVsZW1lbnQgPSBvcHRpb24uZWxlbWVudDsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgaWYgKG9wdGlvbi5rZXl1cCkga2V5dXAgPSBvcHRpb24ua2V5dXA7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGlmIChvcHRpb24ua2V5ZG93biAhPT0gdW5kZWZpbmVkKSBrZXlkb3duID0gb3B0aW9uLmtleWRvd247IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9uLnNwbGl0S2V5ID09PSAnc3RyaW5nJykgc3BsaXRLZXkgPSBvcHRpb24uc3BsaXRLZXk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykgc2NvcGUgPSBvcHRpb247IC8vIOWvueS6juavj+S4quW/q+aNt+mUrui/m+ihjOWkhOeQhlxuXG4gIGZvciAoOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGtleSA9IGtleXNbaV0uc3BsaXQoc3BsaXRLZXkpOyAvLyDmjInplK7liJfooahcblxuICAgIG1vZHMgPSBbXTsgLy8g5aaC5p6c5piv57uE5ZCI5b+r5o236ZSu5Y+W5b6X57uE5ZCI5b+r5o236ZSuXG5cbiAgICBpZiAoa2V5Lmxlbmd0aCA+IDEpIG1vZHMgPSBnZXRNb2RzKF9tb2RpZmllciwga2V5KTsgLy8g5bCG6Z2e5L+u6aWw6ZSu6L2s5YyW5Li66ZSu56CBXG5cbiAgICBrZXkgPSBrZXlba2V5Lmxlbmd0aCAtIDFdO1xuICAgIGtleSA9IGtleSA9PT0gJyonID8gJyonIDogY29kZShrZXkpOyAvLyAq6KGo56S65Yy56YWN5omA5pyJ5b+r5o236ZSuXG4gICAgLy8g5Yik5pata2V55piv5ZCm5ZyoX2hhbmRsZXJz5Lit77yM5LiN5Zyo5bCx6LWL5LiA5Liq56m65pWw57uEXG5cbiAgICBpZiAoIShrZXkgaW4gX2hhbmRsZXJzKSkgX2hhbmRsZXJzW2tleV0gPSBbXTtcblxuICAgIF9oYW5kbGVyc1trZXldLnB1c2goe1xuICAgICAga2V5dXA6IGtleXVwLFxuICAgICAga2V5ZG93bjoga2V5ZG93bixcbiAgICAgIHNjb3BlOiBzY29wZSxcbiAgICAgIG1vZHM6IG1vZHMsXG4gICAgICBzaG9ydGN1dDoga2V5c1tpXSxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAga2V5OiBrZXlzW2ldLFxuICAgICAgc3BsaXRLZXk6IHNwbGl0S2V5XG4gICAgfSk7XG4gIH0gLy8g5Zyo5YWo5bGAZG9jdW1lbnTkuIrorr7nva7lv6vmjbfplK5cblxuXG4gIGlmICh0eXBlb2YgZWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgIWlzRWxlbWVudEJpbmQoZWxlbWVudCkgJiYgd2luZG93KSB7XG4gICAgZWxlbWVudEhhc0JpbmRFdmVudC5wdXNoKGVsZW1lbnQpO1xuICAgIGFkZEV2ZW50KGVsZW1lbnQsICdrZXlkb3duJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRpc3BhdGNoKGUpO1xuICAgIH0pO1xuICAgIGFkZEV2ZW50KHdpbmRvdywgJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgX2Rvd25LZXlzID0gW107XG4gICAgfSk7XG4gICAgYWRkRXZlbnQoZWxlbWVudCwgJ2tleXVwJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRpc3BhdGNoKGUpO1xuICAgICAgY2xlYXJNb2RpZmllcihlKTtcbiAgICB9KTtcbiAgfVxufVxuXG52YXIgX2FwaSA9IHtcbiAgc2V0U2NvcGU6IHNldFNjb3BlLFxuICBnZXRTY29wZTogZ2V0U2NvcGUsXG4gIGRlbGV0ZVNjb3BlOiBkZWxldGVTY29wZSxcbiAgZ2V0UHJlc3NlZEtleUNvZGVzOiBnZXRQcmVzc2VkS2V5Q29kZXMsXG4gIGlzUHJlc3NlZDogaXNQcmVzc2VkLFxuICBmaWx0ZXI6IGZpbHRlcixcbiAgdW5iaW5kOiB1bmJpbmRcbn07XG5cbmZvciAodmFyIGEgaW4gX2FwaSkge1xuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9hcGksIGEpKSB7XG4gICAgaG90a2V5c1thXSA9IF9hcGlbYV07XG4gIH1cbn1cblxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gIHZhciBfaG90a2V5cyA9IHdpbmRvdy5ob3RrZXlzO1xuXG4gIGhvdGtleXMubm9Db25mbGljdCA9IGZ1bmN0aW9uIChkZWVwKSB7XG4gICAgaWYgKGRlZXAgJiYgd2luZG93LmhvdGtleXMgPT09IGhvdGtleXMpIHtcbiAgICAgIHdpbmRvdy5ob3RrZXlzID0gX2hvdGtleXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhvdGtleXM7XG4gIH07XG5cbiAgd2luZG93LmhvdGtleXMgPSBob3RrZXlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBob3RrZXlzO1xuIiwiaW1wb3J0IGhvdGtleXMgZnJvbSAnaG90a2V5cy1qcyc7XG5pbXBvcnQgeyB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5cbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBVc2UgaXNIb3RrZXlQcmVzc2VkIGluc3RlYWQuIFdpbGwgYmUgcmVtb3ZlZCB2ZXJzaW9uIDQuXHJcbiAqL1xuXG5mdW5jdGlvbiB1c2VJc0hvdGtleVByZXNzZWQoKSB7XG4gIHJldHVybiBob3RrZXlzLmlzUHJlc3NlZDtcbn1cblxuaG90a2V5cy5maWx0ZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcblxudmFyIHRhZ0ZpbHRlciA9IGZ1bmN0aW9uIHRhZ0ZpbHRlcihfcmVmLCBlbmFibGVPblRhZ3MpIHtcbiAgdmFyIHRhcmdldCA9IF9yZWYudGFyZ2V0O1xuICB2YXIgdGFyZ2V0VGFnTmFtZSA9IHRhcmdldCAmJiB0YXJnZXQudGFnTmFtZTtcbiAgcmV0dXJuIEJvb2xlYW4odGFyZ2V0VGFnTmFtZSAmJiBlbmFibGVPblRhZ3MgJiYgZW5hYmxlT25UYWdzLmluY2x1ZGVzKHRhcmdldFRhZ05hbWUpKTtcbn07XG5cbnZhciBpc0tleWJvYXJkRXZlbnRUcmlnZ2VyZWRCeUlucHV0ID0gZnVuY3Rpb24gaXNLZXlib2FyZEV2ZW50VHJpZ2dlcmVkQnlJbnB1dChldikge1xuICByZXR1cm4gdGFnRmlsdGVyKGV2LCBbJ0lOUFVUJywgJ1RFWFRBUkVBJywgJ1NFTEVDVCddKTtcbn07XG5cbmZ1bmN0aW9uIHVzZUhvdGtleXMoa2V5cywgY2FsbGJhY2ssIG9wdGlvbnMsIGRlcHMpIHtcbiAgaWYgKG9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIGRlcHMgPSBvcHRpb25zO1xuICAgIG9wdGlvbnMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICB2YXIgX3JlZjIgPSBvcHRpb25zIHx8IHt9LFxuICAgICAgZW5hYmxlT25UYWdzID0gX3JlZjIuZW5hYmxlT25UYWdzLFxuICAgICAgZmlsdGVyID0gX3JlZjIuZmlsdGVyLFxuICAgICAga2V5dXAgPSBfcmVmMi5rZXl1cCxcbiAgICAgIGtleWRvd24gPSBfcmVmMi5rZXlkb3duLFxuICAgICAgX3JlZjIkZmlsdGVyUHJldmVudERlID0gX3JlZjIuZmlsdGVyUHJldmVudERlZmF1bHQsXG4gICAgICBmaWx0ZXJQcmV2ZW50RGVmYXVsdCA9IF9yZWYyJGZpbHRlclByZXZlbnREZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYyJGZpbHRlclByZXZlbnREZSxcbiAgICAgIF9yZWYyJGVuYWJsZWQgPSBfcmVmMi5lbmFibGVkLFxuICAgICAgZW5hYmxlZCA9IF9yZWYyJGVuYWJsZWQgPT09IHZvaWQgMCA/IHRydWUgOiBfcmVmMiRlbmFibGVkLFxuICAgICAgX3JlZjIkZW5hYmxlT25Db250ZW50ID0gX3JlZjIuZW5hYmxlT25Db250ZW50RWRpdGFibGUsXG4gICAgICBlbmFibGVPbkNvbnRlbnRFZGl0YWJsZSA9IF9yZWYyJGVuYWJsZU9uQ29udGVudCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmMiRlbmFibGVPbkNvbnRlbnQ7XG5cbiAgdmFyIHJlZiA9IHVzZVJlZihudWxsKTsgLy8gVGhlIHJldHVybiB2YWx1ZSBvZiB0aGlzIGNhbGxiYWNrIGRldGVybWluZXMgaWYgdGhlIGJyb3dzZXJzIGRlZmF1bHQgYmVoYXZpb3IgaXMgcHJldmVudGVkLlxuXG4gIHZhciBtZW1vaXNlZENhbGxiYWNrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGtleWJvYXJkRXZlbnQsIGhvdGtleXNFdmVudCkge1xuICAgIHZhciBfa2V5Ym9hcmRFdmVudCR0YXJnZXQ7XG5cbiAgICBpZiAoZmlsdGVyICYmICFmaWx0ZXIoa2V5Ym9hcmRFdmVudCkpIHtcbiAgICAgIHJldHVybiAhZmlsdGVyUHJldmVudERlZmF1bHQ7XG4gICAgfSAvLyBDaGVjayB3aGV0aGVyIHRoZSBob3RrZXlzIHdhcyB0cmlnZ2VyZWQgaW5zaWRlIGFuIGlucHV0IGFuZCB0aGF0IGlucHV0IGlzIGVuYWJsZWQgb3IgaWYgaXQgd2FzIHRyaWdnZXJlZCBieSBhIGNvbnRlbnQgZWRpdGFibGUgdGFnIGFuZCBpdCBpcyBlbmFibGVkLlxuXG5cbiAgICBpZiAoaXNLZXlib2FyZEV2ZW50VHJpZ2dlcmVkQnlJbnB1dChrZXlib2FyZEV2ZW50KSAmJiAhdGFnRmlsdGVyKGtleWJvYXJkRXZlbnQsIGVuYWJsZU9uVGFncykgfHwgKF9rZXlib2FyZEV2ZW50JHRhcmdldCA9IGtleWJvYXJkRXZlbnQudGFyZ2V0KSAhPSBudWxsICYmIF9rZXlib2FyZEV2ZW50JHRhcmdldC5pc0NvbnRlbnRFZGl0YWJsZSAmJiAhZW5hYmxlT25Db250ZW50RWRpdGFibGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChyZWYuY3VycmVudCA9PT0gbnVsbCB8fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSByZWYuY3VycmVudCkge1xuICAgICAgY2FsbGJhY2soa2V5Ym9hcmRFdmVudCwgaG90a2V5c0V2ZW50KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfSwgZGVwcyA/IFtyZWYsIGVuYWJsZU9uVGFncywgZmlsdGVyXS5jb25jYXQoZGVwcykgOiBbcmVmLCBlbmFibGVPblRhZ3MsIGZpbHRlcl0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gSW4gdGhpcyBjYXNlIGtleWRvd24gaXMgbGlrZWx5IHVuZGVmaW5lZCwgc28gd2Ugc2V0IGl0IHRvIGZhbHNlLCBzaW5jZSBob3RrZXlzIG5lZWRzIHRoZSBga2V5ZG93bmAga2V5IHRvIGhhdmUgYSB2YWx1ZS5cblxuXG4gICAgaWYgKGtleXVwICYmIGtleWRvd24gIT09IHRydWUpIHtcbiAgICAgIG9wdGlvbnMua2V5ZG93biA9IGZhbHNlO1xuICAgIH1cblxuICAgIGhvdGtleXMoa2V5cywgb3B0aW9ucyB8fCB7fSwgbWVtb2lzZWRDYWxsYmFjayk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBob3RrZXlzLnVuYmluZChrZXlzLCBtZW1vaXNlZENhbGxiYWNrKTtcbiAgICB9O1xuICB9LCBbbWVtb2lzZWRDYWxsYmFjaywga2V5cywgZW5hYmxlZF0pO1xuICByZXR1cm4gcmVmO1xufVxuXG52YXIgaXNIb3RrZXlQcmVzc2VkID0gaG90a2V5cy5pc1ByZXNzZWQ7XG5cbmV4cG9ydCB7IGlzSG90a2V5UHJlc3NlZCwgdXNlSG90a2V5cywgdXNlSXNIb3RrZXlQcmVzc2VkIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1ob3RrZXlzLWhvb2suZXNtLmpzLm1hcFxuIl0sInNvdXJjZVJvb3QiOiIifQ==