@ultraviolet/plus 0.17.4 → 0.17.6

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.
@@ -19,7 +19,7 @@ const RelativeDiv = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "pro
19
19
  } : {
20
20
  name: "bjn8wh",
21
21
  styles: "position:relative",
22
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlDOEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
22
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlDOEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
23
23
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
24
24
  });
25
25
  const StyledIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "production" ? {
@@ -38,14 +38,14 @@ const StyledIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "produ
38
38
  }) => theme.colors.neutral.backgroundWeakHover, ";", ({
39
39
  active,
40
40
  theme
41
- }) => active ? `background: ${theme.colors.primary.backgroundHover};` : null, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVDd0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */"));
41
+ }) => active ? `background: ${theme.colors.primary.backgroundHover};` : null, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVDd0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */"));
42
42
  const NeutralButtonLink = process.env.NODE_ENV === "production" ? {
43
43
  name: "rhgg7c",
44
44
  styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left"
45
45
  } : {
46
46
  name: "1kb8ns1-NeutralButtonLink",
47
47
  styles: "color:inherit;text-decoration:none;background-color:inherit;border:none;text-align:left;label:NeutralButtonLink;",
48
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNENkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
48
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVENkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
49
49
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
50
50
  };
51
51
  const LocalExpandButton = /* @__PURE__ */ _styled(Button, process.env.NODE_ENV === "production" ? {
@@ -59,7 +59,7 @@ const LocalExpandButton = /* @__PURE__ */ _styled(Button, process.env.NODE_ENV =
59
59
  } : {
60
60
  name: "9hkyle",
61
61
  styles: "opacity:0;right:0;position:absolute;left:-24px;top:0;bottom:0;margin:auto;&:hover,&:focus,&:active{opacity:1;}",
62
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStEd0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
62
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdFd0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
63
63
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
64
64
  });
65
65
  const PinnedButton = LocalExpandButton.withComponent("div", process.env.NODE_ENV === "production" ? {
@@ -75,13 +75,13 @@ const GrabIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "product
75
75
  label: "GrabIcon"
76
76
  })("opacity:0;margin:0 ", ({
77
77
  theme
78
- }) => theme.space["0.25"], ";cursor:grab;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlGNkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */"));
78
+ }) => theme.space["0.25"], ";cursor:grab;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtGNkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */"));
79
79
  const StyledBadge = /* @__PURE__ */ _styled(Badge, process.env.NODE_ENV === "production" ? {
80
80
  target: "e134hokc9"
81
81
  } : {
82
82
  target: "e134hokc9",
83
83
  label: "StyledBadge"
84
- })(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVGaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */");
84
+ })(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdGaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */");
85
85
  const StyledMenuItem = /* @__PURE__ */ _styled(MenuV2.Item, process.env.NODE_ENV === "production" ? {
86
86
  shouldForwardProp: (prop) => !["isPinnable"].includes(prop),
87
87
  target: "e134hokc8"
@@ -91,7 +91,7 @@ const StyledMenuItem = /* @__PURE__ */ _styled(MenuV2.Item, process.env.NODE_ENV
91
91
  label: "StyledMenuItem"
92
92
  })("text-align:left;&:hover,&:focus,&:active{", PinnedButton, "{opacity:1;}", StyledBadge, "{opacity:", ({
93
93
  isPinnable
94
- }) => isPinnable ? 0 : 1, ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZGRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBDYXRlZ29yeUljb24sIEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQge1xuICBCYWRnZSxcbiAgQnV0dG9uLFxuICBFeHBhbmRhYmxlLFxuICBNZW51VjIsXG4gIFN0YWNrLFxuICBUZXh0LFxuICBUb29sdGlwLFxuICBmYWRlSW4sXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgSlNYLFxuICBNb3VzZUV2ZW50LFxuICBSZWFjdE5vZGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgQ2hpbGRyZW4sXG4gIGNsb25lRWxlbWVudCxcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uQ2xpY2tQaW5VbnBpbixcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgKVxuXG4gIGNvbnN0IFtpbnRlcm5hbFRvZ2dsZSwgc2V0VG9nZ2xlXSA9IHVzZVN0YXRlKHRvZ2dsZSAhPT0gZmFsc2UpXG5cbiAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgc2V0VG9nZ2xlKHZhbHVlKVxuICAgICAgb25DbGljaz8uKGludGVybmFsVG9nZ2xlKVxuICAgIH0sXG4gICAgW2ludGVybmFsVG9nZ2xlLCBvbkNsaWNrXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbiA9PT0gJ2NvbGxhcHNlJykge1xuICAgICAgc2V0VG9nZ2xlKGZhbHNlKVxuICAgIH1cblxuICAgIGlmIChhbmltYXRpb24gPT09ICdleHBhbmQnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0VG9nZ2xlKHRvZ2dsZSA/PyB0cnVlKVxuICAgICAgfSwgMSlcbiAgICB9XG4gIH0sIFthbmltYXRpb24sIHRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKVxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgIWludGVybmFsVG9nZ2xlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxUb2dnbGVdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG4gIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IGNoaWxkLFxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyVG9nZ2xlKCFpbnRlcm5hbFRvZ2dsZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9uQ2xpY2s/LigpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICB0YXJnZXQ9e2hyZWYgPyAnX2JsYW5rJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgeyFhbmltYXRpb24gJiYgIW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtpbnRlcm5hbFRvZ2dsZSA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsVG9nZ2xlfVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbiA/IEFOSU1BVElPTl9EVVJBVElPTiAvIDIgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC8+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2xpY2s/LigpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb24gPz8gJ2NvbnNvbGUnfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApfVxuICAgICAgPC9NZW51U3RhY2s+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICBpZiAoaGFzUGFyZW50cykge1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIG9uQ2xpY2s/LigpXG4gICAgICAgIH19XG4gICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICA+XG4gICAgICAgIDxTdGFja1xuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICA+XG4gICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIj5cbiAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */"));
94
+ }) => isPinnable ? 0 : 1, ";}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThGRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBDYXRlZ29yeUljb24sIEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQge1xuICBCYWRnZSxcbiAgQnV0dG9uLFxuICBFeHBhbmRhYmxlLFxuICBNZW51VjIsXG4gIFN0YWNrLFxuICBUZXh0LFxuICBUb29sdGlwLFxuICBmYWRlSW4sXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgSlNYLFxuICBNb3VzZUV2ZW50LFxuICBSZWFjdE5vZGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgQ2hpbGRyZW4sXG4gIGNsb25lRWxlbWVudCxcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+XG4gICAgICBhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsfVxuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBOZXV0cmFsQnV0dG9uTGluayA9IGNzc2BcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuYFxuXG4vLyBQaW4gYnV0dG9uIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbmNvbnN0IExvY2FsRXhwYW5kQnV0dG9uID0gc3R5bGVkKEJ1dHRvbilgXG4gIG9wYWNpdHk6IDA7XG4gIHJpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0yNHB4O1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gXG5cbmNvbnN0IFBpbm5lZEJ1dHRvbiA9IExvY2FsRXhwYW5kQnV0dG9uLndpdGhDb21wb25lbnQoJ2RpdicpXG5cbmNvbnN0IEdyYWJJY29uID0gc3R5bGVkKEljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgb3BhY2l0eTogJHsoeyBpc1Bpbm5hYmxlIH0pID0+IChpc1Bpbm5hYmxlID8gMCA6IDEpfTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkTWVudSA9IHN0eWxlZChNZW51VjIpYFxuICB3aWR0aDogMTgwcHg7XG5gXG5cbmNvbnN0IFBhZGRpbmdTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IEFuaW1hdGVkSWNvbiA9IHN0eWxlZChJY29uKWBgXG5cbmNvbnN0IFdyYXBUZXh0ID0gc3R5bGVkKFRleHQsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydhbmltYXRpb24nLCAnc3ViTGFiZWwnLCAndGV4dFByb21pbmVuY2UnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgYW5pbWF0aW9uPzogJ2NvbGxhcHNlJyB8ICdleHBhbmQnIHwgYm9vbGVhblxuICBzdWJMYWJlbD86IGJvb2xlYW5cbn0+YFxuICBvdmVyZmxvdy13cmFwOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vcm1hbCcgOiAnYW55d2hlcmUnKX07XG4gIHdoaXRlLXNwYWNlOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vd3JhcCcgOiAnbm9ybWFsJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5gXG5cbmNvbnN0IFN0eWxlZFN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKFN0YWNrKWBcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT1cInRydWVcIl0ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgJHtQaW5uZWRCdXR0b259LCAke0dyYWJJY29ufSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmhvdmVyW2RhdGEtaGFzLWNoaWxkcmVuPVwiZmFsc2VcIl1bZGF0YS1pcy1hY3RpdmU9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl0sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPVwidHJ1ZVwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kfTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtEaXNhYmxlZH07XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImNvbGxhcHNlXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJleHBhbmRcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uQ2xpY2tQaW5VbnBpbixcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgKVxuXG4gIGNvbnN0IFtpbnRlcm5hbFRvZ2dsZSwgc2V0VG9nZ2xlXSA9IHVzZVN0YXRlKHRvZ2dsZSAhPT0gZmFsc2UpXG5cbiAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgc2V0VG9nZ2xlKHZhbHVlKVxuICAgICAgb25DbGljaz8uKGludGVybmFsVG9nZ2xlKVxuICAgIH0sXG4gICAgW2ludGVybmFsVG9nZ2xlLCBvbkNsaWNrXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbiA9PT0gJ2NvbGxhcHNlJykge1xuICAgICAgc2V0VG9nZ2xlKGZhbHNlKVxuICAgIH1cblxuICAgIGlmIChhbmltYXRpb24gPT09ICdleHBhbmQnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0VG9nZ2xlKHRvZ2dsZSA/PyB0cnVlKVxuICAgICAgfSwgMSlcbiAgICB9XG4gIH0sIFthbmltYXRpb24sIHRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKVxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgIWludGVybmFsVG9nZ2xlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxUb2dnbGVdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG4gIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IGNoaWxkLFxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyVG9nZ2xlKCFpbnRlcm5hbFRvZ2dsZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9uQ2xpY2s/LigpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICB0YXJnZXQ9e2hyZWYgPyAnX2JsYW5rJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgeyFhbmltYXRpb24gJiYgIW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtpbnRlcm5hbFRvZ2dsZSA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsVG9nZ2xlfVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbiA/IEFOSU1BVElPTl9EVVJBVElPTiAvIDIgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC8+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2xpY2s/LigpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb24gPz8gJ2NvbnNvbGUnfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApfVxuICAgICAgPC9NZW51U3RhY2s+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICBpZiAoaGFzUGFyZW50cykge1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIG9uQ2xpY2s/LigpXG4gICAgICAgIH19XG4gICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICA+XG4gICAgICAgIDxTdGFja1xuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICA+XG4gICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIj5cbiAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */"));
95
95
  const StyledMenu = /* @__PURE__ */ _styled(MenuV2, process.env.NODE_ENV === "production" ? {
96
96
  target: "e134hokc7"
97
97
  } : {
@@ -103,7 +103,7 @@ const StyledMenu = /* @__PURE__ */ _styled(MenuV2, process.env.NODE_ENV === "pro
103
103
  } : {
104
104
  name: "educr3",
105
105
  styles: "width:180px",
106
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZHaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
106
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThHaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
107
107
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
108
108
  });
109
109
  const PaddingStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
@@ -117,7 +117,7 @@ const PaddingStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "pr
117
117
  } : {
118
118
  name: "13feash",
119
119
  styles: "padding-left:28px",
120
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlIa0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
120
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtIa0MiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
121
121
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
122
122
  });
123
123
  const AnimatedIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "production" ? {
@@ -125,7 +125,7 @@ const AnimatedIcon = /* @__PURE__ */ _styled(Icon, process.env.NODE_ENV === "pro
125
125
  } : {
126
126
  target: "e134hokc5",
127
127
  label: "AnimatedIcon"
128
- })(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFIaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */");
128
+ })(process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNIaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */");
129
129
  const WrapText = /* @__PURE__ */ _styled(Text, process.env.NODE_ENV === "production" ? {
130
130
  shouldForwardProp: (prop) => !["animation", "subLabel", "textProminence"].includes(prop),
131
131
  target: "e134hokc4"
@@ -137,7 +137,7 @@ const WrapText = /* @__PURE__ */ _styled(Text, process.env.NODE_ENV === "product
137
137
  animation
138
138
  }) => animation ? "normal" : "anywhere", ";white-space:", ({
139
139
  animation
140
- }) => animation ? "nowrap" : "normal", ";overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:pre-wrap;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZIRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBDYXRlZ29yeUljb24sIEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQge1xuICBCYWRnZSxcbiAgQnV0dG9uLFxuICBFeHBhbmRhYmxlLFxuICBNZW51VjIsXG4gIFN0YWNrLFxuICBUZXh0LFxuICBUb29sdGlwLFxuICBmYWRlSW4sXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgSlNYLFxuICBNb3VzZUV2ZW50LFxuICBSZWFjdE5vZGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgQ2hpbGRyZW4sXG4gIGNsb25lRWxlbWVudCxcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+IChhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsKX1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgbWFyZ2luLXRvcDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PlxuICAgIGBjYWxjKCR7dGhlbWUuc3BhY2VbJzAuMjUnXX0gKyAke3RoZW1lLnNwYWNlWycwLjUnXX0pICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcblxuICAmW2RhdGEtaGFzLXN1Yi1sYWJlbD0ndHJ1ZSddIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSxcbiAgJjpmb2N1c1tkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49J3RydWUnXVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PlxuICAgICAgdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWtIb3Zlcn07XG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtIb3Zlcn07XG4gICAgfVxuXG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJltkYXRhLWlzLXBpbm5hYmxlPSd0cnVlJ10ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj0nZmFsc2UnXVtkYXRhLWlzLWFjdGl2ZT0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ11cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAmW2RhdGEtaXMtYWN0aXZlPSd0cnVlJ10sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPSd0cnVlJ10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2NvbGxhcHNlJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj0nZXhwYW5kJ10ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uQ2xpY2tQaW5VbnBpbixcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgKVxuXG4gIGNvbnN0IFtpbnRlcm5hbFRvZ2dsZSwgc2V0VG9nZ2xlXSA9IHVzZVN0YXRlKHRvZ2dsZSAhPT0gZmFsc2UpXG5cbiAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgc2V0VG9nZ2xlKHZhbHVlKVxuICAgICAgb25DbGljaz8uKGludGVybmFsVG9nZ2xlKVxuICAgIH0sXG4gICAgW2ludGVybmFsVG9nZ2xlLCBvbkNsaWNrXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbiA9PT0gJ2NvbGxhcHNlJykge1xuICAgICAgc2V0VG9nZ2xlKGZhbHNlKVxuICAgIH1cblxuICAgIGlmIChhbmltYXRpb24gPT09ICdleHBhbmQnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0VG9nZ2xlKHRvZ2dsZSA/PyB0cnVlKVxuICAgICAgfSwgMSlcbiAgICB9XG4gIH0sIFthbmltYXRpb24sIHRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKVxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgIWludGVybmFsVG9nZ2xlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxUb2dnbGVdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG4gIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IGNoaWxkLFxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyVG9nZ2xlKCFpbnRlcm5hbFRvZ2dsZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9uQ2xpY2s/LigpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICB0YXJnZXQ9e2hyZWYgPyAnX2JsYW5rJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgeyFhbmltYXRpb24gJiYgIW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtpbnRlcm5hbFRvZ2dsZSA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsVG9nZ2xlfVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbiA/IEFOSU1BVElPTl9EVVJBVElPTiAvIDIgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC8+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2xpY2s/LigpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb24gPz8gJ2NvbnNvbGUnfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApfVxuICAgICAgPC9NZW51U3RhY2s+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICBpZiAoaGFzUGFyZW50cykge1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIG9uQ2xpY2s/LigpXG4gICAgICAgIH19XG4gICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICA+XG4gICAgICAgIDxTdGFja1xuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICA+XG4gICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIj5cbiAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */"));
140
+ }) => animation ? "nowrap" : "normal", ";overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:pre-wrap;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThIRSIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay91bHRyYXZpb2xldC91bHRyYXZpb2xldC9wYWNrYWdlcy9wbHVzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vY29tcG9uZW50cy9JdGVtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBDYXRlZ29yeUljb24sIEljb24gfSBmcm9tICdAdWx0cmF2aW9sZXQvaWNvbnMnXG5pbXBvcnQge1xuICBCYWRnZSxcbiAgQnV0dG9uLFxuICBFeHBhbmRhYmxlLFxuICBNZW51VjIsXG4gIFN0YWNrLFxuICBUZXh0LFxuICBUb29sdGlwLFxuICBmYWRlSW4sXG59IGZyb20gJ0B1bHRyYXZpb2xldC91aSdcbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIERyYWdFdmVudCxcbiAgSlNYLFxuICBNb3VzZUV2ZW50LFxuICBSZWFjdE5vZGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgQ2hpbGRyZW4sXG4gIGNsb25lRWxlbWVudCxcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZU5hdmlnYXRpb24gfSBmcm9tICcuLi9OYXZpZ2F0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBBTklNQVRJT05fRFVSQVRJT04sIHNocmlua0hlaWdodCB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgUGluVW5QaW5UeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmNvbnN0IFJlbGF0aXZlRGl2ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnYWN0aXZlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0byAwO1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuXG4gICAgJHsoeyBhY3RpdmUsIHRoZW1lIH0pID0+XG4gICAgICBhY3RpdmUgPyBgYmFja2dyb3VuZDogJHt0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O2AgOiBudWxsfVxuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBOZXV0cmFsQnV0dG9uTGluayA9IGNzc2BcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuYFxuXG4vLyBQaW4gYnV0dG9uIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZXhwYW5kZWRcbmNvbnN0IExvY2FsRXhwYW5kQnV0dG9uID0gc3R5bGVkKEJ1dHRvbilgXG4gIG9wYWNpdHk6IDA7XG4gIHJpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0yNHB4O1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gXG5cbmNvbnN0IFBpbm5lZEJ1dHRvbiA9IExvY2FsRXhwYW5kQnV0dG9uLndpdGhDb21wb25lbnQoJ2RpdicpXG5cbmNvbnN0IEdyYWJJY29uID0gc3R5bGVkKEljb24pYFxuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgY3Vyc29yOiBncmFiO1xuYFxuXG5jb25zdCBTdHlsZWRCYWRnZSA9IHN0eWxlZChCYWRnZSlgYFxuXG5jb25zdCBTdHlsZWRNZW51SXRlbSA9IHN0eWxlZChNZW51VjIuSXRlbSwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PiAhWydpc1Bpbm5hYmxlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGlzUGlubmFibGU/OiBib29sZWFuXG59PmBcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgJHtQaW5uZWRCdXR0b259IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgb3BhY2l0eTogJHsoeyBpc1Bpbm5hYmxlIH0pID0+IChpc1Bpbm5hYmxlID8gMCA6IDEpfTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgU3R5bGVkTWVudSA9IHN0eWxlZChNZW51VjIpYFxuICB3aWR0aDogMTgwcHg7XG5gXG5cbmNvbnN0IFBhZGRpbmdTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IEFuaW1hdGVkSWNvbiA9IHN0eWxlZChJY29uKWBgXG5cbmNvbnN0IFdyYXBUZXh0ID0gc3R5bGVkKFRleHQsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT5cbiAgICAhWydhbmltYXRpb24nLCAnc3ViTGFiZWwnLCAndGV4dFByb21pbmVuY2UnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgYW5pbWF0aW9uPzogJ2NvbGxhcHNlJyB8ICdleHBhbmQnIHwgYm9vbGVhblxuICBzdWJMYWJlbD86IGJvb2xlYW5cbn0+YFxuICBvdmVyZmxvdy13cmFwOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vcm1hbCcgOiAnYW55d2hlcmUnKX07XG4gIHdoaXRlLXNwYWNlOiAkeyh7IGFuaW1hdGlvbiB9KSA9PiAoYW5pbWF0aW9uID8gJ25vd3JhcCcgOiAnbm9ybWFsJyl9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5gXG5cbmNvbnN0IFN0eWxlZFN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKFN0YWNrKWBcbiAgJHtOZXV0cmFsQnV0dG9uTGlua307XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG5cbiAgJltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9XCJ0cnVlXCJdIHtcbiAgICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+IGAke3RoZW1lLnNwYWNlWycwLjUnXX0gJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrfTtcbiAgfVxuICAmW2RhdGEtaGFzLWFjdGl2ZS1jaGlsZHJlbj1cInRydWVcIl1bZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFxuICAgICAgW2Rpc2FibGVkXVtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT1cInRydWVcIl0ge1xuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgJHtQaW5uZWRCdXR0b259LCAke0dyYWJJY29ufSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOmhvdmVyW2RhdGEtaGFzLWNoaWxkcmVuPVwiZmFsc2VcIl1bZGF0YS1pcy1hY3RpdmU9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl0sXG4gICY6aG92ZXJbZGF0YS1oYXMtYWN0aXZlPVwidHJ1ZVwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kfTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeS5iYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXG4gICAgJHtXcmFwVGV4dH0ge1xuICAgICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwudGV4dFdlYWtEaXNhYmxlZH07XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWFuaW1hdGlvbj1cImNvbGxhcHNlXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJleHBhbmRcIl0ge1xuICAgIGFuaW1hdGlvbjogJHtzaHJpbmtIZWlnaHR9ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0IHJldmVyc2U7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJHtTdHlsZWRTdGFja30ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTWVudVN0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgMCAke3RoZW1lLnNwYWNlWycyJ119YH07XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG5gXG5cbmNvbnN0IENvbnRhaW5lckNhdGVnb3J5SWNvbiA9IHN0eWxlZChTdGFjaylgXG4gIG1pbi13aWR0aDogMjBweDtcbmBcblxudHlwZSBJdGVtVHlwZSA9ICdkZWZhdWx0JyB8ICdwaW5uZWQnIHwgJ3Bpbm5lZEdyb3VwJ1xuXG50eXBlIEl0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbiAgLyoqXG4gICAqIFNldHMgYSBjYXRlZ29yeSBpY29uIG9uIHRoZSBsZWZ0IG9mIHRoZSBpdGVtXG4gICAqL1xuICBjYXRlZ29yeUljb24/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsnbmFtZSddXG4gIGNhdGVnb3J5SWNvblZhcmlhbnQ/OiBDb21wb25lbnRQcm9wczx0eXBlb2YgQ2F0ZWdvcnlJY29uPlsndmFyaWFudCddXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgb2YgdGhlIGl0ZW0gdGhhdCB3aWxsIGJlIHNob3duLlxuICAgKiBJdCBpcyBhbHNvIHVzZWQgYXMgdGhlIGtleSBmb3IgcGlubmluZy5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBhIHVuaXF1ZSBpZCBhbmQgd2lsbCBiZSB1c2VkIGZvciBwaW4vdW5waW4gZmVhdHVyZS5cbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRleHQgc2hvd24gdW5kZXIgdGhlIGxhYmVsIHdpdGggYSBsaWdodGVyIGNvbG9yIGFuZCBzbWFsbGVyIGZvbnQgc2l6ZVxuICAgKi9cbiAgc3ViTGFiZWw/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEJhZGdlIGlzIGFkZGVkIG9uIHRoZSByaWdodCBvZiB0aGUgaXRlbS4gSXQgaXMgaGlkZGVuIG9uIGhvdmVyIGlmIHBpbm5lZFxuICAgKiBmZWF0dXJlIGlzIGVuYWJsZWRcbiAgICovXG4gIGJhZGdlVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lZCB0aGUgc2VudGltZW50IG9mIHRoZSBiYWRnZSBhY2NvcmRpbmcgdG8gQmFkZ2UgY29tcG9uZW50IGZyb21cbiAgICogYEB1bHRyYXZpb2xldC91aWBcbiAgICovXG4gIGJhZGdlU2VudGltZW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJhZGdlPlsnc2VudGltZW50J11cbiAgaHJlZj86IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBvbiBjbGljayBvZiB0aGUgaXRlbS4gSWYgdGhlIGl0ZW0gaXMgZXhwYW5kYWJsZVxuICAgKiB0b2dnbGUgd2lsbCBiZSBwYXNzZWQgd2l0aCBpdC5cbiAgICovXG4gIG9uQ2xpY2s/OiAodG9nZ2xlPzogdHJ1ZSB8IGZhbHNlKSA9PiB2b2lkXG4gIG9uQ2xpY2tQaW5VbnBpbj86IChwYXJhbWV0ZXJzOiBQaW5VblBpblR5cGUpID0+IHZvaWRcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkXG4gICAqL1xuICB0b2dnbGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIGlmIHlvdXIgY3VycmVudCBwYWdlIGlzIHRoaXMgaXRlbS5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIHlvdSB3YW50IHRvIHJlbW92ZSBwaW4gYnV0dG9uIG9uIHlvdXIgaXRlbSB1c2UgdGhpcyBwcm9wXG4gICAqL1xuICBub1BpbkJ1dHRvbj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgdG8gY29udHJvbCB0aGUgdHlwZSBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHlwZT86IEl0ZW1UeXBlXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgaWYgdGhlIGl0ZW0gaGFzIGEgcGFyZW50XG4gICAqL1xuICBoYXNQYXJlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSBmb3IgcGlubmVkIGl0ZW0gdG8gYmUgcmVvcmdhbml6ZWQgd2l0aCBkcmFnIGFuZCBkcm9wXG4gICAqL1xuICBpbmRleD86IG51bWJlclxuICAvKipcbiAgICogV2hlbiB0aGUgaXRlbSBoYXMgaHJlZiBpdCBiZWNvbWVzIGEgbGluayBpZiBub3QgaXQgaXMgYSBidXR0b24uXG4gICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgcm91dGluZyB0b29sIHlvdSBtaWdodCBuZWVkIHRvIHJlbW92ZSBib3RoIG9mIHRoZW0gYW5kIHVzZVxuICAgKiBhIG5vbiBmb2N1c2FibGUgZWxlbWVudC4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaG9vc2UgdGhlIHRhZyBvZiB0aGVcbiAgICogaXRlbS5cbiAgICovXG4gIGFzPzoga2V5b2YgSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBwcm9wIGlmIHlvdSB3YW50IHRvIHJlbW92ZSB0aGUgZXhwYW5kIGJlaGF2aW9yIHdoZW4gdGhlIGl0ZW1cbiAgICogaGFzIHN1YiBpdGVtcy5cbiAgICovXG4gIG5vRXhwYW5kPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW0gPSAoe1xuICBjaGlsZHJlbixcbiAgY2F0ZWdvcnlJY29uLFxuICBjYXRlZ29yeUljb25WYXJpYW50LFxuICBsYWJlbCxcbiAgc3ViTGFiZWwsXG4gIGJhZGdlVGV4dCxcbiAgYmFkZ2VTZW50aW1lbnQsXG4gIGhyZWYsXG4gIG9uQ2xpY2ssXG4gIG9uQ2xpY2tQaW5VbnBpbixcbiAgdG9nZ2xlLFxuICBhY3RpdmUsXG4gIG5vUGluQnV0dG9uLFxuICB0eXBlID0gJ2RlZmF1bHQnLFxuICBoYXNQYXJlbnRzLFxuICBhcyxcbiAgZGlzYWJsZWQsXG4gIG5vRXhwYW5kID0gZmFsc2UsXG4gIGluZGV4LFxuICBpZCxcbn06IEl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlTmF2aWdhdGlvbigpXG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ05hdmlnYXRpb24uSXRlbSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhIE5hdmlnYXRpb25Qcm92aWRlci4nLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBleHBhbmRlZCxcbiAgICBsb2NhbGVzLFxuICAgIHBpbm5lZEZlYXR1cmUsXG4gICAgcGluSXRlbSxcbiAgICB1bnBpbkl0ZW0sXG4gICAgcGlubmVkSXRlbXMsXG4gICAgcGluTGltaXQsXG4gICAgYW5pbWF0aW9uLFxuICAgIHJlZ2lzdGVySXRlbSxcbiAgfSA9IGNvbnRleHRcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHR5cGUgIT09ICdwaW5uZWRHcm91cCcpIHtcbiAgICAgICAgcmVnaXN0ZXJJdGVtKHsgW2lkXTogeyBsYWJlbCwgYWN0aXZlLCBvbkNsaWNrLCBvbkNsaWNrUGluVW5waW4gfSB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFthY3RpdmUsIGlkLCBsYWJlbCwgcmVnaXN0ZXJJdGVtXSxcbiAgKVxuXG4gIGNvbnN0IFtpbnRlcm5hbFRvZ2dsZSwgc2V0VG9nZ2xlXSA9IHVzZVN0YXRlKHRvZ2dsZSAhPT0gZmFsc2UpXG5cbiAgY29uc3QgdHJpZ2dlclRvZ2dsZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgc2V0VG9nZ2xlKHZhbHVlKVxuICAgICAgb25DbGljaz8uKGludGVybmFsVG9nZ2xlKVxuICAgIH0sXG4gICAgW2ludGVybmFsVG9nZ2xlLCBvbkNsaWNrXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFuaW1hdGlvbiA9PT0gJ2NvbGxhcHNlJykge1xuICAgICAgc2V0VG9nZ2xlKGZhbHNlKVxuICAgIH1cblxuICAgIGlmIChhbmltYXRpb24gPT09ICdleHBhbmQnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0VG9nZ2xlKHRvZ2dsZSA/PyB0cnVlKVxuICAgICAgfSwgMSlcbiAgICB9XG4gIH0sIFthbmltYXRpb24sIHRvZ2dsZV0pXG5cbiAgY29uc3QgUGFkZGVkU3RhY2sgPSBub0V4cGFuZCB8fCB0eXBlID09PSAncGlubmVkR3JvdXAnID8gU3RhY2sgOiBQYWRkaW5nU3RhY2tcblxuICBjb25zdCBoYXNIcmVmQW5kTm9DaGlsZHJlbiA9IGhyZWYgJiYgIWNoaWxkcmVuXG4gIGNvbnN0IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID1cbiAgICBwaW5uZWRGZWF0dXJlICYmICFjaGlsZHJlbiAmJiAhbm9QaW5CdXR0b25cbiAgY29uc3QgaXNJdGVtUGlubmVkID0gcGlubmVkSXRlbXMuaW5jbHVkZXMoaWQpXG4gIGNvbnN0IHNob3VsZFNob3dQaW5uZWRCdXR0b24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaHJlZiB8fCBkaXNhYmxlZCkgcmV0dXJuIGZhbHNlXG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gJiYgdHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfSwgW2Rpc2FibGVkLCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiwgaHJlZiwgdHlwZV0pXG5cbiAgY29uc3QgaGFzQWN0aXZlQ2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAoXG4gICAgICBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpID8gY2hpbGQucHJvcHM/LmFjdGl2ZSA6IGZhbHNlLFxuICAgICAgKSBhcyBib29sZWFuW11cbiAgICApLmluY2x1ZGVzKHRydWUpXG4gIH0sIFtjaGlsZHJlbl0pXG5cbiAgY29uc3QgY29udGFpbmVyVGFnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFzKSB7XG4gICAgICByZXR1cm4gYXNcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiAnYSdcbiAgICB9XG5cbiAgICBpZiAobm9FeHBhbmQpIHtcbiAgICAgIHJldHVybiAnZGl2J1xuICAgIH1cblxuICAgIHJldHVybiAnYnV0dG9uJ1xuICB9LCBbYXMsIGhhc0hyZWZBbmROb0NoaWxkcmVuLCBub0V4cGFuZF0pXG5cbiAgY29uc3QgQ29udGFpbmVyID0gU3R5bGVkQ29udGFpbmVyLndpdGhDb21wb25lbnQoY29udGFpbmVyVGFnKVxuXG4gIGNvbnN0IGFyaWFFeHBhbmRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoYXNIcmVmQW5kTm9DaGlsZHJlbiAmJiBpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgIWludGVybmFsVG9nZ2xlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtoYXNIcmVmQW5kTm9DaGlsZHJlbiwgaW50ZXJuYWxUb2dnbGVdKVxuXG4gIGNvbnN0IGlzUGluRGlzYWJsZWQgPSBwaW5uZWRJdGVtcy5sZW5ndGggPj0gcGluTGltaXRcbiAgY29uc3QgcGluVG9vbHRpcExvY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc1BpbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4ubGltaXQnXVxuICAgIH1cblxuICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgIH1cblxuICAgIHJldHVybiBsb2NhbGVzWyduYXZpZ2F0aW9uLnBpbi50b29sdGlwJ11cbiAgfSwgW2lzSXRlbVBpbm5lZCwgaXNQaW5EaXNhYmxlZCwgbG9jYWxlc10pXG5cbiAgY29uc3Qgb25EcmFnU3RhcnRUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvcGxhaW4nLCBKU09OLnN0cmluZ2lmeSh7IGxhYmVsLCBpbmRleCB9KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMC41J1xuICB9XG5cbiAgY29uc3Qgb25EcmFnU3RvcFRyaWdnZXIgPSAoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBldmVudC5jdXJyZW50VGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMSdcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG4gIGlmIChleHBhbmRlZCB8fCAoIWV4cGFuZGVkICYmIGFuaW1hdGlvbiA9PT0gJ2V4cGFuZCcpKSB7XG4gICAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSBDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICA/IGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IGNoaWxkLFxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgICBkYXRhLWhhcy1zdWItbGFiZWw9eyEhc3ViTGFiZWx9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyVG9nZ2xlKCFpbnRlcm5hbFRvZ2dsZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9uQ2xpY2s/LigpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXthcmlhRXhwYW5kZWR9XG4gICAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgICB0YXJnZXQ9e2hyZWYgPyAnX2JsYW5rJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkYXRhLWlzLXBpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgICAgIGRhdGEtaXMtYWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgZGF0YS1hbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICBkYXRhLWhhcy1jaGlsZHJlbj17ISFjaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49e2hhc0FjdGl2ZUNoaWxkcmVufVxuICAgICAgICAgIGRhdGEtaGFzLW5vLWV4cGFuZD17bm9FeHBhbmR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGRyYWdnYWJsZT17dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWR9XG4gICAgICAgICAgb25EcmFnU3RhcnQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RhcnRUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBvbkRyYWdFbmQ9eyhldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT5cbiAgICAgICAgICAgIGV4cGFuZGVkID8gb25EcmFnU3RvcFRyaWdnZXIoZXZlbnQpIDogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgIDxDb250YWluZXJDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAncHJpbWFyeScgOiBjYXRlZ29yeUljb25WYXJpYW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29udGFpbmVyQ2F0ZWdvcnlJY29uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7dHlwZSA9PT0gJ3Bpbm5lZCcgJiYgZXhwYW5kZWQgPyAoXG4gICAgICAgICAgICAgIDxHcmFiSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJkcmFnLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdGFjaz5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgYXM9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiYm9keVNtYWxsU3Ryb25nXCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPXtcbiAgICAgICAgICAgICAgICAgIChjYXRlZ29yeUljb24gfHwgIWhhc1BhcmVudHMpICYmICFhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgPyAnc3Ryb25nJ1xuICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgIHtzdWJMYWJlbCA/IChcbiAgICAgICAgICAgICAgICA8V3JhcFRleHRcbiAgICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiY2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbj17YW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgc3ViTGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c3ViTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgPFN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9e2hyZWYgPyAxIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgfHwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbGVzWyduYXZpZ2F0aW9uLnVucGluLnRvb2x0aXAnXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPFBpbm5lZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1ZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU6IGlzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3Bpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtoYXNIcmVmQW5kTm9DaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8U3RhY2sgZ2FwPXsxfSBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgeyFhbmltYXRpb24gJiYgIW5vRXhwYW5kID8gKFxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVkSWNvblxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtpbnRlcm5hbFRvZ2dsZSA/ICdhcnJvdy1kb3duJyA6ICdhcnJvdy1yaWdodCd9XG4gICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgeyFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgPEV4cGFuZGFibGVcbiAgICAgICAgICAgICAgICBvcGVuZWQ9e2ludGVybmFsVG9nZ2xlfVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPXtcbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbiA/IEFOSU1BVElPTl9EVVJBVElPTiAvIDIgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICAgIDwvRXhwYW5kYWJsZT5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxQYWRkZWRTdGFjaz57cmVuZGVyQ2hpbGRyZW59PC9QYWRkZWRTdGFjaz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC8+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIHRoZSBtZW51IG9mIHRoZSBuYXZpZ2F0aW9uIHdoZW4gY29sbGFwc2VkXG4gIGlmIChjYXRlZ29yeUljb24gfHwgKENoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDAgJiYgIWhhc1BhcmVudHMpKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgIHtDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwID8gKFxuICAgICAgICAgIDxTdHlsZWRNZW51XG4gICAgICAgICAgICB0cmlnZ2VyTWV0aG9kPVwiaG92ZXJcIlxuICAgICAgICAgICAgZHluYW1pY0RvbVJlbmRlcmluZz17ZmFsc2V9IC8vIEFzIHdlIHBhcnNlIHRoZSBjaGlsZHJlbiB3ZSBkb24ndCBuZWVkIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAgICAgICBkaXNjbG9zdXJlPXtcbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2hhc0FjdGl2ZUNoaWxkcmVuID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgaWNvbj17IWNhdGVnb3J5SWNvbiA/ICdkb3RzLWhvcml6b250YWwnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2NhdGVnb3J5SWNvbiA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUljb25cbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb259XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtDaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGNoaWxkID0+XG4gICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50PEl0ZW1Qcm9wcz4oY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNZW51PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwIHRleHQ9e2xhYmVsfSBwbGFjZW1lbnQ9XCJyaWdodFwiIHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICB2YXJpYW50PXthY3RpdmUgPyAnZmlsbGVkJyA6ICdnaG9zdCd9XG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2xpY2s/LigpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtjYXRlZ29yeUljb24gPz8gJ2NvbnNvbGUnfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApfVxuICAgICAgPC9NZW51U3RhY2s+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIHdoYXQgaXMgaW5zaWRlIGEgbWVudSBpdGVtIHRoZSBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZFxuICBpZiAoaGFzUGFyZW50cykge1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgaHJlZj17aHJlZn1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIG9uQ2xpY2s/LigpXG4gICAgICAgIH19XG4gICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgIGlzUGlubmFibGU9e3Nob3VsZFNob3dQaW5uZWRCdXR0b259XG4gICAgICA+XG4gICAgICAgIDxTdGFja1xuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZmxleD17MX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICA+XG4gICAgICAgICAgPFdyYXBUZXh0IGFzPVwic3BhblwiIHZhcmlhbnQ9XCJib2R5U21hbGxcIj5cbiAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgIDxTdHlsZWRCYWRnZVxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YmFkZ2VTZW50aW1lbnR9XG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwic3Ryb25nXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YmFkZ2VUZXh0fVxuICAgICAgICAgICAgICA8L1N0eWxlZEJhZGdlPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtzaG91bGRTaG93UGlubmVkQnV0dG9uID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgIHRleHQ9e1xuICAgICAgICAgICAgICAgICAgaXNJdGVtUGlubmVkXG4gICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgOiBwaW5Ub29sdGlwTG9jYWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxSZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKSAvLyBUaGlzIGlzIHRvIGF2b2lkIGNsaWNrIHNwcmVhZCB0byB0aGUgcGFyZW50IGFuZCBjaGFuZ2UgdGhlIHJvdXRpbmdcblxuICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0l0ZW1QaW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gdW5waW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tQaW5VbnBpbj8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsUGlubmVkOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2lzSXRlbVBpbm5lZCA/ICdmaWxsZWQnIDogJ291dGxpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNJdGVtUGlubmVkID8gZmFsc2UgOiBpc1BpbkRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9SZWxhdGl2ZURpdj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgKVxuICB9XG5cbiAgLy8gVGhpcyBjb250ZW50IGlzIGZvciB3aGVuIG5hdmlnYXRpb24gaXMgY29sbGFwc2VkIGFuZCB3ZSBzaG93IGFuIGljb24gb2YgbGlua1xuICBpZiAoIWhhc1BhcmVudHMgJiYgaHJlZikge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgPE1lbnVTdGFjayBnYXA9ezF9IGFsaWduSXRlbXM9XCJzdGFydFwiIGp1c3RpZnlDb250ZW50PVwic3RhcnRcIj5cbiAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgIHByb21pbmVuY2U9XCJ3ZWFrXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgIDwvTWVudVN0YWNrPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXX0= */"));
141
141
  const StyledStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
142
142
  target: "e134hokc3"
143
143
  } : {
@@ -149,7 +149,7 @@ const StyledStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "pro
149
149
  } : {
150
150
  name: "13feash",
151
151
  styles: "padding-left:28px",
152
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVJaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
152
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdJaUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
153
153
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
154
154
  });
155
155
  const StyledContainer = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
@@ -159,29 +159,29 @@ const StyledContainer = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV ===
159
159
  label: "StyledContainer"
160
160
  })(NeutralButtonLink, ";border-radius:", ({
161
161
  theme
162
- }) => theme.radii.default, ";&[data-has-no-expand='false']{cursor:pointer;}margin-top:", ({
162
+ }) => theme.radii.default, ';&[data-has-no-expand="false"]{cursor:pointer;}margin-top:', ({
163
163
  theme
164
164
  }) => theme.space["0.25"], ";padding:", ({
165
165
  theme
166
- }) => `calc(${theme.space["0.25"]} + ${theme.space["0.5"]}) ${theme.space["1"]}`, ";&[data-has-sub-label='true']{padding:", ({
166
+ }) => `calc(${theme.space["0.25"]} + ${theme.space["0.5"]}) ${theme.space["1"]}`, ';&[data-has-sub-label="true"]{padding:', ({
167
167
  theme
168
- }) => `${theme.space["0.5"]} ${theme.space["1"]}`, ";}width:100%;&:hover[data-has-no-expand='false']:not([disabled]):not(\n [data-is-active='true']\n ),&:focus[data-has-no-expand='false']:not([disabled]):not(\n [data-is-active='true']\n ){background-color:", ({
168
+ }) => `${theme.space["0.5"]} ${theme.space["1"]}`, ';}width:100%;&:hover[data-has-no-expand="false"]:not([disabled]):not(\n [data-is-active="true"]\n ),&:focus[data-has-no-expand="false"]:not([disabled]):not(\n [data-is-active="true"]\n ){background-color:', ({
169
169
  theme
170
- }) => theme.colors.neutral.backgroundWeak, ";}&[data-has-active-children='true'][data-has-no-expand='false']:not(\n [disabled][data-is-active='true']\n ){background-color:", ({
170
+ }) => theme.colors.neutral.backgroundWeak, ';}&[data-has-active-children="true"][data-has-no-expand="false"]:not(\n [disabled][data-is-active="true"]\n ){background-color:', ({
171
171
  theme
172
172
  }) => theme.colors.neutral.backgroundWeakHover, ";", WrapText, "{color:", ({
173
173
  theme
174
- }) => theme.colors.neutral.textWeakHover, ";}", PinnedButton, "{opacity:1;}&[data-is-pinnable='true']{", StyledBadge, "{opacity:0;}}}&[data-has-no-expand='false']:not([disabled]){&:hover,&:focus,&:active{", PinnedButton, ",", GrabIcon, "{opacity:1;}", StyledBadge, "{opacity:0;}}}&:hover[data-has-children='false'][data-is-active='false']:not([disabled]){", WrapText, "{color:", ({
174
+ }) => theme.colors.neutral.textWeakHover, ";}", PinnedButton, '{opacity:1;}&[data-is-pinnable="true"]{', StyledBadge, '{opacity:0;}}}&[data-has-no-expand="false"]:not([disabled]){&:hover,&:focus,&:active{', PinnedButton, ",", GrabIcon, "{opacity:1;}", StyledBadge, '{opacity:0;}}}&:hover[data-has-children="false"][data-is-active="false"]:not([disabled]){', WrapText, "{color:", ({
175
175
  theme
176
- }) => theme.colors.neutral.textWeakHover, ";}}&:active[data-has-no-expand='false']:not([disabled]):not(\n [data-is-active='true']\n ){background-color:", ({
176
+ }) => theme.colors.neutral.textWeakHover, ';}}&:active[data-has-no-expand="false"]:not([disabled]):not(\n [data-is-active="true"]\n ){background-color:', ({
177
177
  theme
178
- }) => theme.colors.neutral.backgroundHover, ";}&[data-is-active='true'],&:hover[data-has-active='true']{background-color:", ({
178
+ }) => theme.colors.neutral.backgroundHover, ';}&[data-is-active="true"],&:hover[data-has-active="true"]{background-color:', ({
179
179
  theme
180
180
  }) => theme.colors.primary.background, ";&:hover{background-color:", ({
181
181
  theme
182
182
  }) => theme.colors.primary.backgroundHover, ";}}&[disabled]{cursor:not-allowed;background-color:unset;", WrapText, "{color:", ({
183
183
  theme
184
- }) => theme.colors.neutral.textWeakDisabled, ";}}&[data-animation='collapse']{animation:", shrinkHeight, " ", ANIMATION_DURATION, "ms ease-in-out;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", fadeIn, " ", ANIMATION_DURATION, "ms ease-in-out reverse;}}&[data-animation='expand']{animation:", shrinkHeight, " ", ANIMATION_DURATION, "ms ease-in-out reverse;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", fadeIn, " ", ANIMATION_DURATION, "ms ease-in-out;}", StyledStack, "{display:none;}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJJcUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */"));
184
+ }) => theme.colors.neutral.textWeakDisabled, ';}}&[data-animation="collapse"]{animation:', shrinkHeight, " ", ANIMATION_DURATION, "ms ease-in-out;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", fadeIn, " ", ANIMATION_DURATION, 'ms ease-in-out reverse;}}&[data-animation="expand"]{animation:', shrinkHeight, " ", ANIMATION_DURATION, "ms ease-in-out reverse;", WrapText, ",", AnimatedIcon, ",", StyledBadge, "{animation:", fadeIn, " ", ANIMATION_DURATION, "ms ease-in-out;}", StyledStack, "{display:none;}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRJcUMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */"));
185
185
  const MenuStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
186
186
  target: "e134hokc1"
187
187
  } : {
@@ -191,7 +191,7 @@ const MenuStack = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "produ
191
191
  theme
192
192
  }) => `0 ${theme.space["2"]}`, ";margin-top:", ({
193
193
  theme
194
- }) => theme.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVQK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */"));
194
+ }) => theme.space["0.25"], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVQK0IiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */"));
195
195
  const ContainerCategoryIcon = /* @__PURE__ */ _styled(Stack, process.env.NODE_ENV === "production" ? {
196
196
  target: "e134hokc0"
197
197
  } : {
@@ -203,7 +203,7 @@ const ContainerCategoryIcon = /* @__PURE__ */ _styled(Stack, process.env.NODE_EN
203
203
  } : {
204
204
  name: "d47oax",
205
205
  styles: "min-width:20px",
206
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRQMkMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PiAoYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbCl9XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE5ldXRyYWxCdXR0b25MaW5rID0gY3NzYFxuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5gXG5cbi8vIFBpbiBidXR0b24gd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuY29uc3QgTG9jYWxFeHBhbmRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKWBcbiAgb3BhY2l0eTogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTI0cHg7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuY29uc3QgUGlubmVkQnV0dG9uID0gTG9jYWxFeHBhbmRCdXR0b24ud2l0aENvbXBvbmVudCgnZGl2JylcblxuY29uc3QgR3JhYkljb24gPSBzdHlsZWQoSWNvbilgXG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbjogMCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBjdXJzb3I6IGdyYWI7XG5gXG5cbmNvbnN0IFN0eWxlZEJhZGdlID0gc3R5bGVkKEJhZGdlKWBgXG5cbmNvbnN0IFN0eWxlZE1lbnVJdGVtID0gc3R5bGVkKE1lbnVWMi5JdGVtLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2lzUGlubmFibGUnXS5pbmNsdWRlcyhwcm9wKSxcbn0pPHtcbiAgaXNQaW5uYWJsZT86IGJvb2xlYW5cbn0+YFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBvcGFjaXR5OiAkeyh7IGlzUGlubmFibGUgfSkgPT4gKGlzUGlubmFibGUgPyAwIDogMSl9O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBTdHlsZWRNZW51ID0gc3R5bGVkKE1lbnVWMilgXG4gIHdpZHRoOiAxODBweDtcbmBcblxuY29uc3QgUGFkZGluZ1N0YWNrID0gc3R5bGVkKFN0YWNrKWBcbiAgcGFkZGluZy1sZWZ0OiAyOHB4OyAvLyBUaGlzIHZhbHVlIG5lZWRzIHRvIGJlIGhhcmRjb2RlZCBiZWNhdXNlIG9mIHRoZSBjYXRlZ29yeSBpY29uIHNpemVcbmBcblxuY29uc3QgQW5pbWF0ZWRJY29uID0gc3R5bGVkKEljb24pYGBcblxuY29uc3QgV3JhcFRleHQgPSBzdHlsZWQoVGV4dCwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogcHJvcCA9PlxuICAgICFbJ2FuaW1hdGlvbicsICdzdWJMYWJlbCcsICd0ZXh0UHJvbWluZW5jZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBhbmltYXRpb24/OiAnY29sbGFwc2UnIHwgJ2V4cGFuZCcgfCBib29sZWFuXG4gIHN1YkxhYmVsPzogYm9vbGVhblxufT5gXG4gIG92ZXJmbG93LXdyYXA6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm9ybWFsJyA6ICdhbnl3aGVyZScpfTtcbiAgd2hpdGUtc3BhY2U6ICR7KHsgYW5pbWF0aW9uIH0pID0+IChhbmltYXRpb24gPyAnbm93cmFwJyA6ICdub3JtYWwnKX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbmBcblxuY29uc3QgU3R5bGVkU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoU3RhY2spYFxuICAke05ldXRyYWxCdXR0b25MaW5rfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIG1hcmdpbi10b3A6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICBgY2FsYygke3RoZW1lLnNwYWNlWycwLjI1J119ICsgJHt0aGVtZS5zcGFjZVsnMC41J119KSAke3RoZW1lLnNwYWNlWycxJ119YH07XG5cbiAgJltkYXRhLWhhcy1zdWItbGFiZWw9J3RydWUnXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICksXG4gICY6Zm9jdXNbZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFdlYWt9O1xuICB9XG4gICZbZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPSd0cnVlJ11bZGF0YS1oYXMtbm8tZXhwYW5kPSdmYWxzZSddOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9J3RydWUnXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT5cbiAgICAgIHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRXZWFrSG92ZXJ9O1xuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrSG92ZXJ9O1xuICAgIH1cblxuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGF0YS1pcy1waW5uYWJsZT0ndHJ1ZSddIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD0nZmFsc2UnXTpub3QoW2Rpc2FibGVkXSkge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAke1Bpbm5lZEJ1dHRvbn0sICR7R3JhYkljb259IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6aG92ZXJbZGF0YS1oYXMtY2hpbGRyZW49J2ZhbHNlJ11bZGF0YS1pcy1hY3RpdmU9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9J2ZhbHNlJ106bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kSG92ZXJ9O1xuICB9XG5cbiAgJltkYXRhLWlzLWFjdGl2ZT0ndHJ1ZSddLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT0ndHJ1ZSddIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmR9O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5LmJhY2tncm91bmRIb3Zlcn07XG4gICAgfVxuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0Rpc2FibGVkfTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPSdjb2xsYXBzZSddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dDtcbiAgICAke1dyYXBUZXh0fSwgJHtBbmltYXRlZEljb259LCAke1N0eWxlZEJhZGdlfSB7XG4gICAgICBhbmltYXRpb246ICR7ZmFkZUlufSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249J2V4cGFuZCddIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
206
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3BsdXMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb21wb25lbnRzL0l0ZW0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRQMkMiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvdWx0cmF2aW9sZXQvdWx0cmF2aW9sZXQvcGFja2FnZXMvcGx1cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbXBvbmVudHMvSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlJY29uLCBJY29uIH0gZnJvbSAnQHVsdHJhdmlvbGV0L2ljb25zJ1xuaW1wb3J0IHtcbiAgQmFkZ2UsXG4gIEJ1dHRvbixcbiAgRXhwYW5kYWJsZSxcbiAgTWVudVYyLFxuICBTdGFjayxcbiAgVGV4dCxcbiAgVG9vbHRpcCxcbiAgZmFkZUluLFxufSBmcm9tICdAdWx0cmF2aW9sZXQvdWknXG5pbXBvcnQgdHlwZSB7XG4gIENvbXBvbmVudFByb3BzLFxuICBEcmFnRXZlbnQsXG4gIEpTWCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIENoaWxkcmVuLFxuICBjbG9uZUVsZW1lbnQsXG4gIGlzVmFsaWRFbGVtZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vTmF2aWdhdGlvblByb3ZpZGVyJ1xuaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OLCBzaHJpbmtIZWlnaHQgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7IFBpblVuUGluVHlwZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5jb25zdCBSZWxhdGl2ZURpdiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmBcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+ICFbJ2FjdGl2ZSddLmluY2x1ZGVzKHByb3ApLFxufSk8eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG8gMDtcbiAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjZVsnMC4yNSddfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5yYWRpaS5kZWZhdWx0fTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcblxuICAgICR7KHsgYWN0aXZlLCB0aGVtZSB9KSA9PlxuICAgICAgYWN0aXZlID8gYGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtgIDogbnVsbH1cbiAgICB9XG4gIH1cbmBcblxuY29uc3QgTmV1dHJhbEJ1dHRvbkxpbmsgPSBjc3NgXG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbmBcblxuLy8gUGluIGJ1dHRvbiB3aGVuIHRoZSBuYXZpZ2F0aW9uIGlzIGV4cGFuZGVkXG5jb25zdCBMb2NhbEV4cGFuZEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBvcGFjaXR5OiAwO1xuICByaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjRweDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5jb25zdCBQaW5uZWRCdXR0b24gPSBMb2NhbEV4cGFuZEJ1dHRvbi53aXRoQ29tcG9uZW50KCdkaXYnKVxuXG5jb25zdCBHcmFiSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luOiAwICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2VbJzAuMjUnXX07XG4gIGN1cnNvcjogZ3JhYjtcbmBcblxuY29uc3QgU3R5bGVkQmFkZ2UgPSBzdHlsZWQoQmFkZ2UpYGBcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQoTWVudVYyLkl0ZW0sIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IHByb3AgPT4gIVsnaXNQaW5uYWJsZSddLmluY2x1ZGVzKHByb3ApLFxufSk8e1xuICBpc1Bpbm5hYmxlPzogYm9vbGVhblxufT5gXG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgICR7UGlubmVkQnV0dG9ufSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIG9wYWNpdHk6ICR7KHsgaXNQaW5uYWJsZSB9KSA9PiAoaXNQaW5uYWJsZSA/IDAgOiAxKX07XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IFN0eWxlZE1lbnUgPSBzdHlsZWQoTWVudVYyKWBcbiAgd2lkdGg6IDE4MHB4O1xuYFxuXG5jb25zdCBQYWRkaW5nU3RhY2sgPSBzdHlsZWQoU3RhY2spYFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IC8vIFRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgaGFyZGNvZGVkIGJlY2F1c2Ugb2YgdGhlIGNhdGVnb3J5IGljb24gc2l6ZVxuYFxuXG5jb25zdCBBbmltYXRlZEljb24gPSBzdHlsZWQoSWNvbilgYFxuXG5jb25zdCBXcmFwVGV4dCA9IHN0eWxlZChUZXh0LCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVsnYW5pbWF0aW9uJywgJ3N1YkxhYmVsJywgJ3RleHRQcm9taW5lbmNlJ10uaW5jbHVkZXMocHJvcCksXG59KTx7XG4gIGFuaW1hdGlvbj86ICdjb2xsYXBzZScgfCAnZXhwYW5kJyB8IGJvb2xlYW5cbiAgc3ViTGFiZWw/OiBib29sZWFuXG59PmBcbiAgb3ZlcmZsb3ctd3JhcDogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3JtYWwnIDogJ2FueXdoZXJlJyl9O1xuICB3aGl0ZS1zcGFjZTogJHsoeyBhbmltYXRpb24gfSkgPT4gKGFuaW1hdGlvbiA/ICdub3dyYXAnIDogJ25vcm1hbCcpfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuYFxuXG5jb25zdCBTdHlsZWRTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmctbGVmdDogMjhweDsgLy8gVGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBoYXJkY29kZWQgYmVjYXVzZSBvZiB0aGUgY2F0ZWdvcnkgaWNvbiBzaXplXG5gXG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZChTdGFjaylgXG4gICR7TmV1dHJhbEJ1dHRvbkxpbmt9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnJhZGlpLmRlZmF1bHR9O1xuXG4gICZbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuICBwYWRkaW5nOiAkeyh7IHRoZW1lIH0pID0+XG4gICAgYGNhbGMoJHt0aGVtZS5zcGFjZVsnMC4yNSddfSArICR7dGhlbWUuc3BhY2VbJzAuNSddfSkgJHt0aGVtZS5zcGFjZVsnMSddfWB9O1xuXG4gICZbZGF0YS1oYXMtc3ViLWxhYmVsPVwidHJ1ZVwiXSB7XG4gICAgcGFkZGluZzogJHsoeyB0aGVtZSB9KSA9PiBgJHt0aGVtZS5zcGFjZVsnMC41J119ICR7dGhlbWUuc3BhY2VbJzEnXX1gfTtcbiAgfVxuXG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXJbZGF0YS1oYXMtbm8tZXhwYW5kPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pOm5vdChcbiAgICAgIFtkYXRhLWlzLWFjdGl2ZT1cInRydWVcIl1cbiAgICApLFxuICAmOmZvY3VzW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKTpub3QoXG4gICAgICBbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha307XG4gIH1cbiAgJltkYXRhLWhhcy1hY3RpdmUtY2hpbGRyZW49XCJ0cnVlXCJdW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChcbiAgICAgIFtkaXNhYmxlZF1bZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdXG4gICAgKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC5iYWNrZ3JvdW5kV2Vha0hvdmVyfTtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG5cbiAgICAke1Bpbm5lZEJ1dHRvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmW2RhdGEtaXMtcGlubmFibGU9XCJ0cnVlXCJdIHtcbiAgICAgICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtaGFzLW5vLWV4cGFuZD1cImZhbHNlXCJdOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICR7UGlubmVkQnV0dG9ufSwgJHtHcmFiSWNvbn0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAke1N0eWxlZEJhZGdlfSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcltkYXRhLWhhcy1jaGlsZHJlbj1cImZhbHNlXCJdW2RhdGEtaXMtYWN0aXZlPVwiZmFsc2VcIl06bm90KFtkaXNhYmxlZF0pIHtcbiAgICAke1dyYXBUZXh0fSB7XG4gICAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMubmV1dHJhbC50ZXh0V2Vha0hvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZVtkYXRhLWhhcy1uby1leHBhbmQ9XCJmYWxzZVwiXTpub3QoW2Rpc2FibGVkXSk6bm90KFxuICAgICAgW2RhdGEtaXMtYWN0aXZlPVwidHJ1ZVwiXVxuICAgICkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZEhvdmVyfTtcbiAgfVxuXG4gICZbZGF0YS1pcy1hY3RpdmU9XCJ0cnVlXCJdLFxuICAmOmhvdmVyW2RhdGEtaGFzLWFjdGl2ZT1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZH07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnkuYmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblxuICAgICR7V3JhcFRleHR9IHtcbiAgICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRXZWFrRGlzYWJsZWR9O1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1hbmltYXRpb249XCJjb2xsYXBzZVwiXSB7XG4gICAgYW5pbWF0aW9uOiAke3Nocmlua0hlaWdodH0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQ7XG4gICAgJHtXcmFwVGV4dH0sICR7QW5pbWF0ZWRJY29ufSwgJHtTdHlsZWRCYWRnZX0ge1xuICAgICAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gJHtBTklNQVRJT05fRFVSQVRJT059bXMgZWFzZS1pbi1vdXQgcmV2ZXJzZTtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtYW5pbWF0aW9uPVwiZXhwYW5kXCJdIHtcbiAgICBhbmltYXRpb246ICR7c2hyaW5rSGVpZ2h0fSAke0FOSU1BVElPTl9EVVJBVElPTn1tcyBlYXNlLWluLW91dCByZXZlcnNlO1xuICAgICR7V3JhcFRleHR9LCAke0FuaW1hdGVkSWNvbn0sICR7U3R5bGVkQmFkZ2V9IHtcbiAgICAgIGFuaW1hdGlvbjogJHtmYWRlSW59ICR7QU5JTUFUSU9OX0RVUkFUSU9OfW1zIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICR7U3R5bGVkU3RhY2t9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IE1lbnVTdGFjayA9IHN0eWxlZChTdGFjaylgXG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYDAgJHt0aGVtZS5zcGFjZVsnMiddfWB9O1xuICBtYXJnaW4tdG9wOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNlWycwLjI1J119O1xuYFxuXG5jb25zdCBDb250YWluZXJDYXRlZ29yeUljb24gPSBzdHlsZWQoU3RhY2spYFxuICBtaW4td2lkdGg6IDIwcHg7XG5gXG5cbnR5cGUgSXRlbVR5cGUgPSAnZGVmYXVsdCcgfCAncGlubmVkJyB8ICdwaW5uZWRHcm91cCdcblxudHlwZSBJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlXG4gIC8qKlxuICAgKiBTZXRzIGEgY2F0ZWdvcnkgaWNvbiBvbiB0aGUgbGVmdCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgY2F0ZWdvcnlJY29uPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ25hbWUnXVxuICBjYXRlZ29yeUljb25WYXJpYW50PzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhdGVnb3J5SWNvbj5bJ3ZhcmlhbnQnXVxuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSBpdGVtIHRoYXQgd2lsbCBiZSBzaG93bi5cbiAgICogSXQgaXMgYWxzbyB1c2VkIGFzIHRoZSBrZXkgZm9yIHBpbm5pbmcuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBJdCBzaG91bGQgYmUgYSB1bmlxdWUgaWQgYW5kIHdpbGwgYmUgdXNlZCBmb3IgcGluL3VucGluIGZlYXR1cmUuXG4gICAqL1xuICBpZDogc3RyaW5nXG4gIC8qKlxuICAgKiBUZXh0IHNob3duIHVuZGVyIHRoZSBsYWJlbCB3aXRoIGEgbGlnaHRlciBjb2xvciBhbmQgc21hbGxlciBmb250IHNpemVcbiAgICovXG4gIHN1YkxhYmVsPzogc3RyaW5nXG4gIC8qKlxuICAgKiBCYWRnZSBpcyBhZGRlZCBvbiB0aGUgcmlnaHQgb2YgdGhlIGl0ZW0uIEl0IGlzIGhpZGRlbiBvbiBob3ZlciBpZiBwaW5uZWRcbiAgICogZmVhdHVyZSBpcyBlbmFibGVkXG4gICAqL1xuICBiYWRnZVRleHQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIERlZmluZWQgdGhlIHNlbnRpbWVudCBvZiB0aGUgYmFkZ2UgYWNjb3JkaW5nIHRvIEJhZGdlIGNvbXBvbmVudCBmcm9tXG4gICAqIGBAdWx0cmF2aW9sZXQvdWlgXG4gICAqL1xuICBiYWRnZVNlbnRpbWVudD86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCYWRnZT5bJ3NlbnRpbWVudCddXG4gIGhyZWY/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgb24gY2xpY2sgb2YgdGhlIGl0ZW0uIElmIHRoZSBpdGVtIGlzIGV4cGFuZGFibGVcbiAgICogdG9nZ2xlIHdpbGwgYmUgcGFzc2VkIHdpdGggaXQuXG4gICAqL1xuICBvbkNsaWNrPzogKHRvZ2dsZT86IHRydWUgfCBmYWxzZSkgPT4gdm9pZFxuICBvbkNsaWNrUGluVW5waW4/OiAocGFyYW1ldGVyczogUGluVW5QaW5UeXBlKSA9PiB2b2lkXG4gIC8qKlxuICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBjb250cm9sIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZFxuICAgKi9cbiAgdG9nZ2xlPzogYm9vbGVhblxuICAvKipcbiAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB5b3VyIGN1cnJlbnQgcGFnZSBpcyB0aGlzIGl0ZW0uXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byByZW1vdmUgcGluIGJ1dHRvbiBvbiB5b3VyIGl0ZW0gdXNlIHRoaXMgcHJvcFxuICAgKi9cbiAgbm9QaW5CdXR0b24/OiBib29sZWFuXG4gIC8qKlxuICAgKiBZb3UgZG9uJ3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wIGl0J3MgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbnRyb2wgdGhlIHR5cGUgb2YgdGhlIGl0ZW1cbiAgICovXG4gIHR5cGU/OiBJdGVtVHlwZVxuICAvKipcbiAgICogWW91IGRvbid0IG5lZWQgdG8gdXNlIHRoaXMgcHJvcCBpdCdzIHVzZWQgaW50ZXJuYWxseSB0byBjb250cm9sIGlmIHRoZSBpdGVtIGhhcyBhIHBhcmVudFxuICAgKi9cbiAgaGFzUGFyZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFlvdSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIHByb3AgaXQncyB1c2VkIGludGVybmFsbHkgZm9yIHBpbm5lZCBpdGVtIHRvIGJlIHJlb3JnYW5pemVkIHdpdGggZHJhZyBhbmQgZHJvcFxuICAgKi9cbiAgaW5kZXg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGl0ZW0gaGFzIGhyZWYgaXQgYmVjb21lcyBhIGxpbmsgaWYgbm90IGl0IGlzIGEgYnV0dG9uLlxuICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIHJvdXRpbmcgdG9vbCB5b3UgbWlnaHQgbmVlZCB0byByZW1vdmUgYm90aCBvZiB0aGVtIGFuZCB1c2VcbiAgICogYSBub24gZm9jdXNhYmxlIGVsZW1lbnQuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hvb3NlIHRoZSB0YWcgb2YgdGhlXG4gICAqIGl0ZW0uXG4gICAqL1xuICBhcz86IGtleW9mIEpTWC5JbnRyaW5zaWNFbGVtZW50c1xuICAvKipcbiAgICogVXNlIHRoaXMgcHJvcCBpZiB5b3Ugd2FudCB0byByZW1vdmUgdGhlIGV4cGFuZCBiZWhhdmlvciB3aGVuIHRoZSBpdGVtXG4gICAqIGhhcyBzdWIgaXRlbXMuXG4gICAqL1xuICBub0V4cGFuZD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBJdGVtID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNhdGVnb3J5SWNvbixcbiAgY2F0ZWdvcnlJY29uVmFyaWFudCxcbiAgbGFiZWwsXG4gIHN1YkxhYmVsLFxuICBiYWRnZVRleHQsXG4gIGJhZGdlU2VudGltZW50LFxuICBocmVmLFxuICBvbkNsaWNrLFxuICBvbkNsaWNrUGluVW5waW4sXG4gIHRvZ2dsZSxcbiAgYWN0aXZlLFxuICBub1BpbkJ1dHRvbixcbiAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgaGFzUGFyZW50cyxcbiAgYXMsXG4gIGRpc2FibGVkLFxuICBub0V4cGFuZCA9IGZhbHNlLFxuICBpbmRleCxcbiAgaWQsXG59OiBJdGVtUHJvcHMpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU5hdmlnYXRpb24oKVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOYXZpZ2F0aW9uLkl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBOYXZpZ2F0aW9uUHJvdmlkZXIuJyxcbiAgICApXG4gIH1cblxuICBjb25zdCB7XG4gICAgZXhwYW5kZWQsXG4gICAgbG9jYWxlcyxcbiAgICBwaW5uZWRGZWF0dXJlLFxuICAgIHBpbkl0ZW0sXG4gICAgdW5waW5JdGVtLFxuICAgIHBpbm5lZEl0ZW1zLFxuICAgIHBpbkxpbWl0LFxuICAgIGFuaW1hdGlvbixcbiAgICByZWdpc3Rlckl0ZW0sXG4gIH0gPSBjb250ZXh0XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh0eXBlICE9PSAncGlubmVkR3JvdXAnKSB7XG4gICAgICAgIHJlZ2lzdGVySXRlbSh7IFtpZF06IHsgbGFiZWwsIGFjdGl2ZSwgb25DbGljaywgb25DbGlja1BpblVucGluIH0gfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbYWN0aXZlLCBpZCwgbGFiZWwsIHJlZ2lzdGVySXRlbV0sXG4gIClcblxuICBjb25zdCBbaW50ZXJuYWxUb2dnbGUsIHNldFRvZ2dsZV0gPSB1c2VTdGF0ZSh0b2dnbGUgIT09IGZhbHNlKVxuXG4gIGNvbnN0IHRyaWdnZXJUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHNldFRvZ2dsZSh2YWx1ZSlcbiAgICAgIG9uQ2xpY2s/LihpbnRlcm5hbFRvZ2dsZSlcbiAgICB9LFxuICAgIFtpbnRlcm5hbFRvZ2dsZSwgb25DbGlja10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbmltYXRpb24gPT09ICdjb2xsYXBzZScpIHtcbiAgICAgIHNldFRvZ2dsZShmYWxzZSlcbiAgICB9XG5cbiAgICBpZiAoYW5pbWF0aW9uID09PSAnZXhwYW5kJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFRvZ2dsZSh0b2dnbGUgPz8gdHJ1ZSlcbiAgICAgIH0sIDEpXG4gICAgfVxuICB9LCBbYW5pbWF0aW9uLCB0b2dnbGVdKVxuXG4gIGNvbnN0IFBhZGRlZFN0YWNrID0gbm9FeHBhbmQgfHwgdHlwZSA9PT0gJ3Bpbm5lZEdyb3VwJyA/IFN0YWNrIDogUGFkZGluZ1N0YWNrXG5cbiAgY29uc3QgaGFzSHJlZkFuZE5vQ2hpbGRyZW4gPSBocmVmICYmICFjaGlsZHJlblxuICBjb25zdCBoYXNQaW5uZWRGZWF0dXJlQW5kTm9DaGlsZHJlbiA9XG4gICAgcGlubmVkRmVhdHVyZSAmJiAhY2hpbGRyZW4gJiYgIW5vUGluQnV0dG9uXG4gIGNvbnN0IGlzSXRlbVBpbm5lZCA9IHBpbm5lZEl0ZW1zLmluY2x1ZGVzKGlkKVxuICBjb25zdCBzaG91bGRTaG93UGlubmVkQnV0dG9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhyZWYgfHwgZGlzYWJsZWQpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuICYmIHR5cGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sIFtkaXNhYmxlZCwgaGFzUGlubmVkRmVhdHVyZUFuZE5vQ2hpbGRyZW4sIGhyZWYsIHR5cGVdKVxuXG4gIGNvbnN0IGhhc0FjdGl2ZUNoaWxkcmVuID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFjaGlsZHJlbikgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gKFxuICAgICAgQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKSA/IGNoaWxkLnByb3BzPy5hY3RpdmUgOiBmYWxzZSxcbiAgICAgICkgYXMgYm9vbGVhbltdXG4gICAgKS5pbmNsdWRlcyh0cnVlKVxuICB9LCBbY2hpbGRyZW5dKVxuXG4gIGNvbnN0IGNvbnRhaW5lclRhZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChhcykge1xuICAgICAgcmV0dXJuIGFzXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gJ2EnXG4gICAgfVxuXG4gICAgaWYgKG5vRXhwYW5kKSB7XG4gICAgICByZXR1cm4gJ2RpdidcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbidcbiAgfSwgW2FzLCBoYXNIcmVmQW5kTm9DaGlsZHJlbiwgbm9FeHBhbmRdKVxuXG4gIGNvbnN0IENvbnRhaW5lciA9IFN0eWxlZENvbnRhaW5lci53aXRoQ29tcG9uZW50KGNvbnRhaW5lclRhZylcblxuICBjb25zdCBhcmlhRXhwYW5kZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaGFzSHJlZkFuZE5vQ2hpbGRyZW4gJiYgaW50ZXJuYWxUb2dnbGUpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGhhc0hyZWZBbmROb0NoaWxkcmVuICYmICFpbnRlcm5hbFRvZ2dsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbaGFzSHJlZkFuZE5vQ2hpbGRyZW4sIGludGVybmFsVG9nZ2xlXSlcblxuICBjb25zdCBpc1BpbkRpc2FibGVkID0gcGlubmVkSXRlbXMubGVuZ3RoID49IHBpbkxpbWl0XG4gIGNvbnN0IHBpblRvb2x0aXBMb2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQaW5EaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGxvY2FsZXNbJ25hdmlnYXRpb24ucGluLmxpbWl0J11cbiAgICB9XG5cbiAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICB9XG5cbiAgICByZXR1cm4gbG9jYWxlc1snbmF2aWdhdGlvbi5waW4udG9vbHRpcCddXG4gIH0sIFtpc0l0ZW1QaW5uZWQsIGlzUGluRGlzYWJsZWQsIGxvY2FsZXNdKVxuXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0VHJpZ2dlciA9IChldmVudDogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0L3BsYWluJywgSlNPTi5zdHJpbmdpZnkoeyBsYWJlbCwgaW5kZXggfSkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzAuNSdcbiAgfVxuXG4gIGNvbnN0IG9uRHJhZ1N0b3BUcmlnZ2VyID0gKGV2ZW50OiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgZXZlbnQuY3VycmVudFRhcmdldC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gIH1cblxuICAvLyBUaGlzIGNvbnRlbnQgaXMgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBleHBhbmRlZFxuICBpZiAoZXhwYW5kZWQgfHwgKCFleHBhbmRlZCAmJiBhbmltYXRpb24gPT09ICdleHBhbmQnKSkge1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgaXNWYWxpZEVsZW1lbnQ8SXRlbVByb3BzPihjaGlsZClcbiAgICAgICAgPyBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBjaGlsZCxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGdhcD17MX1cbiAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgZGF0YS1oYXMtc3ViLWxhYmVsPXshIXN1YkxhYmVsfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlclRvZ2dsZSghaW50ZXJuYWxUb2dnbGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17YXJpYUV4cGFuZGVkfVxuICAgICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgICAgdGFyZ2V0PXtocmVmID8gJ19ibGFuaycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1pcy1waW5uYWJsZT17c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbn1cbiAgICAgICAgICBkYXRhLWlzLWFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRhdGEtYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgZGF0YS1oYXMtY2hpbGRyZW49eyEhY2hpbGRyZW59XG4gICAgICAgICAgZGF0YS1oYXMtYWN0aXZlLWNoaWxkcmVuPXtoYXNBY3RpdmVDaGlsZHJlbn1cbiAgICAgICAgICBkYXRhLWhhcy1uby1leHBhbmQ9e25vRXhwYW5kfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBkcmFnZ2FibGU9e3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkfVxuICAgICAgICAgIG9uRHJhZ1N0YXJ0PXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0YXJ0VHJpZ2dlcihldmVudCkgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgb25EcmFnRW5kPXsoZXZlbnQ6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+XG4gICAgICAgICAgICBleHBhbmRlZCA/IG9uRHJhZ1N0b3BUcmlnZ2VyKGV2ZW50KSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50PVwiY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2F0ZWdvcnlJY29uID8gKFxuICAgICAgICAgICAgICA8Q29udGFpbmVyQ2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ3ByaW1hcnknIDogY2F0ZWdvcnlJY29uVmFyaWFudH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbnRhaW5lckNhdGVnb3J5SWNvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge3R5cGUgPT09ICdwaW5uZWQnICYmIGV4cGFuZGVkID8gKFxuICAgICAgICAgICAgICA8R3JhYkljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwiZHJhZy12ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U3RhY2s+XG4gICAgICAgICAgICAgIDxXcmFwVGV4dFxuICAgICAgICAgICAgICAgIGFzPVwic3BhblwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImJvZHlTbWFsbFN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT17XG4gICAgICAgICAgICAgICAgICAoY2F0ZWdvcnlJY29uIHx8ICFoYXNQYXJlbnRzKSAmJiAhYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgID8gJ3N0cm9uZydcbiAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uPXthbmltYXRpb259XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1dyYXBUZXh0PlxuICAgICAgICAgICAgICB7c3ViTGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgPFdyYXBUZXh0XG4gICAgICAgICAgICAgICAgICBhcz1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgc2VudGltZW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb249e2FuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgIHN1YkxhYmVsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3N1YkxhYmVsfVxuICAgICAgICAgICAgICAgIDwvV3JhcFRleHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgIDxTdGFjayBkaXJlY3Rpb249XCJyb3dcIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXtocmVmID8gMSA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0IHx8IGhhc1Bpbm5lZEZlYXR1cmVBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtiYWRnZVRleHQgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXtiYWRnZVNlbnRpbWVudH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQmFkZ2U+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3Nob3VsZFNob3dQaW5uZWRCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgICAgICBpc0l0ZW1QaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbG9jYWxlc1snbmF2aWdhdGlvbi51bnBpbi50b29sdGlwJ11cbiAgICAgICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxQaW5uZWRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IE1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB1bnBpbkl0ZW0oaWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1BpblVucGluPy4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBpc0l0ZW1QaW5uZWQgPyAndW5waW4nIDogJ3BpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxQaW5uZWQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc0l0ZW1QaW5uZWQgPyBmYWxzZSA6IGlzUGluRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9QaW5uZWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aGFzSHJlZkFuZE5vQ2hpbGRyZW4gPyAoXG4gICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwib3Blbi1pbi1uZXdcIlxuICAgICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgIHByb21pbmVuY2U9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjaGlsZHJlbiA/IChcbiAgICAgICAgICAgICAgPFN0YWNrIGdhcD17MX0gZGlyZWN0aW9uPVwicm93XCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIHshYW5pbWF0aW9uICYmICFub0V4cGFuZCA/IChcbiAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEljb25cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17aW50ZXJuYWxUb2dnbGUgPyAnYXJyb3ctZG93bicgOiAnYXJyb3ctcmlnaHQnfVxuICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cIndlYWtcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICB7Y2hpbGRyZW4gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshbm9FeHBhbmQgPyAoXG4gICAgICAgICAgICAgIDxFeHBhbmRhYmxlXG4gICAgICAgICAgICAgICAgb3BlbmVkPXtpbnRlcm5hbFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbj17XG4gICAgICAgICAgICAgICAgICBhbmltYXRpb24gPyBBTklNQVRJT05fRFVSQVRJT04gLyAyIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhZGRlZFN0YWNrPntyZW5kZXJDaGlsZHJlbn08L1BhZGRlZFN0YWNrPlxuICAgICAgICAgICAgICA8L0V4cGFuZGFibGU+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8UGFkZGVkU3RhY2s+e3JlbmRlckNoaWxkcmVufTwvUGFkZGVkU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB0aGUgbWVudSBvZiB0aGUgbmF2aWdhdGlvbiB3aGVuIGNvbGxhcHNlZFxuICBpZiAoY2F0ZWdvcnlJY29uIHx8IChDaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAwICYmICFoYXNQYXJlbnRzKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8TWVudVN0YWNrIGdhcD17MX0gYWxpZ25JdGVtcz1cInN0YXJ0XCIganVzdGlmeUNvbnRlbnQ9XCJzdGFydFwiPlxuICAgICAgICB7Q2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMCA/IChcbiAgICAgICAgICA8U3R5bGVkTWVudVxuICAgICAgICAgICAgdHJpZ2dlck1ldGhvZD1cImhvdmVyXCJcbiAgICAgICAgICAgIGR5bmFtaWNEb21SZW5kZXJpbmc9e2ZhbHNlfSAvLyBBcyB3ZSBwYXJzZSB0aGUgY2hpbGRyZW4gd2UgZG9uJ3QgbmVlZCBkeW5hbWljIHJlbmRlcmluZ1xuICAgICAgICAgICAgZGlzY2xvc3VyZT17XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PXtoYXNBY3RpdmVDaGlsZHJlbiA/ICdmaWxsZWQnIDogJ2dob3N0J31cbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGljb249eyFjYXRlZ29yeUljb24gPyAnZG90cy1ob3Jpem9udGFsJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjYXRlZ29yeUljb24gPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhY2tcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlJY29uXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Q2hpbGRyZW4ubWFwKGNoaWxkcmVuLCBjaGlsZCA9PlxuICAgICAgICAgICAgICBpc1ZhbGlkRWxlbWVudDxJdGVtUHJvcHM+KGNoaWxkKVxuICAgICAgICAgICAgICAgID8gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhhc1BhcmVudHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogY2hpbGQsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWVudT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VG9vbHRpcCB0ZXh0PXtsYWJlbH0gcGxhY2VtZW50PVwicmlnaHRcIiB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgdmFyaWFudD17YWN0aXZlID8gJ2ZpbGxlZCcgOiAnZ2hvc3QnfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0YWNrXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENhdGVnb3J5SWNvblxuICAgICAgICAgICAgICAgICAgbmFtZT17Y2F0ZWdvcnlJY29uID8/ICdjb25zb2xlJ31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6IGNhdGVnb3J5SWNvblZhcmlhbnR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKX1cbiAgICAgIDwvTWVudVN0YWNrPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyB3aGF0IGlzIGluc2lkZSBhIG1lbnUgaXRlbSB0aGUgbmF2aWdhdGlvbiBpcyBjb2xsYXBzZWRcbiAgaWYgKGhhc1BhcmVudHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1lbnVJdGVtXG4gICAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBvbkNsaWNrPy4oKVxuICAgICAgICB9fVxuICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHNlbnRpbWVudD17YWN0aXZlID8gJ3ByaW1hcnknIDogJ25ldXRyYWwnfVxuICAgICAgICBpc1Bpbm5hYmxlPXtzaG91bGRTaG93UGlubmVkQnV0dG9ufVxuICAgICAgPlxuICAgICAgICA8U3RhY2tcbiAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIlxuICAgICAgICAgIGZsZXg9ezF9XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwVGV4dCBhcz1cInNwYW5cIiB2YXJpYW50PVwiYm9keVNtYWxsXCI+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9XcmFwVGV4dD5cbiAgICAgICAgICA8U3RhY2sgZGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgICAgICB7YmFkZ2VUZXh0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQmFkZ2VcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2JhZGdlU2VudGltZW50fVxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgcHJvbWluZW5jZT1cInN0cm9uZ1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhZGdlVGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRCYWRnZT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2hhc0hyZWZBbmROb0NoaWxkcmVuID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cIm9wZW4taW4tbmV3XCJcbiAgICAgICAgICAgICAgICBzZW50aW1lbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7c2hvdWxkU2hvd1Bpbm5lZEJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICB0ZXh0PXtcbiAgICAgICAgICAgICAgICAgIGlzSXRlbVBpbm5lZFxuICAgICAgICAgICAgICAgICAgICA/IGxvY2FsZXNbJ25hdmlnYXRpb24udW5waW4udG9vbHRpcCddXG4gICAgICAgICAgICAgICAgICAgIDogcGluVG9vbHRpcExvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgICAgICA8UGlubmVkQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgc2VudGltZW50PXthY3RpdmUgPyAncHJpbWFyeScgOiAnbmV1dHJhbCd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgLy8gVGhpcyBpcyB0byBhdm9pZCBjbGljayBzcHJlYWQgdG8gdGhlIHBhcmVudCBhbmQgY2hhbmdlIHRoZSByb3V0aW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJdGVtUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHVucGluSXRlbShpZClcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBwaW5JdGVtKGlkKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrUGluVW5waW4/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogaXNJdGVtUGlubmVkID8gJ3VucGluJyA6ICdwaW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFBpbm5lZDogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzSXRlbVBpbm5lZCA/ICd1bnBpbicgOiAncGluJ31cbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXtpc0l0ZW1QaW5uZWQgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzSXRlbVBpbm5lZCA/IGZhbHNlIDogaXNQaW5EaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBzZW50aW1lbnQ9e2FjdGl2ZSA/ICdwcmltYXJ5JyA6ICduZXV0cmFsJ31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvUGlubmVkQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUmVsYXRpdmVEaXY+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvU3RhY2s+XG4gICAgICA8L1N0eWxlZE1lbnVJdGVtPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgY29udGVudCBpcyBmb3Igd2hlbiBuYXZpZ2F0aW9uIGlzIGNvbGxhcHNlZCBhbmQgd2Ugc2hvdyBhbiBpY29uIG9mIGxpbmtcbiAgaWYgKCFoYXNQYXJlbnRzICYmIGhyZWYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvb2x0aXAgdGV4dD17bGFiZWx9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgIDxNZW51U3RhY2sgZ2FwPXsxfSBhbGlnbkl0ZW1zPVwic3RhcnRcIiBqdXN0aWZ5Q29udGVudD1cInN0YXJ0XCI+XG4gICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgZ2FwPXsxfVxuICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgICAgICBocmVmPXtocmVmfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QW5pbWF0ZWRJY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJvcGVuLWluLW5ld1wiXG4gICAgICAgICAgICAgIHNlbnRpbWVudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICBwcm9taW5lbmNlPVwid2Vha1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L01lbnVTdGFjaz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICApXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl19 */",
207
207
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
208
208
  });
209
209
  const Item = ({