.randomNote.svelte-c76gd6.svelte-c76gd6{color:#1e8094;font-size:1.5em;display:inline-block;width:75px}.refresh.svelte-c76gd6.svelte-c76gd6{font-size:1.5em;margin-left:10px;color:black
    }a.svelte-c76gd6.svelte-c76gd6:hover{cursor:pointer}#success.svelte-c76gd6.svelte-c76gd6{background-color:#79c779;color:white;text-align:center}.switch.svelte-c76gd6.svelte-c76gd6{position:relative;display:inline-block;width:60px;height:34px}.switch.svelte-c76gd6 input.svelte-c76gd6{opacity:0;width:0;height:0}.slider.svelte-c76gd6.svelte-c76gd6{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.slider.svelte-c76gd6.svelte-c76gd6:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:white;-webkit-transition:.4s;transition:.4s}input.svelte-c76gd6:checked+.slider.svelte-c76gd6{background-color:#85b7c9}input.svelte-c76gd6:focus+.slider.svelte-c76gd6{box-shadow:0 0 1px #85b7c9}input.svelte-c76gd6:checked+.slider.svelte-c76gd6:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translateX(26px)}.slider.round.svelte-c76gd6.svelte-c76gd6{border-radius:34px}.slider.round.svelte-c76gd6.svelte-c76gd6:before{border-radius:50%}.chord-checkbox-grid.svelte-c76gd6.svelte-c76gd6{display:flex;flex-direction:column;margin-bottom:8px;max-width:220px}.chord-checkbox-row.svelte-c76gd6.svelte-c76gd6{display:flex;align-items:center;justify-content:space-between;width:100%}.chord-checkbox-label.svelte-c76gd6.svelte-c76gd6{flex:1 1 auto;text-align:left;padding-right:12px;white-space:nowrap}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJhY3RpY2VjaG9yZHMuc3ZlbHRlIiwic291cmNlcyI6WyJwcmFjdGljZWNob3Jkcy5zdmVsdGUiXSwic291cmNlc0NvbnRlbnQiOlsiPHNjcmlwdD5cbiAgICBpbXBvcnQgeyBvbk1vdW50IH0gZnJvbSAnc3ZlbHRlJztcbiAgICBpbXBvcnQgeyBmYWRlIH0gZnJvbSAnc3ZlbHRlL3RyYW5zaXRpb24nO1xuICAgIGltcG9ydCBGcmV0Ym9hcmQgZnJvbSAnLi4vY29tcG9uZW50cy9GcmV0Ym9hcmQuc3ZlbHRlJztcbiAgICBpbXBvcnQgeyBzdGFuZGFyZFR1bmluZyB9ICBmcm9tICcuL3NjYWxlc0RpY3Rpb25hcnkuanMnO1xuICAgIGltcG9ydCB7IGNob3JkRGljdGlvbmFyeSwgYWxsQ2hvcmRUeXBlcywgc2hvcnRDaG9yZEFiYnJldnMsIGNob3JkTmFtZXMgfSAgZnJvbSAnLi9jaG9yZERpY3Rpb25hcnkuanMnO1xuICAgIGltcG9ydCB7IGFsbE5vdGVMZXR0ZXJzLCB3aG9sZU5vdGVMZXR0ZXJzLCBub3RlQ2lyY2xlcywgaW50ZXJ2YWxzLCBnZXROb3RlTW9kZUZyb21Cb29sZWFuLCBjaG9yZHMgfSBmcm9tICcuL3V0aWwuanMnO1xuXG5cbiAgICBsZXQgb3B0aW9ucztcbiAgICAvLyB1c2luZyBvYmplY3QgYmVjYXVzZSB7bm90ZTpcIkFcIn0gIT0ge25vdGU6XCJBXCJ9IC0gZm9yIHRyYW5zaXRpb25zXG4gICAgbGV0IHJhbmRvbU5vdGUgPSB7bm90ZTpcIkNcIn07XG4gICAgbGV0IGludGVydmFsc0NoZWNrYm94ID0gZmFsc2U7XG4gICAgbGV0IHNob3dTdWNjZXNzID0gZmFsc2U7XG4gICAgbGV0IHNwYW5TdGFydGluZ0ZyZXQgPSAzO1xuICAgIGxldCBzcGFuRW5kaW5nRnJldCA9IDU7XG4gICAgbGV0IGNob3JkID0gXCJtYWpcIjtcbiAgICBsZXQgc2hvd0FsbENvcnJlY3ROb3RlcyA9IGZhbHNlO1xuICAgIGxldCBjbGlja2VkTm90ZXM7XG4gICAgbGV0IGNob3Jkc0luY2x1ZGVkID0gYWxsQ2hvcmRUeXBlcztcbiAgICBsZXQgc3RhcnRpbmdGcmV0Rm9yUmFuZG9tU3BhbiA9IFwiMFwiO1xuICAgIGxldCBlbmRpbmdGcmV0Rm9yUmFuZG9tU3BhbiA9IFwiMTVcIjtcblxuICAgIG9uTW91bnQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBsZXQgaXNDaG9yZE1vZGUgPSB0cnVlO1xuICAgICAgICBsZXQgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICBcbiAgICAgICAgbGV0IG51bUZyZXRzID0gMTU7XG4gICAgICAgIGxldCBkaW1lbnNpb25zRnVuYyA9IGZ1bmN0aW9uICgkZnJldGJvYXJkQ29udGFpbmVyLCAkZnJldGJvYXJkQm9keSwgc2V0dGluZ3MpIHtcbiAgICAgICAgICAgIGxldCB3aWR0aCA9IGpRdWVyeSh3aW5kb3cpLndpZHRoKCk7XG4gICAgICAgICAgICBsZXQgaGVpZ2h0O1xuXG4gICAgICAgICAgICBpZiAod2lkdGggPD0gNzY4KSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gc2V0dGluZ3MudHVuaW5nLmxlbmd0aCAqIDI2O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBzZXR0aW5ncy50dW5pbmcubGVuZ3RoICogMzI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgICAgIGxldCBhbmltYXRpb25TcGVlZCA9IDQwMDsgLy8gbXNcblxuXG4gICAgICAgIGxldCBjbGlja2VkTm90ZXNDaGFuZ2VkRnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNldENvbG9ycygpO1xuXG4gICAgICAgICAgICBsZXQgJGZyZXRib2FyZCA9IGpRdWVyeShcIi5teS1mcmV0Ym9hcmQtanNcIik7XG4gICAgICAgICAgICBsZXQgYXBpID0gJGZyZXRib2FyZC5kYXRhKFwiYXBpXCIpO1xuICAgICAgICAgICAgY2xpY2tlZE5vdGVzID0gYXBpLmdldENsaWNrZWROb3RlcygpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJjbGlja2VkTm90ZXNcIiwgY2xpY2tlZE5vdGVzKTsgLy8gVE9ET1xuXG4gICAgICAgICAgICBjb25zdCBhY2NlcHRhYmxlTm90ZXMgPSBjaG9yZERpY3Rpb25hcnkuZ2V0KHJhbmRvbU5vdGUubm90ZSkuZ2V0KGNob3JkKS5nZXQoc3BhblN0YXJ0aW5nRnJldCArIFwiX1wiICsgc3BhbkVuZGluZ0ZyZXQpO1xuXG4gICAgICAgICAgICAvLyBhbGwgY2xpY2tlZE5vdGVzIG11c3QgYmUgaW4gb25lIG9mIHRoZSBhY2NlcHRhYmxlTm90ZXMncyBhcnJheSwgYWxsIG9mIHRoZW0sIGJ1dCBpbiBvbmx5IGp1c3Qgb25lIG9mIHRoZSBhcnJheXNcbiAgICAgICAgICAgIC8vIGFsc28gdGhlIHNpemUgb2YgYm90aCBhcnJheXMgbXVzdCBtYXRjaCAobm8gYWRkaXRpb25hbCBub3RlcyBpbiBjbGlja2VkTm90ZXMpXG4gICAgICAgICAgICBsZXQgYWxsQWNjZXB0YWJsZUluQ2xpY2tlZCA9IGFjY2VwdGFibGVOb3Rlcy5zb21lKGFjY2VwdGFibGUgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2NlcHRhYmxlLmxlbmd0aCA9PT0gY2xpY2tlZE5vdGVzLmxlbmd0aCAmJiBhY2NlcHRhYmxlLmV2ZXJ5KGFjY2VwdGFibGVOb3RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNsaWNrZWROb3Rlcy5zb21lKGNsaWNrZWROb3RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2NlcHRhYmxlTm90ZS5zdHJpbmcubGV0dGVyID09IGNsaWNrZWROb3RlLnN0cmluZy5sZXR0ZXIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGFjY2VwdGFibGVOb3RlLnN0cmluZy5vY3RhdmUgPT0gY2xpY2tlZE5vdGUuc3RyaW5nLm9jdGF2ZSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgYWNjZXB0YWJsZU5vdGUubm90ZXNbMF0uZnJldCA9PSBjbGlja2VkTm90ZS5ub3Rlc1swXS5mcmV0O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBjaGVjayB0aGF0IGFsbCB0aGUgY2xpY2tlZCBub3RlcyBhcmUgYmV0d2VlbiBzcGFuU3RhcnRpbmdGcmV0IGFuZCBzcGFuRW5kaW5nRnJldFxuICAgICAgICAgICAgbGV0IGFsbEluU3BhbiA9IGNsaWNrZWROb3Rlcy5ldmVyeShub3RlID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm90ZS5ub3Rlc1swXS5mcmV0ID49IHNwYW5TdGFydGluZ0ZyZXQgJiYgbm90ZS5ub3Rlc1swXS5mcmV0IDw9IHNwYW5FbmRpbmdGcmV0O1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChhbGxBY2NlcHRhYmxlSW5DbGlja2VkICYmIGFsbEluU3Bhbikge1xuICAgICAgICAgICAgICAgIHNob3dTdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2hvd1N1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICB0dW5pbmc6IHN0YW5kYXJkVHVuaW5nLFxuICAgICAgICAgICAgbnVtRnJldHM6IG51bUZyZXRzLFxuICAgICAgICAgICAgaXNDaG9yZE1vZGU6IGlzQ2hvcmRNb2RlLFxuICAgICAgICAgICAgbm90ZUNsaWNraW5nRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgICAgICBub3RlTGV0dGVyczogYWxsTm90ZUxldHRlcnMsXG4gICAgICAgICAgICBub3RlTW9kZTogZ2V0Tm90ZU1vZGVGcm9tQm9vbGVhbihpbnRlcnZhbHNDaGVja2JveCksXG4gICAgICAgICAgICBpbnRlcnZhbHM6IGludGVydmFscyxcbiAgICAgICAgICAgIHJvb3Q6IHJhbmRvbU5vdGUubm90ZSxcbiAgICAgICAgICAgIGFuaW1hdGlvblNwZWVkOiBhbmltYXRpb25TcGVlZCxcbiAgICAgICAgICAgIG5vdGVDaXJjbGVzOiBub3RlQ2lyY2xlcyxcbiAgICAgICAgICAgIGRpbWVuc2lvbnNGdW5jOiBkaW1lbnNpb25zRnVuYyxcbiAgICAgICAgICAgIG5vdGVzQ2xpY2tlZENhbGxiYWNrOiBjbGlja2VkTm90ZXNDaGFuZ2VkRnVuY1xuICAgICAgICB9O1xuXG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVGcmV0T3ZlcmxheShzcGFuU3RhcnRpbmdGcmV0LCBzcGFuRW5kaW5nRnJldCkge1xuICAgICAgICBjb25zdCBub3RlQ2lyY2xlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ub3RlLWNpcmNsZScpO1xuICAgICAgICBjb25zdCBsZWZ0VmFsdWVzID0gQXJyYXkuZnJvbShub3RlQ2lyY2xlcykubWFwKGNpcmNsZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY2lyY2xlLnN0eWxlLmxlZnQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGZyZXQzID0gbGVmdFZhbHVlc1swXS5yZXBsYWNlKFwicHhcIiwgXCJcIik7XG4gICAgICAgIGNvbnN0IGZyZXQ1ID0gbGVmdFZhbHVlc1sxXS5yZXBsYWNlKFwicHhcIiwgXCJcIik7XG4gICAgICAgIGNvbnN0IGZyZXRXaWR0aCA9IChmcmV0NSAtIGZyZXQzKSAvIDI7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBmcmV0Ym9hcmRCb2R5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZyZXRib2FyZC1ib2R5Jyk7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBvdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIG92ZXJsYXkuY2xhc3NMaXN0LmFkZCgnZnJldC1oaWdobGlnaHQtb3ZlcmxheScpO1xuICAgICAgICBvdmVybGF5LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgICAgb3ZlcmxheS5zdHlsZS5sZWZ0ID0gc3BhblN0YXJ0aW5nRnJldCAqIGZyZXRXaWR0aCAtIGZyZXRXaWR0aCAvIDYgKyAncHgnO1xuICAgICAgICBvdmVybGF5LnN0eWxlLndpZHRoID0gKHNwYW5FbmRpbmdGcmV0IC0gc3BhblN0YXJ0aW5nRnJldCArIDEpICogZnJldFdpZHRoICsgZnJldFdpZHRoIC8gMyArICdweCc7XG4gICAgICAgIG92ZXJsYXkuc3R5bGUuaGVpZ2h0ID0gJzIxMHB4JztcbiAgICAgICAgb3ZlcmxheS5zdHlsZS50b3AgPSAnLTlweCc7XG4gICAgICAgIG92ZXJsYXkuc3R5bGUuYm9yZGVyID0gJzNweCBzb2xpZCAjMDg3MmJlJztcbiAgICAgICAgb3ZlcmxheS5zdHlsZS5ib3hTaXppbmcgPSAnYm9yZGVyLWJveCc7XG4gICAgICAgIG92ZXJsYXkuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJzsgLy8gVGhpcyBpcyBjcnVjaWFsIC0gYWxsb3dzIGNsaWNrcyB0byBwYXNzIHRocm91Z2hcbiAgICAgICAgb3ZlcmxheS5zdHlsZS56SW5kZXggPSAnMjAnO1xuICAgICAgICBcbiAgICAgICAgZnJldGJvYXJkQm9keS5hcHBlbmRDaGlsZChvdmVybGF5KTtcbiAgICB9XG4gICAgXG4gICAgXG4gICAgbGV0IGFmdGVyRnJldGJvYXJkSW5pdCA9ICgpID0+IHtcbiAgICAgICAgcGlja1JhbmRvbUNob3JkKHN0YXJ0aW5nRnJldEZvclJhbmRvbVNwYW4sIGVuZGluZ0ZyZXRGb3JSYW5kb21TcGFuKTtcbiAgICB9XG5cbiAgICBsZXQgcGlja1JhbmRvbUNob3JkID0gKHN0YXJ0aW5nRnJldEZvclJhbmRvbVNwYW4sIGVuZGluZ0ZyZXRGb3JSYW5kb21TcGFuKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgJGZyZXRib2FyZCA9IGpRdWVyeShcIi5teS1mcmV0Ym9hcmQtanNcIik7XG4gICAgICAgICAgICBsZXQgYXBpID0gJGZyZXRib2FyZC5kYXRhKFwiYXBpXCIpO1xuICAgICAgICAgICAgY2xlYXJTdHVmZihhcGkpXG4gICAgICAgIH0gY2F0Y2ggKGlnbm9yZWQpIHtcbiAgICAgICAgICAgIC8vIHRoaXMgZmFpbHMgZm9yIHRoZSBmaXJzdCB0aW1lKG9uIHBhZ2UgbG9hZCkgd2hlbiBqUXVlcnkgaXMgbm90IGxvYWRlZCB5ZXRcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyeSB1cCB0byAxMDAwIHRpbWVzIHRvIGZpbmQgYSBzcGFuIHdpdGhpbiB0aGUgcmVxdWVzdGVkIHJhbmdlXG4gICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7IGkrKykge1xuXG4gICAgICAgICAgICByYW5kb21Ob3RlLm5vdGUgPSB3aG9sZU5vdGVMZXR0ZXJzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHdob2xlTm90ZUxldHRlcnMubGVuZ3RoKV07OyBcbiAgICAgICAgICAgIGNob3JkID0gY2hvcmRzSW5jbHVkZWRbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hvcmRzSW5jbHVkZWQubGVuZ3RoKV07XG4gICAgICAgICAgICBsZXQgc3BhblRvRnJldHMgPSBjaG9yZERpY3Rpb25hcnkuZ2V0KHJhbmRvbU5vdGUubm90ZSkuZ2V0KGNob3JkKTtcbiAgICAgICAgXG4gICAgICAgICAgICBsZXQgcmFuZG9tU3BhbiA9IGdldFJhbmRvbUtleShzcGFuVG9GcmV0cyk7XG4gICAgICAgICAgICBsZXQgW3N0YXJ0LCBlbmRdID0gcmFuZG9tU3Bhbi5zcGxpdCgnXycpLm1hcChOdW1iZXIpO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgc3RhcnQgPj0gcGFyc2VJbnQoc3RhcnRpbmdGcmV0Rm9yUmFuZG9tU3BhbikgJiZcbiAgICAgICAgICAgICAgICBlbmQgPD0gcGFyc2VJbnQoZW5kaW5nRnJldEZvclJhbmRvbVNwYW4pXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBzcGFuU3RhcnRpbmdGcmV0ID0gc3RhcnQ7XG4gICAgICAgICAgICAgICAgc3BhbkVuZGluZ0ZyZXQgPSBlbmQ7XG4gICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaVwiLCBpKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZm91bmQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJhbmRvbU5vdGUubm90ZSA9IFwiQ1wiO1xuICAgICAgICAvLyBjaG9yZCA9IFwibWluXCI7XG4gICAgICAgIC8vIHNwYW5TdGFydGluZ0ZyZXQgPSBcIjEwXCI7XG4gICAgICAgIC8vIHNwYW5FbmRpbmdGcmV0ID0gXCIxM1wiO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgJGZyZXRib2FyZCA9IGpRdWVyeShcIi5teS1mcmV0Ym9hcmQtanNcIik7XG4gICAgICAgICAgICBsZXQgYXBpID0gJGZyZXRib2FyZC5kYXRhKFwiYXBpXCIpO1xuICAgICAgICAgICAgYXBpLnNldFJvb3QocmFuZG9tTm90ZS5ub3RlKTsgXG4gICAgICAgIH0gY2F0Y2ggKGlnbm9yZWQpIHtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY3JlYXRlRnJldE92ZXJsYXkoc3BhblN0YXJ0aW5nRnJldCwgc3BhbkVuZGluZ0ZyZXQpO1xuICAgICAgICB9LCAxMDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFJhbmRvbUtleShtYXApIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IEFycmF5LmZyb20obWFwLmtleXMoKSk7XG4gICAgICAgIHJldHVybiBrZXlzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGtleXMubGVuZ3RoKV07XG4gICAgfVxuXG4gICAgbGV0IGNsZWFyU3R1ZmYgPSAoYXBpKSA9PiB7XG4gICAgICAgIHNob3dBbGxDb3JyZWN0Tm90ZXMgPSBmYWxzZTtcbiAgICAgICAgc2hvd1N1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgICAgY2xpY2tlZE5vdGVzID0gW107XG4gICAgICAgIGFwaS5jbGVhckNsaWNrZWROb3RlcygpO1xuICAgICAgICBjb25zdCBvdmVybGF5VG9SZW1vdmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZnJldC1oaWdobGlnaHQtb3ZlcmxheScpO1xuICAgICAgICBpZiAob3ZlcmxheVRvUmVtb3ZlKSB7XG4gICAgICAgICAgICBvdmVybGF5VG9SZW1vdmUucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRDb2xvcnMoKSB7XG4gICAgICAgIEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm5vdGUnKSlcbiAgICAgICAgICAgIC5maWx0ZXIoZWwgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpbnRlcnZhbHNDaGVja2JveCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWwudGV4dENvbnRlbnQgIT0gXCIxXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEoIWVsLnRleHRDb250ZW50LmluY2x1ZGVzKCcvJykgJiYgZWwudGV4dENvbnRlbnQgPT0gcmFuZG9tTm90ZS5ub3RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmZvckVhY2goZSA9PiBlLmNsYXNzTGlzdC5hZGQoXCJkZWZhdWx0Tm90ZUNvbG9yXCIpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzaG93Q29ycmVjdE5vdGVzKHNob3dBbGxDb3JyZWN0Tm90ZXMpe1xuICAgICAgICBsZXQgJGZyZXRib2FyZCA9IGpRdWVyeShcIi5teS1mcmV0Ym9hcmQtanNcIik7XG4gICAgICAgIGxldCBhcGkgPSAkZnJldGJvYXJkLmRhdGEoXCJhcGlcIik7XG4gICAgICAgIGFwaS5jbGVhckNsaWNrZWROb3RlcygpO1xuXG4gICAgICAgIGlmIChzaG93QWxsQ29ycmVjdE5vdGVzKSB7XG4gICAgICAgICAgICBhcGkuc2V0Q2xpY2tlZE5vdGVzKGNob3JkRGljdGlvbmFyeS5nZXQocmFuZG9tTm90ZS5ub3RlKS5nZXQoY2hvcmQpLmdldChzcGFuU3RhcnRpbmdGcmV0ICsgXCJfXCIgKyBzcGFuRW5kaW5nRnJldClbMF0pO1xuICAgICAgICAgICAgYXBpLnNldE5vdGVDbGlja2luZ0Rpc2FibGVkKHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXBpLnNldENsaWNrZWROb3RlcyhjbGlja2VkTm90ZXMpO1xuICAgICAgICAgICAgYXBpLnNldE5vdGVDbGlja2luZ0Rpc2FibGVkKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRDb2xvcnMoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVJbmNsdWRlZENob3JkVHlwZUNsaWNrKGNob3JkVHlwZSkge1xuICAgICAgICAvLyBJZiB1c2VyIHRyaWVzIHRvIHVuY2hlY2sgdGhlIGxhc3Qgb25lLCByZS1hZGQgaXRcbiAgICAgICAgaWYgKGNob3Jkc0luY2x1ZGVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY2hvcmRzSW5jbHVkZWQgPSBbY2hvcmRUeXBlLmNob3JkVHlwZV07XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYWZ0ZXJGcmV0Ym9hcmRJbml0KCk7XG4gICAgfVxuXG4gICAgJDoge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgc2hvd0NvcnJlY3ROb3RlcyhzaG93QWxsQ29ycmVjdE5vdGVzKTtcbiAgICAgICAgfSBjYXRjaCAoaWdub3JlZCkge31cbiAgICB9XG5cblxuICAgICQ6IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCAkZnJldGJvYXJkID0galF1ZXJ5KFwiLm15LWZyZXRib2FyZC1qc1wiKTtcbiAgICAgICAgICAgIGxldCBhcGkgPSAkZnJldGJvYXJkLmRhdGEoXCJhcGlcIik7XG4gICAgICAgICAgICBhcGkuc2V0Tm90ZU1vZGUoZ2V0Tm90ZU1vZGVGcm9tQm9vbGVhbihpbnRlcnZhbHNDaGVja2JveCkpO1xuICAgICAgICB9IGNhdGNoIChpZ25vcmVkKSB7fVxuICAgIH1cblxuICAgICQ6IHtcbiAgICAgICAgaWYgKHBhcnNlSW50KHN0YXJ0aW5nRnJldEZvclJhbmRvbVNwYW4pID49IHBhcnNlSW50KGVuZGluZ0ZyZXRGb3JSYW5kb21TcGFuKSkge1xuICAgICAgICAgICAgZW5kaW5nRnJldEZvclJhbmRvbVNwYW4gPSAocGFyc2VJbnQoc3RhcnRpbmdGcmV0Rm9yUmFuZG9tU3BhbikgKyAxKSArIFwiXCI7XG4gICAgICAgIH1cbiAgICB9XG48L3NjcmlwdD5cblxuPHN2ZWx0ZTpoZWFkPlxuICAgIDx0aXRsZT5QcmFjdGljZSBjaG9yZHM8L3RpdGxlPlxuPC9zdmVsdGU6aGVhZD5cblxuPG1haW4+XG4gICAgPGgxPlByYWN0aWNlIGNob3JkczwvaDE+XG4gICAgeyNrZXkgcmFuZG9tTm90ZX1cbiAgICAgICA8c3BhbiBjbGFzcz1cInJhbmRvbU5vdGVcIiBpbjpmYWRlPVwie3tkdXJhdGlvbjogNjAwfX1cIj57cmFuZG9tTm90ZS5ub3RlfXtzaG9ydENob3JkQWJicmV2cy5nZXQoY2hvcmQpfTwvc3Bhbj5cbiAgICB7L2tleX1cbiAgICA8YSBocmVmPXtudWxsfSBjbGFzcz1cInJlZnJlc2hcIiBvbjpjbGljaz17YWZ0ZXJGcmV0Ym9hcmRJbml0fT48aSBjbGFzcz1cImZhLXNvbGlkIGZhLXJlZnJlc2ggZmEtZndcIj48L2k+PC9hPlxuICAgIDxici8+PGJyLz5cbiAgICB7I2lmIG9wdGlvbnMgIT0gdW5kZWZpbmVkfVxuICAgICAgICA8RnJldGJvYXJkIG9wdGlvbnM9e29wdGlvbnN9IG9uOmZyZXRib2FyZEluaXRpYWxpemVkPXthZnRlckZyZXRib2FyZEluaXR9Lz5cbiAgICB7L2lmfVxuXG4gICAgPGRpdiBzdHlsZT1cInZpc2liaWxpdHk6IHtzaG93U3VjY2VzcyA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nfVwiIGlkPVwic3VjY2Vzc1wiPlxuICAgICAgICBDT1JSRUNUIVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+ICBcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cblxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInN3aXRjaFwiIHN0eWxlPVwicGFkZGluZy10b3A6IDNweDtcIj5IZWxwOjwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2hcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInN3aXRjaFwiIGlkPVwic3dpdGNoXCIgYmluZDpjaGVja2VkPXtzaG93QWxsQ29ycmVjdE5vdGVzfT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNsaWRlciByb3VuZFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnRlcnZhbENoZWNrXCI+U2hvdyBpbnRlcnZhbHM6PC9sYWJlbD5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPVwiaW50ZXJ2YWxDaGVja1wiIGlkPVwiaW50ZXJ2YWxDaGVja1wiIHR5cGU9Y2hlY2tib3ggYmluZDpjaGVja2VkPXtpbnRlcnZhbHNDaGVja2JveH0+XG4gICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdGFydGluZ0ZyZXRcIj5JbmNsdWRlIGZyZXRzOjwvbGFiZWw+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPVwic3RhcnRpbmdGcmV0XCIgbmFtZT1cInN0YXJ0aW5nRnJldFwiIGNsYXNzPVwic2VsZWN0Ym94XCIgYmluZDp2YWx1ZT17c3RhcnRpbmdGcmV0Rm9yUmFuZG9tU3Bhbn0+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIwXCI+MDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPjE8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj4yPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+Mzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPjQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj41PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI2XCI+Njwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiN1wiPjc8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjhcIj44PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI5XCI+OTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTBcIj4xMDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTFcIj4xMTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIC1cbiAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPVwiZW5kaW5nRnJldFwiIG5hbWU9XCJlbmRpbmdGcmV0XCIgY2xhc3M9XCJzZWxlY3Rib3hcIiBiaW5kOnZhbHVlPXtlbmRpbmdGcmV0Rm9yUmFuZG9tU3Bhbn0+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+MTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMlwiPjI8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjNcIj4zPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+NDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNVwiPjU8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjZcIj42PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI3XCI+Nzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiOFwiPjg8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjlcIj45PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMFwiPjEwPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMVwiPjExPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMlwiPjEyPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxM1wiPjEzPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxNFwiPjE0PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxNVwiPjE1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmlnaHRcIj5JbmNsdWRlIGNob3Jkczo8L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hvcmQtY2hlY2tib3gtZ3JpZFwiPlxuICAgICAgICAgICAgICAgIHsjZWFjaCBhbGxDaG9yZFR5cGVzIGFzIGNob3JkVHlwZX1cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY2hvcmQtY2hlY2tib3gtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNob3JkLWNoZWNrYm94LWxhYmVsXCI+e2Nob3JkTmFtZXMuZ2V0KGNob3JkVHlwZSl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5kOmdyb3VwPXtjaG9yZHNJbmNsdWRlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y2hvcmRUeXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uOmNoYW5nZT17KCkgPT4gaGFuZGxlSW5jbHVkZWRDaG9yZFR5cGVDbGljayh7Y2hvcmRUeXBlfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIHsvZWFjaH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDAuOGVtXCI+KG1vcmUgY2hvcmRzIGFyZSBjb21pbmcpPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L21haW4+XG5cblxuPHN0eWxlPlxuICAgIC5yYW5kb21Ob3RlIHtcbiAgICAgICAgY29sb3I6ICMxZTgwOTQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDc1cHg7XG4gICAgfVxuXG4gICAgLnJlZnJlc2h7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyBcbiAgICAgICAgY29sb3I6YmxhY2tcbiAgICB9XG5cbiAgICBhOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICNzdWNjZXNzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc5Yzc3OTtcbiAgICAgICAgY29sb3I6IHdoaXRlOyBcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuXG5cbiAgICAgLyogVGhlIHN3aXRjaCAtIHRoZSBib3ggYXJvdW5kIHRoZSBzbGlkZXIgKi9cbiAgICAuc3dpdGNoIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgfVxuXG4gICAgLyogSGlkZSBkZWZhdWx0IEhUTUwgY2hlY2tib3ggKi9cbiAgICAuc3dpdGNoIGlucHV0IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKiBUaGUgc2xpZGVyICovXG4gICAgLnNsaWRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xuICAgICAgICB0cmFuc2l0aW9uOiAuNHM7XG4gICAgfVxuXG4gICAgLnNsaWRlcjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGhlaWdodDogMjZweDtcbiAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgYm90dG9tOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcbiAgICAgICAgdHJhbnNpdGlvbjogLjRzO1xuICAgIH1cblxuICAgIGlucHV0OmNoZWNrZWQgKyAuc2xpZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg1YjdjOTtcbiAgICB9XG5cbiAgICBpbnB1dDpmb2N1cyArIC5zbGlkZXIge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMXB4ICM4NWI3Yzk7XG4gICAgfVxuXG4gICAgaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXI6YmVmb3JlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNnB4KTtcbiAgICB9XG5cbiAgICAvKiBSb3VuZGVkIHNsaWRlcnMgKi9cbiAgICAuc2xpZGVyLnJvdW5kIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzRweDtcbiAgICB9XG5cbiAgICAuc2xpZGVyLnJvdW5kOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG5cbiAgICAuY2hvcmQtY2hlY2tib3gtZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICB9XG4gICAgLmNob3JkLWNoZWNrYm94LXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5jaG9yZC1jaGVja2JveC1sYWJlbCB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbjwvc3R5bGU+Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRWSSx1Q0FBWSxDQUNSLEtBQUssQ0FBRSxPQUFPLENBQ2QsU0FBUyxDQUFFLEtBQUssQ0FDaEIsT0FBTyxDQUFFLFlBQVksQ0FDckIsS0FBSyxDQUFFLElBQ1gsQ0FFQSxvQ0FBUSxDQUNKLFNBQVMsQ0FBRSxLQUFLLENBQ2hCLFdBQVcsQ0FBRSxJQUFJLENBQ2pCLE1BQU0sS0FBSztBQUNuQixJQUFJLENBRUEsNkJBQUMsTUFBTyxDQUNKLE1BQU0sQ0FBRSxPQUNaLENBRUEsb0NBQVMsQ0FDTCxnQkFBZ0IsQ0FBRSxPQUFPLENBQ3pCLEtBQUssQ0FBRSxLQUFLLENBQ1osVUFBVSxDQUFFLE1BQ2hCLENBS0EsbUNBQVEsQ0FDSixRQUFRLENBQUUsUUFBUSxDQUNsQixPQUFPLENBQUUsWUFBWSxDQUNyQixLQUFLLENBQUUsSUFBSSxDQUNYLE1BQU0sQ0FBRSxJQUNaLENBR0EscUJBQU8sQ0FBQyxtQkFBTSxDQUNWLE9BQU8sQ0FBRSxDQUFDLENBQ1YsS0FBSyxDQUFFLENBQUMsQ0FDUixNQUFNLENBQUUsQ0FDWixDQUdBLG1DQUFRLENBQ0osUUFBUSxDQUFFLFFBQVEsQ0FDbEIsTUFBTSxDQUFFLE9BQU8sQ0FDZixHQUFHLENBQUUsQ0FBQyxDQUNOLElBQUksQ0FBRSxDQUFDLENBQ1AsS0FBSyxDQUFFLENBQUMsQ0FDUixNQUFNLENBQUUsQ0FBQyxDQUNULGdCQUFnQixDQUFFLElBQUksQ0FDdEIsa0JBQWtCLENBQUUsR0FBRyxDQUN2QixVQUFVLENBQUUsR0FDaEIsQ0FFQSxtQ0FBTyxPQUFRLENBQ1gsUUFBUSxDQUFFLFFBQVEsQ0FDbEIsT0FBTyxDQUFFLEVBQUUsQ0FDWCxNQUFNLENBQUUsSUFBSSxDQUNaLEtBQUssQ0FBRSxJQUFJLENBQ1gsSUFBSSxDQUFFLEdBQUcsQ0FDVCxNQUFNLENBQUUsR0FBRyxDQUNYLGdCQUFnQixDQUFFLEtBQUssQ0FDdkIsa0JBQWtCLENBQUUsR0FBRyxDQUN2QixVQUFVLENBQUUsR0FDaEIsQ0FFQSxtQkFBSyxRQUFRLENBQUcscUJBQVEsQ0FDcEIsZ0JBQWdCLENBQUUsT0FDdEIsQ0FFQSxtQkFBSyxNQUFNLENBQUcscUJBQVEsQ0FDbEIsVUFBVSxDQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQ3hCLENBRUEsbUJBQUssUUFBUSxDQUFHLHFCQUFPLE9BQVEsQ0FDM0IsaUJBQWlCLENBQUUsV0FBVyxJQUFJLENBQUMsQ0FDbkMsYUFBYSxDQUFFLFdBQVcsSUFBSSxDQUFDLENBQy9CLFNBQVMsQ0FBRSxXQUFXLElBQUksQ0FDOUIsQ0FHQSxPQUFPLGtDQUFPLENBQ1YsYUFBYSxDQUFFLElBQ25CLENBRUEsT0FBTyxrQ0FBTSxPQUFRLENBQ2pCLGFBQWEsQ0FBRSxHQUNuQixDQUVBLGdEQUFxQixDQUNqQixPQUFPLENBQUUsSUFBSSxDQUNiLGNBQWMsQ0FBRSxNQUFNLENBQ3RCLGFBQWEsQ0FBRSxHQUFHLENBQ2xCLFNBQVMsQ0FBRSxLQUNmLENBQ0EsK0NBQW9CLENBQ2hCLE9BQU8sQ0FBRSxJQUFJLENBQ2IsV0FBVyxDQUFFLE1BQU0sQ0FDbkIsZUFBZSxDQUFFLGFBQWEsQ0FDOUIsS0FBSyxDQUFFLElBQ1gsQ0FDQSxpREFBc0IsQ0FDbEIsSUFBSSxDQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNkLFVBQVUsQ0FBRSxJQUFJLENBQ2hCLGFBQWEsQ0FBRSxJQUFJLENBQ25CLFdBQVcsQ0FBRSxNQUNqQiJ9 */
