return ( <iframe style={{ width: "100%", height: "600px" }} src="data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sPgogICAgPGhlYWQ+CiAgICAgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgICAgICAgPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KICAgICAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20iIGNyb3Nzb3JpZ2luPgogICAgICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw1MDAiIHJlbD0ic3R5bGVzaGVldCI+CiAgICAgICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU1hdGVyaWFsK0ljb25zJmRpc3BsYXk9YmxvY2siIHJlbD0ic3R5bGVzaGVldCI+CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgICBib2R5IHsKICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIH0KICAgICAgICA8L3N0eWxlPgogICAgPC9oZWFkPgogICAgPGJvZHk+CiAgICAgICAgPGFwcC1yb290PjwvYXBwLXJvb3Q+CiAgICA8L2JvZHk+CiAgICA8c2NyaXB0IHR5cGU9ImltcG9ydG1hcCI+ewogICJpbXBvcnRzIjogewogICAgIkBjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBjb2RlbWlycm9yL2F1dG9jb21wbGV0ZUA2LjcuMS9kaXN0L2luZGV4LmpzIiwKICAgICJAY29kZW1pcnJvci9jb21tYW5kcyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBjb2RlbWlycm9yL2NvbW1hbmRzQDYuMi40L2Rpc3QvaW5kZXguanMiLAogICAgIkBjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdCI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdEA2LjEuOS9kaXN0L2luZGV4LmpzIiwKICAgICJAY29kZW1pcnJvci9sYW5nLWpzb24iOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAY29kZW1pcnJvci9sYW5nLWpzb25ANi4wLjEvZGlzdC9pbmRleC5qcyIsCiAgICAiQGNvZGVtaXJyb3IvbGFuZ3VhZ2UiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAY29kZW1pcnJvci9sYW5ndWFnZUA2LjcuMC9kaXN0L2luZGV4LmpzIiwKICAgICJAY29kZW1pcnJvci9zdGF0ZSI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBjb2RlbWlycm9yL3N0YXRlQDYuMi4xL2Rpc3QvaW5kZXguanMiLAogICAgIkBjb2RlbWlycm9yL3ZpZXciOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAY29kZW1pcnJvci92aWV3QDYuMTIuMC9kaXN0L2luZGV4LmpzIiwKICAgICJAbWF0ZXJpYWwvbXdjLWJ1dHRvbiI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9td2MtYnV0dG9uQDAuMjcuMC9td2MtYnV0dG9uLmpzIiwKICAgICJAbWF0ZXJpYWwvbXdjLWRpYWxvZyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9td2MtZGlhbG9nQDAuMjcuMC9td2MtZGlhbG9nLmpzIiwKICAgICJAbWF0ZXJpYWwvbXdjLWRyYXdlciI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9td2MtZHJhd2VyQDAuMjcuMC9td2MtZHJhd2VyLmpzIiwKICAgICJAbWF0ZXJpYWwvbXdjLWZhYiI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9td2MtZmFiQDAuMjcuMC9td2MtZmFiLmpzIiwKICAgICJAbWF0ZXJpYWwvbXdjLWljb24tYnV0dG9uIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QG1hdGVyaWFsL213Yy1pY29uLWJ1dHRvbkAwLjI3LjAvbXdjLWljb24tYnV0dG9uLmpzIiwKICAgICJAbWF0ZXJpYWwvbXdjLWxpbmVhci1wcm9ncmVzcyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9td2MtbGluZWFyLXByb2dyZXNzQDAuMjcuMC9td2MtbGluZWFyLXByb2dyZXNzLmpzIiwKICAgICJAbWF0ZXJpYWwvbXdjLWxpc3QiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvbXdjLWxpc3RAMC4yNy4wL213Yy1saXN0LmpzIiwKICAgICJAbWF0ZXJpYWwvbXdjLWxpc3QvbXdjLWxpc3QtaXRlbSI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9td2MtbGlzdEAwLjI3LjAvbXdjLWxpc3QtaXRlbS5qcyIsCiAgICAiQG1hdGVyaWFsL213Yy1zZWxlY3QiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvbXdjLXNlbGVjdEAwLjI3LjAvbXdjLXNlbGVjdC5qcyIsCiAgICAiQG1hdGVyaWFsL213Yy1zbmFja2JhciI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9td2Mtc25hY2tiYXJAMC4yNy4wL213Yy1zbmFja2Jhci5qcyIsCiAgICAiQG1hdGVyaWFsL213Yy10ZXh0ZmllbGQiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvbXdjLXRleHRmaWVsZEAwLjI3LjAvbXdjLXRleHRmaWVsZC5qcyIsCiAgICAiQG1hdGVyaWFsL213Yy10b3AtYXBwLWJhciI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9td2MtdG9wLWFwcC1iYXJAMC4yNy4wL213Yy10b3AtYXBwLWJhci5qcyIsCiAgICAiY29kZW1pcnJvciI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOmNvZGVtaXJyb3JANi4wLjEvZGlzdC9pbmRleC5qcyIKICB9LAogICJzY29wZXMiOiB7CiAgICAiaHR0cHM6Ly9nYS5qc3BtLmlvLyI6IHsKICAgICAgIkBjb2RlbWlycm9yL2xpbnQiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAY29kZW1pcnJvci9saW50QDYuMS4xL2Rpc3QvaW5kZXguanMiLAogICAgICAiQGNvZGVtaXJyb3Ivc2VhcmNoIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QGNvZGVtaXJyb3Ivc2VhcmNoQDYuMi4zL2Rpc3QvaW5kZXguanMiLAogICAgICAiQGxlemVyL2NvbW1vbiI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBsZXplci9jb21tb25AMS4wLjIvZGlzdC9pbmRleC5qcyIsCiAgICAgICJAbGV6ZXIvaGlnaGxpZ2h0IjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QGxlemVyL2hpZ2hsaWdodEAxLjEuMy9kaXN0L2luZGV4LmpzIiwKICAgICAgIkBsZXplci9qYXZhc2NyaXB0IjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QGxlemVyL2phdmFzY3JpcHRAMS40LjEvZGlzdC9pbmRleC5lcy5qcyIsCiAgICAgICJAbGV6ZXIvanNvbiI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBsZXplci9qc29uQDEuMC4wL2Rpc3QvaW5kZXguZXMuanMiLAogICAgICAiQGxlemVyL2xyIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QGxlemVyL2xyQDEuMy4zL2Rpc3QvaW5kZXguanMiLAogICAgICAiQGxpdC9yZWFjdGl2ZS1lbGVtZW50IjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QGxpdC9yZWFjdGl2ZS1lbGVtZW50QDEuNi4xL3JlYWN0aXZlLWVsZW1lbnQuanMiLAogICAgICAiQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QGxpdC9yZWFjdGl2ZS1lbGVtZW50QDEuNi4xL2RlY29yYXRvcnMvIiwKICAgICAgIkBtYXRlcmlhbC9hbmltYXRpb24vYW5pbWF0aW9uZnJhbWUiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvYW5pbWF0aW9uQDE0LjAuMC1jYW5hcnkuNTNiM2NhZDJmLjAvYW5pbWF0aW9uZnJhbWUuanMiLAogICAgICAiQG1hdGVyaWFsL2Jhc2UvZm91bmRhdGlvbiI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9iYXNlQDE0LjAuMC1jYW5hcnkuNTNiM2NhZDJmLjAvZm91bmRhdGlvbi5qcyIsCiAgICAgICJAbWF0ZXJpYWwvYmFzZS9mb3VuZGF0aW9uLmpzIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QG1hdGVyaWFsL2Jhc2VAMTQuMC4wLWNhbmFyeS41M2IzY2FkMmYuMC9mb3VuZGF0aW9uLmpzIiwKICAgICAgIkBtYXRlcmlhbC9kaWFsb2cvIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QG1hdGVyaWFsL2RpYWxvZ0AxNC4wLjAtY2FuYXJ5LjUzYjNjYWQyZi4wLyIsCiAgICAgICJAbWF0ZXJpYWwvZG9tLyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9kb21AMTQuMC4wLWNhbmFyeS41M2IzY2FkMmYuMC8iLAogICAgICAiQG1hdGVyaWFsL2RvbS9rZXlib2FyZCI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9kb21AMTQuMC4wLWNhbmFyeS41M2IzY2FkMmYuMC9rZXlib2FyZC5qcyIsCiAgICAgICJAbWF0ZXJpYWwvZHJhd2VyLyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9kcmF3ZXJAMTQuMC4wLWNhbmFyeS41M2IzY2FkMmYuMC8iLAogICAgICAiQG1hdGVyaWFsL2Zsb2F0aW5nLWxhYmVsL2ZvdW5kYXRpb24uanMiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvZmxvYXRpbmctbGFiZWxAMTQuMC4wLWNhbmFyeS41M2IzY2FkMmYuMC9mb3VuZGF0aW9uLmpzIiwKICAgICAgIkBtYXRlcmlhbC9saW5lLXJpcHBsZS9mb3VuZGF0aW9uLmpzIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QG1hdGVyaWFsL2xpbmUtcmlwcGxlQDE0LjAuMC1jYW5hcnkuNTNiM2NhZDJmLjAvZm91bmRhdGlvbi5qcyIsCiAgICAgICJAbWF0ZXJpYWwvbGlzdC8iOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvbGlzdEAxNC4wLjAtY2FuYXJ5LjUzYjNjYWQyZi4wLyIsCiAgICAgICJAbWF0ZXJpYWwvbGlzdC9jb25zdGFudHMiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvbGlzdEAxNC4wLjAtY2FuYXJ5LjUzYjNjYWQyZi4wL2NvbnN0YW50cy5qcyIsCiAgICAgICJAbWF0ZXJpYWwvbWVudS1zdXJmYWNlLyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9tZW51LXN1cmZhY2VAMTQuMC4wLWNhbmFyeS41M2IzY2FkMmYuMC8iLAogICAgICAiQG1hdGVyaWFsL21lbnUtc3VyZmFjZS9jb25zdGFudHMiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvbWVudS1zdXJmYWNlQDE0LjAuMC1jYW5hcnkuNTNiM2NhZDJmLjAvY29uc3RhbnRzLmpzIiwKICAgICAgIkBtYXRlcmlhbC9tZW51LXN1cmZhY2UvZm91bmRhdGlvbiI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9tZW51LXN1cmZhY2VAMTQuMC4wLWNhbmFyeS41M2IzY2FkMmYuMC9mb3VuZGF0aW9uLmpzIiwKICAgICAgIkBtYXRlcmlhbC9tZW51LyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9tZW51QDE0LjAuMC1jYW5hcnkuNTNiM2NhZDJmLjAvIiwKICAgICAgIkBtYXRlcmlhbC9td2MtYmFzZS8iOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvbXdjLWJhc2VAMC4yNy4wLyIsCiAgICAgICJAbWF0ZXJpYWwvbXdjLWZsb2F0aW5nLWxhYmVsL213Yy1mbG9hdGluZy1sYWJlbC1kaXJlY3RpdmUuanMiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvbXdjLWZsb2F0aW5nLWxhYmVsQDAuMjcuMC9td2MtZmxvYXRpbmctbGFiZWwtZGlyZWN0aXZlLmpzIiwKICAgICAgIkBtYXRlcmlhbC9td2MtaWNvbi9td2MtaWNvbi5qcyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9td2MtaWNvbkAwLjI3LjAvbXdjLWljb24uanMiLAogICAgICAiQG1hdGVyaWFsL213Yy1saW5lLXJpcHBsZS9td2MtbGluZS1yaXBwbGUtZGlyZWN0aXZlLmpzIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QG1hdGVyaWFsL213Yy1saW5lLXJpcHBsZUAwLjI3LjAvbXdjLWxpbmUtcmlwcGxlLWRpcmVjdGl2ZS5qcyIsCiAgICAgICJAbWF0ZXJpYWwvbXdjLWxpc3QvIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QG1hdGVyaWFsL213Yy1saXN0QDAuMjcuMC8iLAogICAgICAiQG1hdGVyaWFsL213Yy1tZW51L213Yy1tZW51LmpzIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QG1hdGVyaWFsL213Yy1tZW51QDAuMjcuMC9td2MtbWVudS5qcyIsCiAgICAgICJAbWF0ZXJpYWwvbXdjLW5vdGNoZWQtb3V0bGluZS9td2Mtbm90Y2hlZC1vdXRsaW5lLmpzIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QG1hdGVyaWFsL213Yy1ub3RjaGVkLW91dGxpbmVAMC4yNy4wL213Yy1ub3RjaGVkLW91dGxpbmUuanMiLAogICAgICAiQG1hdGVyaWFsL213Yy1yaXBwbGUvIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QG1hdGVyaWFsL213Yy1yaXBwbGVAMC4yNy4wLyIsCiAgICAgICJAbWF0ZXJpYWwvbm90Y2hlZC1vdXRsaW5lL2ZvdW5kYXRpb24uanMiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvbm90Y2hlZC1vdXRsaW5lQDE0LjAuMC1jYW5hcnkuNTNiM2NhZDJmLjAvZm91bmRhdGlvbi5qcyIsCiAgICAgICJAbWF0ZXJpYWwvcmlwcGxlL2ZvdW5kYXRpb24uanMiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvcmlwcGxlQDE0LjAuMC1jYW5hcnkuNTNiM2NhZDJmLjAvZm91bmRhdGlvbi5qcyIsCiAgICAgICJAbWF0ZXJpYWwvc2VsZWN0L2ZvdW5kYXRpb24uanMiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpAbWF0ZXJpYWwvc2VsZWN0QDE0LjAuMC1jYW5hcnkuNTNiM2NhZDJmLjAvZm91bmRhdGlvbi5qcyIsCiAgICAgICJAbWF0ZXJpYWwvc25hY2tiYXIvZm91bmRhdGlvbi5qcyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC9zbmFja2JhckAxNC4wLjAtY2FuYXJ5LjUzYjNjYWQyZi4wL2ZvdW5kYXRpb24uanMiLAogICAgICAiQG1hdGVyaWFsL3RleHRmaWVsZC9mb3VuZGF0aW9uLmpzIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06QG1hdGVyaWFsL3RleHRmaWVsZEAxNC4wLjAtY2FuYXJ5LjUzYjNjYWQyZi4wL2ZvdW5kYXRpb24uanMiLAogICAgICAiQG1hdGVyaWFsL3RvcC1hcHAtYmFyLyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOkBtYXRlcmlhbC90b3AtYXBwLWJhckAxNC4wLjAtY2FuYXJ5LjUzYjNjYWQyZi4wLyIsCiAgICAgICJibG9ja2luZy1lbGVtZW50cyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOmJsb2NraW5nLWVsZW1lbnRzQDAuMS4xL2Rpc3QvYmxvY2tpbmctZWxlbWVudHMuanMiLAogICAgICAiY3JlbHQiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpjcmVsdEAxLjAuNS9pbmRleC5lcy5qcyIsCiAgICAgICJsaXQiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpsaXRAMi42LjEvaW5kZXguanMiLAogICAgICAibGl0LWVsZW1lbnQvbGl0LWVsZW1lbnQuanMiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpsaXQtZWxlbWVudEAzLjIuMi9saXQtZWxlbWVudC5qcyIsCiAgICAgICJsaXQtaHRtbCI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOmxpdC1odG1sQDIuNi4xL2xpdC1odG1sLmpzIiwKICAgICAgImxpdC1odG1sLyI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOmxpdC1odG1sQDIuNi4xLyIsCiAgICAgICJsaXQvIjogImh0dHBzOi8vZ2EuanNwbS5pby9ucG06bGl0QDIuNi4xLyIsCiAgICAgICJzdHlsZS1tb2QiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTpzdHlsZS1tb2RANC4wLjAvc3JjL3N0eWxlLW1vZC5qcyIsCiAgICAgICJ0c2xpYiI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOnRzbGliQDIuNS4wL3RzbGliLmVzNi5qcyIsCiAgICAgICJ3M2Mta2V5bmFtZSI6ICJodHRwczovL2dhLmpzcG0uaW8vbnBtOnczYy1rZXluYW1lQDIuMi42L2luZGV4LmVzLmpzIiwKICAgICAgIndpY2ctaW5lcnQiOiAiaHR0cHM6Ly9nYS5qc3BtLmlvL25wbTp3aWNnLWluZXJ0QDMuMS4yL2Rpc3QvaW5lcnQuZXNtLmpzIgogICAgfQogIH0KfTwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPmltcG9ydCAnQG1hdGVyaWFsL213Yy10b3AtYXBwLWJhcic7CmltcG9ydCAnQG1hdGVyaWFsL213Yy1pY29uLWJ1dHRvbic7CmltcG9ydCAnQG1hdGVyaWFsL213Yy1idXR0b24nOwppbXBvcnQgJ0BtYXRlcmlhbC9td2MtZGlhbG9nJzsKaW1wb3J0ICdAbWF0ZXJpYWwvbXdjLWRyYXdlcic7CmltcG9ydCAnQG1hdGVyaWFsL213Yy1saXN0JzsKaW1wb3J0ICdAbWF0ZXJpYWwvbXdjLXRleHRmaWVsZCc7CmltcG9ydCAnQG1hdGVyaWFsL213Yy1zZWxlY3QnOwppbXBvcnQgJ0BtYXRlcmlhbC9td2Mtc25hY2tiYXInOwppbXBvcnQgJy4vY29kZS1lZGl0b3IvY29kZS1wYWdlLmNvbXBvbmVudC5qcyc7CmltcG9ydCAnLi9jYWxsY29udHJhY3QvY2FsbGNvbnRyYWN0LXBhZ2UuY29tcG9uZW50LmpzJzsKaW1wb3J0ICcuL25lYXJmcy9uZWFyZnMtcGFnZS5jb21wb25lbnQuanMnOwppbXBvcnQgY3NzIGZyb20gJy4vYXBwLmNvbXBvbmVudC5jc3MuanMnOwppbXBvcnQgaHRtbCBmcm9tICcuL2FwcC5jb21wb25lbnQuaHRtbC5qcyc7CgppbXBvcnQgeyBzZXRBcHBDb21wb25lbnQsIHRvZ2dsZUluZGV0ZXJtaW5hdGVQcm9ncmVzcyB9IGZyb20gJy4vY29tbW9uL3Byb2dyZXNzaW5kaWNhdG9yLmpzJzsKaW1wb3J0IHsgZ2V0TmVhckNvbmZpZywgY3JlYXRlV2FsbGV0Q29ubmVjdGlvbiwgY2hlY2tTaWduZWRpbiwgbG9nb3V0IH0gZnJvbSAnLi9uZWFyL25lYXIuanMnOwoKSFRNTEVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFN0eWxlU2hlZXQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICBjb25zdCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKICAgIGxpbmtFbGVtZW50LnJlbCA9ICdzdHlsZXNoZWV0JzsKICAgIGxpbmtFbGVtZW50LmhyZWYgPSB1cmw7CiAgICB0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQobGlua0VsZW1lbnQpOwp9OwoKY2xhc3MgQXBwQ29tcG9uZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTsKICAgICAgICB0aGlzLnJlYWR5UHJvbWlzZSA9IHRoaXMubG9hZEhUTUwoKTsKICAgIH0KCiAgICBhc3luYyBsb2FkSFRNTCgpIHsKICAgICAgICB0aGlzLnNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gYDxzdHlsZT4ke2Nzc308L3N0eWxlPiR7aHRtbH1gOwogICAgICAgIHNldEFwcENvbXBvbmVudCh0aGlzKTsKICAgICAgICB0b2dnbGVJbmRldGVybWluYXRlUHJvZ3Jlc3ModHJ1ZSk7CiAgICAgICAgY29uc3QgZHJhd2VyID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ213Yy1kcmF3ZXInKTsKICAgICAgICB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3RvZ2dsZURyYXdlckJ1dHRvbicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gewogICAgICAgICAgICBkcmF3ZXIub3BlbiA9ICFkcmF3ZXIub3BlbjsKICAgICAgICB9KTsKICAgICAgICBjb25zdCB3aWR0aG1hdGNoZXIgPSB3aW5kb3cubWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNzAwcHgpIik7CiAgICAgICAgd2lkdGhtYXRjaGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGUgPT4gewogICAgICAgICAgICBpZiAoZS5tYXRjaGVzKSB7CiAgICAgICAgICAgICAgICBkcmF3ZXIudHlwZSA9ICdtb2RhbCc7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkcmF3ZXIudHlwZSA9ICdkaXNtaXNzaWJsZSc7CiAgICAgICAgICAgICAgICBkcmF3ZXIub3BlbiA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBpZiAoIXdpZHRobWF0Y2hlci5tYXRjaGVzKSB7CiAgICAgICAgICAgIGRyYXdlci50eXBlID0gJ2Rpc21pc3NpYmxlJzsKICAgICAgICAgICAgZHJhd2VyLm9wZW4gPSB0cnVlOwogICAgICAgIH0KICAgICAgICBjb25zdCB3YWxsZXRDb25uZWN0aW9uID0gYXdhaXQgY3JlYXRlV2FsbGV0Q29ubmVjdGlvbigpOwogICAgICAgIGF3YWl0IHdhbGxldENvbm5lY3Rpb24uaXNTaWduZWRJbkFzeW5jKCk7CgogICAgICAgIGNvbnN0IGFjY291bnRJZCA9IHdhbGxldENvbm5lY3Rpb24uYWNjb3VudCgpLmFjY291bnRJZDsKICAgICAgICBjb25zdCBsb2dnZWRJblVzZXJTcGFuID0gdGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdsb2dnZWRpbnVzZXJzcGFuJyk7CiAgICAgICAgY29uc3QgbG9nb3V0TWVudUl0ZW1UZW1wbGF0ZSA9IHRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnbG9nb3V0LW1lbnVpdGVtLXRlbXBsYXRlJyk7CiAgICAgICAgY29uc3QgbG9naW5NZW51SXRlbVRlbXBsYXRlID0gdGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdsb2dpbi1tZW51aXRlbS10ZW1wbGF0ZScpOwogICAgICAgIGNvbnN0IGxlZnRtZW51ID0gdGhpcy5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdsZWZ0bWVudScpOwoKICAgICAgICBjb25zdCBzaG93Tm90TG9nZ2VkSW4gPSAoKSA9PiB7CiAgICAgICAgICAgIGxvZ2dlZEluVXNlclNwYW4uaW5uZXJIVE1MID0gJyc7CiAgICAgICAgICAgIGNvbnN0IGxvZ2luTWVudUl0ZW0gPSBsZWZ0bWVudS5hcHBlbmRDaGlsZChsb2dpbk1lbnVJdGVtVGVtcGxhdGUuY29udGVudC5maXJzdEVsZW1lbnRDaGlsZC5jbG9uZU5vZGUodHJ1ZSkpOwogICAgICAgICAgICBsb2dpbk1lbnVJdGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gY2hlY2tTaWduZWRpbigpKTsKICAgICAgICB9OwogICAgICAgIGlmIChhY2NvdW50SWQpIHsKICAgICAgICAgICAgbG9nZ2VkSW5Vc2VyU3Bhbi5pbm5lckhUTUwgPQogICAgICAgICAgICAgICAgYCR7YWNjb3VudElkID8/ICcnfSBAICR7Z2V0TmVhckNvbmZpZygpLmNvbnRyYWN0TmFtZX1gOwogICAgICAgICAgICBsb2dvdXRNZW51SXRlbVRlbXBsYXRlLmNvbnRlbnQuY2xvbmVOb2RlKHRydWUpCiAgICAgICAgICAgIGNvbnN0IGxvZ291dE1lbnVJdGVtID0gbGVmdG1lbnUuYXBwZW5kQ2hpbGQobG9nb3V0TWVudUl0ZW1UZW1wbGF0ZS5jb250ZW50LmZpcnN0RWxlbWVudENoaWxkLmNsb25lTm9kZSh0cnVlKSk7CiAgICAgICAgICAgIGxvZ291dE1lbnVJdGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgICAgbG9nb3V0TWVudUl0ZW0ucmVtb3ZlKCk7CiAgICAgICAgICAgICAgICBzaG93Tm90TG9nZ2VkSW4oKTsKICAgICAgICAgICAgICAgIGF3YWl0IGxvZ291dCgpOwogICAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzaG93Tm90TG9nZ2VkSW4oKTsKICAgICAgICB9CgogICAgICAgIGNvbnN0IG1haW5Db250YWluZXIgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI21haW5Db250YWluZXInKQogICAgICAgIHdpbmRvdy5nb1RvUGFnZSA9IChwYWdlKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHBhZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgJHtwYWdlfS1wYWdlYCk7CiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBgLyR7cGFnZX1gOwogICAgICAgICAgICBpZiAobG9jYXRpb24ucGF0aG5hbWUgIT0gcGF0aCB8fCBsb2NhdGlvbi5zZWFyY2guaW5kZXhPZignP2FjY291bnRfaWQnKSA9PSAwKSB7CiAgICAgICAgICAgICAgICBoaXN0b3J5LnB1c2hTdGF0ZSh7fSwgbnVsbCwgcGF0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbWFpbkNvbnRhaW5lci5yZXBsYWNlQ2hpbGRyZW4ocGFnZUVsZW1lbnQpOwogICAgICAgICAgICBpZiAod2lkdGhtYXRjaGVyLm1hdGNoZXMpIHsKICAgICAgICAgICAgICAgIGRyYXdlci5vcGVuID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGxvY2F0aW9uLnBhdGhuYW1lLmxlbmd0aCA+IDEpIHsKICAgICAgICAgICAgZ29Ub1BhZ2UobG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDEpKTsKICAgICAgICB9CiAgICAgICAgaWYgKGxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCd0cmFuc2FjdGlvbkhhc2hlcz0nKSA+IDApIHsKICAgICAgICAgICAgZ29Ub1BhZ2UoJ2NhbGxjb250cmFjdCcpOwogICAgICAgICAgICB0aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ2NhbGxjb250cmFjdC1tZW51aXRlbScpLnNlbGVjdGVkID0gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIHRvZ2dsZUluZGV0ZXJtaW5hdGVQcm9ncmVzcyhmYWxzZSk7CiAgICB9Cn0KCmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnYXBwLXJvb3QnLCBBcHBDb21wb25lbnQpOwoKY29uc3QgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyID0gYXN5bmMgKCkgPT4gewogICAgaWYgKCJzZXJ2aWNlV29ya2VyIiBpbiBuYXZpZ2F0b3IpIHsKICAgICAgICBjb25zdCBzZXJ2aWNld29ya2Vyc2NvcGUgPSBpbXBvcnQubWV0YS51cmwuc3Vic3RyaW5nKDAsIGltcG9ydC5tZXRhLnVybC5sYXN0SW5kZXhPZignLycpICsgMSk7CiAgICAgICAgY29uc29sZS5sb2coJ3NlcnZpY2V3b3JrZXJzY29wZScsIHNlcnZpY2V3b3JrZXJzY29wZSk7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9zZXJ2aWNld29ya2VyLmpzIiwgewogICAgICAgICAgICAgICAgc2NvcGU6IHNlcnZpY2V3b3JrZXJzY29wZSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHJlZ2lzdHJhdGlvbi5vbnVwZGF0ZWZvdW5kID0gKCkgPT4gewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3VwZGF0ZSBhdmFpbGFibGUnKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2VydmljZSB3b3JrZXIgaW5zdGFsbGluZyIpOwogICAgICAgICAgICB9IGVsc2UgaWYgKHJlZ2lzdHJhdGlvbi53YWl0aW5nKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2VydmljZSB3b3JrZXIgaW5zdGFsbGVkIik7CiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVnaXN0cmF0aW9uLmFjdGl2ZSkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlNlcnZpY2Ugd29ya2VyIGFjdGl2ZSIpOwogICAgICAgICAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOwogICAgICAgICAgICB9CgogICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCAke2Vycm9yfWApOwogICAgICAgIH0KICAgIH0KfTsKcmVnaXN0ZXJTZXJ2aWNlV29ya2VyKCk7PC9zY3JpcHQ+CjwvaHRtbD4K" ></iframe> );