@gravitee/ui-components 3.24.5 → 3.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -88,6 +88,9 @@
88
88
  "manual": "Manual validation"
89
89
  }
90
90
  },
91
+ "gv-policy-studio": {
92
+ "policy-settings": "Settings"
93
+ },
91
94
  "gv-promote": {
92
95
  "empty": "No information to display",
93
96
  "error": "An error has occurred",
@@ -88,6 +88,9 @@
88
88
  "manual": "Validation manuelle"
89
89
  }
90
90
  },
91
+ "gv-policy-studio": {
92
+ "policy-settings": "Settings"
93
+ },
91
94
  "gv-promote": {
92
95
  "empty": "Aucun élément à afficher ici",
93
96
  "error": "Une erreur est survenue pendant le chargement",
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs/><symbol id="adjust" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 24c0 8.837 7.163 16 16 16s16-7.163 16-16S32.837 8 24 8 8 15.163 8 24Zm4 0c0 6.627 5.373 12 12 12V12c-6.627 0-12 5.373-12 12Z"/></symbol><symbol id="anchor-center-down" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 44a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M26 14v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V14h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-center-up" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M26 22v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V22h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-center" viewBox="0 0 48 48"><path d="M16 14h16v4H16z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 32a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/></symbol><symbol id="anchor-left-down" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M10 44a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M30 14v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V14h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-left-up" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M10 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M30 22v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V22h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-left" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M10 30a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M30 18v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V18h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-right-down" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M38 44a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M22 14v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V14h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-right-up" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M38 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M22 22v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V22h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-right" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M38 30a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M22 18v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V18h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="arrows" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M6.515 22a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1H22v18.515a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V26h18.515a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H26V6.515a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1V22H6.515Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M19.757 11.272 24 7.03l4.243 4.243s1.414 1.414 2.828 0 0-2.828 0-2.828L24 1.373l-7.071 7.07s-1.172 1.658 0 2.83c1.172 1.17 2.828 0 2.828 0Zm-8.485 16.97L7.03 24l4.243-4.243s1.414-1.414 0-2.828-2.828 0-2.828 0L1.373 24l7.07 7.071s1.658 1.172 2.83 0c1.17-1.172 0-2.828 0-2.828Zm16.97 8.486L24 40.97l-4.243-4.242s-1.414-1.414-2.828 0 0 2.828 0 2.828L24 46.627l7.071-7.07s1.172-1.657 0-2.83c-1.172-1.17-2.828 0-2.828 0ZM40.972 24l-4.243-4.243s-1.172-1.657 0-2.828c1.172-1.172 2.828 0 2.828 0L46.627 24l-7.07 7.071s-1.415 1.414-2.83 0c-1.413-1.414 0-2.828 0-2.828L40.972 24Z"/></symbol><symbol id="bezier-curve" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="m6.094 27.395 3.812 1.21C12.624 20.045 17.246 16 24 16a2 2 0 1 1-.003-4 2 2 0 0 1 .004 4c6.753 0 11.375 4.045 14.093 12.605l3.812-1.21C38.698 17.289 32.654 12 24 12c-8.654 0-14.698 5.289-17.906 15.395Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 20a6.003 6.003 0 0 0 5.659-4h6.876a4 4 0 1 0 0-4H29.66a6.003 6.003 0 0 0-11.318 0h-6.876a4 4 0 1 0 0 4h6.876c.824 2.33 3.047 4 5.659 4Zm2-6a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM8 38a6 6 0 1 0 0-12 6 6 0 0 0 0 12Zm2-6a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm30 6a6 6 0 1 0 0-12 6 6 0 0 0 0 12Zm2-6a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z"/></symbol><symbol id="border" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M34 8H14a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V14a6 6 0 0 0-6-6Zm-22 6a2 2 0 0 1 2-2h20a2 2 0 0 1 2 2v20a2 2 0 0 1-2 2H14a2 2 0 0 1-2-2V14Z"/></symbol><symbol id="brush" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M27 12s-.488 6.857-3.345 9c0 0 1.345-13-2.508-17 0 0 0 7.857-3.571 14.286-1.675 3.013-3.572 5.998-3.572 10C14.004 34 20.94 36 24.01 36c3.595 0 9.99-2 9.99-9 0-4.317-7-15-7-15Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" d="M16 41a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5H16v-5Z"/></symbol><symbol id="bucket" viewBox="0 0 50 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M40.385 17.757 26.243 3.615a4 4 0 0 0-5.657 0L6.444 17.757a8 8 0 0 0 0 11.314l8.485 8.485a8 8 0 0 0 11.314 0l14.142-14.142a4 4 0 0 0 0-5.657ZM9.272 20.586 23.414 6.444l14.142 14.142-3.471 3.471s-25.95 0-25.95-.032c-.011-.122-.02-.246-.028-.374a3.99 3.99 0 0 1 1.165-3.065Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M42 44a6 6 0 0 0 6-6c0-3.314-6-10-6-10s-6 6.686-6 10a6 6 0 0 0 6 6Z"/></symbol><symbol id="cap-1" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 8h32v30H26v-6.2c4.564-.927 8-4.962 8-9.8 0-5.523-4.477-10-10-10s-10 4.477-10 10c0 4.838 3.436 8.873 8 9.8V38H8V8Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 26a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/></symbol><symbol id="cap-2" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 18a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M26 23.82c4.564-.834 8-4.466 8-8.82 0-.338-.02-.672-.061-1H40v24H26V23.82Zm-4 0c-4.564-.834-8-4.466-8-8.82 0-.338.02-.672.061-1H8v24h14V23.82Z"/></symbol><symbol id="cap-3" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 24c0-8.837 7.163-16 16-16s16 7.163 16 16v14H26v-6.2c4.564-.927 8-4.962 8-9.8 0-5.523-4.477-10-10-10s-10 4.477-10 10c0 4.838 3.436 8.873 8 9.8V38H8V24Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 26a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/></symbol><symbol id="circle" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M24 40c8.837 0 16-7.163 16-16S32.837 8 24 8 8 15.163 8 24s7.163 16 16 16Z"/></symbol><symbol id="color-profile" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M8 30c0 5.523 4.477 10 10 10a9.956 9.956 0 0 0 6-2 9.956 9.956 0 0 0 6 2c5.523 0 10-4.477 10-10s-4.477-10-10-10a9.956 9.956 0 0 0-6 2 9.956 9.956 0 0 0-6-2c-5.523 0-10 4.477-10 10Zm18.667-4.991A9.955 9.955 0 0 1 28 30a9.953 9.953 0 0 1-1.333 4.991c.97.65 2.12 1.009 3.333 1.009a6 6 0 1 0-3.333-10.991Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 28c5.523 0 10-4.477 10-10S29.523 8 24 8s-10 4.477-10 10 4.477 10 10 10Z"/></symbol><symbol id="color" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M24 42c7.732 0 14-6.268 14-14S24 8 24 8 10 20.268 10 28c0 7.732 6.268 14 14 14Z"/></symbol><symbol id="component" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M24.744 6.132a1.5 1.5 0 0 0-1.488 0L8.75 14.422a1.5 1.5 0 0 0-.756 1.302v16.552a1.5 1.5 0 0 0 .756 1.302l14.506 8.29a1.5 1.5 0 0 0 1.488 0l14.507-8.29a1.5 1.5 0 0 0 .755-1.302V15.724a1.5 1.5 0 0 0-.755-1.302l-14.507-8.29ZM29 24a5 5 0 1 1-10 0 5 5 0 0 1 10 0Z"/></symbol><symbol id="crop" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M16 12H8a2 2 0 1 0 0 4h8v-4Zm4 4h9c2.21 0 3 .79 3 3v9h4v-9c0-4.418-2.582-7-7-7h-9v4Zm12 16h4v8a2 2 0 1 1-4 0v-8Z"/><path d="M40 32a2 2 0 1 1 0 4H19c-4.418 0-7-2.582-7-7V8a2 2 0 1 1 4 0v21c0 2.21.79 3 3 3h21Z"/></symbol><symbol id="difference" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M34 20v12h1.636C38.465 32 40 30.465 40 27.636V12.364C40 9.535 38.465 8 35.636 8H20.364C17.535 8 16 9.535 16 12.364V14h12a6 6 0 0 1 6 6ZM12 30V18h-1.636C7.535 18 6 19.535 6 22.364v15.272C6 40.465 7.535 42 10.364 42h15.272C28.465 42 30 40.465 30 37.636V36H18a6 6 0 0 1-6-6Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M18.546 18h8.909c1.65 0 2.545.895 2.545 2.546v8.909c0 1.65-.895 2.545-2.546 2.545h-8.909C16.896 32 16 31.105 16 29.454v-8.909c0-1.65.895-2.545 2.546-2.545Z"/></symbol><symbol id="edit" viewBox="0 0 48 48"><path d="M40.91 13.697a1.5 1.5 0 0 1 0 2.121L22.507 34.221a1.5 1.5 0 0 1-1.075.44l-9.125-.09a1.5 1.5 0 0 1-1.485-1.463l-.224-8.945a1.5 1.5 0 0 1 .439-1.099l18.56-18.56a1.5 1.5 0 0 1 2.121 0l9.192 9.193Z"/><rect style="fill: var(--opacity, #fff)" opacity=".3" x="10" y="40" width="30" height="4" rx="1"/></symbol><symbol id="eraser" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M28.475 7.383 9.383 26.475c-1.757 1.757-2.03 4.333-.61 5.753l8.999 9c1.42 1.42 3.996 1.146 5.753-.611l19.092-19.092c1.757-1.757 2.03-4.333.61-5.753l-8.999-9c-1.42-1.42-3.996-1.146-5.753.61Zm-8.132 30.759-8.485-8.485L17.515 24 26 32.485l-5.657 5.657Z"/></symbol><symbol id="flatten" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M18 42c6.627 0 12-5.373 12-12s-5.373-12-12-12S6 23.373 6 30s5.373 12 12 12Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M17.602 14.005c.133-.003.265-.005.398-.005 8.837 0 16 7.163 16 16 0 .133-.002.265-.005.397A11.995 11.995 0 0 0 40 20c0-6.627-5.373-12-12-12a11.996 11.996 0 0 0-10.398 6.005Z"/></symbol><symbol id="flip-horizontal" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M6.274 37.314A.5.5 0 0 0 6.74 38H17.5a.5.5 0 0 0 .5-.5V10.596c0-.55-.76-.697-.964-.185L6.274 37.314Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M41.726 37.314a.5.5 0 0 1-.465.686H30.5a.5.5 0 0 1-.5-.5V10.596c0-.55.76-.697.964-.185l10.762 26.903Z"/><rect opacity=".3" x="22" y="4" width="4" height="40" rx="1"/></symbol><symbol id="flip-vertical" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M10.686 6.274A.5.5 0 0 0 10 6.74V17.5a.5.5 0 0 0 .5.5h26.904c.55 0 .696-.76.185-.964L10.686 6.274Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M10.686 41.726A.5.5 0 0 1 10 41.26V30.5a.5.5 0 0 1 .5-.5h26.904c.55 0 .697.76.185.964L10.686 41.726Z"/><rect opacity=".3" x="44" y="22" width="4" height="40" rx="1" transform="rotate(90 44 22)"/></symbol><symbol id="horizontal" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 23a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-2Zm9-1a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h4Zm11 1a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-2Zm10 0a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-2Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M17.04 6a.5.5 0 0 0-.39.812l6.96 8.7c.2.25.58.25.78 0l6.96-8.7A.5.5 0 0 0 30.96 6H17.04Zm13.92 36a.5.5 0 0 0 .39-.812l-6.96-8.7a.5.5 0 0 0-.78 0l-6.96 8.7a.5.5 0 0 0 .39.812h13.92Z"/></symbol><symbol id="image" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 13a3 3 0 0 1 3-3h30a3 3 0 0 1 3 3v24a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V13Zm4 21 9-12 9 12H10Zm28-12a6 6 0 1 1-12 0 6 6 0 0 1 12 0Z"/></symbol><symbol id="interselect" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M34 20v12h1.636C38.465 32 40 30.465 40 27.636V12.364C40 9.535 38.465 8 35.636 8H20.364C17.535 8 16 9.535 16 12.364V14h12a6 6 0 0 1 6 6ZM12 30V18h-1.636C7.535 18 6 19.535 6 22.364v15.272C6 40.465 7.535 42 10.364 42h15.272C28.465 42 30 40.465 30 37.636V36H18a6 6 0 0 1-6-6Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M18.546 18h8.909c1.65 0 2.545.895 2.545 2.546v8.909c0 1.65-.895 2.545-2.546 2.545h-8.909C16.896 32 16 31.105 16 29.454v-8.909c0-1.65.895-2.545 2.546-2.545Z"/></symbol><symbol id="join-1" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 20v-8h26v26h-8V20H10Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M16 36a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/></symbol><symbol id="join-2" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 12h16l11 11-1 1v14h-8V28l-8-8H10v-8Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M16 36a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/></symbol><symbol id="join-3" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M16 36a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/><path d="M28.008 38h7.998c.076-9.279-2.088-16.078-6.823-20.201C24.66 13.86 18.221 11.987 10 12l.013 8c6.445-.01 11.04 1.327 13.917 3.832 2.665 2.32 4.137 7.001 4.078 14.168Z"/></symbol><symbol id="layers-1" viewBox="0 0 48 48"><rect style="fill: var(--opacity, #fff)" opacity=".3" x="12" y="10" width="32" height="24" rx="1"/><rect x="6" y="16" width="32" height="24" rx="1"/></symbol><symbol id="layers" viewBox="0 0 48 48"><path d="M23.066 32.889a1.5 1.5 0 0 0 1.868 0L38.72 21.912l1.798-1.424a1.5 1.5 0 0 0 .003-2.35L24.934 5.743a1.5 1.5 0 0 0-1.868 0l-15.591 12.4a1.5 1.5 0 0 0-.001 2.347l1.786 1.423 13.806 10.976Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24.913 38.084a1.5 1.5 0 0 1-1.867 0L10.43 28.053a1.5 1.5 0 0 0-2.12.256l-.385.498a1.5 1.5 0 0 0 .275 2.11l14.887 11.386a1.5 1.5 0 0 0 1.822 0L39.8 30.918a1.5 1.5 0 0 0 .274-2.111l-.403-.52a1.5 1.5 0 0 0-2.12-.255L24.914 38.084Z"/></symbol><symbol id="line" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" d="M26 18v-6c-7.909 2.976-12.423 5.987-16 14h6c1.486-1.6 3.977-6 10-8Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M36 21a6 6 0 1 0 0-12 6 6 0 0 0 0 12ZM12 42a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/></symbol><symbol id="magic" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1 44.385 38.386 16.1a2 2 0 0 0 0-2.829l-5.657-5.657a2 2 0 0 0-2.829 0L1.616 35.9a2 2 0 0 0 0 2.828l5.657 5.657a2 2 0 0 0 2.829 0Zm21.214-32.527 2.828 2.828-7.071 7.071-2.828-2.828 7.07-7.071Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M40 18.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-3Zm-6 6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-3Zm8.5 1.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5h-3Z"/></symbol><symbol id="mask" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M40 24c0 8.837-7.163 16-16 16-3.187 0-6.156-.932-8.65-2.537C19.36 34.77 22 30.193 22 25c0-5.823-3.318-10.87-8.166-13.356A15.934 15.934 0 0 1 24 8c8.837 0 16 7.163 16 16Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M12.785 35.412A12.98 12.98 0 0 0 18 25c0-4.75-2.547-8.905-6.35-11.173A15.935 15.935 0 0 0 8 24c0 4.468 1.832 8.51 4.785 11.412Z"/></symbol><symbol id="patch" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="m22.586 11.272 14.142 14.142L24 38.142 9.858 24l12.728-12.728Zm-5.657 11.314a2 2 0 1 0 2.829 2.828 2 2 0 0 0-2.83-2.828Zm5.657-5.657a2 2 0 1 0 2.828 2.828 2 2 0 0 0-2.828-2.828Zm0 11.314a2 2 0 1 0 2.828 2.828 2 2 0 0 0-2.828-2.829Zm5.657-5.657a2 2 0 1 0 2.828 2.828 2 2 0 0 0-2.828-2.828Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M21.03 40.83c-3.883 2.572-9.165 2.147-12.586-1.274-3.421-3.42-3.846-8.703-1.273-12.586l13.86 13.86ZM25.556 8.585c3.882-2.572 9.165-2.148 12.586 1.273 3.421 3.42 3.845 8.704 1.273 12.586L25.555 8.585Z"/></symbol><symbol id="pen-tool-vector" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.207 25.585a1 1 0 0 0-.024.841l5.687 13.271a.5.5 0 0 0 .46.303h11.34a.5.5 0 0 0 .46-.303l5.687-13.27a1 1 0 0 0-.024-.842L26 6v16.535a4 4 0 1 1-4 0V6l-9.793 19.585Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" d="M18 43a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v3H18v-3Z"/></symbol><symbol id="pen&amp;ruller" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M7 6a1 1 0 0 0-1 1v5h5a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H6v4h5a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H6v4h5a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H6v7a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1H7Z"/></symbol><symbol id="pencil" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="m21 16-9 22s.106.4.165.588C12.875 40.863 16.152 42 18 42c3 0 4-4 7-4s4.183 3.969 7 4c2.816.031 6-4 6-4l-9-22h-8ZM22.6 12h4.8L25 6l-2.4 6Z"/></symbol><symbol id="picker" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="m20.465 20.464 7.07 7.071L16.93 38.142a5 5 0 0 1-7.071-7.071l10.607-10.607Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="m27.535 13.393 3.536-3.535a5 5 0 0 1 7.071 7.07l-3.535 3.536 2.12 2.122a3 3 0 0 1-4.242 4.242L21.172 15.515a3 3 0 0 1 4.242-4.243l2.121 2.121Z"/></symbol><symbol id="pixels" viewBox="0 0 48 48"><rect x="8" y="32" width="8" height="8" rx="1"/><rect x="8" y="20" width="8" height="8" rx="1"/><rect x="20" y="32" width="8" height="8" rx="1"/><rect style="fill: var(--opacity, #fff)" opacity=".3" x="20" y="20" width="8" height="8" rx="1"/><rect x="8" y="8" width="8" height="8" rx="1"/><rect x="32" y="32" width="8" height="8" rx="1"/></symbol><symbol id="polygon" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.658 38.974A1.5 1.5 0 0 0 15.081 40H32.92a1.5 1.5 0 0 0 1.423-1.026l5.33-15.99a1.5 1.5 0 0 0-.476-1.638L24.967 9.769a1.5 1.5 0 0 0-1.892-.001L8.806 21.346a1.5 1.5 0 0 0-.478 1.639l5.33 15.99Z"/></symbol><symbol id="position" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M36 12h-6s-2-.343-2-2 2-2 2-2h10v10s0 2-2 2-2-2-2-2v-6ZM18 36h-6v-6s0-2-2-2-2 2-2 2v10h10s2-.343 2-2-2-2-2-2Zm18-6v6h-6s-2 0-2 2 2 2 2 2h10V30s-.343-2-2-2-2 2-2 2ZM12 18v-6h6s2 0 2-2-2-2-2-2H8v10s.343 2 2 2 2-2 2-2Z"/></symbol><symbol id="rectagnle" viewBox="0 0 48 48"><rect x="8" y="8" width="32" height="32" rx="2"/></symbol><symbol id="ruller" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M25.414 11.272 24 9.858l2.828-2.828 4.243 4.242A2 2 0 0 0 33.9 8.444L29.657 4.2l1.414-1.414a2 2 0 0 1 2.829 0L45.213 14.1a2 2 0 0 1 0 2.828L16.93 45.213a2 2 0 0 1-2.828 0L2.787 33.9a2 2 0 0 1 0-2.829L4.2 29.657 8.444 33.9a2 2 0 0 0 2.828-2.829l-4.243-4.243L9.858 24l1.414 1.414a2 2 0 0 0 2.829-2.828l-1.415-1.414 2.829-2.829 4.242 4.243a2 2 0 0 0 2.829-2.829l-4.243-4.242 2.829-2.829 1.414 1.415a2 2 0 0 0 2.828-2.829Z"/></symbol><symbol id="saturation" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 28c0 7.732 6.268 14 14 14s14-6.268 14-14c0-5.155-4.667-11.821-14-20-9.333 8.179-14 14.845-14 20Zm14 10c-5.523 0-10-4.477-10-10 0-3.252 3.26-8.263 10-14.601C30.74 19.736 34 24.748 34 28c0 5.523-4.477 10-10 10Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 42c7.732 0 14-6.268 14-14S24 8 24 8v34Z"/></symbol><symbol id="select" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M37 16a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0 26a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm-21-5a5 5 0 1 1-10 0 5 5 0 0 1 10 0Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M11 16a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm9-7a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1V9Zm1 27a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-6ZM8 21a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1v-6Zm29-1a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1h-2Z"/></symbol><symbol id="sketch" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M10 6h28l8 10H2l8-10Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M46 16 24 40 2 16h44Z"/></symbol><symbol id="stamp" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M26 17.659a6 6 0 1 0-4 0V22H12a2 2 0 0 0-2 2v8h28v-8a2 2 0 0 0-2-2H26v-4.341Z"/><rect style="fill: var(--opacity, #fff)" opacity=".3" x="10" y="36" width="28" height="4" rx="1.5"/></symbol><symbol id="substract" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 18h-1.636C7.535 18 6 19.535 6 22.364v15.272C6 40.465 7.535 42 10.364 42h15.272C28.465 42 30 40.465 30 37.636V36H15a3 3 0 0 1-3-3V18Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M20.364 8h15.272C38.465 8 40 9.535 40 12.364v15.272C40 30.465 38.465 32 35.636 32H20.364C17.535 32 16 30.465 16 27.636V12.364C16 9.535 17.535 8 20.364 8Z"/></symbol><symbol id="target" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M22 6a2 2 0 1 1 4 0v4a2 2 0 1 1-4 0V6ZM6 22a2 2 0 1 0 0 4h4a2 2 0 1 0 0-4H6Zm32 0a2 2 0 1 0 0 4h4a2 2 0 1 0 0-4h-4ZM24 36a2 2 0 0 0-2 2v4a2 2 0 1 0 4 0v-4a2 2 0 0 0-2-2Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 30a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/></symbol><symbol id="triangle" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.543 37.215a.5.5 0 0 0 .411.785h34.092a.5.5 0 0 0 .41-.785L24.412 12.594a.5.5 0 0 0-.822 0L6.543 37.215Z"/></symbol><symbol id="union" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M35.636 8H20.364C17.535 8 16 9.535 16 12.364V18h-5.636C7.535 18 6 19.535 6 22.364v15.272C6 40.465 7.535 42 10.364 42h15.272C28.465 42 30 40.465 30 37.636V32h5.636C38.465 32 40 30.465 40 27.636V12.364C40 9.535 38.465 8 35.636 8Z"/></symbol><symbol id="vertical" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M23 6a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1h-2Zm0 10a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-2Zm-1 11a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-4Zm1 9a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-2Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M42 17.04a.5.5 0 0 0-.812-.39l-8.7 6.96a.5.5 0 0 0 0 .78l8.7 6.96a.5.5 0 0 0 .812-.39V17.04ZM6 30.96a.5.5 0 0 0 .812.39l8.7-6.96a.5.5 0 0 0 0-.78l-8.7-6.96a.5.5 0 0 0-.812.39v13.92Z"/></symbol><symbol id="zoom-minus" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" d="M28.586 33.414a2 2 0 1 1 2.828-2.828l8 8a2 2 0 1 1-2.828 2.828l-8-8Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M8 22c0 7.732 6.268 14 14 14s14-6.268 14-14S29.732 8 22 8 8 14.268 8 22Zm24 0c0 5.523-4.477 10-10 10s-10-4.477-10-10 4.477-10 10-10 10 4.477 10 10Z"/><rect opacity=".3" x="18" y="21" width="8" height="2" rx=".5"/></symbol><symbol id="zoom-plus" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" d="M28.586 33.414a2 2 0 1 1 2.828-2.828l8 8a2 2 0 1 1-2.828 2.828l-8-8Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M8 22c0 7.732 6.268 14 14 14s14-6.268 14-14S29.732 8 22 8 8 14.268 8 22Zm24 0c0 5.523-4.477 10-10 10s-10-4.477-10-10 4.477-10 10-10 10 4.477 10 10Z"/><path opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M23 18.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5V21h-2.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5H21v2.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V23h2.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H23v-2.5Z"/></symbol></svg>
1
+ <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs/><symbol id="adjust" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 24c0 8.837 7.163 16 16 16s16-7.163 16-16S32.837 8 24 8 8 15.163 8 24Zm4 0c0 6.627 5.373 12 12 12V12c-6.627 0-12 5.373-12 12Z"/></symbol><symbol id="anchor-center-down" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 44a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M26 14v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V14h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-center-up" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M26 22v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V22h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-center" viewBox="0 0 48 48"><path d="M16 14h16v4H16z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 32a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/></symbol><symbol id="anchor-left-down" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M10 44a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M30 14v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V14h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-left-up" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M10 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M30 22v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V22h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-left" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M10 30a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M30 18v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V18h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-right-down" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M38 44a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M22 14v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V14h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-right-up" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M38 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M22 22v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V22h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="anchor-right" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M38 30a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M22 18v15a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1V18h-5a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5Z"/></symbol><symbol id="arrows" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M6.515 22a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1H22v18.515a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V26h18.515a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H26V6.515a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1V22H6.515Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M19.757 11.272 24 7.03l4.243 4.243s1.414 1.414 2.828 0 0-2.828 0-2.828L24 1.373l-7.071 7.07s-1.172 1.658 0 2.83c1.172 1.17 2.828 0 2.828 0Zm-8.485 16.97L7.03 24l4.243-4.243s1.414-1.414 0-2.828-2.828 0-2.828 0L1.373 24l7.07 7.071s1.658 1.172 2.83 0c1.17-1.172 0-2.828 0-2.828Zm16.97 8.486L24 40.97l-4.243-4.242s-1.414-1.414-2.828 0 0 2.828 0 2.828L24 46.627l7.071-7.07s1.172-1.657 0-2.83c-1.172-1.17-2.828 0-2.828 0ZM40.972 24l-4.243-4.243s-1.172-1.657 0-2.828c1.172-1.172 2.828 0 2.828 0L46.627 24l-7.07 7.071s-1.415 1.414-2.83 0c-1.413-1.414 0-2.828 0-2.828L40.972 24Z"/></symbol><symbol id="bezier-curve" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="m6.094 27.395 3.812 1.21C12.624 20.045 17.246 16 24 16a2 2 0 1 1-.003-4 2 2 0 0 1 .004 4c6.753 0 11.375 4.045 14.093 12.605l3.812-1.21C38.698 17.289 32.654 12 24 12c-8.654 0-14.698 5.289-17.906 15.395Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 20a6.003 6.003 0 0 0 5.659-4h6.876a4 4 0 1 0 0-4H29.66a6.003 6.003 0 0 0-11.318 0h-6.876a4 4 0 1 0 0 4h6.876c.824 2.33 3.047 4 5.659 4Zm2-6a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM8 38a6 6 0 1 0 0-12 6 6 0 0 0 0 12Zm2-6a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm30 6a6 6 0 1 0 0-12 6 6 0 0 0 0 12Zm2-6a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z"/></symbol><symbol id="border" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M34 8H14a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V14a6 6 0 0 0-6-6Zm-22 6a2 2 0 0 1 2-2h20a2 2 0 0 1 2 2v20a2 2 0 0 1-2 2H14a2 2 0 0 1-2-2V14Z"/></symbol><symbol id="brush" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M27 12s-.488 6.857-3.345 9c0 0 1.345-13-2.508-17 0 0 0 7.857-3.571 14.286-1.675 3.013-3.572 5.998-3.572 10C14.004 34 20.94 36 24.01 36c3.595 0 9.99-2 9.99-9 0-4.317-7-15-7-15Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" d="M16 41a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v5H16v-5Z"/></symbol><symbol id="bucket" viewBox="0 0 50 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M40.385 17.757 26.243 3.615a4 4 0 0 0-5.657 0L6.444 17.757a8 8 0 0 0 0 11.314l8.485 8.485a8 8 0 0 0 11.314 0l14.142-14.142a4 4 0 0 0 0-5.657ZM9.272 20.586 23.414 6.444l14.142 14.142-3.471 3.471s-25.95 0-25.95-.032c-.011-.122-.02-.246-.028-.374a3.99 3.99 0 0 1 1.165-3.065Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M42 44a6 6 0 0 0 6-6c0-3.314-6-10-6-10s-6 6.686-6 10a6 6 0 0 0 6 6Z"/></symbol><symbol id="cap-1" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 8h32v30H26v-6.2c4.564-.927 8-4.962 8-9.8 0-5.523-4.477-10-10-10s-10 4.477-10 10c0 4.838 3.436 8.873 8 9.8V38H8V8Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 26a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/></symbol><symbol id="cap-2" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 18a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M26 23.82c4.564-.834 8-4.466 8-8.82 0-.338-.02-.672-.061-1H40v24H26V23.82Zm-4 0c-4.564-.834-8-4.466-8-8.82 0-.338.02-.672.061-1H8v24h14V23.82Z"/></symbol><symbol id="cap-3" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 24c0-8.837 7.163-16 16-16s16 7.163 16 16v14H26v-6.2c4.564-.927 8-4.962 8-9.8 0-5.523-4.477-10-10-10s-10 4.477-10 10c0 4.838 3.436 8.873 8 9.8V38H8V24Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24 26a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/></symbol><symbol id="circle" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M24 40c8.837 0 16-7.163 16-16S32.837 8 24 8 8 15.163 8 24s7.163 16 16 16Z"/></symbol><symbol id="color-profile" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M8 30c0 5.523 4.477 10 10 10a9.956 9.956 0 0 0 6-2 9.956 9.956 0 0 0 6 2c5.523 0 10-4.477 10-10s-4.477-10-10-10a9.956 9.956 0 0 0-6 2 9.956 9.956 0 0 0-6-2c-5.523 0-10 4.477-10 10Zm18.667-4.991A9.955 9.955 0 0 1 28 30a9.953 9.953 0 0 1-1.333 4.991c.97.65 2.12 1.009 3.333 1.009a6 6 0 1 0-3.333-10.991Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 28c5.523 0 10-4.477 10-10S29.523 8 24 8s-10 4.477-10 10 4.477 10 10 10Z"/></symbol><symbol id="color" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M24 42c7.732 0 14-6.268 14-14S24 8 24 8 10 20.268 10 28c0 7.732 6.268 14 14 14Z"/></symbol><symbol id="component" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M24.744 6.132a1.5 1.5 0 0 0-1.488 0L8.75 14.422a1.5 1.5 0 0 0-.756 1.302v16.552a1.5 1.5 0 0 0 .756 1.302l14.506 8.29a1.5 1.5 0 0 0 1.488 0l14.507-8.29a1.5 1.5 0 0 0 .755-1.302V15.724a1.5 1.5 0 0 0-.755-1.302l-14.507-8.29ZM29 24a5 5 0 1 1-10 0 5 5 0 0 1 10 0Z"/></symbol><symbol id="conditional" viewBox="0 0 28 29"><path d="m27.598 6.201-1.784-.312-.268-.67 1.07-1.472c.135-.178.09-.401-.044-.58l-1.74-1.74a.468.468 0 0 0-.58-.044l-1.472 1.07c-.223-.089-.446-.222-.67-.267L21.8.402C21.754.178 21.576 0 21.352 0H18.9a.48.48 0 0 0-.446.357L18.14 2.14l-.669.268L16 1.34c-.178-.134-.402-.09-.58.044l-1.74 1.74c-.089.223-.134.446 0 .624l1.07 1.473c-.088.223-.222.446-.267.669l-1.784.312a.434.434 0 0 0-.357.446v2.454c0 .223.134.401.357.446l1.784.312.268.67L13.68 12c-.135.178-.09.401.044.58l1.74 1.74a.467.467 0 0 0 .58.044l1.472-1.07c.223.089.446.223.669.267l.312 1.785a.434.434 0 0 0 .446.357h2.454a.434.434 0 0 0 .446-.357l.313-1.785.669-.268 1.472 1.071c.178.134.401.09.58-.045l1.74-1.74a.467.467 0 0 0 .044-.58l-1.07-1.472.267-.669 1.785-.312A.434.434 0 0 0 28 9.101V6.647c-.045-.223-.179-.401-.402-.446Zm-7.45 4.283a2.637 2.637 0 0 1-2.632-2.632 2.637 2.637 0 0 1 2.632-2.632c1.428 0 2.587 1.16 2.587 2.632 0 1.472-1.16 2.632-2.587 2.632ZM8.37 25.34v.624a2.59 2.59 0 0 1-2.587 2.588 2.59 2.59 0 0 1-2.588-2.588v-.624H8.37ZM6.452 18.603l-.446.446a.431.431 0 0 1-.624 0l-.446-.446.356 5.845h.803l.357-5.845Z"/><path d="M10.914 14.588C8.683 9.993 2.036 10.44.34 15.258c-.759 2.096-.224 4.371 1.338 5.933 1.115 1.115 1.07 2.275 1.07 2.677v.223a.434.434 0 0 0 .447.357h1.249l-.402-6.96c-.044-.401.446-.625.759-.357l.937.937.936-.937c.268-.268.759-.044.759.357l-.402 6.96h1.383a.434.434 0 0 0 .446-.357v-.179c0-1.026.357-2.007 1.116-2.81 1.65-1.74 2.007-4.283.937-6.514ZM21.978 16.328c-.223-.045-.446.134-.49.357a8.035 8.035 0 0 1-3.168 4.952c-1.428 1.07-3.168 1.606-4.952 1.606l.58-.402c.178-.133.223-.401.089-.624-.134-.179-.402-.223-.625-.09l-1.472 1.071c-.09.09-.178.179-.178.268 0 .134 0 .223.089.312l1.115 1.517c.134.179.402.223.625.09.178-.135.223-.402.089-.625l-.58-.67h.357a8.976 8.976 0 0 0 5.353-1.784c1.83-1.338 3.079-3.301 3.48-5.487.134-.223-.044-.446-.312-.491ZM9.977.223C9.798.045 9.53.09 9.352.268c-.178.178-.134.446.045.624l.58.536c-4.328.401-7.808 3.926-8.165 8.342 0 .268.179.446.447.446.223 0 .446-.178.446-.401.312-3.97 3.435-7.138 7.36-7.495l-.58.624c-.178.179-.133.447.045.625.179.178.447.134.625-.045l1.294-1.383a.405.405 0 0 0 .134-.312.405.405 0 0 0-.134-.312L9.977.223Z"/></symbol><symbol id="crop" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M16 12H8a2 2 0 1 0 0 4h8v-4Zm4 4h9c2.21 0 3 .79 3 3v9h4v-9c0-4.418-2.582-7-7-7h-9v4Zm12 16h4v8a2 2 0 1 1-4 0v-8Z"/><path d="M40 32a2 2 0 1 1 0 4H19c-4.418 0-7-2.582-7-7V8a2 2 0 1 1 4 0v21c0 2.21.79 3 3 3h21Z"/></symbol><symbol id="difference" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M34 20v12h1.636C38.465 32 40 30.465 40 27.636V12.364C40 9.535 38.465 8 35.636 8H20.364C17.535 8 16 9.535 16 12.364V14h12a6 6 0 0 1 6 6ZM12 30V18h-1.636C7.535 18 6 19.535 6 22.364v15.272C6 40.465 7.535 42 10.364 42h15.272C28.465 42 30 40.465 30 37.636V36H18a6 6 0 0 1-6-6Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M18.546 18h8.909c1.65 0 2.545.895 2.545 2.546v8.909c0 1.65-.895 2.545-2.546 2.545h-8.909C16.896 32 16 31.105 16 29.454v-8.909c0-1.65.895-2.545 2.546-2.545Z"/></symbol><symbol id="edit" viewBox="0 0 48 48"><path d="M40.91 13.697a1.5 1.5 0 0 1 0 2.121L22.507 34.221a1.5 1.5 0 0 1-1.075.44l-9.125-.09a1.5 1.5 0 0 1-1.485-1.463l-.224-8.945a1.5 1.5 0 0 1 .439-1.099l18.56-18.56a1.5 1.5 0 0 1 2.121 0l9.192 9.193Z"/><rect style="fill: var(--opacity, #fff)" opacity=".3" x="10" y="40" width="30" height="4" rx="1"/></symbol><symbol id="eraser" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M28.475 7.383 9.383 26.475c-1.757 1.757-2.03 4.333-.61 5.753l8.999 9c1.42 1.42 3.996 1.146 5.753-.611l19.092-19.092c1.757-1.757 2.03-4.333.61-5.753l-8.999-9c-1.42-1.42-3.996-1.146-5.753.61Zm-8.132 30.759-8.485-8.485L17.515 24 26 32.485l-5.657 5.657Z"/></symbol><symbol id="flatten" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M18 42c6.627 0 12-5.373 12-12s-5.373-12-12-12S6 23.373 6 30s5.373 12 12 12Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M17.602 14.005c.133-.003.265-.005.398-.005 8.837 0 16 7.163 16 16 0 .133-.002.265-.005.397A11.995 11.995 0 0 0 40 20c0-6.627-5.373-12-12-12a11.996 11.996 0 0 0-10.398 6.005Z"/></symbol><symbol id="flip-horizontal" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M6.274 37.314A.5.5 0 0 0 6.74 38H17.5a.5.5 0 0 0 .5-.5V10.596c0-.55-.76-.697-.964-.185L6.274 37.314Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M41.726 37.314a.5.5 0 0 1-.465.686H30.5a.5.5 0 0 1-.5-.5V10.596c0-.55.76-.697.964-.185l10.762 26.903Z"/><rect opacity=".3" x="22" y="4" width="4" height="40" rx="1"/></symbol><symbol id="flip-vertical" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M10.686 6.274A.5.5 0 0 0 10 6.74V17.5a.5.5 0 0 0 .5.5h26.904c.55 0 .696-.76.185-.964L10.686 6.274Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M10.686 41.726A.5.5 0 0 1 10 41.26V30.5a.5.5 0 0 1 .5-.5h26.904c.55 0 .697.76.185.964L10.686 41.726Z"/><rect opacity=".3" x="44" y="22" width="4" height="40" rx="1" transform="rotate(90 44 22)"/></symbol><symbol id="horizontal" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 23a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-2Zm9-1a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h4Zm11 1a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-2Zm10 0a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-2Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M17.04 6a.5.5 0 0 0-.39.812l6.96 8.7c.2.25.58.25.78 0l6.96-8.7A.5.5 0 0 0 30.96 6H17.04Zm13.92 36a.5.5 0 0 0 .39-.812l-6.96-8.7a.5.5 0 0 0-.78 0l-6.96 8.7a.5.5 0 0 0 .39.812h13.92Z"/></symbol><symbol id="image" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 13a3 3 0 0 1 3-3h30a3 3 0 0 1 3 3v24a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V13Zm4 21 9-12 9 12H10Zm28-12a6 6 0 1 1-12 0 6 6 0 0 1 12 0Z"/></symbol><symbol id="interselect" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M34 20v12h1.636C38.465 32 40 30.465 40 27.636V12.364C40 9.535 38.465 8 35.636 8H20.364C17.535 8 16 9.535 16 12.364V14h12a6 6 0 0 1 6 6ZM12 30V18h-1.636C7.535 18 6 19.535 6 22.364v15.272C6 40.465 7.535 42 10.364 42h15.272C28.465 42 30 40.465 30 37.636V36H18a6 6 0 0 1-6-6Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M18.546 18h8.909c1.65 0 2.545.895 2.545 2.546v8.909c0 1.65-.895 2.545-2.546 2.545h-8.909C16.896 32 16 31.105 16 29.454v-8.909c0-1.65.895-2.545 2.546-2.545Z"/></symbol><symbol id="join-1" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 20v-8h26v26h-8V20H10Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M16 36a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/></symbol><symbol id="join-2" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 12h16l11 11-1 1v14h-8V28l-8-8H10v-8Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M16 36a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/></symbol><symbol id="join-3" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M16 36a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"/><path d="M28.008 38h7.998c.076-9.279-2.088-16.078-6.823-20.201C24.66 13.86 18.221 11.987 10 12l.013 8c6.445-.01 11.04 1.327 13.917 3.832 2.665 2.32 4.137 7.001 4.078 14.168Z"/></symbol><symbol id="layers-1" viewBox="0 0 48 48"><rect style="fill: var(--opacity, #fff)" opacity=".3" x="12" y="10" width="32" height="24" rx="1"/><rect x="6" y="16" width="32" height="24" rx="1"/></symbol><symbol id="layers" viewBox="0 0 48 48"><path d="M23.066 32.889a1.5 1.5 0 0 0 1.868 0L38.72 21.912l1.798-1.424a1.5 1.5 0 0 0 .003-2.35L24.934 5.743a1.5 1.5 0 0 0-1.868 0l-15.591 12.4a1.5 1.5 0 0 0-.001 2.347l1.786 1.423 13.806 10.976Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M24.913 38.084a1.5 1.5 0 0 1-1.867 0L10.43 28.053a1.5 1.5 0 0 0-2.12.256l-.385.498a1.5 1.5 0 0 0 .275 2.11l14.887 11.386a1.5 1.5 0 0 0 1.822 0L39.8 30.918a1.5 1.5 0 0 0 .274-2.111l-.403-.52a1.5 1.5 0 0 0-2.12-.255L24.914 38.084Z"/></symbol><symbol id="line" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" d="M26 18v-6c-7.909 2.976-12.423 5.987-16 14h6c1.486-1.6 3.977-6 10-8Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M36 21a6 6 0 1 0 0-12 6 6 0 0 0 0 12ZM12 42a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/></symbol><symbol id="magic" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1 44.385 38.386 16.1a2 2 0 0 0 0-2.829l-5.657-5.657a2 2 0 0 0-2.829 0L1.616 35.9a2 2 0 0 0 0 2.828l5.657 5.657a2 2 0 0 0 2.829 0Zm21.214-32.527 2.828 2.828-7.071 7.071-2.828-2.828 7.07-7.071Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M40 18.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-3Zm-6 6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-3Zm8.5 1.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5h-3Z"/></symbol><symbol id="mask" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M40 24c0 8.837-7.163 16-16 16-3.187 0-6.156-.932-8.65-2.537C19.36 34.77 22 30.193 22 25c0-5.823-3.318-10.87-8.166-13.356A15.934 15.934 0 0 1 24 8c8.837 0 16 7.163 16 16Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M12.785 35.412A12.98 12.98 0 0 0 18 25c0-4.75-2.547-8.905-6.35-11.173A15.935 15.935 0 0 0 8 24c0 4.468 1.832 8.51 4.785 11.412Z"/></symbol><symbol id="patch" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="m22.586 11.272 14.142 14.142L24 38.142 9.858 24l12.728-12.728Zm-5.657 11.314a2 2 0 1 0 2.829 2.828 2 2 0 0 0-2.83-2.828Zm5.657-5.657a2 2 0 1 0 2.828 2.828 2 2 0 0 0-2.828-2.828Zm0 11.314a2 2 0 1 0 2.828 2.828 2 2 0 0 0-2.828-2.829Zm5.657-5.657a2 2 0 1 0 2.828 2.828 2 2 0 0 0-2.828-2.828Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M21.03 40.83c-3.883 2.572-9.165 2.147-12.586-1.274-3.421-3.42-3.846-8.703-1.273-12.586l13.86 13.86ZM25.556 8.585c3.882-2.572 9.165-2.148 12.586 1.273 3.421 3.42 3.845 8.704 1.273 12.586L25.555 8.585Z"/></symbol><symbol id="pen-tool-vector" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.207 25.585a1 1 0 0 0-.024.841l5.687 13.271a.5.5 0 0 0 .46.303h11.34a.5.5 0 0 0 .46-.303l5.687-13.27a1 1 0 0 0-.024-.842L26 6v16.535a4 4 0 1 1-4 0V6l-9.793 19.585Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" d="M18 43a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v3H18v-3Z"/></symbol><symbol id="pen&amp;ruller" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M7 6a1 1 0 0 0-1 1v5h5a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H6v4h5a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H6v4h5a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H6v7a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1H7Z"/></symbol><symbol id="pencil" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="m21 16-9 22s.106.4.165.588C12.875 40.863 16.152 42 18 42c3 0 4-4 7-4s4.183 3.969 7 4c2.816.031 6-4 6-4l-9-22h-8ZM22.6 12h4.8L25 6l-2.4 6Z"/></symbol><symbol id="picker" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="m20.465 20.464 7.07 7.071L16.93 38.142a5 5 0 0 1-7.071-7.071l10.607-10.607Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="m27.535 13.393 3.536-3.535a5 5 0 0 1 7.071 7.07l-3.535 3.536 2.12 2.122a3 3 0 0 1-4.242 4.242L21.172 15.515a3 3 0 0 1 4.242-4.243l2.121 2.121Z"/></symbol><symbol id="pixels" viewBox="0 0 48 48"><rect x="8" y="32" width="8" height="8" rx="1"/><rect x="8" y="20" width="8" height="8" rx="1"/><rect x="20" y="32" width="8" height="8" rx="1"/><rect style="fill: var(--opacity, #fff)" opacity=".3" x="20" y="20" width="8" height="8" rx="1"/><rect x="8" y="8" width="8" height="8" rx="1"/><rect x="32" y="32" width="8" height="8" rx="1"/></symbol><symbol id="polygon" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.658 38.974A1.5 1.5 0 0 0 15.081 40H32.92a1.5 1.5 0 0 0 1.423-1.026l5.33-15.99a1.5 1.5 0 0 0-.476-1.638L24.967 9.769a1.5 1.5 0 0 0-1.892-.001L8.806 21.346a1.5 1.5 0 0 0-.478 1.639l5.33 15.99Z"/></symbol><symbol id="position" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M36 12h-6s-2-.343-2-2 2-2 2-2h10v10s0 2-2 2-2-2-2-2v-6ZM18 36h-6v-6s0-2-2-2-2 2-2 2v10h10s2-.343 2-2-2-2-2-2Zm18-6v6h-6s-2 0-2 2 2 2 2 2h10V30s-.343-2-2-2-2 2-2 2ZM12 18v-6h6s2 0 2-2-2-2-2-2H8v10s.343 2 2 2 2-2 2-2Z"/></symbol><symbol id="rectagnle" viewBox="0 0 48 48"><rect x="8" y="8" width="32" height="32" rx="2"/></symbol><symbol id="ruller" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M25.414 11.272 24 9.858l2.828-2.828 4.243 4.242A2 2 0 0 0 33.9 8.444L29.657 4.2l1.414-1.414a2 2 0 0 1 2.829 0L45.213 14.1a2 2 0 0 1 0 2.828L16.93 45.213a2 2 0 0 1-2.828 0L2.787 33.9a2 2 0 0 1 0-2.829L4.2 29.657 8.444 33.9a2 2 0 0 0 2.828-2.829l-4.243-4.243L9.858 24l1.414 1.414a2 2 0 0 0 2.829-2.828l-1.415-1.414 2.829-2.829 4.242 4.243a2 2 0 0 0 2.829-2.829l-4.243-4.242 2.829-2.829 1.414 1.415a2 2 0 0 0 2.828-2.829Z"/></symbol><symbol id="saturation" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 28c0 7.732 6.268 14 14 14s14-6.268 14-14c0-5.155-4.667-11.821-14-20-9.333 8.179-14 14.845-14 20Zm14 10c-5.523 0-10-4.477-10-10 0-3.252 3.26-8.263 10-14.601C30.74 19.736 34 24.748 34 28c0 5.523-4.477 10-10 10Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 42c7.732 0 14-6.268 14-14S24 8 24 8v34Z"/></symbol><symbol id="select" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M37 16a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0 26a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm-21-5a5 5 0 1 1-10 0 5 5 0 0 1 10 0Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M11 16a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm9-7a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1V9Zm1 27a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-6ZM8 21a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1v-6Zm29-1a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1h-2Z"/></symbol><symbol id="sketch" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M10 6h28l8 10H2l8-10Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M46 16 24 40 2 16h44Z"/></symbol><symbol id="stamp" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M26 17.659a6 6 0 1 0-4 0V22H12a2 2 0 0 0-2 2v8h28v-8a2 2 0 0 0-2-2H26v-4.341Z"/><rect style="fill: var(--opacity, #fff)" opacity=".3" x="10" y="36" width="28" height="4" rx="1.5"/></symbol><symbol id="substract" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 18h-1.636C7.535 18 6 19.535 6 22.364v15.272C6 40.465 7.535 42 10.364 42h15.272C28.465 42 30 40.465 30 37.636V36H15a3 3 0 0 1-3-3V18Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M20.364 8h15.272C38.465 8 40 9.535 40 12.364v15.272C40 30.465 38.465 32 35.636 32H20.364C17.535 32 16 30.465 16 27.636V12.364C16 9.535 17.535 8 20.364 8Z"/></symbol><symbol id="target" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M22 6a2 2 0 1 1 4 0v4a2 2 0 1 1-4 0V6ZM6 22a2 2 0 1 0 0 4h4a2 2 0 1 0 0-4H6Zm32 0a2 2 0 1 0 0 4h4a2 2 0 1 0 0-4h-4ZM24 36a2 2 0 0 0-2 2v4a2 2 0 1 0 4 0v-4a2 2 0 0 0-2-2Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 30a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/></symbol><symbol id="triangle" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.543 37.215a.5.5 0 0 0 .411.785h34.092a.5.5 0 0 0 .41-.785L24.412 12.594a.5.5 0 0 0-.822 0L6.543 37.215Z"/></symbol><symbol id="union" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M35.636 8H20.364C17.535 8 16 9.535 16 12.364V18h-5.636C7.535 18 6 19.535 6 22.364v15.272C6 40.465 7.535 42 10.364 42h15.272C28.465 42 30 40.465 30 37.636V32h5.636C38.465 32 40 30.465 40 27.636V12.364C40 9.535 38.465 8 35.636 8Z"/></symbol><symbol id="vertical" viewBox="0 0 48 48"><path fill-rule="evenodd" clip-rule="evenodd" d="M23 6a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1h-2Zm0 10a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-2Zm-1 11a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-4Zm1 9a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-2Z"/><path style="fill: var(--opacity, #fff)" opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M42 17.04a.5.5 0 0 0-.812-.39l-8.7 6.96a.5.5 0 0 0 0 .78l8.7 6.96a.5.5 0 0 0 .812-.39V17.04ZM6 30.96a.5.5 0 0 0 .812.39l8.7-6.96a.5.5 0 0 0 0-.78l-8.7-6.96a.5.5 0 0 0-.812.39v13.92Z"/></symbol><symbol id="zoom-minus" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" d="M28.586 33.414a2 2 0 1 1 2.828-2.828l8 8a2 2 0 1 1-2.828 2.828l-8-8Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M8 22c0 7.732 6.268 14 14 14s14-6.268 14-14S29.732 8 22 8 8 14.268 8 22Zm24 0c0 5.523-4.477 10-10 10s-10-4.477-10-10 4.477-10 10-10 10 4.477 10 10Z"/><rect opacity=".3" x="18" y="21" width="8" height="2" rx=".5"/></symbol><symbol id="zoom-plus" viewBox="0 0 48 48"><path style="fill: var(--opacity, #fff)" opacity=".3" d="M28.586 33.414a2 2 0 1 1 2.828-2.828l8 8a2 2 0 1 1-2.828 2.828l-8-8Z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M8 22c0 7.732 6.268 14 14 14s14-6.268 14-14S29.732 8 22 8 8 14.268 8 22Zm24 0c0 5.523-4.477 10-10 10s-10-4.477-10-10 4.477-10 10-10 10 4.477 10 10Z"/><path opacity=".3" fill-rule="evenodd" clip-rule="evenodd" d="M23 18.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5V21h-2.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5H21v2.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V23h2.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H23v-2.5Z"/></symbol></svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravitee/ui-components",
3
- "version": "3.24.5",
3
+ "version": "3.25.0",
4
4
  "description": "Gravitee.io UI Components library, based on Web Components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -100,6 +100,9 @@ export class GvSchemaForm extends LitElement {
100
100
  scrollable: {
101
101
  type: Boolean,
102
102
  reflect: true
103
+ },
104
+ groups: {
105
+ type: Array
103
106
  }
104
107
  };
105
108
  }
@@ -117,6 +120,7 @@ export class GvSchemaForm extends LitElement {
117
120
  this._ignoreProperties = [];
118
121
  this._dynamicControls = [];
119
122
  this._dynamicAttributes = ['disabled', 'required', 'hidden'];
123
+ this.groups = null;
120
124
  this.addEventListener('gv-schema-form-control:default-value', this._onDefaultValue.bind(this));
121
125
  this.addEventListener('gv-schema-form-control:change', this._onChange.bind(this));
122
126
  this.addEventListener('gv-schema-form-control:control-ready', this._onControlReady.bind(this));
@@ -492,7 +496,27 @@ export class GvSchemaForm extends LitElement {
492
496
 
493
497
  const keys = this.schema.properties ? Object.keys(this.schema.properties) : [];
494
498
  this._ignoreProperties = [];
495
- return repeat(keys, key => key, key => this._renderControl(key));
499
+
500
+ if (this.groups) {
501
+ // Remove undefined group items
502
+ const groupsCleaned = this.groups.reduce((prev, group) => {
503
+ const itemsExistingInSchemaKeys = keys.filter(key => [...(group.items || [])].includes(key));
504
+ prev.push({ ...group,
505
+ items: itemsExistingInSchemaKeys || []
506
+ });
507
+ return prev;
508
+ }, []); // Add non grouped items inside default group
509
+
510
+ const defaultGroup = groupsCleaned.find(g => g.default) || {
511
+ default: true,
512
+ items: []
513
+ };
514
+ const zipGroupedItems = groupsCleaned.reduce((prev, group) => [...prev, ...group.items], []);
515
+ defaultGroup.items = keys.filter(key => !zipGroupedItems.includes(key));
516
+ return repeat(groupsCleaned, group => html`${group.name ? html`<h2 class="group-title">${group.name}</h2> ${repeat(group.items, key => this._renderControl(key))}` : repeat(group.items, key => this._renderControl(key))} `);
517
+ }
518
+
519
+ return html`${repeat([1], () => repeat(keys, key => key, key => this._renderControl(key)))}`;
496
520
  }
497
521
 
498
522
  getControls() {
@@ -614,9 +638,9 @@ export class GvSchemaForm extends LitElement {
614
638
 
615
639
  static get styles() {
616
640
  return [empty, // language=CSS
617
- css`:host{box-sizing:border-box;margin:.2rem;--bgc:var(--gv-schema-form--bgc, #ffffff)}form{display:flex;flex-direction:column}form.scrollable{position:absolute;width:100%;top:0;bottom:0;left:0}.container{flex-grow:1;background-color:var(--bgc);display:flex;flex-direction:column;min-height:0}.content,.footer,.header{background-color:var(--bgc)}.content{flex-grow:1;display:flex;flex-direction:column;align-self:center;width:100%;min-height:0}.content>gv-schema-form-control{align-self:center;width:100%}form.scrollable .content{overflow:auto}form.scrollable .content>gv-schema-form-control{max-width:775px;width:95%}.footer,.header{display:flex;box-sizing:border-box;min-height:45px;--gv-icon--s:26px;--gv-icon--c:#bfbfbf;align-items:center;padding:0 .5rem;position:relative}.header{border-bottom:1px solid #d9d9d9}.footer{display:flex;justify-content:space-between;padding:1rem;border-top:1px solid #d9d9d9}form.scrollable .footer{justify-content:center}.footer .left,.footer .right{max-width:400px}.footer .left,.footer .right,.header .left,.header .right{display:flex;flex:1;z-index:10;align-items:center}.footer .right,.header .right{justify-content:flex-end}.header .title{color:#28444f;font-size:18px;display:flex;width:100%;align-items:center}.header .title.center{position:absolute;top:0;left:0;bottom:0;justify-content:center}.confirm-box{height:100%;padding:1rem;font-style:italic;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.confirm-box_actions{padding:1rem 0}.confirm .footer .left,.confirm .footer .right,.confirm .header .left,.confirm .header .right{display:none}`];
641
+ css`:host{box-sizing:border-box;margin:.2rem;--bgc:var(--gv-schema-form--bgc, #ffffff)}form{display:flex;flex-direction:column}form.scrollable{position:absolute;width:100%;top:0;bottom:0;left:0}.container{flex-grow:1;background-color:var(--bgc);display:flex;flex-direction:column;min-height:0}.content,.footer,.header{background-color:var(--bgc)}.content{flex-grow:1;display:flex;flex-direction:column;align-self:center;width:100%;min-height:0}.content>gv-schema-form-control{align-self:center;width:100%}form.scrollable .content{overflow:auto}form.scrollable .content>.group-title,form.scrollable .content>gv-schema-form-control{max-width:775px;width:95%}.footer,.header{display:flex;box-sizing:border-box;min-height:45px;--gv-icon--s:26px;--gv-icon--c:#bfbfbf;align-items:center;padding:0 .5rem;position:relative}.header{border-bottom:1px solid #d9d9d9}.footer{display:flex;justify-content:space-between;padding:1rem;border-top:1px solid #d9d9d9}form.scrollable .footer{justify-content:center}.footer .left,.footer .right{max-width:400px}.footer .left,.footer .right,.header .left,.header .right{display:flex;flex:1;z-index:10;align-items:center}.footer .right,.header .right{justify-content:flex-end}.header .title{color:#28444f;font-size:18px;display:flex;width:100%;align-items:center}.header .title.center{position:absolute;top:0;left:0;bottom:0;justify-content:center}.confirm-box{height:100%;padding:1rem;font-style:italic;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.confirm-box_actions{padding:1rem 0}.confirm .footer .left,.confirm .footer .right,.confirm .header .left,.confirm .header .right{display:none}.group-title{align-self:center;width:100%;color:var(--gv-theme-font-color-dark);font-size:21px;font-weight:600;padding-bottom:.3em;border-bottom:1px solid var(--gv-theme-font-color-dark);margin-top:24px;margin-bottom:16px}`];
618
642
  }
619
643
 
620
644
  }
621
645
  window.customElements.define('gv-schema-form', GvSchemaForm);
622
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS5qcyJdLCJuYW1lcyI6WyJMaXRFbGVtZW50IiwiaHRtbCIsImNzcyIsImdldCIsInNldCIsImRlbCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJkZWVwQ2xvbmUiLCJkZWVwRXF1YWwiLCJjbGFzc01hcCIsInJlcGVhdCIsIlZhbGlkYXRvciIsImVtcHR5IiwiR3ZTY2hlbWFGb3JtIiwicHJvcGVydGllcyIsInNjaGVtYSIsInR5cGUiLCJPYmplY3QiLCJlcnJvcnMiLCJ2YWx1ZXMiLCJzdWJtaXRMYWJlbCIsIlN0cmluZyIsImhhc0Zvb3RlciIsIkJvb2xlYW4iLCJhdHRyaWJ1dGUiLCJoYXNIZWFkZXIiLCJfY29uZmlybSIsIl92YWx1ZXMiLCJkaXJ0eSIsInJlZmxlY3QiLCJoaWRlRGVwcmVjYXRlZCIsInZhbGlkYXRlT25SZW5kZXIiLCJfdmFsaWRhdG9yUmVzdWx0cyIsInNrZWxldG9uIiwiX3RvdWNoIiwicmVhZG9ubHkiLCJzY3JvbGxhYmxlIiwiY29uc3RydWN0b3IiLCJfdmFsaWRhdG9yIiwiX2lnbm9yZVByb3BlcnRpZXMiLCJfZHluYW1pY0NvbnRyb2xzIiwiX2R5bmFtaWNBdHRyaWJ1dGVzIiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9vbkRlZmF1bHRWYWx1ZSIsImJpbmQiLCJfb25DaGFuZ2UiLCJfb25Db250cm9sUmVhZHkiLCJfaW5pdGlhbFZhbHVlcyIsInJlc2V0IiwiX3NldERpcnR5IiwiZ2V0Q29udHJvbHMiLCJmb3JFYWNoIiwicyIsInJlcXVlc3RVcGRhdGUiLCJfb25SZXNldCIsInJlcXVlc3RWYWxpZGF0aW9uIiwiY2xlYXJUaW1lb3V0IiwiX3ZhbGlkYXRlVGltZW91dCIsInNldFRpbWVvdXQiLCJ2YWxpZGF0ZSIsIl91cGRhdGVBY3Rpb25zIiwic3VibWl0IiwiX29uU3VibWl0IiwidmFsaWRhdG9yUmVzdWx0cyIsImlzVmFsaWQiLCJfc2V0VG91Y2giLCJ0b3VjaCIsImNvbmZpcm0iLCJpc1RvdWNoIiwicHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiX29uQ29uZmlybVJlc2V0IiwidXBkYXRlQ29tcGxldGUiLCJ0aGVuIiwiX29uQ29uZmlybUVkaXQiLCJfdXBkYXRlQ2hpbGRyZW4iLCJfZ2V0U3VibWl0QnRuIiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJfZ2V0UmVzZXRCdG4iLCJfZGlzcGF0Y2hDaGFuZ2UiLCJfY2hhbmdlVGltZW91dCIsInRhcmdldCIsInZhbGlkYXRpb24iLCJkZXRhaWwiLCJjdXJyZW50VGFyZ2V0IiwidmFsdWUiLCJjb250cm9sIiwidHJpbSIsImxlbmd0aCIsInBhcnNlSW50IiwiaWQiLCJpbnRWYWx1ZSIsIk51bWJlciIsInZhbHVlT2YiLCJpc05hTiIsImVudW0iLCJrZXlzIiwiX3VwZGF0ZUR5bmFtaWNDb250cm9scyIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsImNvbnRyb2xFbGVtZW50IiwiZXZlbnQiLCJuYW1lIiwiX2hhc0NvbmRpdGlvbiIsInB1c2giLCJfdXBkYXRlRHluYW1pY0NvbnRyb2wiLCJpcyIsIl9ldmFsdWF0ZUNvbmRpdGlvbiIsInNldEF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsInBlcmZvcm1VcGRhdGUiLCJhbGwiLCJtYXAiLCJfcmVuZGVyQ29udHJvbCIsImtleSIsImlzUmVxdWlyZWQiLCJyZXF1aXJlZCIsImluY2x1ZGVzIiwiaXNEaXNhYmxlZCIsImRpc2FibGVkIiwiaXNIaWRkZW4iLCJpc1JlYWRvbmx5IiwicmVhZE9ubHkiLCJpc1dyaXRlT25seSIsIndyaXRlT25seSIsImZpbmQiLCJjb25kaXRpb24iLCJjb25kaXRpb25LZXkiLCJBcnJheSIsImlzQXJyYXkiLCJjb25zb2xlIiwid2FybiIsInJlc3VsdCIsIm9wZXJhdGlvbiIsIm9wZXJhdG9yIiwiX2V2YWx1YXRlTm90RXF1YWxzQ29uZGl0aW9uIiwiX2V2YWx1YXRlRXF1YWxzQ29uZGl0aW9uIiwiX2V2YWx1YXRlTm90RGVmQ29uZGl0aW9uIiwiX2V2YWx1YXRlRGVmQ29uZGl0aW9uIiwib3BlcmFuZHMiLCJtb2RlbEF0dHJpYnV0ZXMiLCJtb2RlbEF0dHJpYnV0ZSIsInRlc3RWYWx1ZSIsInJlZHVjZSIsImFjYyIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJfcmVuZGVyUGFydCIsImZyb20iLCJxdWVyeVNlbGVjdG9yQWxsIiwiZ2V0Q29udHJvbCIsIl9nZXRFcnJvcnMiLCJmaWx0ZXIiLCJlcnJvciIsInByb3BlcnR5IiwicmVwbGFjZSIsImFyZ3VtZW50IiwiZXJyb3JLZXkiLCJlcnJvck1lc3NhZ2UiLCJtZXNzYWdlIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJ2YWxpZCIsImNhblN1Ym1pdCIsInN1Ym1pdEJ0biIsInJlc2V0QnRuIiwid2l0aFZhbGlkYXRpb24iLCJfdXBkYXRlQWN0aW9uc1RpbWVvdXQiLCJ1cGRhdGVkIiwiY2hhbmdlZFByb3BlcnRpZXMiLCJoYXMiLCJnZXRVcGRhdGVDb21wbGV0ZSIsInJlbmRlciIsImNvbnRhaW5lciIsInRpdGxlIiwiY2VudGVyIiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFVBQVQsRUFBcUJDLElBQXJCLEVBQTJCQyxHQUEzQixRQUFzQyxLQUF0QztBQUNBLFNBQVNDLEdBQVQsRUFBY0MsR0FBZCxFQUFtQkMsR0FBbkIsUUFBOEIsYUFBOUI7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLFNBQVNDLFNBQVQsRUFBb0JDLFNBQXBCLFFBQXFDLGNBQXJDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwwQkFBekI7QUFDQSxTQUFTQyxNQUFULFFBQXVCLHVC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QUFDbEIsV0FBTyxDQUNMdkssS0FESyxFQUVMO0FBQ0FWLElBQUFBLEdBQUcsNmxEQUhFLENBQVA7QUF3SkQ7O0FBcHBCMEM7QUF1cEI3Q2tMLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsZ0JBQTdCLEVBQStDekssWUFBL0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgTGl0RWxlbWVudCwgaHRtbCwgY3NzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGdldCwgc2V0LCBkZWwgfSBmcm9tICdvYmplY3QtcGF0aCc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgeyBkZWVwQ2xvbmUsIGRlZXBFcXVhbCB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQnO1xuaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnanNvbnNjaGVtYSc7XG5pbXBvcnQgeyBlbXB0eSB9IGZyb20gJy4uL3N0eWxlcy9lbXB0eSc7XG5pbXBvcnQgJy4vZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCc7XG5cbi8qKlxuICogU2NoZW1hIGZvcm0gY29tcG9uZW50XG4gKlxuICogQGZpcmVzIGd2LXNjaGVtYS1mb3JtOnN1Ym1pdCAtIGV2ZW50IHdoZW4gdXNlciBzdWJtaXQgdmFsaWQgZm9ybVxuICogQGZpcmVzIGd2LXNjaGVtYS1mb3JtOmVycm9yIC0gZXZlbnQgd2hlbiB1c2VyIHN1Ym1pdCBpbnZhbGlkIGZvcm1cbiAqIEBmaXJlcyBndi1zY2hlbWEtZm9ybTpjaGFuZ2UgLSBldmVudCB3aGVuIHdoZW4gZm9ybSBjaGFuZ2VcbiAqIEBmaXJlcyBndi1zY2hlbWEtZm9ybTpjYW5jZWwgLSBldmVudCB3aGVuIHVzZXIgY2FuY2VsIGZvcm1cbiAqXG4gKiBAYXR0ciB7T2JqZWN0fSBzY2hlbWEgLSB0aGUgc2NoZW1hIGZvcm0gY29uZmlndXJhdGlvblxuICogQGF0dHIge09iamVjdH0gdmFsdWVzIC0gdGhlIHZhbHVlcyBvZiBmaWVsZHNcbiAqIEBhdHRyIHtPYmplY3R9IGVycm9ycyAtIHRoZSBtYXAgb2YgZXJyb3JzIGJ5IGlucHV0IGtleVxuICogQGF0dHIge0Jvb2xlYW59IHZhbGlkYXRlIC0gdG8gZm9yY2UgdmFsaWRhdGlvbiBvbiBmaXJzdCByZW5kZXJcbiAqIEBhdHRyIHtCb29sZWFufSByZWFkb25seSAtIHRydWUgaWYgcmVhZG9ubHlcbiAqIEBhdHRyIHtCb29sZWFufSBzY3JvbGxhYmxlIC0gdXNlZnVsIGZvciBtYWtpbmcgY29udGVudCBzY3JvbGxhYmxlIHdpdGggZml4ZWQgaGVhZGVycyAvIGZvb3RlcnNcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXNjaGVtYS1mb3JtLS1iZ2M9I2ZmZmZmZl0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1zY2hlbWEtZm9ybS1jb250cm9sLS1tPTAuNHJlbV0gLSBDb250cm9sIG1hcmdpblxuICovXG5leHBvcnQgY2xhc3MgR3ZTY2hlbWFGb3JtIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgZXJyb3JzOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgdmFsdWVzOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgc3VibWl0TGFiZWw6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBoYXNGb290ZXI6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnaGFzLWZvb3RlcicgfSxcbiAgICAgIGhhc0hlYWRlcjogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICdoYXMtaGVhZGVyJyB9LFxuICAgICAgX2NvbmZpcm06IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBfdmFsdWVzOiB7IHR5cGU6IE9iamVjdCwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgZGlydHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgaGlkZURlcHJlY2F0ZWQ6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnaGlkZS1kZXByZWNhdGVkJyB9LFxuICAgICAgdmFsaWRhdGVPblJlbmRlcjogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICd2YWxpZGF0ZS1vbi1yZW5kZXInIH0sXG4gICAgICBfdmFsaWRhdG9yUmVzdWx0czogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIF90b3VjaDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICByZWFkb25seTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBzY3JvbGxhYmxlOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmhpZGVEZXByZWNhdGVkID0gZmFsc2U7XG4gICAgdGhpcy5fdmFsdWVzID0ge307XG4gICAgdGhpcy5zdWJtaXRMYWJlbCA9ICdPayc7XG4gICAgdGhpcy5oYXNIZWFkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmhhc0Zvb3RlciA9IGZhbHNlO1xuICAgIHRoaXMuX3RvdWNoID0gZmFsc2U7XG4gICAgdGhpcy5fdmFsaWRhdG9yID0gbmV3IFZhbGlkYXRvcigpO1xuICAgIHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMgPSB7fTtcbiAgICB0aGlzLl9pZ25vcmVQcm9wZXJ0aWVzID0gW107XG4gICAgdGhpcy5fZHluYW1pY0NvbnRyb2xzID0gW107XG4gICAgdGhpcy5fZHluYW1pY0F0dHJpYnV0ZXMgPSBbJ2Rpc2FibGVkJywgJ3JlcXVpcmVkJywgJ2hpZGRlbiddO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZ3Ytc2NoZW1hLWZvcm0tY29udHJvbDpkZWZhdWx0LXZhbHVlJywgdGhpcy5fb25EZWZhdWx0VmFsdWUuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdndi1zY2hlbWEtZm9ybS1jb250cm9sOmNoYW5nZScsIHRoaXMuX29uQ2hhbmdlLmJpbmQodGhpcykpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZ3Ytc2NoZW1hLWZvcm0tY29udHJvbDpjb250cm9sLXJlYWR5JywgdGhpcy5fb25Db250cm9sUmVhZHkuYmluZCh0aGlzKSk7XG4gIH1cblxuICBzZXQgdmFsdWVzKHZhbHVlcykge1xuICAgIGlmICghZGVlcEVxdWFsKHRoaXMuX3ZhbHVlcywgdmFsdWVzKSkge1xuICAgICAgaWYgKHZhbHVlcykge1xuICAgICAgICB0aGlzLl9pbml0aWFsVmFsdWVzID0geyAuLi52YWx1ZXMgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxWYWx1ZXMgPSB7fTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3ZhbHVlcyA9IGRlZXBDbG9uZSh0aGlzLl9pbml0aWFsVmFsdWVzKTtcbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZXM7XG4gIH1cblxuICByZXNldCh2YWx1ZXMgPSBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWVzID0gZGVlcENsb25lKHZhbHVlcyB8fCB0aGlzLl9pbml0aWFsVmFsdWVzKTtcbiAgICB0aGlzLl90b3VjaCA9IGZhbHNlO1xuICAgIHRoaXMuX3NldERpcnR5KGZhbHNlKTtcbiAgICB0aGlzLmdldENvbnRyb2xzKCkuZm9yRWFjaCgocykgPT4ge1xuICAgICAgcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBfb25SZXNldCgpIHtcbiAgICB0aGlzLnJlc2V0KCk7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAncmVzZXQnKTtcbiAgfVxuXG4gIHJlcXVlc3RWYWxpZGF0aW9uKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl92YWxpZGF0ZVRpbWVvdXQpO1xuICAgIHRoaXMuX3ZhbGlkYXRlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgICAgdGhpcy5fdXBkYXRlQWN0aW9ucygpO1xuICAgIH0sIDM1MCk7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5fb25TdWJtaXQoKTtcbiAgfVxuXG4gIF9vblN1Ym1pdCgpIHtcbiAgICBjb25zdCB2YWxpZGF0b3JSZXN1bHRzID0gdGhpcy52YWxpZGF0ZSgpO1xuICAgIGlmICh0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgdGhpcy5faW5pdGlhbFZhbHVlcyA9IGRlZXBDbG9uZSh0aGlzLl92YWx1ZXMpO1xuICAgICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xuICAgICAgdGhpcy5fdG91Y2ggPSBmYWxzZTtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3N1Ym1pdCcsIHsgdmFsdWVzOiB0aGlzLl92YWx1ZXMsIHZhbGlkYXRvclJlc3VsdHMgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2Vycm9yJywgeyB2YWx1ZXM6IHRoaXMuX3ZhbHVlcywgdmFsaWRhdG9yUmVzdWx0cyB9KTtcbiAgICB9XG4gIH1cblxuICBfc2V0RGlydHkoZGlydHkgPSB0cnVlKSB7XG4gICAgdGhpcy5kaXJ0eSA9ICEhZGlydHk7XG4gIH1cblxuICBfc2V0VG91Y2godG91Y2ggPSB0cnVlKSB7XG4gICAgdGhpcy5fdG91Y2ggPSAhIXRvdWNoO1xuICB9XG5cbiAgY29uZmlybSgpIHtcbiAgICBpZiAodGhpcy5pc1RvdWNoKCkpIHtcbiAgICAgIGlmICh0aGlzLl9jb25maXJtICYmIHRoaXMuX2NvbmZpcm0ucHJvbWlzZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlybS5wcm9taXNlO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+ICh0aGlzLl9jb25maXJtID0geyByZXNvbHZlLCByZWplY3QgfSkpO1xuICAgICAgdGhpcy5fY29uZmlybS5wcm9taXNlID0gcHJvbWlzZTtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICBfb25Db25maXJtUmVzZXQoKSB7XG4gICAgY29uc3QgeyByZXNvbHZlIH0gPSB0aGlzLl9jb25maXJtO1xuICAgIHRoaXMuX2NvbmZpcm0gPSBudWxsO1xuICAgIHRoaXMuX29uUmVzZXQoKTtcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgcmVzb2x2ZSh0aGlzKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9vbkNvbmZpcm1FZGl0KCkge1xuICAgIHRoaXMuX2NvbmZpcm0ucmVqZWN0KHRoaXMpO1xuICAgIHRoaXMuX2NvbmZpcm0gPSBudWxsO1xuICAgIHRoaXMuX3VwZGF0ZUNoaWxkcmVuKHRoaXMudmFsaWRhdGVPblJlbmRlcik7XG4gIH1cblxuICBfZ2V0U3VibWl0QnRuKCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3N1Ym1pdCcpO1xuICB9XG5cbiAgX2dldFJlc2V0QnRuKCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3Jlc2V0Jyk7XG4gIH1cblxuICBfZGlzcGF0Y2hDaGFuZ2UoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2NoYW5nZVRpbWVvdXQpO1xuICAgIHRoaXMuX2NoYW5nZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NoYW5nZScsIHsgdGFyZ2V0OiB0aGlzLCB2YWx1ZXM6IHRoaXMuX3ZhbHVlcywgdmFsaWRhdGlvbjogdGhpcy5fdmFsaWRhdG9yUmVzdWx0cyB9KTtcbiAgICB9LCA1MCk7XG4gIH1cblxuICBfb25EZWZhdWx0VmFsdWUoeyBkZXRhaWw6IHsgY3VycmVudFRhcmdldCwgdmFsdWUsIGNvbnRyb2wgfSB9KSB7XG4gICAgaWYgKGNvbnRyb2wudHlwZSA9PT0gJ2ludGVnZXInICYmIHZhbHVlICE9IG51bGwgJiYgKCh2YWx1ZS50cmltICYmIHZhbHVlLmxlbmd0aCA+IDApIHx8IHZhbHVlLmxlbmd0aCA+IDApKSB7XG4gICAgICB2YWx1ZSA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgfVxuICAgIHNldCh0aGlzLl92YWx1ZXMsIGN1cnJlbnRUYXJnZXQuaWQsIHZhbHVlKTtcbiAgfVxuXG4gIF9vbkNoYW5nZSh7IGRldGFpbDogeyBjdXJyZW50VGFyZ2V0LCB2YWx1ZSwgY29udHJvbCB9IH0pIHtcbiAgICB0aGlzLl9zZXRUb3VjaCh0cnVlKTtcbiAgICBpZiAoY29udHJvbC50eXBlID09PSAnaW50ZWdlcicpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW50VmFsdWUgPSBOdW1iZXIodmFsdWUpLnZhbHVlT2YoKTtcbiAgICAgICAgaWYgKCFpc05hTihpbnRWYWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IGludFZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY29udHJvbC50eXBlID09PSAnYXJyYXknICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdmFsdWUgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoY29udHJvbC50eXBlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID09PSAwICYmICFjb250cm9sLmVudW0pIHtcbiAgICAgIHZhbHVlID0gbnVsbDtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wudHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIGRlbCh0aGlzLl92YWx1ZXMsIGN1cnJlbnRUYXJnZXQuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXQodGhpcy5fdmFsdWVzLCBjdXJyZW50VGFyZ2V0LmlkLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlRHluYW1pY0NvbnRyb2xzKCk7XG4gICAgdGhpcy5fdmFsaWRhdG9yUmVzdWx0cyA9IHRoaXMudmFsaWRhdGUoKTtcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcbiAgICB0aGlzLl91cGRhdGVBY3Rpb25zKCk7XG4gICAgdGhpcy5fZGlzcGF0Y2hDaGFuZ2UoKTtcbiAgfVxuXG4gIF9vbkNvbnRyb2xSZWFkeShlKSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgY29udHJvbEVsZW1lbnQgPSBlLmRldGFpbC5jb250cm9sO1xuICAgIGNvbnN0IGNvbnRyb2wgPSBjb250cm9sRWxlbWVudC5jb250cm9sO1xuICAgIGlmIChjb250cm9sWyd4LXNjaGVtYS1mb3JtJ10pIHtcbiAgICAgIGlmIChjb250cm9sWyd4LXNjaGVtYS1mb3JtJ10uZXZlbnQpIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBjb250cm9sWyd4LXNjaGVtYS1mb3JtJ10uZXZlbnQ7XG4gICAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgZXZlbnQubmFtZSwgeyAuLi5ldmVudCwgLi4uZS5kZXRhaWwgfSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2hhc0NvbmRpdGlvbihjb250cm9sKSkge1xuICAgICAgICB0aGlzLl9keW5hbWljQ29udHJvbHMucHVzaChjb250cm9sRWxlbWVudCk7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUR5bmFtaWNDb250cm9sKGNvbnRyb2xFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfdXBkYXRlRHluYW1pY0NvbnRyb2xzKCkge1xuICAgIHRoaXMuX2lnbm9yZVByb3BlcnRpZXMgPSBbXTtcbiAgICB0aGlzLl9keW5hbWljQ29udHJvbHMuZm9yRWFjaCgoY29udHJvbEVsZW1lbnQpID0+IHtcbiAgICAgIHRoaXMuX3VwZGF0ZUR5bmFtaWNDb250cm9sKGNvbnRyb2xFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIF91cGRhdGVEeW5hbWljQ29udHJvbChjb250cm9sRWxlbWVudCkge1xuICAgIGNvbnN0IGNvbnRyb2wgPSBjb250cm9sRWxlbWVudC5jb250cm9sO1xuICAgIGlmIChjb250cm9sWyd4LXNjaGVtYS1mb3JtJ10pIHtcbiAgICAgIHRoaXMuX2R5bmFtaWNBdHRyaWJ1dGVzLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xuICAgICAgICBjb25zdCBpcyA9IHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9uKGNvbnRyb2wsIGF0dHJpYnV0ZSk7XG4gICAgICAgIGlmIChpcykge1xuICAgICAgICAgIGNvbnRyb2xFbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsICcnKTtcbiAgICAgICAgICBpZiAoYXR0cmlidXRlID09PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgdGhpcy5faWdub3JlUHJvcGVydGllcy5wdXNoKGNvbnRyb2xFbGVtZW50LmlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udHJvbEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIHBlcmZvcm1VcGRhdGUoKSB7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5nZXRDb250cm9scygpLm1hcCgoZSkgPT4gZS51cGRhdGVDb21wbGV0ZSkpO1xuICAgIHRoaXMuZ2V0Q29udHJvbHMoKS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICB9KTtcbiAgICBzdXBlci5wZXJmb3JtVXBkYXRlKCk7XG4gIH1cblxuICBfcmVuZGVyQ29udHJvbChrZXkpIHtcbiAgICAvLyBUaGlzIGlzIHJlcXVpcmUgdG8gY2xlYW4gY2FjaGUgb2YgPGd2LXNjaGVtYS1mb3JtLWNvbnRyb2w+XG4gICAgY29uc3QgY29udHJvbCA9IHsgLi4udGhpcy5zY2hlbWEucHJvcGVydGllc1trZXldIH07XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9ICh0aGlzLnNjaGVtYS5yZXF1aXJlZCAmJiB0aGlzLnNjaGVtYS5yZXF1aXJlZC5pbmNsdWRlcyhrZXkpKSB8fCB0aGlzLl9ldmFsdWF0ZUNvbmRpdGlvbihjb250cm9sLCAncmVxdWlyZWQnKTtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gKHRoaXMuc2NoZW1hLmRpc2FibGVkICYmIHRoaXMuc2NoZW1hLmRpc2FibGVkLmluY2x1ZGVzKGtleSkpIHx8IHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9uKGNvbnRyb2wsICdkaXNhYmxlZCcpO1xuICAgIGNvbnN0IGlzSGlkZGVuID0gdGhpcy5fZXZhbHVhdGVDb25kaXRpb24oY29udHJvbCwgJ2hpZGRlbicpO1xuICAgIGlmIChpc0hpZGRlbikge1xuICAgICAgdGhpcy5faWdub3JlUHJvcGVydGllcy5wdXNoKGtleSk7XG4gICAgfVxuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5IHx8IGNvbnRyb2wucmVhZE9ubHkgPT09IHRydWU7XG4gICAgY29uc3QgaXNXcml0ZU9ubHkgPSBjb250cm9sLndyaXRlT25seSA9PT0gdHJ1ZTtcbiAgICBjb25zdCB2YWx1ZSA9IGdldCh0aGlzLl92YWx1ZXMsIGtleSk7XG4gICAgcmV0dXJuIGh0bWxgPGd2LXNjaGVtYS1mb3JtLWNvbnRyb2xcbiAgICAgIC5pZD1cIiR7a2V5fVwiXG4gICAgICAuZXJyb3JzPVwiJHt0aGlzLmVycm9yc31cIlxuICAgICAgLmNvbnRyb2w9XCIke2NvbnRyb2x9XCJcbiAgICAgIC5za2VsZXRvbj1cIiR7dGhpcy5za2VsZXRvbn1cIlxuICAgICAgLnZhbHVlPVwiJHt2YWx1ZX1cIlxuICAgICAgP3JlYWRvbmx5PVwiJHtpc1JlYWRvbmx5fVwiXG4gICAgICA/d3JpdGVvbmx5PVwiJHtpc1dyaXRlT25seX1cIlxuICAgICAgP3JlcXVpcmVkPVwiJHtpc1JlcXVpcmVkfVwiXG4gICAgICA/ZGlzYWJsZWQ9XCIke2lzRGlzYWJsZWR9XCJcbiAgICAgID9oaWRkZW49XCIke2lzSGlkZGVufVwiXG4gICAgPjwvZ3Ytc2NoZW1hLWZvcm0tY29udHJvbD5gO1xuICB9XG5cbiAgX2hhc0NvbmRpdGlvbihjb250cm9sKSB7XG4gICAgaWYgKGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2R5bmFtaWNBdHRyaWJ1dGVzLmZpbmQoKGNvbmRpdGlvbikgPT4gY29udHJvbFsneC1zY2hlbWEtZm9ybSddW2NvbmRpdGlvbl0gIT0gbnVsbCkgIT0gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgX2V2YWx1YXRlQ29uZGl0aW9uKGNvbnRyb2wsIGNvbmRpdGlvbktleSkge1xuICAgIGlmIChjb250cm9sWyd4LXNjaGVtYS1mb3JtJ10gPT0gbnVsbCB8fCBjb250cm9sWyd4LXNjaGVtYS1mb3JtJ11bY29uZGl0aW9uS2V5XSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGNvbmRpdGlvbiA9IGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXVtjb25kaXRpb25LZXldO1xuICAgIGlmICh0eXBlb2YgY29uZGl0aW9uID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBjb25kaXRpb247XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShjb25kaXRpb24pKSB7XG4gICAgICAvLyBjb25kaXRpb24gaXNuJ3QgYW4gYXJyYXksIGlnbm9yZSB0aGUgY29uZGl0aW9uXG4gICAgICBjb25zb2xlLndhcm4oYCcke2NvbmRpdGlvbktleX0nIGF0dHJpYnV0ZSBvZiAneC1zY2hlbWEtZm9ybScgc2hvdWxkIGJlIGFuIGFycmF5YCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG4gICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2YgY29uZGl0aW9uKSB7XG4gICAgICAvLyBvcGVyYXRpb24gb25seSBoYXZlIG9uZSBvcGVyYXRvciB3aXRoIGEgc2luZ2xlIG9iamVjdCBjb250YWluaW5nIG9wZXJhbmQgdmFsdWVzXG4gICAgICBjb25zdCBvcGVyYXRvciA9IE9iamVjdC5rZXlzKG9wZXJhdGlvbilbMF07XG5cbiAgICAgIHN3aXRjaCAob3BlcmF0b3IpIHtcbiAgICAgICAgY2FzZSAnJG5lcSc6XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuX2V2YWx1YXRlTm90RXF1YWxzQ29uZGl0aW9uKGNvbnRyb2wsIG9wZXJhdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJyRlcSc6XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuX2V2YWx1YXRlRXF1YWxzQ29uZGl0aW9uKGNvbnRyb2wsIG9wZXJhdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJyRub2RlZic6XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuX2V2YWx1YXRlTm90RGVmQ29uZGl0aW9uKGNvbnRyb2wsIG9wZXJhdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJyRkZWYnOlxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB0aGlzLl9ldmFsdWF0ZURlZkNvbmRpdGlvbihjb250cm9sLCBvcGVyYXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgb3BlcmF0b3IgJyR7b3BlcmF0b3J9JyBvbiBkaXNhYmxlIGNvbmRpdGlvbmApO1xuICAgICAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBfZXZhbHVhdGVOb3RFcXVhbHNDb25kaXRpb24oY29udHJvbCwgY29uZGl0aW9uKSB7XG4gICAgcmV0dXJuICF0aGlzLl9ldmFsdWF0ZUVxdWFsc0NvbmRpdGlvbihjb250cm9sLCBjb25kaXRpb24pO1xuICB9XG5cbiAgX2V2YWx1YXRlRXF1YWxzQ29uZGl0aW9uKGNvbnRyb2wsIGNvbmRpdGlvbikge1xuICAgIGNvbnN0IG9wZXJhdG9yID0gT2JqZWN0LmtleXMoY29uZGl0aW9uKVswXTtcbiAgICBjb25zdCBvcGVyYW5kcyA9IGNvbmRpdGlvbltvcGVyYXRvcl07XG4gICAgY29uc3QgbW9kZWxBdHRyaWJ1dGVzID0gT2JqZWN0LmtleXMob3BlcmFuZHMpO1xuICAgIHJldHVybiBtb2RlbEF0dHJpYnV0ZXNcbiAgICAgIC5tYXAoKG1vZGVsQXR0cmlidXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlc3RWYWx1ZSA9IG9wZXJhbmRzW21vZGVsQXR0cmlidXRlXTtcbiAgICAgICAgbGV0IHZhbHVlID0gZ2V0KHRoaXMuX3ZhbHVlcywgbW9kZWxBdHRyaWJ1dGUpO1xuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCAmJiBjb250cm9sLnR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0ZXN0VmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRlc3RWYWx1ZS5pbmNsdWRlcyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0ZXN0VmFsdWU7XG4gICAgICB9KVxuICAgICAgLnJlZHVjZSgoYWNjLCBjdXJyZW50KSA9PiBhY2MgfHwgY3VycmVudCk7XG4gIH1cblxuICBfZXZhbHVhdGVOb3REZWZDb25kaXRpb24oY29udHJvbCwgY29uZGl0aW9uKSB7XG4gICAgY29uc3Qgb3BlcmF0b3IgPSBPYmplY3Qua2V5cyhjb25kaXRpb24pWzBdO1xuICAgIGNvbnN0IG1vZGVsQXR0cmlidXRlID0gY29uZGl0aW9uW29wZXJhdG9yXTtcbiAgICByZXR1cm4gZ2V0KHRoaXMuX3ZhbHVlcywgbW9kZWxBdHRyaWJ1dGUpID09PSB1bmRlZmluZWQgfHwgZ2V0KHRoaXMuX3ZhbHVlcywgbW9kZWxBdHRyaWJ1dGUpID09PSBudWxsO1xuICB9XG5cbiAgX2V2YWx1YXRlRGVmQ29uZGl0aW9uKGNvbnRyb2wsIGNvbmRpdGlvbikge1xuICAgIHJldHVybiAhdGhpcy5fZXZhbHVhdGVOb3REZWZDb25kaXRpb24oY29udHJvbCwgY29uZGl0aW9uKTtcbiAgfVxuXG4gIF9yZW5kZXJQYXJ0KCkge1xuICAgIGlmICh0aGlzLl9jb25maXJtKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiY29uZmlybS1ib3hcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yXCI+VGhlIGNvbmZpZ3VyYXRpb24gaXMgbm90IHZhbGlkIGFuZCBjYW5ub3QgYmUgc2F2ZWQuPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb25maXJtLWJveF9hY3Rpb25zXCI+XG4gICAgICAgICAgPGd2LWJ1dHRvbiBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vbkNvbmZpcm1SZXNldH1cIiBvdXRsaW5lZCBpY29uPVwiZ2VuZXJhbDp1cGRhdGVcIiBkYW5nZXI+TG9zZSBjaGFuZ2VzPC9ndi1idXR0b24+XG4gICAgICAgICAgPGd2LWJ1dHRvbiBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vbkNvbmZpcm1FZGl0fVwiIGljb249XCJkZXNpZ246ZWRpdFwiPkVkaXQ8L2d2LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gdGhpcy5zY2hlbWEucHJvcGVydGllcyA/IE9iamVjdC5rZXlzKHRoaXMuc2NoZW1hLnByb3BlcnRpZXMpIDogW107XG4gICAgdGhpcy5faWdub3JlUHJvcGVydGllcyA9IFtdO1xuICAgIHJldHVybiByZXBlYXQoXG4gICAgICBrZXlzLFxuICAgICAgKGtleSkgPT4ga2V5LFxuICAgICAgKGtleSkgPT4gdGhpcy5fcmVuZGVyQ29udHJvbChrZXkpLFxuICAgICk7XG4gIH1cblxuICBnZXRDb250cm9scygpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCcpKTtcbiAgfVxuXG4gIGdldENvbnRyb2woaWQpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYFtpZD1cIiR7aWR9XCJdYCk7XG4gIH1cblxuICBfZ2V0RXJyb3JzKCkge1xuICAgIHJldHVybiAodGhpcy5fdmFsaWRhdG9yUmVzdWx0cy5lcnJvcnMgfHwgW10pLmZpbHRlcigoZXJyb3IpID0+IHtcbiAgICAgIGxldCBpZCA9IGAke2Vycm9yLnByb3BlcnR5LnJlcGxhY2UoJ2luc3RhbmNlLicsICcnKX1gO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGVycm9yLmFyZ3VtZW50KSkge1xuICAgICAgICBpZCA9IGAke2lkfS4ke2Vycm9yLmFyZ3VtZW50fWA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVycm9yS2V5ID0gYHgtc2NoZW1hLWZvcm0uZXJyb3JzLiR7aWR9LiR7ZXJyb3IubmFtZX1gO1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZ2V0KHRoaXMuc2NoZW1hLCBlcnJvcktleSk7XG4gICAgICBpZiAoZXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gIXRoaXMuX2lnbm9yZVByb3BlcnRpZXMuaW5jbHVkZXMoaWQpO1xuICAgIH0pO1xuICB9XG5cbiAgdmFsaWRhdGUoKSB7XG4gICAgaWYgKHRoaXMuc2NoZW1hKSB7XG4gICAgICAvLyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgc2hvdWxkIG5vdCBibG9jayB0aGUgdmFsaWRhdGlvbiBvZiB0aGUgZm9ybVxuICAgICAgdGhpcy5fdmFsaWRhdG9yUmVzdWx0cyA9IHRoaXMuX3ZhbGlkYXRvci52YWxpZGF0ZSh0aGlzLl92YWx1ZXMsIHsgLi4udGhpcy5zY2hlbWEsIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB0cnVlIH0pO1xuICAgICAgdGhpcy5lcnJvcnMgPSB0aGlzLl9nZXRFcnJvcnMoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRvclJlc3VsdHM7XG4gIH1cblxuICBpc1ZhbGlkKCkge1xuICAgIGlmICh0aGlzLl92YWxpZGF0b3JSZXN1bHRzLnZhbGlkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2dldEVycm9ycygpID09PSAwO1xuICB9XG5cbiAgaXNUb3VjaCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdG91Y2ggfHwgKHRoaXMuZGlydHkgJiYgdGhpcy52YWxpZGF0ZU9uUmVuZGVyKTtcbiAgfVxuXG4gIGNhblN1Ym1pdCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1RvdWNoKCkgJiYgdGhpcy5pc1ZhbGlkKCk7XG4gIH1cblxuICBfdXBkYXRlQWN0aW9ucygpIHtcbiAgICBjb25zdCBzdWJtaXRCdG4gPSB0aGlzLl9nZXRTdWJtaXRCdG4oKTtcbiAgICBpZiAoc3VibWl0QnRuICE9IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLmNhblN1Ym1pdCgpKSB7XG4gICAgICAgIHRoaXMuX2dldFN1Ym1pdEJ0bigpLnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2dldFN1Ym1pdEJ0bigpLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmVzZXRCdG4gPSB0aGlzLl9nZXRSZXNldEJ0bigpO1xuICAgIGlmIChyZXNldEJ0biAhPSBudWxsKSB7XG4gICAgICBpZiAodGhpcy5kaXJ0eSkge1xuICAgICAgICByZXNldEJ0bi5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNldEJ0bi5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX3VwZGF0ZUNoaWxkcmVuKHdpdGhWYWxpZGF0aW9uKSB7XG4gICAgaWYgKHdpdGhWYWxpZGF0aW9uKSB7XG4gICAgICB0aGlzLl92YWxpZGF0b3JSZXN1bHRzID0ge307XG4gICAgICB0aGlzLmVycm9ycyA9IG51bGw7XG4gICAgICB0aGlzLnJlcXVlc3RWYWxpZGF0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUFjdGlvbnNUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLl91cGRhdGVBY3Rpb25zKCksIDApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdXBkYXRlQWN0aW9uc1RpbWVvdXQpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ192YWx1ZXMnKSkge1xuICAgICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgY29udHJvbC52YWx1ZSA9IGdldCh0aGlzLl92YWx1ZXMsIGNvbnRyb2wuaWQpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuX3VwZGF0ZUNoaWxkcmVuKHRoaXMudmFsaWRhdGVPblJlbmRlciAmJiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdfdmFsdWVzJykgfHwgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzY2hlbWEnKSkpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VXBkYXRlQ29tcGxldGUoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3VwZXIuZ2V0VXBkYXRlQ29tcGxldGUoKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmdldENvbnRyb2xzKCkubWFwKChlKSA9PiBlLnVwZGF0ZUNvbXBsZXRlKSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gaHRtbGA8Zm9ybSBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBzY3JvbGxhYmxlOiB0aGlzLnNjcm9sbGFibGUgfSl9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IGNvbnRhaW5lcjogdHJ1ZSwgY29uZmlybTogdGhpcy5fY29uZmlybSB9KX1cIj5cbiAgICAgICAgJHt0aGlzLmhhc0hlYWRlciA9PT0gdHJ1ZVxuICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgdGl0bGU6IHRydWUsIGNlbnRlcjogdGhpcy5oYXNIZWFkZXIgJiYgIXRoaXMuaGFzRm9vdGVyIH0pfVwiPlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCI+PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwiaGVhZGVyLWxlZnRcIj48L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgJHt0aGlzLnJlYWRvbmx5ID09PSB0cnVlIHx8IHRoaXMuaGFzRm9vdGVyID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgICA6IGh0bWxgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJyZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgc21hbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uUmVzZXR9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJnZW5lcmFsOnVwZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlJlc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9ndi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc21hbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uU3VibWl0fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiY29kZTpjaGVja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAudGl0bGU9XCIke3RoaXMuc3VibWl0TGFiZWx9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9ndi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiBgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGBcbiAgICAgICAgICA6ICcnfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPiR7dGhpcy5zY2hlbWEgIT0gbnVsbCA/IHRoaXMuX3JlbmRlclBhcnQoKSA6IGh0bWxgYH08L2Rpdj5cbiAgICAgICAgJHt0aGlzLmhhc0Zvb3RlciA9PT0gdHJ1ZSAmJiB0aGlzLnJlYWRvbmx5ICE9PSB0cnVlXG4gICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgIDxndi1idXR0b24gaWQ9XCJyZXNldFwiIG91dGxpbmVkIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uUmVzZXR9XCIgaWNvbj1cImdlbmVyYWw6dXBkYXRlXCIgdGl0bGU9XCJSZXNldFwiPlJlc2V0PC9ndi1idXR0b24+XG4gICAgICAgICAgICAgICAgICA8Z3YtYnV0dG9uIGlkPVwic3VibWl0XCIgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25TdWJtaXR9XCIgaWNvbj1cImNvZGU6Y2hlY2tcIiAudGl0bGU9XCIke3RoaXMuc3VibWl0TGFiZWx9XCJcbiAgICAgICAgICAgICAgICAgICAgPiR7dGhpcy5zdWJtaXRMYWJlbH08L2d2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGBcbiAgICAgICAgICA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPmA7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgZW1wdHksXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgICAgLS1iZ2M6IHZhcigtLWd2LXNjaGVtYS1mb3JtLS1iZ2MsICNmZmZmZmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybS5zY3JvbGxhYmxlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdjKTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAvKiBmb3IgRmlyZWZveCAqL1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyLFxuICAgICAgICAuZm9vdGVyLFxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgIC8qIGZvciBGaXJlZm94ICovXG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50ID4gZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybS5zY3JvbGxhYmxlIC5jb250ZW50IHtcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0uc2Nyb2xsYWJsZSAuY29udGVudCA+IGd2LXNjaGVtYS1mb3JtLWNvbnRyb2wge1xuICAgICAgICAgIG1heC13aWR0aDogNzc1cHg7XG4gICAgICAgICAgd2lkdGg6IDk1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIsXG4gICAgICAgIC5mb290ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogMjZweDtcbiAgICAgICAgICAtLWd2LWljb24tLWM6ICNiZmJmYmY7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb290ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtLnNjcm9sbGFibGUgLmZvb3RlciB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9vdGVyIC5sZWZ0LFxuICAgICAgICAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLmxlZnQsXG4gICAgICAgIC5mb290ZXIgLmxlZnQsXG4gICAgICAgIC5oZWFkZXIgLnJpZ2h0LFxuICAgICAgICAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIC5yaWdodCxcbiAgICAgICAgLmZvb3RlciAucmlnaHQge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIC50aXRsZSB7XG4gICAgICAgICAgY29sb3I6ICMyODQ0NGY7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnRpdGxlLmNlbnRlciB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb25maXJtLWJveCB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbmZpcm0tYm94X2FjdGlvbnMge1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb25maXJtIC5oZWFkZXIgLmxlZnQsXG4gICAgICAgIC5jb25maXJtIC5oZWFkZXIgLnJpZ2h0LFxuICAgICAgICAuY29uZmlybSAuZm9vdGVyIC5sZWZ0LFxuICAgICAgICAuY29uZmlybSAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXNjaGVtYS1mb3JtJywgR3ZTY2hlbWFGb3JtKTtcbiJdfQ==
646
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS5qcyJdLCJuYW1lcyI6WyJMaXRFbGVtZW50IiwiaHRtbCIsImNzcyIsImdldCIsInNldCIsImRlbCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJkZWVwQ2xvbmUiLCJkZWVwRXF1YWwiLCJjbGFzc01hcCIsInJlcGVhdCIsIlZhbGlkYXRvciIsImVtcHR5IiwiR3ZTY2hlbWFGb3JtIiwicHJvcGVydGllcyIsInNjaGVtYSIsInR5cGUiLCJPYmplY3QiLCJlcnJvcnMiLCJ2YWx1ZXMiLCJzdWJtaXRMYWJlbCIsIlN0cmluZyIsImhhc0Zvb3RlciIsIkJvb2xlYW4iLCJhdHRyaWJ1dGUiLCJoYXNIZWFkZXIiLCJfY29uZmlybSIsIl92YWx1ZXMiLCJkaXJ0eSIsInJlZmxlY3QiLCJoaWRlRGVwcmVjYXRlZCIsInZhbGlkYXRlT25SZW5kZXIiLCJfdmFsaWRhdG9yUmVzdWx0cyIsInNrZWxldG9uIiwiX3RvdWNoIiwicmVhZG9ubHkiLCJzY3JvbGxhYmxlIiwiZ3JvdXBzIiwiQXJyYXkiLCJjb25zdHJ1Y3RvciIsIl92YWxpZGF0b3IiLCJfaWdub3JlUHJvcGVydGllcyIsIl9keW5hbWljQ29udHJvbHMiLCJfZHluYW1pY0F0dHJpYnV0ZXMiLCJhZGRFdmVudExpc3RlbmVyIiwiX29uRGVmYXVsdFZhbHVlIiwiYmluZCIsIl9vbkNoYW5nZSIsIl9vbkNvbnRyb2xSZWFkeSIsIl9pbml0aWFsVmFsdWVzIiwicmVzZXQiLCJfc2V0RGlydHkiLCJnZXRDb250cm9scyIsImZvckVhY2giLCJzIiwicmVxdWVzdFVwZGF0ZSIsIl9vblJlc2V0IiwicmVxdWVzdFZhbGlkYXRpb24iLCJjbGVhclRpbWVvdXQiLCJfdmFsaWRhdGVUaW1lb3V0Iiwic2V0VGltZW91dCIsInZhbGlkYXRlIiwiX3VwZGF0ZUFjdGlvbnMiLCJzdWJtaXQiLCJfb25TdWJtaXQiLCJ2YWxpZGF0b3JSZXN1bHRzIiwiaXNWYWxpZCIsIl9zZXRUb3VjaCIsInRvdWNoIiwiY29uZmlybSIsImlzVG91Y2giLCJwcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJfb25Db25maXJtUmVzZXQiLCJ1cGRhdGVDb21wbGV0ZSIsInRoZW4iLCJfb25Db25maXJtRWRpdCIsIl91cGRhdGVDaGlsZHJlbiIsIl9nZXRTdWJtaXRCdG4iLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvciIsIl9nZXRSZXNldEJ0biIsIl9kaXNwYXRjaENoYW5nZSIsIl9jaGFuZ2VUaW1lb3V0IiwidGFyZ2V0IiwidmFsaWRhdGlvbiIsImRldGFpbCIsImN1cnJlbnRUYXJnZXQiLCJ2YWx1ZSIsImNvbnRyb2wiLCJ0cmltIiwibGVuZ3RoIiwicGFyc2VJbnQiLCJpZCIsImludFZhbHVlIiwiTnVtYmVyIiwidmFsdWVPZiIsImlzTmFOIiwiZW51bSIsImtleXMiLCJfdXBkYXRlRHluYW1pY0NvbnRyb2xzIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0IiwiY29udHJvbEVsZW1lbnQiLCJldmVudCIsIm5hbWUiLCJfaGFzQ29uZGl0aW9uIiwicHVzaCIsIl91cGRhdGVEeW5hbWljQ29udHJvbCIsImlzIiwiX2V2YWx1YXRlQ29uZGl0aW9uIiwic2V0QXR0cmlidXRlIiwicmVtb3ZlQXR0cmlidXRlIiwicGVyZm9ybVVwZGF0ZSIsImFsbCIsIm1hcCIsIl9yZW5kZXJDb250cm9sIiwia2V5IiwiaXNSZXF1aXJlZCIsInJlcXVpcmVkIiwiaW5jbHVkZXMiLCJpc0Rpc2FibGVkIiwiZGlzYWJsZWQiLCJpc0hpZGRlbiIsImlzUmVhZG9ubHkiLCJyZWFkT25seSIsImlzV3JpdGVPbmx5Iiwid3JpdGVPbmx5IiwiZmluZCIsImNvbmRpdGlvbiIsImNvbmRpdGlvbktleSIsImlzQXJyYXkiLCJjb25zb2xlIiwid2FybiIsInJlc3VsdCIsIm9wZXJhdGlvbiIsIm9wZXJhdG9yIiwiX2V2YWx1YXRlTm90RXF1YWxzQ29uZGl0aW9uIiwiX2V2YWx1YXRlRXF1YWxzQ29uZGl0aW9uIiwiX2V2YWx1YXRlTm90RGVmQ29uZGl0aW9uIiwiX2V2YWx1YXRlRGVmQ29uZGl0aW9uIiwib3BlcmFuZHMiLCJtb2RlbEF0dHJpYnV0ZXMiLCJtb2RlbEF0dHJpYnV0ZSIsInRlc3RWYWx1ZSIsInJlZHVjZSIsImFjYyIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJfcmVuZGVyUGFydCIsImdyb3Vwc0NsZWFuZWQiLCJwcmV2IiwiZ3JvdXAiLCJpdGVtc0V4aXN0aW5nSW5TY2hlbWFLZXlzIiwiZmlsdGVyIiwiaXRlbXMiLCJkZWZhdWx0R3JvdXAiLCJnIiwiZGVmYXVsdCIsInppcEdyb3VwZWRJdGVtcyIsImZyb20iLCJxdWVyeVNlbGVjdG9yQWxsIiwiZ2V0Q29udHJvbCIsIl9nZXRFcnJvcnMiLCJlcnJvciIsInByb3BlcnR5IiwicmVwbGFjZSIsImFyZ3VtZW50IiwiZXJyb3JLZXkiLCJlcnJvck1lc3NhZ2UiLCJtZXNzYWdlIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJ2YWxpZCIsImNhblN1Ym1pdCIsInN1Ym1pdEJ0biIsInJlc2V0QnRuIiwid2l0aFZhbGlkYXRpb24iLCJfdXBkYXRlQWN0aW9uc1RpbWVvdXQiLCJ1cGRhdGVkIiwiY2hhbmdlZFByb3BlcnRpZXMiLCJoYXMiLCJnZXRVcGRhdGVDb21wbGV0ZSIsInJlbmRlciIsImNvbnRhaW5lciIsInRpdGxlIiwiY2VudGVyIiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFVBQVQsRUFBcUJDLElBQXJCLEVBQTJCQyxHQUEzQixRQUFzQyxLQUF0QztBQUNBLFNBQVNDLEdBQVQsRUFBY0MsR0FBZCxFQUFtQkMsR0FBbkIsUUFBOEIsYUFBOUI7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TUFBQUEsTUFBTSxFQUFFLEtBQUtuSyxTQUFMLElBQWtCLENBQUMsS0FBS0g7QUFBL0MsS0FBRCxDQUZ0QixtR0FRRSxLQUFLYSxRQUFMLEtBQWtCLElBQWxCLElBQTBCLEtBQUtiLFNBQUwsS0FBbUIsSUFBN0MsR0FDRSxFQURGLEdBRUVyQixJQUFJLDhFQUtvQixLQUFLdUQsUUFMekIscUdBWW9CLEtBQUtRLFNBWnpCLCtCQWNVLEtBQUs1QyxXQWRmLHdCQVZSLFVBRE4sR0E4QkUsRUFoQ0cseUJBaUNnQixLQUFLTCxNQUFMLElBQWUsSUFBZixHQUFzQixLQUFLeUksV0FBTCxFQUF0QixHQUEyQ3ZKLElBQUksRUFqQy9ELFVBa0NMLEtBQUtxQixTQUFMLEtBQW1CLElBQW5CLElBQTJCLEtBQUthLFFBQUwsS0FBa0IsSUFBN0MsR0FDRWxDLElBQUksdUhBSXFELEtBQUt1RCxRQUoxRCxvR0FLNkMsS0FBS1EsU0FMbEQsK0JBSzBGLEtBQUs1QyxXQUwvRixLQU1PLEtBQUtBLFdBTlosNkJBRE4sR0FZRSxFQTlDRyxpQkFBWDtBQWlERDs7QUFFZ0IsYUFBTnlLLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0xqTCxLQURLLEVBRUw7QUFDQVYsSUFBQUEsR0FBRyxpMkRBSEUsQ0FBUDtBQXFLRDs7QUFoc0IwQztBQW1zQjdDNEwsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixnQkFBN0IsRUFBK0NuTCxZQUEvQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgZ2V0LCBzZXQsIGRlbCB9IGZyb20gJ29iamVjdC1wYXRoJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCB7IGRlZXBDbG9uZSwgZGVlcEVxdWFsIH0gZnJvbSAnLi4vbGliL3V0aWxzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IHJlcGVhdCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlcGVhdCc7XG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICdqc29uc2NoZW1hJztcbmltcG9ydCB7IGVtcHR5IH0gZnJvbSAnLi4vc3R5bGVzL2VtcHR5JztcbmltcG9ydCAnLi9ndi1zY2hlbWEtZm9ybS1jb250cm9sJztcblxuLyoqXG4gKiBTY2hlbWEgZm9ybSBjb21wb25lbnRcbiAqXG4gKiBAZmlyZXMgZ3Ytc2NoZW1hLWZvcm06c3VibWl0IC0gZXZlbnQgd2hlbiB1c2VyIHN1Ym1pdCB2YWxpZCBmb3JtXG4gKiBAZmlyZXMgZ3Ytc2NoZW1hLWZvcm06ZXJyb3IgLSBldmVudCB3aGVuIHVzZXIgc3VibWl0IGludmFsaWQgZm9ybVxuICogQGZpcmVzIGd2LXNjaGVtYS1mb3JtOmNoYW5nZSAtIGV2ZW50IHdoZW4gd2hlbiBmb3JtIGNoYW5nZVxuICogQGZpcmVzIGd2LXNjaGVtYS1mb3JtOmNhbmNlbCAtIGV2ZW50IHdoZW4gdXNlciBjYW5jZWwgZm9ybVxuICpcbiAqIEBhdHRyIHtPYmplY3R9IHNjaGVtYSAtIHRoZSBzY2hlbWEgZm9ybSBjb25maWd1cmF0aW9uXG4gKiBAYXR0ciB7T2JqZWN0fSB2YWx1ZXMgLSB0aGUgdmFsdWVzIG9mIGZpZWxkc1xuICogQGF0dHIge09iamVjdH0gZXJyb3JzIC0gdGhlIG1hcCBvZiBlcnJvcnMgYnkgaW5wdXQga2V5XG4gKiBAYXR0ciB7Qm9vbGVhbn0gdmFsaWRhdGUgLSB0byBmb3JjZSB2YWxpZGF0aW9uIG9uIGZpcnN0IHJlbmRlclxuICogQGF0dHIge0Jvb2xlYW59IHJlYWRvbmx5IC0gdHJ1ZSBpZiByZWFkb25seVxuICogQGF0dHIge0Jvb2xlYW59IHNjcm9sbGFibGUgLSB1c2VmdWwgZm9yIG1ha2luZyBjb250ZW50IHNjcm9sbGFibGUgd2l0aCBmaXhlZCBoZWFkZXJzIC8gZm9vdGVyc1xuICpcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3Ytc2NoZW1hLWZvcm0tLWJnYz0jZmZmZmZmXSAtIEJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXNjaGVtYS1mb3JtLWNvbnRyb2wtLW09MC40cmVtXSAtIENvbnRyb2wgbWFyZ2luXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlNjaGVtYUZvcm0gZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWE6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBlcnJvcnM6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICB2YWx1ZXM6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBzdWJtaXRMYWJlbDogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGhhc0Zvb3RlcjogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICdoYXMtZm9vdGVyJyB9LFxuICAgICAgaGFzSGVhZGVyOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ2hhcy1oZWFkZXInIH0sXG4gICAgICBfY29uZmlybTogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIF92YWx1ZXM6IHsgdHlwZTogT2JqZWN0LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBkaXJ0eTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBoaWRlRGVwcmVjYXRlZDogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICdoaWRlLWRlcHJlY2F0ZWQnIH0sXG4gICAgICB2YWxpZGF0ZU9uUmVuZGVyOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ3ZhbGlkYXRlLW9uLXJlbmRlcicgfSxcbiAgICAgIF92YWxpZGF0b3JSZXN1bHRzOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgX3RvdWNoOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIHJlYWRvbmx5OiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHNjcm9sbGFibGU6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZ3JvdXBzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5oaWRlRGVwcmVjYXRlZCA9IGZhbHNlO1xuICAgIHRoaXMuX3ZhbHVlcyA9IHt9O1xuICAgIHRoaXMuc3VibWl0TGFiZWwgPSAnT2snO1xuICAgIHRoaXMuaGFzSGVhZGVyID0gZmFsc2U7XG4gICAgdGhpcy5oYXNGb290ZXIgPSBmYWxzZTtcbiAgICB0aGlzLl90b3VjaCA9IGZhbHNlO1xuICAgIHRoaXMuX3ZhbGlkYXRvciA9IG5ldyBWYWxpZGF0b3IoKTtcbiAgICB0aGlzLl92YWxpZGF0b3JSZXN1bHRzID0ge307XG4gICAgdGhpcy5faWdub3JlUHJvcGVydGllcyA9IFtdO1xuICAgIHRoaXMuX2R5bmFtaWNDb250cm9scyA9IFtdO1xuICAgIHRoaXMuX2R5bmFtaWNBdHRyaWJ1dGVzID0gWydkaXNhYmxlZCcsICdyZXF1aXJlZCcsICdoaWRkZW4nXTtcbiAgICB0aGlzLmdyb3VwcyA9IG51bGw7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdndi1zY2hlbWEtZm9ybS1jb250cm9sOmRlZmF1bHQtdmFsdWUnLCB0aGlzLl9vbkRlZmF1bHRWYWx1ZS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2w6Y2hhbmdlJywgdGhpcy5fb25DaGFuZ2UuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdndi1zY2hlbWEtZm9ybS1jb250cm9sOmNvbnRyb2wtcmVhZHknLCB0aGlzLl9vbkNvbnRyb2xSZWFkeS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHNldCB2YWx1ZXModmFsdWVzKSB7XG4gICAgaWYgKCFkZWVwRXF1YWwodGhpcy5fdmFsdWVzLCB2YWx1ZXMpKSB7XG4gICAgICBpZiAodmFsdWVzKSB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxWYWx1ZXMgPSB7IC4uLnZhbHVlcyB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5faW5pdGlhbFZhbHVlcyA9IHt9O1xuICAgICAgfVxuICAgICAgdGhpcy5fdmFsdWVzID0gZGVlcENsb25lKHRoaXMuX2luaXRpYWxWYWx1ZXMpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2YWx1ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcbiAgfVxuXG4gIHJlc2V0KHZhbHVlcyA9IG51bGwpIHtcbiAgICB0aGlzLl92YWx1ZXMgPSBkZWVwQ2xvbmUodmFsdWVzIHx8IHRoaXMuX2luaXRpYWxWYWx1ZXMpO1xuICAgIHRoaXMuX3RvdWNoID0gZmFsc2U7XG4gICAgdGhpcy5fc2V0RGlydHkoZmFsc2UpO1xuICAgIHRoaXMuZ2V0Q29udHJvbHMoKS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9vblJlc2V0KCkge1xuICAgIHRoaXMucmVzZXQoKTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdyZXNldCcpO1xuICB9XG5cbiAgcmVxdWVzdFZhbGlkYXRpb24oKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX3ZhbGlkYXRlVGltZW91dCk7XG4gICAgdGhpcy5fdmFsaWRhdGVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnZhbGlkYXRlKCk7XG4gICAgICB0aGlzLl91cGRhdGVBY3Rpb25zKCk7XG4gICAgfSwgMzUwKTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLl9vblN1Ym1pdCgpO1xuICB9XG5cbiAgX29uU3VibWl0KCkge1xuICAgIGNvbnN0IHZhbGlkYXRvclJlc3VsdHMgPSB0aGlzLnZhbGlkYXRlKCk7XG4gICAgaWYgKHRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICB0aGlzLl9pbml0aWFsVmFsdWVzID0gZGVlcENsb25lKHRoaXMuX3ZhbHVlcyk7XG4gICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XG4gICAgICB0aGlzLl90b3VjaCA9IGZhbHNlO1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnc3VibWl0JywgeyB2YWx1ZXM6IHRoaXMuX3ZhbHVlcywgdmFsaWRhdG9yUmVzdWx0cyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZXJyb3InLCB7IHZhbHVlczogdGhpcy5fdmFsdWVzLCB2YWxpZGF0b3JSZXN1bHRzIH0pO1xuICAgIH1cbiAgfVxuXG4gIF9zZXREaXJ0eShkaXJ0eSA9IHRydWUpIHtcbiAgICB0aGlzLmRpcnR5ID0gISFkaXJ0eTtcbiAgfVxuXG4gIF9zZXRUb3VjaCh0b3VjaCA9IHRydWUpIHtcbiAgICB0aGlzLl90b3VjaCA9ICEhdG91Y2g7XG4gIH1cblxuICBjb25maXJtKCkge1xuICAgIGlmICh0aGlzLmlzVG91Y2goKSkge1xuICAgICAgaWYgKHRoaXMuX2NvbmZpcm0gJiYgdGhpcy5fY29uZmlybS5wcm9taXNlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maXJtLnByb21pc2U7XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gKHRoaXMuX2NvbmZpcm0gPSB7IHJlc29sdmUsIHJlamVjdCB9KSk7XG4gICAgICB0aGlzLl9jb25maXJtLnByb21pc2UgPSBwcm9taXNlO1xuICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIF9vbkNvbmZpcm1SZXNldCgpIHtcbiAgICBjb25zdCB7IHJlc29sdmUgfSA9IHRoaXMuX2NvbmZpcm07XG4gICAgdGhpcy5fY29uZmlybSA9IG51bGw7XG4gICAgdGhpcy5fb25SZXNldCgpO1xuICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xuICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICByZXNvbHZlKHRoaXMpO1xuICAgIH0pO1xuICB9XG5cbiAgX29uQ29uZmlybUVkaXQoKSB7XG4gICAgdGhpcy5fY29uZmlybS5yZWplY3QodGhpcyk7XG4gICAgdGhpcy5fY29uZmlybSA9IG51bGw7XG4gICAgdGhpcy5fdXBkYXRlQ2hpbGRyZW4odGhpcy52YWxpZGF0ZU9uUmVuZGVyKTtcbiAgfVxuXG4gIF9nZXRTdWJtaXRCdG4oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjc3VibWl0Jyk7XG4gIH1cblxuICBfZ2V0UmVzZXRCdG4oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcmVzZXQnKTtcbiAgfVxuXG4gIF9kaXNwYXRjaENoYW5nZSgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2hhbmdlVGltZW91dCk7XG4gICAgdGhpcy5fY2hhbmdlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnY2hhbmdlJywgeyB0YXJnZXQ6IHRoaXMsIHZhbHVlczogdGhpcy5fdmFsdWVzLCB2YWxpZGF0aW9uOiB0aGlzLl92YWxpZGF0b3JSZXN1bHRzIH0pO1xuICAgIH0sIDUwKTtcbiAgfVxuXG4gIF9vbkRlZmF1bHRWYWx1ZSh7IGRldGFpbDogeyBjdXJyZW50VGFyZ2V0LCB2YWx1ZSwgY29udHJvbCB9IH0pIHtcbiAgICBpZiAoY29udHJvbC50eXBlID09PSAnaW50ZWdlcicgJiYgdmFsdWUgIT0gbnVsbCAmJiAoKHZhbHVlLnRyaW0gJiYgdmFsdWUubGVuZ3RoID4gMCkgfHwgdmFsdWUubGVuZ3RoID4gMCkpIHtcbiAgICAgIHZhbHVlID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICB9XG4gICAgc2V0KHRoaXMuX3ZhbHVlcywgY3VycmVudFRhcmdldC5pZCwgdmFsdWUpO1xuICB9XG5cbiAgX29uQ2hhbmdlKHsgZGV0YWlsOiB7IGN1cnJlbnRUYXJnZXQsIHZhbHVlLCBjb250cm9sIH0gfSkge1xuICAgIHRoaXMuX3NldFRvdWNoKHRydWUpO1xuICAgIGlmIChjb250cm9sLnR5cGUgPT09ICdpbnRlZ2VyJykge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbnRWYWx1ZSA9IE51bWJlcih2YWx1ZSkudmFsdWVPZigpO1xuICAgICAgICBpZiAoIWlzTmFOKGludFZhbHVlKSkge1xuICAgICAgICAgIHZhbHVlID0gaW50VmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjb250cm9sLnR5cGUgPT09ICdhcnJheScgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIGlmIChjb250cm9sLnR5cGUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDAgJiYgIWNvbnRyb2wuZW51bSkge1xuICAgICAgdmFsdWUgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoY29udHJvbC50eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgZGVsKHRoaXMuX3ZhbHVlcywgY3VycmVudFRhcmdldC5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldCh0aGlzLl92YWx1ZXMsIGN1cnJlbnRUYXJnZXQuaWQsIHZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLl91cGRhdGVEeW5hbWljQ29udHJvbHMoKTtcbiAgICB0aGlzLl92YWxpZGF0b3JSZXN1bHRzID0gdGhpcy52YWxpZGF0ZSgpO1xuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xuICAgIHRoaXMuX3VwZGF0ZUFjdGlvbnMoKTtcbiAgICB0aGlzLl9kaXNwYXRjaENoYW5nZSgpO1xuICB9XG5cbiAgX29uQ29udHJvbFJlYWR5KGUpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBjb250cm9sRWxlbWVudCA9IGUuZGV0YWlsLmNvbnRyb2w7XG4gICAgY29uc3QgY29udHJvbCA9IGNvbnRyb2xFbGVtZW50LmNvbnRyb2w7XG4gICAgaWYgKGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSkge1xuICAgICAgaWYgKGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXS5ldmVudCkge1xuICAgICAgICBjb25zdCBldmVudCA9IGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXS5ldmVudDtcbiAgICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCBldmVudC5uYW1lLCB7IC4uLmV2ZW50LCAuLi5lLmRldGFpbCB9KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5faGFzQ29uZGl0aW9uKGNvbnRyb2wpKSB7XG4gICAgICAgIHRoaXMuX2R5bmFtaWNDb250cm9scy5wdXNoKGNvbnRyb2xFbGVtZW50KTtcbiAgICAgICAgdGhpcy5fdXBkYXRlRHluYW1pY0NvbnRyb2woY29udHJvbEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF91cGRhdGVEeW5hbWljQ29udHJvbHMoKSB7XG4gICAgdGhpcy5faWdub3JlUHJvcGVydGllcyA9IFtdO1xuICAgIHRoaXMuX2R5bmFtaWNDb250cm9scy5mb3JFYWNoKChjb250cm9sRWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5fdXBkYXRlRHluYW1pY0NvbnRyb2woY29udHJvbEVsZW1lbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgX3VwZGF0ZUR5bmFtaWNDb250cm9sKGNvbnRyb2xFbGVtZW50KSB7XG4gICAgY29uc3QgY29udHJvbCA9IGNvbnRyb2xFbGVtZW50LmNvbnRyb2w7XG4gICAgaWYgKGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSkge1xuICAgICAgdGhpcy5fZHluYW1pY0F0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cmlidXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzID0gdGhpcy5fZXZhbHVhdGVDb25kaXRpb24oY29udHJvbCwgYXR0cmlidXRlKTtcbiAgICAgICAgaWYgKGlzKSB7XG4gICAgICAgICAgY29udHJvbEVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgJycpO1xuICAgICAgICAgIGlmIChhdHRyaWJ1dGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgICB0aGlzLl9pZ25vcmVQcm9wZXJ0aWVzLnB1c2goY29udHJvbEVsZW1lbnQuaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250cm9sRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYXN5bmMgcGVyZm9ybVVwZGF0ZSgpIHtcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmdldENvbnRyb2xzKCkubWFwKChlKSA9PiBlLnVwZGF0ZUNvbXBsZXRlKSk7XG4gICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIHMucmVxdWVzdFVwZGF0ZSgpO1xuICAgIH0pO1xuICAgIHN1cGVyLnBlcmZvcm1VcGRhdGUoKTtcbiAgfVxuXG4gIF9yZW5kZXJDb250cm9sKGtleSkge1xuICAgIC8vIFRoaXMgaXMgcmVxdWlyZSB0byBjbGVhbiBjYWNoZSBvZiA8Z3Ytc2NoZW1hLWZvcm0tY29udHJvbD5cbiAgICBjb25zdCBjb250cm9sID0geyAuLi50aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW2tleV0gfTtcbiAgICBjb25zdCBpc1JlcXVpcmVkID0gKHRoaXMuc2NoZW1hLnJlcXVpcmVkICYmIHRoaXMuc2NoZW1hLnJlcXVpcmVkLmluY2x1ZGVzKGtleSkpIHx8IHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9uKGNvbnRyb2wsICdyZXF1aXJlZCcpO1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSAodGhpcy5zY2hlbWEuZGlzYWJsZWQgJiYgdGhpcy5zY2hlbWEuZGlzYWJsZWQuaW5jbHVkZXMoa2V5KSkgfHwgdGhpcy5fZXZhbHVhdGVDb25kaXRpb24oY29udHJvbCwgJ2Rpc2FibGVkJyk7XG4gICAgY29uc3QgaXNIaWRkZW4gPSB0aGlzLl9ldmFsdWF0ZUNvbmRpdGlvbihjb250cm9sLCAnaGlkZGVuJyk7XG4gICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICB0aGlzLl9pZ25vcmVQcm9wZXJ0aWVzLnB1c2goa2V5KTtcbiAgICB9XG4gICAgY29uc3QgaXNSZWFkb25seSA9IHRoaXMucmVhZG9ubHkgfHwgY29udHJvbC5yZWFkT25seSA9PT0gdHJ1ZTtcbiAgICBjb25zdCBpc1dyaXRlT25seSA9IGNvbnRyb2wud3JpdGVPbmx5ID09PSB0cnVlO1xuICAgIGNvbnN0IHZhbHVlID0gZ2V0KHRoaXMuX3ZhbHVlcywga2V5KTtcbiAgICByZXR1cm4gaHRtbGA8Z3Ytc2NoZW1hLWZvcm0tY29udHJvbFxuICAgICAgLmlkPVwiJHtrZXl9XCJcbiAgICAgIC5lcnJvcnM9XCIke3RoaXMuZXJyb3JzfVwiXG4gICAgICAuY29udHJvbD1cIiR7Y29udHJvbH1cIlxuICAgICAgLnNrZWxldG9uPVwiJHt0aGlzLnNrZWxldG9ufVwiXG4gICAgICAudmFsdWU9XCIke3ZhbHVlfVwiXG4gICAgICA/cmVhZG9ubHk9XCIke2lzUmVhZG9ubHl9XCJcbiAgICAgID93cml0ZW9ubHk9XCIke2lzV3JpdGVPbmx5fVwiXG4gICAgICA/cmVxdWlyZWQ9XCIke2lzUmVxdWlyZWR9XCJcbiAgICAgID9kaXNhYmxlZD1cIiR7aXNEaXNhYmxlZH1cIlxuICAgICAgP2hpZGRlbj1cIiR7aXNIaWRkZW59XCJcbiAgICA+PC9ndi1zY2hlbWEtZm9ybS1jb250cm9sPmA7XG4gIH1cblxuICBfaGFzQ29uZGl0aW9uKGNvbnRyb2wpIHtcbiAgICBpZiAoY29udHJvbFsneC1zY2hlbWEtZm9ybSddKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZHluYW1pY0F0dHJpYnV0ZXMuZmluZCgoY29uZGl0aW9uKSA9PiBjb250cm9sWyd4LXNjaGVtYS1mb3JtJ11bY29uZGl0aW9uXSAhPSBudWxsKSAhPSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBfZXZhbHVhdGVDb25kaXRpb24oY29udHJvbCwgY29uZGl0aW9uS2V5KSB7XG4gICAgaWYgKGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSA9PSBudWxsIHx8IGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXVtjb25kaXRpb25LZXldID09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgY29uZGl0aW9uID0gY29udHJvbFsneC1zY2hlbWEtZm9ybSddW2NvbmRpdGlvbktleV07XG4gICAgaWYgKHR5cGVvZiBjb25kaXRpb24gPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuIGNvbmRpdGlvbjtcbiAgICB9XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbmRpdGlvbikpIHtcbiAgICAgIC8vIGNvbmRpdGlvbiBpc24ndCBhbiBhcnJheSwgaWdub3JlIHRoZSBjb25kaXRpb25cbiAgICAgIGNvbnNvbGUud2FybihgJyR7Y29uZGl0aW9uS2V5fScgYXR0cmlidXRlIG9mICd4LXNjaGVtYS1mb3JtJyBzaG91bGQgYmUgYW4gYXJyYXlgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0ID0gdHJ1ZTtcbiAgICBmb3IgKGNvbnN0IG9wZXJhdGlvbiBvZiBjb25kaXRpb24pIHtcbiAgICAgIC8vIG9wZXJhdGlvbiBvbmx5IGhhdmUgb25lIG9wZXJhdG9yIHdpdGggYSBzaW5nbGUgb2JqZWN0IGNvbnRhaW5pbmcgb3BlcmFuZCB2YWx1ZXNcbiAgICAgIGNvbnN0IG9wZXJhdG9yID0gT2JqZWN0LmtleXMob3BlcmF0aW9uKVswXTtcblxuICAgICAgc3dpdGNoIChvcGVyYXRvcikge1xuICAgICAgICBjYXNlICckbmVxJzpcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgdGhpcy5fZXZhbHVhdGVOb3RFcXVhbHNDb25kaXRpb24oY29udHJvbCwgb3BlcmF0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnJGVxJzpcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgdGhpcy5fZXZhbHVhdGVFcXVhbHNDb25kaXRpb24oY29udHJvbCwgb3BlcmF0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnJG5vZGVmJzpcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgdGhpcy5fZXZhbHVhdGVOb3REZWZDb25kaXRpb24oY29udHJvbCwgb3BlcmF0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnJGRlZic6XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuX2V2YWx1YXRlRGVmQ29uZGl0aW9uKGNvbnRyb2wsIG9wZXJhdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29uc29sZS53YXJuKGBVbnN1cHBvcnRlZCBvcGVyYXRvciAnJHtvcGVyYXRvcn0nIG9uIGRpc2FibGUgY29uZGl0aW9uYCk7XG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIF9ldmFsdWF0ZU5vdEVxdWFsc0NvbmRpdGlvbihjb250cm9sLCBjb25kaXRpb24pIHtcbiAgICByZXR1cm4gIXRoaXMuX2V2YWx1YXRlRXF1YWxzQ29uZGl0aW9uKGNvbnRyb2wsIGNvbmRpdGlvbik7XG4gIH1cblxuICBfZXZhbHVhdGVFcXVhbHNDb25kaXRpb24oY29udHJvbCwgY29uZGl0aW9uKSB7XG4gICAgY29uc3Qgb3BlcmF0b3IgPSBPYmplY3Qua2V5cyhjb25kaXRpb24pWzBdO1xuICAgIGNvbnN0IG9wZXJhbmRzID0gY29uZGl0aW9uW29wZXJhdG9yXTtcbiAgICBjb25zdCBtb2RlbEF0dHJpYnV0ZXMgPSBPYmplY3Qua2V5cyhvcGVyYW5kcyk7XG4gICAgcmV0dXJuIG1vZGVsQXR0cmlidXRlc1xuICAgICAgLm1hcCgobW9kZWxBdHRyaWJ1dGUpID0+IHtcbiAgICAgICAgY29uc3QgdGVzdFZhbHVlID0gb3BlcmFuZHNbbW9kZWxBdHRyaWJ1dGVdO1xuICAgICAgICBsZXQgdmFsdWUgPSBnZXQodGhpcy5fdmFsdWVzLCBtb2RlbEF0dHJpYnV0ZSk7XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsICYmIGNvbnRyb2wudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRlc3RWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdGVzdFZhbHVlLmluY2x1ZGVzKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRlc3RWYWx1ZTtcbiAgICAgIH0pXG4gICAgICAucmVkdWNlKChhY2MsIGN1cnJlbnQpID0+IGFjYyB8fCBjdXJyZW50KTtcbiAgfVxuXG4gIF9ldmFsdWF0ZU5vdERlZkNvbmRpdGlvbihjb250cm9sLCBjb25kaXRpb24pIHtcbiAgICBjb25zdCBvcGVyYXRvciA9IE9iamVjdC5rZXlzKGNvbmRpdGlvbilbMF07XG4gICAgY29uc3QgbW9kZWxBdHRyaWJ1dGUgPSBjb25kaXRpb25bb3BlcmF0b3JdO1xuICAgIHJldHVybiBnZXQodGhpcy5fdmFsdWVzLCBtb2RlbEF0dHJpYnV0ZSkgPT09IHVuZGVmaW5lZCB8fCBnZXQodGhpcy5fdmFsdWVzLCBtb2RlbEF0dHJpYnV0ZSkgPT09IG51bGw7XG4gIH1cblxuICBfZXZhbHVhdGVEZWZDb25kaXRpb24oY29udHJvbCwgY29uZGl0aW9uKSB7XG4gICAgcmV0dXJuICF0aGlzLl9ldmFsdWF0ZU5vdERlZkNvbmRpdGlvbihjb250cm9sLCBjb25kaXRpb24pO1xuICB9XG5cbiAgX3JlbmRlclBhcnQoKSB7XG4gICAgaWYgKHRoaXMuX2NvbmZpcm0pIHtcbiAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJjb25maXJtLWJveFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JcIj5UaGUgY29uZmlndXJhdGlvbiBpcyBub3QgdmFsaWQgYW5kIGNhbm5vdCBiZSBzYXZlZC48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm0tYm94X2FjdGlvbnNcIj5cbiAgICAgICAgICA8Z3YtYnV0dG9uIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uQ29uZmlybVJlc2V0fVwiIG91dGxpbmVkIGljb249XCJnZW5lcmFsOnVwZGF0ZVwiIGRhbmdlcj5Mb3NlIGNoYW5nZXM8L2d2LWJ1dHRvbj5cbiAgICAgICAgICA8Z3YtYnV0dG9uIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uQ29uZmlybUVkaXR9XCIgaWNvbj1cImRlc2lnbjplZGl0XCI+RWRpdDwvZ3YtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PmA7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSB0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzID8gT2JqZWN0LmtleXModGhpcy5zY2hlbWEucHJvcGVydGllcykgOiBbXTtcbiAgICB0aGlzLl9pZ25vcmVQcm9wZXJ0aWVzID0gW107XG5cbiAgICBpZiAodGhpcy5ncm91cHMpIHtcbiAgICAgIC8vIFJlbW92ZSB1bmRlZmluZWQgZ3JvdXAgaXRlbXNcbiAgICAgIGNvbnN0IGdyb3Vwc0NsZWFuZWQgPSB0aGlzLmdyb3Vwcy5yZWR1Y2UoKHByZXYsIGdyb3VwKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zRXhpc3RpbmdJblNjaGVtYUtleXMgPSBrZXlzLmZpbHRlcigoa2V5KSA9PiBbLi4uKGdyb3VwLml0ZW1zIHx8IFtdKV0uaW5jbHVkZXMoa2V5KSk7XG4gICAgICAgIHByZXYucHVzaCh7XG4gICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgaXRlbXM6IGl0ZW1zRXhpc3RpbmdJblNjaGVtYUtleXMgfHwgW10sXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH0sIFtdKTtcblxuICAgICAgLy8gQWRkIG5vbiBncm91cGVkIGl0ZW1zIGluc2lkZSBkZWZhdWx0IGdyb3VwXG4gICAgICBjb25zdCBkZWZhdWx0R3JvdXAgPSBncm91cHNDbGVhbmVkLmZpbmQoKGcpID0+IGcuZGVmYXVsdCkgfHwgeyBkZWZhdWx0OiB0cnVlLCBpdGVtczogW10gfTtcbiAgICAgIGNvbnN0IHppcEdyb3VwZWRJdGVtcyA9IGdyb3Vwc0NsZWFuZWQucmVkdWNlKChwcmV2LCBncm91cCkgPT4gWy4uLnByZXYsIC4uLmdyb3VwLml0ZW1zXSwgW10pO1xuICAgICAgZGVmYXVsdEdyb3VwLml0ZW1zID0ga2V5cy5maWx0ZXIoKGtleSkgPT4gIXppcEdyb3VwZWRJdGVtcy5pbmNsdWRlcyhrZXkpKTtcblxuICAgICAgcmV0dXJuIHJlcGVhdChcbiAgICAgICAgZ3JvdXBzQ2xlYW5lZCxcbiAgICAgICAgKGdyb3VwKSA9PlxuICAgICAgICAgIGh0bWxgJHtncm91cC5uYW1lXG4gICAgICAgICAgICA/IGh0bWxgPGgyIGNsYXNzPVwiZ3JvdXAtdGl0bGVcIj4ke2dyb3VwLm5hbWV9PC9oMj5cbiAgICAgICAgICAgICAgICAke3JlcGVhdChncm91cC5pdGVtcywgKGtleSkgPT4gdGhpcy5fcmVuZGVyQ29udHJvbChrZXkpKX1gXG4gICAgICAgICAgICA6IHJlcGVhdChncm91cC5pdGVtcywgKGtleSkgPT4gdGhpcy5fcmVuZGVyQ29udHJvbChrZXkpKX0gYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgJHtyZXBlYXQoWzFdLCAoKSA9PlxuICAgICAgcmVwZWF0KFxuICAgICAgICBrZXlzLFxuICAgICAgICAoa2V5KSA9PiBrZXksXG4gICAgICAgIChrZXkpID0+IHRoaXMuX3JlbmRlckNvbnRyb2woa2V5KSxcbiAgICAgICksXG4gICAgKX1gO1xuICB9XG5cbiAgZ2V0Q29udHJvbHMoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wnKSk7XG4gIH1cblxuICBnZXRDb250cm9sKGlkKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbaWQ9XCIke2lkfVwiXWApO1xuICB9XG5cbiAgX2dldEVycm9ycygpIHtcbiAgICByZXR1cm4gKHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMuZXJyb3JzIHx8IFtdKS5maWx0ZXIoKGVycm9yKSA9PiB7XG4gICAgICBsZXQgaWQgPSBgJHtlcnJvci5wcm9wZXJ0eS5yZXBsYWNlKCdpbnN0YW5jZS4nLCAnJyl9YDtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShlcnJvci5hcmd1bWVudCkpIHtcbiAgICAgICAgaWQgPSBgJHtpZH0uJHtlcnJvci5hcmd1bWVudH1gO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlcnJvcktleSA9IGB4LXNjaGVtYS1mb3JtLmVycm9ycy4ke2lkfS4ke2Vycm9yLm5hbWV9YDtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGdldCh0aGlzLnNjaGVtYSwgZXJyb3JLZXkpO1xuICAgICAgaWYgKGVycm9yTWVzc2FnZSkge1xuICAgICAgICBlcnJvci5tZXNzYWdlID0gZXJyb3JNZXNzYWdlO1xuICAgICAgfVxuICAgICAgcmV0dXJuICF0aGlzLl9pZ25vcmVQcm9wZXJ0aWVzLmluY2x1ZGVzKGlkKTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlKCkge1xuICAgIGlmICh0aGlzLnNjaGVtYSkge1xuICAgICAgLy8gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHNob3VsZCBub3QgYmxvY2sgdGhlIHZhbGlkYXRpb24gb2YgdGhlIGZvcm1cbiAgICAgIHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMgPSB0aGlzLl92YWxpZGF0b3IudmFsaWRhdGUodGhpcy5fdmFsdWVzLCB7IC4uLnRoaXMuc2NoZW1hLCBhZGRpdGlvbmFsUHJvcGVydGllczogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuZXJyb3JzID0gdGhpcy5fZ2V0RXJyb3JzKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl92YWxpZGF0b3JSZXN1bHRzO1xuICB9XG5cbiAgaXNWYWxpZCgpIHtcbiAgICBpZiAodGhpcy5fdmFsaWRhdG9yUmVzdWx0cy52YWxpZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9nZXRFcnJvcnMoKSA9PT0gMDtcbiAgfVxuXG4gIGlzVG91Y2goKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdWNoIHx8ICh0aGlzLmRpcnR5ICYmIHRoaXMudmFsaWRhdGVPblJlbmRlcik7XG4gIH1cblxuICBjYW5TdWJtaXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNUb3VjaCgpICYmIHRoaXMuaXNWYWxpZCgpO1xuICB9XG5cbiAgX3VwZGF0ZUFjdGlvbnMoKSB7XG4gICAgY29uc3Qgc3VibWl0QnRuID0gdGhpcy5fZ2V0U3VibWl0QnRuKCk7XG4gICAgaWYgKHN1Ym1pdEJ0biAhPSBudWxsKSB7XG4gICAgICBpZiAodGhpcy5jYW5TdWJtaXQoKSkge1xuICAgICAgICB0aGlzLl9nZXRTdWJtaXRCdG4oKS5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9nZXRTdWJtaXRCdG4oKS5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJlc2V0QnRuID0gdGhpcy5fZ2V0UmVzZXRCdG4oKTtcbiAgICBpZiAocmVzZXRCdG4gIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuZGlydHkpIHtcbiAgICAgICAgcmVzZXRCdG4ucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzZXRCdG4uc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF91cGRhdGVDaGlsZHJlbih3aXRoVmFsaWRhdGlvbikge1xuICAgIGlmICh3aXRoVmFsaWRhdGlvbikge1xuICAgICAgdGhpcy5fdmFsaWRhdG9yUmVzdWx0cyA9IHt9O1xuICAgICAgdGhpcy5lcnJvcnMgPSBudWxsO1xuICAgICAgdGhpcy5yZXF1ZXN0VmFsaWRhdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl91cGRhdGVBY3Rpb25zVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fdXBkYXRlQWN0aW9ucygpLCAwKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX3VwZGF0ZUFjdGlvbnNUaW1lb3V0KTtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdfdmFsdWVzJykpIHtcbiAgICAgIHRoaXMuZ2V0Q29udHJvbHMoKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICAgIGNvbnRyb2wudmFsdWUgPSBnZXQodGhpcy5fdmFsdWVzLCBjb250cm9sLmlkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLl91cGRhdGVDaGlsZHJlbih0aGlzLnZhbGlkYXRlT25SZW5kZXIgJiYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnX3ZhbHVlcycpIHx8IGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2NoZW1hJykpKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVwZGF0ZUNvbXBsZXRlKCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN1cGVyLmdldFVwZGF0ZUNvbXBsZXRlKCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5nZXRDb250cm9scygpLm1hcCgoZSkgPT4gZS51cGRhdGVDb21wbGV0ZSkpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgPGZvcm0gY2xhc3M9XCIke2NsYXNzTWFwKHsgc2Nyb2xsYWJsZTogdGhpcy5zY3JvbGxhYmxlIH0pfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBjb250YWluZXI6IHRydWUsIGNvbmZpcm06IHRoaXMuX2NvbmZpcm0gfSl9XCI+XG4gICAgICAgICR7dGhpcy5oYXNIZWFkZXIgPT09IHRydWVcbiAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IHRpdGxlOiB0cnVlLCBjZW50ZXI6IHRoaXMuaGFzSGVhZGVyICYmICF0aGlzLmhhc0Zvb3RlciB9KX1cIj5cbiAgICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJ0aXRsZVwiPjwvc2xvdD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cImhlYWRlci1sZWZ0XCI+PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICR7dGhpcy5yZWFkb25seSA9PT0gdHJ1ZSB8fCB0aGlzLmhhc0Zvb3RlciA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgICAgOiBodG1sYDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxndi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicmVzZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNtYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vblJlc2V0fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiZ2VuZXJhbDp1cGRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJSZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvZ3YtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDxndi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNtYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vblN1Ym1pdH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImNvZGU6Y2hlY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLnRpdGxlPVwiJHt0aGlzLnN1Ym1pdExhYmVsfVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvZ3YtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gYH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiAnJ31cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj4ke3RoaXMuc2NoZW1hICE9IG51bGwgPyB0aGlzLl9yZW5kZXJQYXJ0KCkgOiBodG1sYGB9PC9kaXY+XG4gICAgICAgICR7dGhpcy5oYXNGb290ZXIgPT09IHRydWUgJiYgdGhpcy5yZWFkb25seSAhPT0gdHJ1ZVxuICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICA8Z3YtYnV0dG9uIGlkPVwicmVzZXRcIiBvdXRsaW5lZCBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vblJlc2V0fVwiIGljb249XCJnZW5lcmFsOnVwZGF0ZVwiIHRpdGxlPVwiUmVzZXRcIj5SZXNldDwvZ3YtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvbiBpZD1cInN1Ym1pdFwiIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uU3VibWl0fVwiIGljb249XCJjb2RlOmNoZWNrXCIgLnRpdGxlPVwiJHt0aGlzLnN1Ym1pdExhYmVsfVwiXG4gICAgICAgICAgICAgICAgICAgID4ke3RoaXMuc3VibWl0TGFiZWx9PC9ndi1idXR0b25cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiAnJ31cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5gO1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGVtcHR5LFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtO1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi1zY2hlbWEtZm9ybS0tYmdjLCAjZmZmZmZmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0ge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0uc2Nyb2xsYWJsZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250YWluZXIge1xuICAgICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnYyk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgLyogZm9yIEZpcmVmb3ggKi9cbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlcixcbiAgICAgICAgLmZvb3RlcixcbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnYyk7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAvKiBmb3IgRmlyZWZveCAqL1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCA+IGd2LXNjaGVtYS1mb3JtLWNvbnRyb2wge1xuICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0uc2Nyb2xsYWJsZSAuY29udGVudCB7XG4gICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtLnNjcm9sbGFibGUgLmNvbnRlbnQgPiBndi1zY2hlbWEtZm9ybS1jb250cm9sLFxuICAgICAgICBmb3JtLnNjcm9sbGFibGUgLmNvbnRlbnQgPiAuZ3JvdXAtdGl0bGUge1xuICAgICAgICAgIG1heC13aWR0aDogNzc1cHg7XG4gICAgICAgICAgd2lkdGg6IDk1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIsXG4gICAgICAgIC5mb290ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogMjZweDtcbiAgICAgICAgICAtLWd2LWljb24tLWM6ICNiZmJmYmY7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb290ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtLnNjcm9sbGFibGUgLmZvb3RlciB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9vdGVyIC5sZWZ0LFxuICAgICAgICAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLmxlZnQsXG4gICAgICAgIC5mb290ZXIgLmxlZnQsXG4gICAgICAgIC5oZWFkZXIgLnJpZ2h0LFxuICAgICAgICAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIC5yaWdodCxcbiAgICAgICAgLmZvb3RlciAucmlnaHQge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIC50aXRsZSB7XG4gICAgICAgICAgY29sb3I6ICMyODQ0NGY7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnRpdGxlLmNlbnRlciB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb25maXJtLWJveCB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbmZpcm0tYm94X2FjdGlvbnMge1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb25maXJtIC5oZWFkZXIgLmxlZnQsXG4gICAgICAgIC5jb25maXJtIC5oZWFkZXIgLnJpZ2h0LFxuICAgICAgICAuY29uZmlybSAuZm9vdGVyIC5sZWZ0LFxuICAgICAgICAuY29uZmlybSAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ncm91cC10aXRsZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmspO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1kYXJrKTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1zY2hlbWEtZm9ybScsIEd2U2NoZW1hRm9ybSk7XG4iXX0=