xiaomianao666

小程序:下厨房R

Jul 25th, 2023
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@下厨房R@eyJ0aXRsZSI6IuS4i+WOqOaIv1IiLCJhdXRob3IiOiIxNjA2MTQyJlJlYm9ybiIsInVybCI6Imh0dHBzOi8vd3d3LnhpYWNodWZhbmcuY29tL2Z5QWxsP3BhZ2U9ZnlwYWdlO2dldDt1dGYtODt7VXNlci1BZ2VudEBNb3ppbGxhIDUuMH0iLCJ2ZXJzaW9uIjoxMiwiY29sX3R5cGUiOiJtb3ZpZV8xIiwiY2xhc3NfbmFtZSI6IuacrOWRqOacgOWPl+asoui/jibmlrDnp4Doj5zosLEm5b6A5pyf5aS05p2hJuWOqOaIvzEwMSbmnIjluqbmnIDkvbMm5pyA5paw5Yib5bu6Jua1geihjOiPnOWNlSIsImNsYXNzX3VybCI6ImV4cGxvcmUmZXhwbG9yZS9yaXNpbmcmZXhwbG9yZS9oZWFkJmV4cGxvcmUvaG9ub3ImZXhwbG9yZS9tb250aGhvbm9yJmV4cGxvcmUvY3JlYXRlZCZleHBsb3JlL21lbnUvcG9wIiwiYXJlYV9uYW1lIjoi5a625bi46I+cJuW/q+aJi+iPnCbkuIvppa3oj5wm5pep6aSQJuaxpOe+uSbng5jln7km5bCP5ZCDIiwiYXJlYV91cmwiOiJjYXRlZ29yeS80MDA3NiZjYXRlZ29yeS80MDA3NyZjYXRlZ29yeS80MDA3OCZjYXRlZ29yeS80MDA3MSZjYXRlZ29yeS8yMDEzMCZjYXRlZ29yeS81MTc2MSZjYXRlZ29yeS80MDA3MyIsInNvcnRfbmFtZSI6IueUnOWTgemlruWTgSbnlJzlk4Em57OW5rC0JuaenOaxgSbkuIvljYjojLYm5rex5aSc6aOf5aCCJuWuteWknCbpm7bpo58m5LiJ5piO5rK7JueCuOeJm+WltibngrjpspzlpbYiLCJ5ZWFyX25hbWUiOiLns5bphosm57KlJumdouadoSbpuKHom4sm6Jm+JumzlemxvCbnlLXppa3nhbIm6auY5Y6L6ZSFJuaHkuS6uumjn+iwsSbop4bpopHoj5zosLEiLCJzb3J0X3VybCI6ImNhdGVnb3J5LzUyMzgxLyZjYXRlZ29yeS8yMDEzNS8mY2F0ZWdvcnkvNTA2ODAvJmNhdGVnb3J5LzUxODIzLyZjYXRlZ29yeS80MDA3Mi8mY2F0ZWdvcnkvNTIxMDcvJmNhdGVnb3J5LzUxODY1LyZjYXRlZ29yeS80MDA3NC8mY2F0ZWdvcnkvMjAxNTcvJmNhdGVnb3J5LzEwMjU3OTgvJmNhdGVnb3J5LzEwMDAwNDQvIiwieWVhcl91cmwiOiJjYXRlZ29yeS80MDA2Ni8mY2F0ZWdvcnkvMjAxMzEvJmNhdGVnb3J5LzEwMjUvJmNhdGVnb3J5LzM5NC8mY2F0ZWdvcnkvNDY5LyZjYXRlZ29yeS8xMDcyLyZjYXRlZ29yeS81MTMxMy8mY2F0ZWdvcnkvNTIzNzYvJmNhdGVnb3J5LzEwMTI3MjIvJmNhdGVnb3J5LzUyNDI4LyIsImZpbmRfcnVsZSI6Ii5wdXJlLXUtMy00JiZsaTtpbWcmJmFsdDtpbWcmJmRhdGEtc3JjOy5zdGF0c3x8LnN0YXR8fC50aW1lJiZUZXh0O2EmJmhyZWYuanM6IChpbnB1dC5pbmRleE9mKCdyZWNpcGVfbGlzdCcpID4gLTEgPyAoaW5wdXQgKyAnP3BhZ2U9ZnlwYWdlJykgOiBpbnB1dCkgKyAnI25vSGlzdG9yeSMnIiwic2VhcmNoX3VybCI6Imh0dHBzOi8vd3d3LnhpYWNodWZhbmcuY29tL3NlYXJjaC8/a2V5d29yZD0qKiZwYWdlPWZ5cGFnZTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRATW96aWxsYSA1LjB9IiwiZ3JvdXAiOiLikaDmjqjojZAiLCJzZWFyY2hGaW5kIjoiLnNlYXJjaC1yZXN1bHQtbGlzdCYmdWwmJmxpOy5uYW1lJiZUZXh0O2EmJmhyZWYuanM6ICdodHRwczovL3d3dy54aWFjaHVmYW5nLmNvbScgKyBpbnB1dCArICcjbm9IaXN0b3J5Iyc7LnN0YXRzJiZUZXh0Oy5pbmcmJlRleHQ7LmNvdmVyJiZpbWcmJmRhdGEtc3JjLmpzOiBpbnB1dC5yZXBsYWNlKCd3LzIxNS9oLzEzNicsICd3LzQzMC9oLzI3MicpIiwiZGV0YWlsX2NvbF90eXBlIjoicmljaF90ZXh0IiwiZGV0YWlsX2ZpbmRfcnVsZSI6ImpzOlxudmFyIHJlcyA9IHt9O1xudmFyIGQgPSBbXTtcbnZhciBodG1sID0gZ2V0UmVzQ29kZSgpO1xudmFyIHVybFNwbGl0cyA9IE1ZX1VSTC5zcGxpdCgnP3BhZ2U9Jyk7XG52YXIgcGFnZSA9IDE7XG50cnkge1xuICAgIGxldCBwYWdlVGVtcCA9IHBhcnNlSW50KHVybFNwbGl0c1sxXSk7XG4gICAgcGFnZSA9IGlzTmFOKHBhZ2VUZW1wKSA9PT0gdHJ1ZSA/IHBhZ2UgOiBwYWdlVGVtcDtcbn0gY2F0Y2ggKGUpIHsgfVxuXG4vKipcbiAqIOS4quS6uumFjee9ruW3suenu+WIsOmihOWkhOeQhu+8jOivt+WJjeW+gOmihOWkhOeQhui/m+ihjOmFjee9rlxuICovXG5cbi8qKlxuICog5piv5ZCm5byA5ZCv5Lyq5byC5q2l5Yqg6L295qih5byPIDEv5byA5ZCvIDAv5LiN5byA5ZCvXG4gKlxuICog5rOo5oSP77ya5LqM57qn5Lya5Y2h5Y+v5Lul5bCd6K+V5byA5ZCv6K+l6YCJ6aG577yM5L2G5Y+v6IO95a+86Ie05p+Q5Lqb5Zu+54mH5LiN5pi+56S6XG4gKi9cbmxldCB2YWx1ZUluTWFwID0gZ2V0VmFyKCd4aWFjaHVfbXVsdGlTdGVwTW9kZWwnKTtcbmxldCBtdWx0aVN0ZXBNb2RlbCA9IDA7XG52YWx1ZUluTWFwID0gcGFyc2VJbnQodmFsdWVJbk1hcCk7XG5tdWx0aVN0ZXBNb2RlbCA9IGlzTmFOKHZhbHVlSW5NYXApID09PSB0cnVlID8gbXVsdGlTdGVwTW9kZWwgOiB2YWx1ZUluTWFwO1xuLy8g5piv5ZCm6ZqQ6JeP5Zu+54mHKOecgea1geaooeW8jykgMS/pmpDol48gMC/kuI3pmpDol49cbmxldCBoaWRlSW1nID0gMDtcbnZhbHVlSW5NYXAgPSBnZXRWYXIoJ3hpYWNodV9oaWRlSW1nJyk7XG52YWx1ZUluTWFwID0gcGFyc2VJbnQodmFsdWVJbk1hcCk7XG5oaWRlSW1nID0gaXNOYU4odmFsdWVJbk1hcCkgPT09IHRydWUgPyBoaWRlSW1nIDogdmFsdWVJbk1hcDtcbi8vIOWbvueJh+i0qOmHj++8jOm7mOiupCAzMDDvvIzmjqjojZAgNjAwIOaIliA4MDBcbmxldCBpbWdXaWR0aCA9IDYwMDtcbnZhbHVlSW5NYXAgPSBnZXRWYXIoJ3hpYWNodV9pbWdXaWR0aCcpO1xudmFsdWVJbk1hcCA9IHBhcnNlSW50KHZhbHVlSW5NYXApO1xuaW1nV2lkdGggPSBpc05hTih2YWx1ZUluTWFwKSA9PT0gdHJ1ZSA/IGltZ1dpZHRoIDogdmFsdWVJbk1hcDtcbi8vIOaYr+WQpuaYvuekuueci+Wkp+WbvijpmLLmraLml6Dms5XliqDovb3lm77niYcpIDEv5pi+56S6IDAv5LiN5pi+56S6XG5sZXQgc2hvd0Z1bGxJbWdUaXBzID0gMTtcbnZhbHVlSW5NYXAgPSBnZXRWYXIoJ3hpYWNodV9zaG93RnVsbEltZ1RpcHMnKTtcbnZhbHVlSW5NYXAgPSBwYXJzZUludCh2YWx1ZUluTWFwKTtcbnNob3dGdWxsSW1nVGlwcyA9IGlzTmFOKHZhbHVlSW5NYXApID09PSB0cnVlID8gc2hvd0Z1bGxJbWdUaXBzIDogdmFsdWVJbk1hcDtcbi8vIOeUqOaIt+minOiJslxubGV0IHVzZXJDb2xvciA9IFwiIzI5NzlGRlwiO1xudmFsdWVJbk1hcCA9IGdldFZhcigneGlhY2h1X3VzZXJDb2xvcicpO1xudXNlckNvbG9yID0gdmFsdWVJbk1hcCA9PT0gJycgPyB1c2VyQ29sb3IgOiB2YWx1ZUluTWFwO1xuLy8g5piv5ZCm5pi+56S66I+c55qE5o+P6L+wIDEv5pi+56S6IDAv5LiN5pi+56S6XG5sZXQgc2hvd0Rlc2MgPSAxO1xudmFsdWVJbk1hcCA9IGdldFZhcigneGlhY2h1X3Nob3dEZXNjJyk7XG52YWx1ZUluTWFwID0gcGFyc2VJbnQodmFsdWVJbk1hcCk7XG5zaG93RGVzYyA9IGlzTmFOKHZhbHVlSW5NYXApID09PSB0cnVlID8gc2hvd0Rlc2MgOiB2YWx1ZUluTWFwO1xuLy8g55So5paZ5qih5Z2X5pi+56S65pa55byPIDEv5a6M5pW06KeG5Zu+IDAv57yp55Wl5qih5byPXG5sZXQgaW5nc01vZGUgPSAwO1xudmFsdWVJbk1hcCA9IGdldFZhcigneGlhY2h1X2luZ3NNb2RlJyk7XG52YWx1ZUluTWFwID0gcGFyc2VJbnQodmFsdWVJbk1hcCk7XG5pbmdzTW9kZSA9IGlzTmFOKHZhbHVlSW5NYXApID09PSB0cnVlID8gaW5nc01vZGUgOiB2YWx1ZUluTWFwO1xuLy8g55So5paZ5ZCN6aKc6ImyXG5sZXQgaW5nTmFtZUNvbG9yID0gXCIjNDZjMjAwXCI7XG52YWx1ZUluTWFwID0gZ2V0VmFyKCd4aWFjaHVfaW5nTmFtZUNvbG9yJyk7XG5pbmdOYW1lQ29sb3IgPSB2YWx1ZUluTWFwID09PSAnJyA/IGluZ05hbWVDb2xvciA6IHZhbHVlSW5NYXA7XG4vLyDnlKjmlpnph4/popzoibJcbmxldCBpbmdVbml0Q29sb3IgPSBcIiM3MDZhNmJcIjtcbnZhbHVlSW5NYXAgPSBnZXRWYXIoJ3hpYWNodV9pbmdVbml0Q29sb3InKTtcbmluZ1VuaXRDb2xvciA9IHZhbHVlSW5NYXAgPT09ICcnID8gaW5nVW5pdENvbG9yIDogdmFsdWVJbk1hcDtcbi8vIOWwj+i0tOWjq+minOiJslxubGV0IHRpcHNDb2xvciA9IFwiIzcwNmE2YlwiO1xudmFsdWVJbk1hcCA9IGdldFZhcigneGlhY2h1X3RpcHNDb2xvcicpO1xudGlwc0NvbG9yID0gdmFsdWVJbk1hcCA9PT0gJycgPyB0aXBzQ29sb3IgOiB2YWx1ZUluTWFwO1xuLy8g5qih5Z2X5LmL6Ze055qE6Ze06ZqUXG5sZXQgbW9kZWxfbGluZV9oZWlnaHQgPSAxO1xudmFsdWVJbk1hcCA9IGdldFZhcigneGlhY2h1X21vZGVsX2xpbmVfaGVpZ2h0Jyk7XG52YWx1ZUluTWFwID0gcGFyc2VJbnQodmFsdWVJbk1hcCk7XG5tb2RlbF9saW5lX2hlaWdodCA9IGlzTmFOKHZhbHVlSW5NYXApID09PSB0cnVlID8gbW9kZWxfbGluZV9oZWlnaHQgOiB2YWx1ZUluTWFwO1xuLy8g5q2j5paH5o+Q56S6XG5sZXQgY29udGVudFRpcHMgPSAn5LiL5Y6o5oi/55qE5pe25YCZ5LiA5a6a6KaB5rOo5oSP5a6J5YWo5ZOm772eJyArICc8YnI+JztcbnZhbHVlSW5NYXAgPSBnZXRWYXIoJ3hpYWNodV9jb250ZW50VGlwcycpO1xuY29udGVudFRpcHMgPSB2YWx1ZUluTWFwID09PSAnJyA/IGNvbnRlbnRUaXBzIDogdmFsdWVJbk1hcDtcblxuZnVuY3Rpb24gZ2V0QmlnVGV4dCh0ZXh0KSB7XG4gICAgcmV0dXJuICc8YmlnPicgKyB0ZXh0ICsgJzwvYmlnPic7XG59XG5mdW5jdGlvbiBnZXRTbWFsbFRleHQodGV4dCkge1xuICAgIHJldHVybiAnPHNtYWxsPicgKyB0ZXh0ICsgJzwvc21hbGw+Jztcbn1cbmZ1bmN0aW9uIGdldFN0cm9uZ1RleHQodGV4dCkge1xuICAgIHJldHVybiAnPHN0cm9uZz4nICsgdGV4dCArICc8L3N0cm9uZz4nO1xufVxuZnVuY3Rpb24gZ2V0VGl0bGVUZXh0KHRleHQpIHtcbiAgICByZXR1cm4gZ2V0U3Ryb25nVGV4dCh0ZXh0KTtcbn1cbmZ1bmN0aW9uIGdldENvbG9yVGV4dCh0ZXh0LCBjb2xvcikge1xuICAgIHJldHVybiAnPGZvbnQgY29sb3I9XCInICsgY29sb3IgKyAnXCI+JyArIHRleHQgKyAnPC9mb250Pic7XG59XG5mdW5jdGlvbiBnZXRHcmV5VGV4dCh0ZXh0KSB7XG4gICAgcmV0dXJuIGdldENvbG9yVGV4dCh0ZXh0LCAnZ3JleScpO1xufVxuZnVuY3Rpb24gZ2V0QXV0aG9yVGV4dCh0ZXh0KSB7XG4gICAgcmV0dXJuIGdldENvbG9yVGV4dCh0ZXh0LCB1c2VyQ29sb3IpO1xufVxuZnVuY3Rpb24gZ2V0Q29kZVRleHQodGV4dCkge1xuICAgIHJldHVybiAnPGNvZGU+JyArIHRleHQgKyAnPC9jb2RlPic7XG59XG5mdW5jdGlvbiBnZXRCbG9ja3F1b3RlVGV4dCh0ZXh0KSB7XG4gICAgcmV0dXJuICc8YmxvY2txdW90ZT4nICsgdGV4dCArICc8L2Jsb2NrcXVvdGU+J1xufVxuZnVuY3Rpb24gZ2V0QWRkcmVzc1RhZyh1cmwsIHRleHQpIHtcbiAgICByZXR1cm4gJzxhIGhyZWY9XCInICsgdXJsICsgJ1wiPicgKyB0ZXh0ICsgJzwvYT4nXG59XG5mdW5jdGlvbiBnZXRDb21tZW50TWV0YShodG1sKSB7XG4gICAgcmV0dXJuIGdldFNtYWxsVGV4dChodG1sKTtcbn1cblN0cmluZy5wcm90b3R5cGUucmVwbGFjZVdpdGhDYWxsYmFjayA9IGZ1bmN0aW9uIChzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlLCBjYWxsYmFjaykge1xuICAgIGxldCByZXR1cm5WYWx1ZSA9IHRoaXM7XG4gICAgaWYgKGNhbGxiYWNrICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuVmFsdWUgPSBjYWxsYmFjayh0aGlzLCBzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xufTtcblxubGV0IGltZ0Vycm9yID0gJzxmb250IGNvbG9yPVwiZ3JleVwiPuWbvueJh+aaguaXtuaXoOazleaYvuekuu+8jOiLpeimgeafpeeci+ivtzxhIGhyZWY9XCInICsgTVlfVVJMICsgJ1wiPuiuv+mXruWOn+aWhzwvYT48L2ZvbnQ+JztcbmZ1bmN0aW9uIGltZ1RhZyhjb250ZXh0LCBzb3VyY2VUYWcsIGltZ1VybCkge1xuICAgIGlmKC8od1xcLyhcXGQrKVxcL2ludGVybGFjZSkvLnRlc3QoaW1nVXJsKSA9PT0gdHJ1ZSkge1xuICAgICAgICBzb3VyY2VUYWcgPSBzb3VyY2VUYWcucmVwbGFjZShSZWdFeHAuJDEsICd3LycgKyBpbWdXaWR0aCArICcvaW50ZXJsYWNlJyk7XG4gICAgfVxuICAgIGxldCByZXBsYWNlU3RyaW5nID0gc291cmNlVGFnO1xuICAgIGxldCByZXBsYWNlU3RyaW5nMSA9IGltZ1VybCA9PT0gJydcbiAgICAgICAgPyBpbWdFcnJvclxuICAgICAgICA6ICgnPGEgaHJlZj1cIicgKyBpbWdVcmwgKyAnXCI+J1xuICAgICAgICAgICAgKyAoaGlkZUltZyA9PT0gMSA/ICdb54K55Ye75p+l55yL5aSn5Zu+XScgOiAn5Zu+54mH5peg5rOV5Yqg6L2977yf54K55oiR6K+V6K+VficpXG4gICAgICAgICAgICArICc8L2E+Jyk7XG4gICAgaWYoc2hvd0Z1bGxJbWdUaXBzKSB7XG4gICAgICAgIHJlcGxhY2VTdHJpbmcgKz0gKCc8YnI+JyArIGdldFNtYWxsVGV4dChyZXBsYWNlU3RyaW5nMSkpO1xuICAgIH1cbiAgICBpZiAoaGlkZUltZykge1xuICAgICAgICByZXBsYWNlU3RyaW5nID0gcmVwbGFjZVN0cmluZzE7XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0LnJlcGxhY2UoLzxpbWcgZGF0YS12Pi9nLCByZXBsYWNlU3RyaW5nKTtcbn1cbmZ1bmN0aW9uIGltZ1RhZ1JlcGxhY2VtZW50Mihjb250ZXh0LCBzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKSB7XG4gICAgbGV0IG1hdGNoQXJyYXkgPSBjb250ZXh0Lm1hdGNoKHNlYXJjaFZhbHVlKTtcbiAgICBsZXQgcmV0dXJuVmFsdWUgPSBjb250ZXh0O1xuICAgIGlmIChtYXRjaEFycmF5ICE9IG51bGwpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXRjaEFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgaXRlbSA9IG1hdGNoQXJyYXlbaV07XG4gICAgICAgICAgICAvKDxpbWcgKHNyY3xkYXRhLXNyYyk9XCIoLio/KVwiKFtcXHNcXFNdKj8pPikvLnRlc3QoaXRlbSk7XG4gICAgICAgICAgICBsZXQgaW1nVXJsID0gUmVnRXhwLiQzO1xuICAgICAgICAgICAgaWYgKGltZ1VybCAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHJldHVyblZhbHVlLnJlcGxhY2UoaXRlbSwgcmVwbGFjZVZhbHVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGltZ1RhZyhyZXR1cm5WYWx1ZSwgUmVnRXhwLiQxLGltZ1VybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xufVxuXG50cnkge1xuICAgIGxldCBtYWluSHRtbCA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLm1haW4tcGFuZWwmJkh0bWwnKTtcbiAgICBpZiAoTVlfVVJMLmluZGV4T2YoJ3JlY2lwZV9saXN0JykgPiAtMSkge1xuICAgICAgICBsZXQgcnVsZSA9ICdAcnVsZT1qczonICsgYHZhciByZXM9e30sZD1bXSxodG1sPWdldFJlc0NvZGUoKSx1cmxTcGxpdHM9TVlfVVJMLnNwbGl0KFwiP3BhZ2U9XCIpLHBhZ2U9MTt0cnl7bGV0IGU9cGFyc2VJbnQodXJsU3BsaXRzWzFdKTtwYWdlPSEwPT09aXNOYU4oZSk/cGFnZTplfWNhdGNoKGUpe31sZXQgdmFsdWVJbk1hcD1nZXRWYXIoXCJ4aWFjaHVfbXVsdGlTdGVwTW9kZWxcIiksbXVsdGlTdGVwTW9kZWw9MDt2YWx1ZUluTWFwPXBhcnNlSW50KHZhbHVlSW5NYXApLG11bHRpU3RlcE1vZGVsPSEwPT09aXNOYU4odmFsdWVJbk1hcCk/bXVsdGlTdGVwTW9kZWw6dmFsdWVJbk1hcDtsZXQgaGlkZUltZz0wO3ZhbHVlSW5NYXA9Z2V0VmFyKFwieGlhY2h1X2hpZGVJbWdcIiksdmFsdWVJbk1hcD1wYXJzZUludCh2YWx1ZUluTWFwKSxoaWRlSW1nPSEwPT09aXNOYU4odmFsdWVJbk1hcCk/aGlkZUltZzp2YWx1ZUluTWFwO2xldCBpbWdXaWR0aD02MDA7dmFsdWVJbk1hcD1nZXRWYXIoXCJ4aWFjaHVfaW1nV2lkdGhcIiksdmFsdWVJbk1hcD1wYXJzZUludCh2YWx1ZUluTWFwKSxpbWdXaWR0aD0hMD09PWlzTmFOKHZhbHVlSW5NYXApP2ltZ1dpZHRoOnZhbHVlSW5NYXA7bGV0IHNob3dGdWxsSW1nVGlwcz0xO3ZhbHVlSW5NYXA9Z2V0VmFyKFwieGlhY2h1X3Nob3dGdWxsSW1nVGlwc1wiKSx2YWx1ZUluTWFwPXBhcnNlSW50KHZhbHVlSW5NYXApLHNob3dGdWxsSW1nVGlwcz0hMD09PWlzTmFOKHZhbHVlSW5NYXApP3Nob3dGdWxsSW1nVGlwczp2YWx1ZUluTWFwO2xldCB1c2VyQ29sb3I9XCIjMjk3OUZGXCI7dmFsdWVJbk1hcD1nZXRWYXIoXCJ4aWFjaHVfdXNlckNvbG9yXCIpLHVzZXJDb2xvcj1cIlwiPT09dmFsdWVJbk1hcD91c2VyQ29sb3I6dmFsdWVJbk1hcDtsZXQgc2hvd0Rlc2M9MTt2YWx1ZUluTWFwPWdldFZhcihcInhpYWNodV9zaG93RGVzY1wiKSx2YWx1ZUluTWFwPXBhcnNlSW50KHZhbHVlSW5NYXApLHNob3dEZXNjPSEwPT09aXNOYU4odmFsdWVJbk1hcCk/c2hvd0Rlc2M6dmFsdWVJbk1hcDtsZXQgaW5nc01vZGU9MDt2YWx1ZUluTWFwPWdldFZhcihcInhpYWNodV9pbmdzTW9kZVwiKSx2YWx1ZUluTWFwPXBhcnNlSW50KHZhbHVlSW5NYXApLGluZ3NNb2RlPSEwPT09aXNOYU4odmFsdWVJbk1hcCk/aW5nc01vZGU6dmFsdWVJbk1hcDtsZXQgaW5nTmFtZUNvbG9yPVwiIzQ2YzIwMFwiO2luZ05hbWVDb2xvcj1cIlwiPT09KHZhbHVlSW5NYXA9Z2V0VmFyKFwieGlhY2h1X2luZ05hbWVDb2xvclwiKSk/aW5nTmFtZUNvbG9yOnZhbHVlSW5NYXA7bGV0IGluZ1VuaXRDb2xvcj1cIiM3MDZhNmJcIjtpbmdVbml0Q29sb3I9XCJcIj09PSh2YWx1ZUluTWFwPWdldFZhcihcInhpYWNodV9pbmdVbml0Q29sb3JcIikpP2luZ1VuaXRDb2xvcjp2YWx1ZUluTWFwO2xldCB0aXBzQ29sb3I9XCIjNzA2YTZiXCI7dGlwc0NvbG9yPVwiXCI9PT0odmFsdWVJbk1hcD1nZXRWYXIoXCJ4aWFjaHVfdGlwc0NvbG9yXCIpKT90aXBzQ29sb3I6dmFsdWVJbk1hcDtsZXQgbW9kZWxfbGluZV9oZWlnaHQ9MTt2YWx1ZUluTWFwPWdldFZhcihcInhpYWNodV9tb2RlbF9saW5lX2hlaWdodFwiKSx2YWx1ZUluTWFwPXBhcnNlSW50KHZhbHVlSW5NYXApLG1vZGVsX2xpbmVfaGVpZ2h0PSEwPT09aXNOYU4odmFsdWVJbk1hcCk/bW9kZWxfbGluZV9oZWlnaHQ6dmFsdWVJbk1hcDtsZXQgY29udGVudFRpcHM9XCLkuIvljqjmiL/nmoTml7blgJnkuIDlrpropoHms6jmhI/lronlhajlk6bvvZ5cIitcIjxicj5cIjtmdW5jdGlvbiBnZXRCaWdUZXh0KGUpe3JldHVyblwiPGJpZz5cIitlK1wiPC9iaWc+XCJ9ZnVuY3Rpb24gZ2V0U21hbGxUZXh0KGUpe3JldHVyblwiPHNtYWxsPlwiK2UrXCI8L3NtYWxsPlwifWZ1bmN0aW9uIGdldFN0cm9uZ1RleHQoZSl7cmV0dXJuXCI8c3Ryb25nPlwiK2UrXCI8L3N0cm9uZz5cIn1mdW5jdGlvbiBnZXRUaXRsZVRleHQoZSl7cmV0dXJuIGdldFN0cm9uZ1RleHQoZSl9ZnVuY3Rpb24gZ2V0Q29sb3JUZXh0KGUsdCl7cmV0dXJuJzxmb250IGNvbG9yPVwiJyt0KydcIj4nK2UrXCI8L2ZvbnQ+XCJ9ZnVuY3Rpb24gZ2V0R3JleVRleHQoZSl7cmV0dXJuIGdldENvbG9yVGV4dChlLFwiZ3JleVwiKX1mdW5jdGlvbiBnZXRBdXRob3JUZXh0KGUpe3JldHVybiBnZXRDb2xvclRleHQoZSx1c2VyQ29sb3IpfWZ1bmN0aW9uIGdldENvZGVUZXh0KGUpe3JldHVyblwiPGNvZGU+XCIrZStcIjwvY29kZT5cIn1mdW5jdGlvbiBnZXRCbG9ja3F1b3RlVGV4dChlKXtyZXR1cm5cIjxibG9ja3F1b3RlPlwiK2UrXCI8L2Jsb2NrcXVvdGU+XCJ9ZnVuY3Rpb24gZ2V0QWRkcmVzc1RhZyhlLHQpe3JldHVybic8YSBocmVmPVwiJytlKydcIj4nK3QrXCI8L2E+XCJ9ZnVuY3Rpb24gZ2V0Q29tbWVudE1ldGEoZSl7cmV0dXJuIGdldFNtYWxsVGV4dChlKX1jb250ZW50VGlwcz1cIlwiPT09KHZhbHVlSW5NYXA9Z2V0VmFyKFwieGlhY2h1X2NvbnRlbnRUaXBzXCIpKT9jb250ZW50VGlwczp2YWx1ZUluTWFwLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZVdpdGhDYWxsYmFjaz1mdW5jdGlvbihlLHQsbCl7bGV0IGE9dGhpcztyZXR1cm4gbnVsbCE9bCYmKGE9bCh0aGlzLGUsdCkpLGF9O2xldCBpbWdFcnJvcj0nPGZvbnQgY29sb3I9XCJncmV5XCI+5Zu+54mH5pqC5pe25peg5rOV5pi+56S677yM6Iul6KaB5p+l55yL6K+3PGEgaHJlZj1cIicrTVlfVVJMKydcIj7orr/pl67ljp/mloc8L2E+PC9mb250Pic7ZnVuY3Rpb24gaW1nVGFnKGUsdCxsKXshMD09PS8od1xcXFwvKFxcXFxkKylcXFxcL2ludGVybGFjZSkvLnRlc3QobCkmJih0PXQucmVwbGFjZShSZWdFeHAuJDEsXCJ3L1wiK2ltZ1dpZHRoK1wiL2ludGVybGFjZVwiKSk7bGV0IGE9dCxyPVwiXCI9PT1sP2ltZ0Vycm9yOic8YSBocmVmPVwiJytsKydcIj4nKygxPT09aGlkZUltZz9cIlvngrnlh7vmn6XnnIvlpKflm75dXCI6XCLlm77niYfml6Dms5XliqDovb3vvJ/ngrnmiJHor5Xor5V+XCIpK1wiPC9hPlwiO3JldHVybiBzaG93RnVsbEltZ1RpcHMmJihhKz1cIjxicj5cIitnZXRTbWFsbFRleHQocikpLGhpZGVJbWcmJihhPXIpLGUucmVwbGFjZSgvPGltZyBkYXRhLXY+L2csYSl9ZnVuY3Rpb24gaW1nVGFnUmVwbGFjZW1lbnQyKGUsdCxsKXtsZXQgYT1lLm1hdGNoKHQpLHI9ZTtpZihudWxsIT1hKWZvcihsZXQgZT0wO2U8YS5sZW5ndGg7ZSsrKXtsZXQgdD1hW2VdOy8oPGltZyAoc3JjfGRhdGEtc3JjKT1cIiguKj8pXCIoW1xcXFxzXFxcXFNdKj8pPikvLnRlc3QodCk7bGV0IG89UmVnRXhwLiQzO1wiXCIhPT1vJiYocj1pbWdUYWcocj1yLnJlcGxhY2UodCxsKSxSZWdFeHAuJDEsbykpfXJldHVybiByfXRyeXtsZXQgZT1wYXJzZURvbUZvckh0bWwoaHRtbCxcIi5tYWluLXBhbmVsJiZIdG1sXCIpO3RyeXtsZXQgdD1nZXRCaWdUZXh0KGdldFN0cm9uZ1RleHQocGFyc2VEb21Gb3JIdG1sKGUsXCJoMSYmVGV4dFwiKSkpK1wiIFwiK2dldFNtYWxsVGV4dChnZXRBZGRyZXNzVGFnKE1ZX1VSTCxcIlvmn6XnnIvljp/mloddXCIpKSxsPVwiXCI7dHJ5e2xldCBlPXBhcnNlRG9tRm9ySHRtbChodG1sLFwiLnJlY2lwZS10YWdzJiZIdG1sXCIpLHQ9cGFyc2VEb21Gb3JBcnJheShlLFwiLnJlY2lwZS1jYXRzJiZhXCIpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgYT10W2VdO2wrPWdldENvZGVUZXh0KHBhcnNlRG9tRm9ySHRtbChhLFwiVGV4dFwiKSl9fWNhdGNoKGUpe31sPVwiXCI9PT1sP1wiPGJyPlwiK2dldENvZGVUZXh0KFwi5pqC5peg5YiG57G7XCIpOlwiPGJyPlwiK2wsZC5wdXNoKHt0aXRsZTp0K2x9KSxkLnB1c2goe2NvbF90eXBlOlwibGluZVwifSl9Y2F0Y2goZSl7fXRyeXtsZXQgdD1nZXRBdXRob3JUZXh0KFwi5L2c6ICF77yaXCIrcGFyc2VEb21Gb3JIdG1sKGUsXCIuYXV0aG9yJiZUZXh0XCIpKSxsPVwiXCI7dHJ5e2w9XCI8YnI+XCIrcGFyc2VEb21Gb3JIdG1sKGUsXCIuZGVzYyYmSHRtbFwiKX1jYXRjaChlKXt9bGV0IGE9XCJcIjt0cnl7bGV0IGU9cGFyc2VEb21Gb3JIdG1sKGh0bWwsXCIucmVjaXBlLXNob3cmJkh0bWxcIiksdD1wYXJzZURvbUZvckh0bWwoZSxcImlmcmFtZSYmc3JjXCIpLGw9ZmV0Y2godCx7fSk7YT1nZXRBZGRyZXNzVGFnKHBhcnNlRG9tRm9ySHRtbChsLFwidmlkZW8mJnNyY1wiKSxcIuacrOW4luWQq+inhumike+8jOeCueaIkeafpeeci++9nlwiKX1jYXRjaChlKXt9bGV0IHI9XCJcIjt0cnl7bGV0IHQ9cGFyc2VEb21Gb3JIdG1sKGUsXCIuaW5ncyYmSHRtbFwiKSxsPXBhcnNlRG9tRm9yQXJyYXkodCxcInRhYmxlJiZ0clwiKTtmb3IobGV0IGU9MDtlPGwubGVuZ3RoO2UrKyl7bGV0IHQ9bFtlXTsvPHRkIGNsYXNzPVwibmFtZVwiPihbXFxcXHNcXFxcU10qPyk8XFxcXC90ZD4vLnRlc3QodCk7bGV0IGE9UmVnRXhwLiQxO2lmKFwiXCIhPT1hKXthPWdldENvbG9yVGV4dChwYXJzZURvbUZvckh0bWwoYSxcIlRleHRcIiksaW5nTmFtZUNvbG9yKSwvPHRkIGNsYXNzPVwidW5pdFwiPihbXFxcXHNcXFxcU10qPyk8XFxcXC90ZD4vLnRlc3QodCk7bGV0IG89UmVnRXhwLiQxLG49YStcIiBcIisobz1nZXRDb2xvclRleHQobz09PWE/XCLmnKrnn6VcIjpvLGluZ1VuaXRDb2xvcikpO3IrPW49ZT09PWwubGVuZ3RoLTE/bjpuKygxPT09aW5nc01vZGU/XCI8YnI+XCI6XCLjgIFcIil9fXI9Z2V0QmlnVGV4dChnZXRUaXRsZVRleHQoXCLnlKjmlplcIikpK1wiPGJyPlwiK3J9Y2F0Y2goZSl7fWlmKGw9MT09PXNob3dEZXNjP2w6XCJcIixtb2RlbF9saW5lX2hlaWdodD4wKXtkLnB1c2goe3RpdGxlOmdldEJsb2NrcXVvdGVUZXh0KHQrbCkrKFwiXCI9PT1hP2dldEdyZXlUZXh0KGNvbnRlbnRUaXBzKTphK1wiPGJyPlwiKX0pO2ZvcihsZXQgZT0wO2U8bW9kZWxfbGluZV9oZWlnaHQ7ZSsrKWQucHVzaCh7Y29sX3R5cGU6XCJsaW5lX2JsYW5rXCJ9KTtkLnB1c2goe3RpdGxlOnJ9KTtmb3IobGV0IGU9MDtlPG1vZGVsX2xpbmVfaGVpZ2h0O2UrKylkLnB1c2goe2NvbF90eXBlOlwibGluZV9ibGFua1wifSl9ZWxzZSBkLnB1c2goe3RpdGxlOmdldEJsb2NrcXVvdGVUZXh0KHQrbCkrKFwiXCI9PT1hP1wiXCI6YStcIjxicj48YnI+XCIpK3J9KX1jYXRjaChlKXt9dHJ5e2xldCB0PWdldEJpZ1RleHQoZ2V0VGl0bGVUZXh0KFwiXCIrcGFyc2VEb21Gb3JIdG1sKGUsXCIjc3RlcHMmJlRleHRcIikpKSxsPXBhcnNlRG9tRm9yQXJyYXkoZSxcIi5zdGVwcyYmLmNvbnRhaW5lclwiKTttdWx0aVN0ZXBNb2RlbCYmbW9kZWxfbGluZV9oZWlnaHQ+MCYmZC5wdXNoKHt0aXRsZTp0fSk7bGV0IGE9XCJcIjtmb3IobGV0IGU9MDtlPGwubGVuZ3RoO2UrKyl7bGV0IHQ9cGFyc2VEb21Gb3JIdG1sKGxbZV0sXCIuY29udGFpbmVyJiZIdG1sXCIpO3Q9Z2V0U3Ryb25nVGV4dChcIuatpemqpFwiKyhlKzEpK1wiPGJyPlwiKSt0LnJlcGxhY2UoLzxcXFxcL3A+IDxpbWcgc3JjPS9nLFwiPGJyPjxpbWcgc3JjPVwiKS5yZXBsYWNlV2l0aENhbGxiYWNrKC8oPGltZyAoc3JjfGRhdGEtc3JjKT1cIiguKj8pXCIoW1xcXFxzXFxcXFNdKj8pPikvZyxcIjxpbWcgZGF0YS12PlwiLGltZ1RhZ1JlcGxhY2VtZW50MikucmVwbGFjZSgvKDxwIGNsYXNzPVwidGV4dFwiIHN0eWxlPVwiLio/XCI+KXwoPFxcXFwvcD4pLyxcIlwiKSxtdWx0aVN0ZXBNb2RlbCYmbW9kZWxfbGluZV9oZWlnaHQ+MD9kLnB1c2goe3RpdGxlOnR9KTphKz1cIjxicj48YnI+XCIrdH1tdWx0aVN0ZXBNb2RlbCYmbW9kZWxfbGluZV9oZWlnaHQ+MHx8ZC5wdXNoKHt0aXRsZTp0K2F9KTtmb3IobGV0IGU9MDtlPG1vZGVsX2xpbmVfaGVpZ2h0O2UrKylkLnB1c2goe2NvbF90eXBlOlwibGluZV9ibGFua1wifSk7bGV0IHI9XCJcIjt0cnl7bGV0IHQ9cGFyc2VEb21Gb3JIdG1sKGUsXCIudGlwLWNvbnRhaW5lciYmSHRtbFwiKSxsPWdldEJpZ1RleHQoZ2V0VGl0bGVUZXh0KHBhcnNlRG9tRm9ySHRtbCh0LFwiaDImJlRleHRcIikpKTt0aXBzQ29udGVudD1cIjxicj5cIitwYXJzZURvbUZvckh0bWwodCxcIi50aXAmJkh0bWxcIikscj1nZXRDb2xvclRleHQobCt0aXBzQ29udGVudCx0aXBzQ29sb3IpLGQucHVzaCh7dGl0bGU6cn0pO2ZvcihsZXQgZT0wO2U8bW9kZWxfbGluZV9oZWlnaHQ7ZSsrKWQucHVzaCh7Y29sX3R5cGU6XCJsaW5lX2JsYW5rXCJ9KX1jYXRjaChlKXt9fWNhdGNoKGUpe310cnl7bGV0IGU9cGFyc2VEb21Gb3JIdG1sKGh0bWwsXCIucmVjaXBlLXN0YXRzJiZIdG1sXCIpLHQ9Z2V0U21hbGxUZXh0KGdldEdyZXlUZXh0KHBhcnNlRG9tRm9ySHRtbChlLFwiLnRpbWUmJlRleHRcIikrXCI8YnI+XCIrcGFyc2VEb21Gb3JIdG1sKGUsXCIucHYmJlRleHRcIikrXCI8YnI+XCIrcGFyc2VEb21Gb3JIdG1sKGUsXCIuY29weXJpZ2h0JiZUZXh0XCIpKSk7ZC5wdXNoKHt0aXRsZTp0fSl9Y2F0Y2goZSl7fXRyeXtsZXQgZT1wYXJzZURvbUZvckh0bWwoaHRtbCxcIi5wYWdlLWJvdHRvbS1vdXRlciYmLnBhZ2UtY29udGFpbmVyJiZIdG1sXCIpLHQ9Z2V0QmlnVGV4dChnZXRUaXRsZVRleHQocGFyc2VEb21Gb3JIdG1sKGUsXCJoMiYmVGV4dFwiKSkpLGw9cGFyc2VEb21Gb3JBcnJheShlLFwiLnF1ZXN0aW9uLWxpc3QmJi5yZWNpcGUtcXVlc2lvbnMtY29udGVudFwiKTtsLmxlbmd0aD4wJiYoZC5wdXNoKHtjb2xfdHlwZTpcImxpbmVfYmxhbmtcIn0pLGQucHVzaCh7dGl0bGU6dH0pKTtsZXQgYT1cIlwiO2ZvcihsZXQgZT0wO2U8bC5sZW5ndGg7ZSsrKXtsZXQgdD1wYXJzZURvbUZvckFycmF5KGxbZV0sXCJsaSYmLmF2YXRhci1yaWdodC0yXCIpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbD1cIlwiLHI9XCJcIjtpZih0W2VdLmluZGV4T2YoXCLotZ5cIik+LTEpe2xldCBhPWdldEF1dGhvclRleHQocGFyc2VEb21Gb3JIdG1sKHRbZV0sXCIuaW5mbyYmYSYmVGV4dFwiKSkscj1cIlwiOyEwPT09Lyg8c3BhbiBjbGFzcz1cIm5vcm1hbC1mb250IGdyYXktZm9udCBhbGlnbi1iYXNlbGluZVwiPltcXFxcc1xcXFxTXSo/PFxcXFwvc3Bhbj4pLy50ZXN0KHRbZV0pJiYocj1nZXRHcmV5VGV4dChSZWdFeHAuJDEpKTtsZXQgbz1nZXRDb21tZW50TWV0YShcIjxicj5cIithK3IpO2w9cGFyc2VEb21Gb3JIdG1sKHRbZV0sXCIucmlnaHQtYm90dG9tJiZIdG1sXCIpK299aWYodFtlXS5pbmRleE9mKFwi5L2c6ICF5Zue5aSNXCIpPi0xKXRyeXtsZXQgbD1nZXRBdXRob3JUZXh0KFwi5L2c6ICF5Zue5aSNXCIpLGE9XCJcIjshMD09PS8oPHNwYW4gY2xhc3M9XCJub3JtYWwtZm9udCBncmF5LWZvbnQgYWxpZ24tYmFzZWxpbmVcIj5bXFxcXHNcXFxcU10qPzxcXFxcL3NwYW4+KS8udGVzdCh0W2VdKSYmKGE9Z2V0R3JleVRleHQoUmVnRXhwLiQxKSk7bGV0IG89Z2V0Q29tbWVudE1ldGEoXCI8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7XCIrbCthKTtyPVwiPHNwYW4+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9zcGFuPlwiK3BhcnNlRG9tRm9ySHRtbCh0W2VdLFwiLnJpZ2h0LWJvdHRvbSYmSHRtbFwiKStvfWNhdGNoKGUpe31hPWwrcixkLnB1c2goe3RpdGxlOmEucmVwbGFjZSgvPGRpdiBjbGFzcz1cInJlY2lwZS1xdWVzdGlvbnMtZGlnZ1wiPi9nLFwiXCIpfSl9ZC5wdXNoKHtjb2xfdHlwZTpcImxpbmVcIn0pfX1jYXRjaChlKXt9fWNhdGNoKGUpe31yZXMuZGF0YT1kLHNldEhvbWVSZXN1bHQocmVzKTtgO1xuICAgICAgICBpZihwYWdlID09PSAxKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGhlYWRlclxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBoZWFkZXJUaXRsZSA9IGdldEJpZ1RleHQoZ2V0U3Ryb25nVGV4dChwYXJzZURvbUZvckh0bWwobWFpbkh0bWwsICdoMSYmVGV4dCcpKSlcbiAgICAgICAgICAgICAgICAgICAgKyAnICcgKyBnZXRTbWFsbFRleHQoZ2V0QWRkcmVzc1RhZyhNWV9VUkwsICdb5p+l55yL5Y6f5paHXScpKTtcbiAgICAgICAgICAgICAgICBsZXQgaGVhZGVySHRtbCA9IHBhcnNlRG9tRm9ySHRtbChtYWluSHRtbCwgJy5ybC1zdW1tYXJ5JiZIdG1sJyk7XG4gICAgICAgICAgICAgICAgbGV0IGNvbGxlY3Rpb25Db3VudCA9ICc8YnI+JyArIGdldFNtYWxsVGV4dChwYXJzZURvbUZvckh0bWwoaGVhZGVySHRtbCwgJy5zdGF0cyYmVGV4dCcpKTtcbiAgICAgICAgICAgICAgICBsZXQgdGltZSA9ICcgJyArIGdldFNtYWxsVGV4dChnZXRHcmV5VGV4dChwYXJzZURvbUZvckh0bWwoaGVhZGVySHRtbCwgJy50aW1lJiZUZXh0JykpKTtcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogaGVhZGVyVGl0bGUgKyBjb2xsZWN0aW9uQ291bnQgKyB0aW1lXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdsaW5lJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGxldCBhdXRob3IgPSBnZXRBdXRob3JUZXh0KHBhcnNlRG9tRm9ySHRtbChoZWFkZXJIdG1sLCAnLmF2YXRhci1saW5rJiZUZXh0JykpO1xuICAgICAgICAgICAgICAgIGxldCBkZXNjID0gJzxicj4nICsgcGFyc2VEb21Gb3JIdG1sKGhlYWRlckh0bWwsICcuZGVzYyYmVGV4dCcpO1xuICAgICAgICAgICAgICAgIGxldCBtZXRhID0gZ2V0QmxvY2txdW90ZVRleHQoYXV0aG9yICsgZGVzYyk7XG4gICAgICAgICAgICAgICAgaWYgKG1vZGVsX2xpbmVfaGVpZ2h0ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IG1ldGEgKyBnZXRHcmV5VGV4dChjb250ZW50VGlwcylcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9kZWxfbGluZV9oZWlnaHQ7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogbWV0YVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICog5q2j5paHXG4gICAgICAgICAqL1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGNvbnRlbnRzSHRtbCA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLnJsLXJlY2lwZXMmJkh0bWwnKTtcbiAgICAgICAgICAgIGlmKHBhZ2UgPT09IDEpIHtcbiAgICAgICAgICAgICAgICBsZXQgY29udGVudFRpdGxlID0gZ2V0QmlnVGV4dChwYXJzZURvbUZvckh0bWwoY29udGVudHNIdG1sLCAnLmJsb2NrLXRpdGxlJiZUZXh0JykpO1xuICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBjb250ZW50VGl0bGVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBjb250ZW50c0h0bWxBcnJheSA9IHBhcnNlRG9tRm9yQXJyYXkoY29udGVudHNIdG1sLCAnLm5vcm1hbC1yZWNpcGUtbGlzdCYmbGknKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29udGVudHNIdG1sQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgY29udGVudEl0ZW1IdG1sID0gY29udGVudHNIdG1sQXJyYXlbaV07XG4gICAgICAgICAgICAgICAgbGV0IGNvdmVyID0gcGFyc2VEb21Gb3JIdG1sKGNvbnRlbnRJdGVtSHRtbCwgJy5jb3ZlciYmaW1nJiZkYXRhLXNyYycpO1xuICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IHBhcnNlRG9tRm9ySHRtbChjb250ZW50SXRlbUh0bWwsICcuaW5mbyYmLm5hbWUmJlRleHQnKTtcbiAgICAgICAgICAgICAgICBsZXQgZGVzYyA9IHBhcnNlRG9tRm9ySHRtbChjb250ZW50SXRlbUh0bWwsICcuc3RhdHMmJlRleHQnKTtcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gcGFyc2VEb20oY29udGVudEl0ZW1IdG1sLCAnYSYmaHJlZicpO1xuICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgcGljX3VybDogY292ZXIsXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6IGRlc2MsXG4gICAgICAgICAgICAgICAgICAgIHVybDogdXJsICsgcnVsZSxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBoZWFkZXJcbiAgICAgICAgICovXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgaGVhZGVyVGl0bGUgPSBnZXRCaWdUZXh0KGdldFN0cm9uZ1RleHQocGFyc2VEb21Gb3JIdG1sKG1haW5IdG1sLCAnaDEmJlRleHQnKSkpXG4gICAgICAgICAgICAgICAgKyAnICcgKyBnZXRTbWFsbFRleHQoZ2V0QWRkcmVzc1RhZyhNWV9VUkwsICdb5p+l55yL5Y6f5paHXScpKTtcbiAgICAgICAgICAgIGxldCB0YWdzID0gJyc7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBoZWFkZXJUYWdzSHRtbCA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLnJlY2lwZS10YWdzJiZIdG1sJyk7XG4gICAgICAgICAgICAgICAgbGV0IHRhZ3NIdG1sQXJyYXkgPSBwYXJzZURvbUZvckFycmF5KGhlYWRlclRhZ3NIdG1sLCAnLnJlY2lwZS1jYXRzJiZhJyk7XG4gICAgICAgICAgICAgICAgLy8gc2V0RXJyb3IoSlNPTi5zdHJpbmdpZnkodGFnc0h0bWxBcnJheSkpO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFnc0h0bWxBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdGFnSHRtbCA9IHRhZ3NIdG1sQXJyYXlbaV07XG4gICAgICAgICAgICAgICAgICAgIGxldCB0YWcgPSBnZXRDb2RlVGV4dChwYXJzZURvbUZvckh0bWwodGFnSHRtbCwgJ1RleHQnKSk7XG4gICAgICAgICAgICAgICAgICAgIHRhZ3MgKz0gdGFnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBzZXRFcnJvcih0YWdzKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxuICAgICAgICAgICAgdGFncyA9IHRhZ3MgPT09ICcnID8gJzxicj4nICsgZ2V0Q29kZVRleHQoJ+aaguaXoOWIhuexuycpIDogJzxicj4nICsgdGFncztcbiAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGhlYWRlclRpdGxlICsgdGFnc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZSdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IH1cblxuICAgICAgICAvKipcbiAgICAgICAgICog5o+P6L+wXG4gICAgICAgICAqL1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGF1dGhvciA9IGdldEF1dGhvclRleHQoJ+S9nOiAhe+8micgKyBwYXJzZURvbUZvckh0bWwobWFpbkh0bWwsICcuYXV0aG9yJiZUZXh0JykpO1xuICAgICAgICAgICAgbGV0IGRlc2MgPSAnJztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZGVzYyA9ICc8YnI+JyArIHBhcnNlRG9tRm9ySHRtbChtYWluSHRtbCwgJy5kZXNjJiZIdG1sJyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiDlsZXnpLpcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGV0IHNob3dWaWRlbyA9ICcnO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgc2hvd0h0bWwgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5yZWNpcGUtc2hvdyYmSHRtbCcpO1xuICAgICAgICAgICAgICAgIGxldCBpZnJhbWVWaWRlb1VybCA9IHBhcnNlRG9tRm9ySHRtbChzaG93SHRtbCwgJ2lmcmFtZSYmc3JjJyk7XG4gICAgICAgICAgICAgICAgLy8gc2V0RXJyb3IoaWZyYW1lVmlkZW9VcmwpO1xuICAgICAgICAgICAgICAgIGxldCBpZnJhbWVIdG1sID0gZmV0Y2goaWZyYW1lVmlkZW9VcmwsIHt9KTtcbiAgICAgICAgICAgICAgICAvLyBzZXRFcnJvcihpZnJhbWVIdG1sKTtcbiAgICAgICAgICAgICAgICBsZXQgdmlkZW9VcmwgPSBwYXJzZURvbUZvckh0bWwoaWZyYW1lSHRtbCwgJ3ZpZGVvJiZzcmMnKTtcbiAgICAgICAgICAgICAgICBzaG93VmlkZW8gPSBnZXRBZGRyZXNzVGFnKHZpZGVvVXJsLCAn5pys5biW5ZCr6KeG6aKR77yM54K55oiR5p+l55yL772eJyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cblxuICAgICAgICAgICAgbGV0IGluZ3MgPSAnJztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICog55So5paZXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgbGV0IGluZ3NIdG1sID0gcGFyc2VEb21Gb3JIdG1sKG1haW5IdG1sLCAnLmluZ3MmJkh0bWwnKTtcbiAgICAgICAgICAgICAgICBsZXQgaW5nc0h0bWxBcnJheSA9IHBhcnNlRG9tRm9yQXJyYXkoaW5nc0h0bWwsICd0YWJsZSYmdHInKTtcbiAgICAgICAgICAgICAgICAvLyBzZXRFcnJvcihKU09OLnN0cmluZ2lmeShpbmdzSHRtbEFycmF5KSk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbmdzSHRtbEFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpbmdIdG1sID0gaW5nc0h0bWxBcnJheVtpXTtcbiAgICAgICAgICAgICAgICAgICAgLzx0ZCBjbGFzcz1cIm5hbWVcIj4oW1xcc1xcU10qPyk8XFwvdGQ+Ly50ZXN0KGluZ0h0bWwpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaW5nTmFtZSA9IFJlZ0V4cC4kMTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZ05hbWUgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmdOYW1lID0gZ2V0Q29sb3JUZXh0KHBhcnNlRG9tRm9ySHRtbChpbmdOYW1lLCAnVGV4dCcpLCBpbmdOYW1lQ29sb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLzx0ZCBjbGFzcz1cInVuaXRcIj4oW1xcc1xcU10qPyk8XFwvdGQ+Ly50ZXN0KGluZ0h0bWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZ1VuaXQgPSBSZWdFeHAuJDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmdVbml0ID0gZ2V0Q29sb3JUZXh0KCgoaW5nVW5pdCA9PT0gaW5nTmFtZSkgPyAn5pyq55+lJyA6IGluZ1VuaXQpLCBpbmdVbml0Q29sb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZyA9IGluZ05hbWUgKyAnICcgKyBpbmdVbml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5nID0gaSA9PT0gKGluZ3NIdG1sQXJyYXkubGVuZ3RoIC0gMSkgPyBpbmcgOiBpbmcgKyAoaW5nc01vZGUgPT09IDEgPyAnPGJyPicgOiAn44CBJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmdzICs9IGluZ1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGluZ3MgPSAoZ2V0QmlnVGV4dChnZXRUaXRsZVRleHQoJ+eUqOaWmScpKSArICc8YnI+JykgKyBpbmdzO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyB9XG4gICAgICAgICAgICBkZXNjID0gc2hvd0Rlc2MgPT09IDEgPyBkZXNjIDogJyc7XG4gICAgICAgICAgICBpZiAobW9kZWxfbGluZV9oZWlnaHQgPiAwKSB7XG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGdldEJsb2NrcXVvdGVUZXh0KGF1dGhvciArIGRlc2MpICsgKHNob3dWaWRlbyA9PT0gJycgPyBnZXRHcmV5VGV4dChjb250ZW50VGlwcykgOiBzaG93VmlkZW8gKyAnPGJyPicpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IG1vZGVsX2xpbmVfaGVpZ2h0OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBpbmdzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IG1vZGVsX2xpbmVfaGVpZ2h0OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogZ2V0QmxvY2txdW90ZVRleHQoYXV0aG9yICsgZGVzYykgKyAoc2hvd1ZpZGVvID09PSAnJyA/ICcnIDogc2hvd1ZpZGVvICsgJzxicj48YnI+JykgKyBpbmdzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDmraPmlodcbiAgICAgICAgICovXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgc3RlcHNUaXRsZSA9IGdldEJpZ1RleHQoZ2V0VGl0bGVUZXh0KCcnICsgIHBhcnNlRG9tRm9ySHRtbChtYWluSHRtbCwgJyNzdGVwcyYmVGV4dCcpICsgJycpKTtcbiAgICAgICAgICAgIGxldCBzdGVwc0h0bWxBcnJheSA9IHBhcnNlRG9tRm9yQXJyYXkobWFpbkh0bWwsICcuc3RlcHMmJi5jb250YWluZXInKTtcbiAgICAgICAgICAgIGlmKG11bHRpU3RlcE1vZGVsICYmIG1vZGVsX2xpbmVfaGVpZ2h0ID4gMCkge1xuICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBzdGVwc1RpdGxlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgc3RlcHMgPSAnJztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RlcHNIdG1sQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgc3RlcCA9IHBhcnNlRG9tRm9ySHRtbChzdGVwc0h0bWxBcnJheVtpXSwgJy5jb250YWluZXImJkh0bWwnKTtcbiAgICAgICAgICAgICAgICBzdGVwID0gZ2V0U3Ryb25nVGV4dCgn5q2l6aqkJyArKGkgKyAxKSArICc8YnI+JylcbiAgICAgICAgICAgICAgICAgICAgKyBzdGVwXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvPFxcL3A+IDxpbWcgc3JjPS9nLCAnPGJyPjxpbWcgc3JjPScpXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZVdpdGhDYWxsYmFjaygvKDxpbWcgKHNyY3xkYXRhLXNyYyk9XCIoLio/KVwiKFtcXHNcXFNdKj8pPikvZywgXCI8aW1nIGRhdGEtdj5cIiwgaW1nVGFnUmVwbGFjZW1lbnQyKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoLyg8cCBjbGFzcz1cInRleHRcIiBzdHlsZT1cIi4qP1wiPil8KDxcXC9wPikvLCAnJyk7XG4gICAgICAgICAgICAgICAgaWYobXVsdGlTdGVwTW9kZWwgJiYgbW9kZWxfbGluZV9oZWlnaHQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogc3RlcFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0ZXBzICs9ICc8YnI+PGJyPicgKyBzdGVwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghKG11bHRpU3RlcE1vZGVsICYmIG1vZGVsX2xpbmVfaGVpZ2h0ID4gMCkpIHtcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogc3RlcHNUaXRsZSArIHN0ZXBzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgbW9kZWxfbGluZV9oZWlnaHQ7IGkrKykge1xuICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVGlwc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsZXQgdGlwcyA9ICcnO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgdGlwc0h0bWwgPSBwYXJzZURvbUZvckh0bWwobWFpbkh0bWwsICcudGlwLWNvbnRhaW5lciYmSHRtbCcpO1xuICAgICAgICAgICAgICAgIGxldCB0aXBzVGl0bGUgPSBnZXRCaWdUZXh0KGdldFRpdGxlVGV4dChwYXJzZURvbUZvckh0bWwodGlwc0h0bWwsICdoMiYmVGV4dCcpKSk7XG4gICAgICAgICAgICAgICAgdGlwc0NvbnRlbnQgPSAnPGJyPicgKyBwYXJzZURvbUZvckh0bWwodGlwc0h0bWwsICcudGlwJiZIdG1sJyk7XG4gICAgICAgICAgICAgICAgdGlwcyA9IGdldENvbG9yVGV4dCh0aXBzVGl0bGUgKyB0aXBzQ29udGVudCwgdGlwc0NvbG9yKTtcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGlwc1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBtb2RlbF9saW5lX2hlaWdodDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBmb290ZXJcbiAgICAgICAgICovXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgZm9vdGVySHRtbCA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLnJlY2lwZS1zdGF0cyYmSHRtbCcpO1xuICAgICAgICAgICAgbGV0IHRpbWUgPSBwYXJzZURvbUZvckh0bWwoZm9vdGVySHRtbCwgJy50aW1lJiZUZXh0Jyk7XG4gICAgICAgICAgICBsZXQgY29sbGVjdGlvbkNvdW50ID0gcGFyc2VEb21Gb3JIdG1sKGZvb3Rlckh0bWwsICcucHYmJlRleHQnKTtcbiAgICAgICAgICAgIGxldCBjb3B5cmlnaHQgPSBwYXJzZURvbUZvckh0bWwoZm9vdGVySHRtbCwgJy5jb3B5cmlnaHQmJlRleHQnKTtcbiAgICAgICAgICAgIGxldCBmb290ZXIgPSBnZXRTbWFsbFRleHQoZ2V0R3JleVRleHQodGltZSArICc8YnI+JyArIGNvbGxlY3Rpb25Db3VudCArICc8YnI+JyArIGNvcHlyaWdodCkpXG4gICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBmb290ZXJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IH1cblxuICAgICAgICAvKipcbiAgICAgICAgICog6K+E6K66XG4gICAgICAgICAqL1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGNvbW1lbnRIdG1sID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcucGFnZS1ib3R0b20tb3V0ZXImJi5wYWdlLWNvbnRhaW5lciYmSHRtbCcpO1xuICAgICAgICAgICAgbGV0IGNvbW1lbnRUaXRsZSA9IGdldEJpZ1RleHQoZ2V0VGl0bGVUZXh0KHBhcnNlRG9tRm9ySHRtbChjb21tZW50SHRtbCwgJ2gyJiZUZXh0JykpKTtcbiAgICAgICAgICAgIGxldCBjb21tZW50c0h0bWxBcnJheSA9IHBhcnNlRG9tRm9yQXJyYXkoY29tbWVudEh0bWwsICcucXVlc3Rpb24tbGlzdCYmLnJlY2lwZS1xdWVzaW9ucy1jb250ZW50Jyk7XG4gICAgICAgICAgICBpZiAoY29tbWVudHNIdG1sQXJyYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogY29tbWVudFRpdGxlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgY29tbWVudCA9ICcnO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21tZW50c0h0bWxBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBjb21tZW50c0Jsb2NrSHRtbEFycmF5ID0gcGFyc2VEb21Gb3JBcnJheShjb21tZW50c0h0bWxBcnJheVtpXSwgJ2xpJiYuYXZhdGFyLXJpZ2h0LTInKTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbW1lbnRzQmxvY2tIdG1sQXJyYXkubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlcGx5Q29tbWVudCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBsZXQgYXV0aG9yQ29tbWVudCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWVudHNCbG9ja0h0bWxBcnJheVtqXS5pbmRleE9mKCfotZ4nKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVwbGllciA9IGdldEF1dGhvclRleHQocGFyc2VEb21Gb3JIdG1sKGNvbW1lbnRzQmxvY2tIdG1sQXJyYXlbal0sICcuaW5mbyYmYSYmVGV4dCcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXBseV90aW1lID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoLyg8c3BhbiBjbGFzcz1cIm5vcm1hbC1mb250IGdyYXktZm9udCBhbGlnbi1iYXNlbGluZVwiPltcXHNcXFNdKj88XFwvc3Bhbj4pLy50ZXN0KGNvbW1lbnRzQmxvY2tIdG1sQXJyYXlbal0pID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbHlfdGltZSA9IGdldEdyZXlUZXh0KFJlZ0V4cC4kMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVwbHlfbWV0YSA9IGdldENvbW1lbnRNZXRhKCc8YnI+JyArIHJlcGxpZXIgKyByZXBseV90aW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXBseV9jb250ZW50ID0gcGFyc2VEb21Gb3JIdG1sKGNvbW1lbnRzQmxvY2tIdG1sQXJyYXlbal0sICcucmlnaHQtYm90dG9tJiZIdG1sJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBseUNvbW1lbnQgPSByZXBseV9jb250ZW50ICsgcmVwbHlfbWV0YTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWVudHNCbG9ja0h0bWxBcnJheVtqXS5pbmRleE9mKCfkvZzogIXlm57lpI0nKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhdXRob3IgPSBnZXRBdXRob3JUZXh0KCfkvZzogIXlm57lpI0nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvKDxzcGFuIGNsYXNzPVwibm9ybWFsLWZvbnQgZ3JheS1mb250IGFsaWduLWJhc2VsaW5lXCI+W1xcc1xcU10qPzxcXC9zcGFuPikvLnRlc3QoY29tbWVudHNCbG9ja0h0bWxBcnJheVtqXSkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSA9IGdldEdyZXlUZXh0KFJlZ0V4cC4kMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtZXRhID0gZ2V0Q29tbWVudE1ldGEoJzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsnICsgYXV0aG9yICsgdGltZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbW1lbnRDb250ZW50ID0gJzxzcGFuPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bhbj4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgcGFyc2VEb21Gb3JIdG1sKGNvbW1lbnRzQmxvY2tIdG1sQXJyYXlbal0sICcucmlnaHQtYm90dG9tJiZIdG1sJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yQ29tbWVudCA9IGNvbW1lbnRDb250ZW50ICsgbWV0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhdXRob3JDb21tZW50ID0gJzxicj4nICsgYXV0aG9yQ29tbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSByZXBseUNvbW1lbnQgKyBhdXRob3JDb21tZW50O1xuICAgICAgICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGNvbW1lbnQucmVwbGFjZSgvPGRpdiBjbGFzcz1cInJlY2lwZS1xdWVzdGlvbnMtZGlnZ1wiPi9nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZSdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkgeyB9XG4gICAgfVxufSBjYXRjaCAoZSkgeyAgfVxuXG5cbnJlcy5kYXRhID0gZDtcbnNldEhvbWVSZXN1bHQocmVzKTsiLCJzZGV0YWlsX2NvbF90eXBlIjoicmljaF90ZXh0Iiwic2RldGFpbF9maW5kX3J1bGUiOiIqIiwidWEiOiJwYyIsInByZVJ1bGUiOiIvKipcbiAqIOaYr+WQpuW8gOWQr+S8quW8guatpeWKoOi9veaooeW8jyAxL+W8gOWQryAwL+S4jeW8gOWQr1xuICpcbiAqIOazqOaEj++8muS6jOe6p+S8muWNoeWPr+S7peWwneivleW8gOWQr+ivpemAiemhue+8jOS9huWPr+iDveWvvOiHtOafkOS6m+WbvueJh+S4jeaYvuekulxuICovXG5sZXQgbXVsdGlTdGVwTW9kZWwgPSAwO1xuLy8g5piv5ZCm6ZqQ6JeP5Zu+54mHKOecgea1geaooeW8jykgMS/pmpDol48gMC/kuI3pmpDol49cbmxldCBoaWRlSW1nID0gMDtcbi8vIOWbvueJh+i0qOmHj++8jOm7mOiupCAzMDDvvIzmjqjojZAgNjAwIOaIliA4MDBcbmxldCBpbWdXaWR0aCA9IDYwMDtcbi8vIOaYr+WQpuaYvuekuueci+Wkp+WbvijpmLLmraLml6Dms5XliqDovb3lm77niYcpIDEv5pi+56S6IDAv5LiN5pi+56S6XG5sZXQgc2hvd0Z1bGxJbWdUaXBzID0gMTtcbi8vIOeUqOaIt+minOiJslxubGV0IHVzZXJDb2xvciA9IFwiIzI5NzlGRlwiO1xuLy8g5piv5ZCm5pi+56S66I+c55qE5o+P6L+wIDEv5pi+56S6IDAv5LiN5pi+56S6XG5sZXQgc2hvd0Rlc2MgPSAxO1xuLy8g55So5paZ5qih5Z2X5pi+56S65pa55byPIDEv5a6M5pW06KeG5Zu+IDAv57yp55Wl5qih5byPXG5sZXQgaW5nc01vZGUgPSAwO1xuLy8g55So5paZ5ZCN6aKc6ImyXG5sZXQgaW5nTmFtZUNvbG9yID0gXCIjNDZjMjAwXCI7XG4vLyDnlKjmlpnph4/popzoibJcbmxldCBpbmdVbml0Q29sb3IgPSBcIiM3MDZhNmJcIjtcbi8vIOWwj+i0tOWjq+minOiJslxubGV0IHRpcHNDb2xvciA9IFwiIzcwNmE2YlwiO1xuLy8g5qih5Z2X5LmL6Ze055qE6Ze06ZqUXG5sZXQgbW9kZWxfbGluZV9oZWlnaHQgPSAxO1xuLy8g5q2j5paH5o+Q56S6XG5sZXQgY29udGVudFRpcHMgPSAn5LiL5Y6o5oi/55qE5pe25YCZ5LiA5a6a6KaB5rOo5oSP5a6J5YWo5ZOm772eJyArICc8YnI+JztcblxucHV0VmFyMigneGlhY2h1X211bHRpU3RlcE1vZGVsJywgbXVsdGlTdGVwTW9kZWwudG9TdHJpbmcoKSk7XG5wdXRWYXIyKCd4aWFjaHVfaGlkZUltZycsIGhpZGVJbWcudG9TdHJpbmcoKSk7XG5wdXRWYXIyKCd4aWFjaHVfaW1nV2lkdGgnLCBpbWdXaWR0aC50b1N0cmluZygpKTtcbnB1dFZhcjIoJ3hpYWNodV9zaG93RnVsbEltZ1RpcHMnLCBzaG93RnVsbEltZ1RpcHMudG9TdHJpbmcoKSk7XG5wdXRWYXIyKCd4aWFjaHVfdXNlckNvbG9yJywgdXNlckNvbG9yKTtcbnB1dFZhcjIoJ3hpYWNodV9zaG93RGVzYycsIHNob3dEZXNjLnRvU3RyaW5nKCkpO1xucHV0VmFyMigneGlhY2h1X2luZ3NNb2RlJywgaW5nc01vZGUudG9TdHJpbmcoKSk7XG5wdXRWYXIyKCd4aWFjaHVfaW5nTmFtZUNvbG9yJywgaW5nTmFtZUNvbG9yKTtcbnB1dFZhcjIoJ3hpYWNodV9pbmdVbml0Q29sb3InLCBpbmdVbml0Q29sb3IpO1xucHV0VmFyMigneGlhY2h1X3RpcHNDb2xvcicsIHRpcHNDb2xvcik7XG5wdXRWYXIyKCd4aWFjaHVfbW9kZWxfbGluZV9oZWlnaHQnLCBtb2RlbF9saW5lX2hlaWdodC50b1N0cmluZygpKTtcbnB1dFZhcjIoJ3hpYWNodV9jb250ZW50VGlwcycsIGNvbnRlbnRUaXBzKTsifQ==
Add Comment
Please, Sign In to add comment