TTO-Timer
6.0.0
TTO GmbH
http://tto.de
GNU GENERAL PUBLIC LICENSE Version 2, June 1991
Migrated to v6.x
Added default fallback time of 15 (minutes) to the timer
Added Hungarian translation and improved formatting, thanks to Balázs Úr
fixed check of current template
Fixed chrome bug: background tab sleeps javascript execution
Bugfixes and usage of hook instead of hardcoded template-modifications
Used template hooks instead of hardcoded customization
Migrated to custom repo
Bugfix
Migrated to 5.x
Fixed js lib beeing pulled from remote server
Initial Release
Initial Release
Shows the time spent on AgentTicketZoom
Zeigt die Zeit an, die auf ein TicketZoom verbracht wird.
Megjeleníti az ügyintézői jegynagyításon eltöltött időt.
5.x
6.x
<br>
<strong> Welcome! </strong><br>
Contains:<br>
- A timer on AgentTicketZoom<br>
- A module to prefill the timeunits field if it is present<br>
- Clicking on the timer opens a note with the current time prefilled<br>
<br>
<br>
<strong> Willkommen! </strong><br>
Enthält:
- Einen Timer im AgentTicketZoom<br>
- Ein Modul um die TimeUnits Felder mit einem konfigurierbaren Zeitwert vorzubefüllen<br>
- Übergabe des aktuellen Timer Wertes auf AgentTicketNote (per Klick auf den Timer)<br>
<br>
<br>
<strong>Üdvözöljük!</strong><br>
Ez a csomag a következőket tartalmazza:<br>
- Egy időmérőt az ügyintézői jegynagyításon<br>
- Egy modult az időegységek mező előre kitöltéséhez, ha az jelen van<br>
- Az időmérőre kattintva megnyit egy jegyzetet, előre kitöltve az aktuális idővel<br>
<br>
2018-01-04 09:37:20
10.17.1.83
cGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VFRPOjpEZWZhdWx0VGltZVVuaXRzRmlsdGVyOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIEdldCBuZWVkZWQgT2JqZWN0cwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgICMgR2V0IGR5bmFtaWMgdmFsdWUKICAgIG15ICRUaW1lclRpbWVVbml0cyA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICJUaW1lclRpbWVVbml0cyIgKTsKCiAgICAjIEdldCB2YWx1ZSBmcm9tIHRpbWVyIHBhcmFtIG9yIGNvbmZpZwogICAgbXkgJERlZmF1bHRfVGltZVVuaXRzID0gJFRpbWVyVGltZVVuaXRzIHx8ICRDb25maWdPYmplY3QtPkdldCgnVFRPOjpPdXRwdXRGaWx0ZXI6OkNvbmZpZzo6RGVmYXVsdFRpbWVVbml0c1ZhbHVlJykgfHwgJzE1JzsKCiAgICAjIG1hbmlwdWxhdGUgSFRNTCBjb250ZW50CiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU09uRG9jdW1lbnRDb21wbGV0ZSAoIENvZGUgPT4gPDwiRU9GIik7CiAgICAgICAgaWYgKCdUaW1lVW5pdHMnKSB7CiAgICAgICAgICAgXCQoJyNUaW1lVW5pdHMnKS52YWwoIFwiJERlZmF1bHRfVGltZVVuaXRzXCIgKTsKICAgICAgICB9CkVPRgoKICAgIHJldHVybiAkUGFyYW17RGF0YX07Cgp9CgoxOwo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAxNi0yMDE4LCBUVE8gR21iSAojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6VGlja2V0Wm9vbTo6VFRPVGltZXI7Cgp1c2UgcGFyZW50ICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6QmFzZSc7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNIYXNoUmVmV2l0aERhdGEpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FnZW50VGlja2V0Wm9vbS9UVE9UaW1lcicsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsgJVBhcmFtIH0sCiAgICApOwoKICAgIHJldHVybiB7CiAgICAgICAgT3V0cHV0ID0+ICRPdXRwdXQsCiAgICB9Owp9CgoxOwo=
ICAgICAgICAgICAgPGxpbmsgaHJlZj0iWyUgQ29uZmlnKCJGcm9udGVuZDo6V2ViUGF0aCIpICVdc2tpbnMvQWdlbnQvdHRvLXNsaW0vY3NzL0NvcmUuVGltZXIuY3NzIiByZWw9InN0eWxlc2hlZXQiIC8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJTaG93IG9yIGhpZGUgdGhlIGNvbnRlbnQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlRpbWUgc3BlbnQgem9vbWVkIG9uIHRpY2tldCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGlja2V0Tm90ZTsiIGlkPSJUaW1lckxpbmsiIGNsYXNzPSJBc1BvcHVwIFBvcHVwVHlwZV9UaWNrZXRBY3Rpb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImNsb2NrIiBjbGFzcz0ibGlnaHQiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNwbGF5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZ2l0cyI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8c2NyaXB0IHNyYz0iWyUgQ29uZmlnKCJGcm9udGVuZDo6V2ViUGF0aCIpICVdanMvdGhpcmRwYXJ0eS9tb21lbnRqcy0yLjE4LjEvbW9tZW50Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJbJSBDb25maWcoIkZyb250ZW5kOjpXZWJQYXRoIikgJV1qcy90aGlyZHBhcnR5L2pxdWVyeS0zLjIuMS9qcXVlcnkuanMiPjwvc2NyaXB0PgogICAgICAgICAgICA8c2NyaXB0IHNyYz0iWyUgQ29uZmlnKCJGcm9udGVuZDo6V2ViUGF0aCIpICVdanMvdGhpcmRwYXJ0eS9UVE8vQ29yZS5UaW1lci5qcyI+PC9zY3JpcHQ+Cg==
LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCglUaGUgY2xvY2tzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNjbG9ja3sKCXdpZHRoOjE1MHB4OwoJcGFkZGluZzoxMHB4OwoJbWFyZ2luOjJweCBhdXRvIDJweDsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgojY2xvY2s6YWZ0ZXJ7Cgljb250ZW50OicnOwoJcG9zaXRpb246YWJzb2x1dGU7Cgl3aWR0aDoxMjBweDsKCWhlaWdodDoxMHB4OwoJYm9yZGVyLXJhZGl1czoxMDAlOwoJbGVmdDo1MCU7Ci8qCW1hcmdpbi1sZWZ0Oi0yMDBweDsgKi8KCWJvdHRvbToycHg7Cgl6LWluZGV4Oi0xOwp9CgoKI2Nsb2NrIC5kaXNwbGF5ewoJdGV4dC1hbGlnbjpjZW50ZXI7CglwYWRkaW5nOiA0cHggMXB4IDFweDsKCWJvcmRlci1yYWRpdXM6NnB4OwoJcG9zaXRpb246cmVsYXRpdmU7CgloZWlnaHQ6IDMycHg7Cn0KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJTGlnaHQgY29sb3IgdGhlbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKCiNjbG9jay5saWdodHsKCWJhY2tncm91bmQtY29sb3I6I2YzZjNmMzsKCWNvbG9yOiMyNzJlMzg7Cn0KCiNjbG9jay5saWdodDphZnRlcnsKCWJveC1zaGFkb3c6MCA0cHggMTBweCByZ2JhKDAsMCwwLDAuMTUpOwp9CgojY2xvY2subGlnaHQgLmRpZ2l0cyBkaXYgc3BhbnsKCWJhY2tncm91bmQtY29sb3I6IzI3MmUzODsKCWJvcmRlci1jb2xvcjojMjcyZTM4Owp9CgojY2xvY2subGlnaHQgLmRpZ2l0cyBkaXYuZG90czpiZWZvcmUsCiNjbG9jay5saWdodCAuZGlnaXRzIGRpdi5kb3RzOmFmdGVyewoJYmFja2dyb3VuZC1jb2xvcjojMjcyZTM4Owp9CgojY2xvY2subGlnaHQgLmFsYXJtewoJYmFja2dyb3VuZDp1cmwoJy4uL2ltZy9hbGFybV9saWdodC5qcGcnKTsKfQoKI2Nsb2NrLmxpZ2h0IC5kaXNwbGF5ewoJYmFja2dyb3VuZC1jb2xvcjojZGRkZGRkOwoJYm94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwwLjA4KSBpbnNldCwgMCAxcHggMXB4ICNmYWZhZmE7Cn0KCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJVGhlIERpZ2l0cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKI2Nsb2NrIC5kaWdpdHMgZGl2ewoJdGV4dC1hbGlnbjpsZWZ0OwoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDogMTRweDsKCWhlaWdodDoyNXB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CgltYXJnaW46MCAycHg7Cn0KCiNjbG9jayAuZGlnaXRzIGRpdiBzcGFuewoJb3BhY2l0eTowOwoJcG9zaXRpb246YWJzb2x1dGU7CgoJLXdlYmtpdC10cmFuc2l0aW9uOjAuMjVzOwoJLW1vei10cmFuc2l0aW9uOjAuMjVzOwoJdHJhbnNpdGlvbjowLjI1czsKfQoKI2Nsb2NrIC5kaWdpdHMgZGl2IHNwYW46YmVmb3JlLAojY2xvY2sgLmRpZ2l0cyBkaXYgc3BhbjphZnRlcnsKCWNvbnRlbnQ6Jyc7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXdpZHRoOjA7CgloZWlnaHQ6MDsKCWJvcmRlcjoyLjVweCBzb2xpZCB0cmFuc3BhcmVudDsKfQoKI2Nsb2NrIC5kaWdpdHMgLmQxewkJCWhlaWdodDoyLjVweDt3aWR0aDo4cHg7dG9wOjA7bGVmdDozcHg7fQojY2xvY2sgLmRpZ2l0cyAuZDE6YmVmb3Jlewlib3JkZXItd2lkdGg6MCAyLjVweCAyLjVweCAwO2JvcmRlci1yaWdodC1jb2xvcjppbmhlcml0O2xlZnQ6LTIuNXB4O30KI2Nsb2NrIC5kaWdpdHMgLmQxOmFmdGVyewlib3JkZXItd2lkdGg6MCAwIDIuNXB4IDIuNXB4O2JvcmRlci1sZWZ0LWNvbG9yOmluaGVyaXQ7cmlnaHQ6LTIuNXB4O30KCiNjbG9jayAuZGlnaXRzIC5kMnsJCQloZWlnaHQ6Mi41cHg7d2lkdGg6OHB4O3RvcDoxMnB4O2xlZnQ6M3B4O30KI2Nsb2NrIC5kaWdpdHMgLmQyOmJlZm9yZXsJYm9yZGVyLXdpZHRoOjEuNXB4IDJweCAxcHg7Ym9yZGVyLXJpZ2h0LWNvbG9yOmluaGVyaXQ7bGVmdDotNHB4O30KI2Nsb2NrIC5kaWdpdHMgLmQyOmFmdGVyewlib3JkZXItd2lkdGg6MS41cHggMnB4IDFweDtib3JkZXItbGVmdC1jb2xvcjppbmhlcml0O3JpZ2h0Oi00cHg7fQoKI2Nsb2NrIC5kaWdpdHMgLmQzewkJCWhlaWdodDoyLjVweDt3aWR0aDo4cHg7dG9wOjI0cHg7bGVmdDozcHg7fQojY2xvY2sgLmRpZ2l0cyAuZDM6YmVmb3Jlewlib3JkZXItd2lkdGg6Mi41cHggMi41cHggMCAwO2JvcmRlci1yaWdodC1jb2xvcjppbmhlcml0O2xlZnQ6LTIuNXB4O30KI2Nsb2NrIC5kaWdpdHMgLmQzOmFmdGVyewlib3JkZXItd2lkdGg6Mi41cHggMCAwIDIuNXB4O2JvcmRlci1sZWZ0LWNvbG9yOmluaGVyaXQ7cmlnaHQ6LTIuNXB4O30KCiNjbG9jayAuZGlnaXRzIC5kNHsJCQl3aWR0aDoyLjVweDtoZWlnaHQ6N3B4O3RvcDozLjVweDtsZWZ0OjA7fQojY2xvY2sgLmRpZ2l0cyAuZDQ6YmVmb3Jlewlib3JkZXItd2lkdGg6MCAyLjVweCAyLjVweCAwO2JvcmRlci1ib3R0b20tY29sb3I6aW5oZXJpdDt0b3A6LTIuNXB4O30KI2Nsb2NrIC5kaWdpdHMgLmQ0OmFmdGVyewlib3JkZXItd2lkdGg6MCAwIDIuNXB4IDIuNXB4O2JvcmRlci1sZWZ0LWNvbG9yOmluaGVyaXQ7Ym90dG9tOi0yLjVweDt9CgojY2xvY2sgLmRpZ2l0cyAuZDV7CQkJd2lkdGg6Mi41cHg7aGVpZ2h0OjdweDt0b3A6My41cHg7cmlnaHQ6MDt9CiNjbG9jayAuZGlnaXRzIC5kNTpiZWZvcmV7CWJvcmRlci13aWR0aDowIDAgMi41cHggMi41cHg7Ym9yZGVyLWJvdHRvbS1jb2xvcjppbmhlcml0O3RvcDotMi41cHg7fQojY2xvY2sgLmRpZ2l0cyAuZDU6YWZ0ZXJ7CWJvcmRlci13aWR0aDoyLjVweCAwIDAgMi41cHg7Ym9yZGVyLXRvcC1jb2xvcjppbmhlcml0O2JvdHRvbTotMi41cHg7fQoKI2Nsb2NrIC5kaWdpdHMgLmQ2ewkJCXdpZHRoOjIuNXB4O2hlaWdodDo3cHg7dG9wOjE2cHg7bGVmdDowO30KI2Nsb2NrIC5kaWdpdHMgLmQ2OmJlZm9yZXsJYm9yZGVyLXdpZHRoOjAgMi41cHggMi41cHggMDtib3JkZXItYm90dG9tLWNvbG9yOmluaGVyaXQ7dG9wOi0yLjVweDt9CiNjbG9jayAuZGlnaXRzIC5kNjphZnRlcnsJYm9yZGVyLXdpZHRoOjAgMCAyLjVweCAyLjVweDtib3JkZXItbGVmdC1jb2xvcjppbmhlcml0O2JvdHRvbTotMi41cHg7fQoKI2Nsb2NrIC5kaWdpdHMgLmQ3ewkJCXdpZHRoOjIuNXB4O2hlaWdodDo3cHg7dG9wOjE2cHg7cmlnaHQ6MDt9CiNjbG9jayAuZGlnaXRzIC5kNzpiZWZvcmV7CWJvcmRlci13aWR0aDowIDAgMi41cHggMi41cHg7Ym9yZGVyLWJvdHRvbS1jb2xvcjppbmhlcml0O3RvcDotMi41cHg7fQojY2xvY2sgLmRpZ2l0cyAuZDc6YWZ0ZXJ7CWJvcmRlci13aWR0aDoyLjVweCAwIDAgMi41cHg7Ym9yZGVyLXRvcC1jb2xvcjppbmhlcml0O2JvdHRvbTotMi41cHg7fQoKLyogMSAqLwoKI2Nsb2NrIC5kaWdpdHMgZGl2Lm9uZSAuZDUsCiNjbG9jayAuZGlnaXRzIGRpdi5vbmUgLmQ3ewoJb3BhY2l0eToxOwp9CgovKiAyICovCgojY2xvY2sgLmRpZ2l0cyBkaXYudHdvIC5kMSwKI2Nsb2NrIC5kaWdpdHMgZGl2LnR3byAuZDUsCiNjbG9jayAuZGlnaXRzIGRpdi50d28gLmQyLAojY2xvY2sgLmRpZ2l0cyBkaXYudHdvIC5kNiwKI2Nsb2NrIC5kaWdpdHMgZGl2LnR3byAuZDN7CglvcGFjaXR5OjE7Cn0KCi8qIDMgKi8KCiNjbG9jayAuZGlnaXRzIGRpdi50aHJlZSAuZDEsCiNjbG9jayAuZGlnaXRzIGRpdi50aHJlZSAuZDUsCiNjbG9jayAuZGlnaXRzIGRpdi50aHJlZSAuZDIsCiNjbG9jayAuZGlnaXRzIGRpdi50aHJlZSAuZDcsCiNjbG9jayAuZGlnaXRzIGRpdi50aHJlZSAuZDN7CglvcGFjaXR5OjE7Cn0KCi8qIDQgKi8KCiNjbG9jayAuZGlnaXRzIGRpdi5mb3VyIC5kNSwKI2Nsb2NrIC5kaWdpdHMgZGl2LmZvdXIgLmQyLAojY2xvY2sgLmRpZ2l0cyBkaXYuZm91ciAuZDQsCiNjbG9jayAuZGlnaXRzIGRpdi5mb3VyIC5kN3sKCW9wYWNpdHk6MTsKfQoKLyogNSAqLwoKI2Nsb2NrIC5kaWdpdHMgZGl2LmZpdmUgLmQxLAojY2xvY2sgLmRpZ2l0cyBkaXYuZml2ZSAuZDIsCiNjbG9jayAuZGlnaXRzIGRpdi5maXZlIC5kNCwKI2Nsb2NrIC5kaWdpdHMgZGl2LmZpdmUgLmQzLAojY2xvY2sgLmRpZ2l0cyBkaXYuZml2ZSAuZDd7CglvcGFjaXR5OjE7Cn0KCi8qIDYgKi8KCiNjbG9jayAuZGlnaXRzIGRpdi5zaXggLmQxLAojY2xvY2sgLmRpZ2l0cyBkaXYuc2l4IC5kMiwKI2Nsb2NrIC5kaWdpdHMgZGl2LnNpeCAuZDQsCiNjbG9jayAuZGlnaXRzIGRpdi5zaXggLmQzLAojY2xvY2sgLmRpZ2l0cyBkaXYuc2l4IC5kNiwKI2Nsb2NrIC5kaWdpdHMgZGl2LnNpeCAuZDd7CglvcGFjaXR5OjE7Cn0KCgovKiA3ICovCgojY2xvY2sgLmRpZ2l0cyBkaXYuc2V2ZW4gLmQxLAojY2xvY2sgLmRpZ2l0cyBkaXYuc2V2ZW4gLmQ1LAojY2xvY2sgLmRpZ2l0cyBkaXYuc2V2ZW4gLmQ3ewoJb3BhY2l0eToxOwp9CgovKiA4ICovCgojY2xvY2sgLmRpZ2l0cyBkaXYuZWlnaHQgLmQxLAojY2xvY2sgLmRpZ2l0cyBkaXYuZWlnaHQgLmQyLAojY2xvY2sgLmRpZ2l0cyBkaXYuZWlnaHQgLmQzLAojY2xvY2sgLmRpZ2l0cyBkaXYuZWlnaHQgLmQ0LAojY2xvY2sgLmRpZ2l0cyBkaXYuZWlnaHQgLmQ1LAojY2xvY2sgLmRpZ2l0cyBkaXYuZWlnaHQgLmQ2LAojY2xvY2sgLmRpZ2l0cyBkaXYuZWlnaHQgLmQ3ewoJb3BhY2l0eToxOwp9CgovKiA5ICovCgojY2xvY2sgLmRpZ2l0cyBkaXYubmluZSAuZDEsCiNjbG9jayAuZGlnaXRzIGRpdi5uaW5lIC5kMiwKI2Nsb2NrIC5kaWdpdHMgZGl2Lm5pbmUgLmQzLAojY2xvY2sgLmRpZ2l0cyBkaXYubmluZSAuZDQsCiNjbG9jayAuZGlnaXRzIGRpdi5uaW5lIC5kNSwKI2Nsb2NrIC5kaWdpdHMgZGl2Lm5pbmUgLmQ3ewoJb3BhY2l0eToxOwp9CgovKiAwICovCiNjbG9jayAuZGlnaXRzIGRpdi56ZXJvIC5kMSwKI2Nsb2NrIC5kaWdpdHMgZGl2Lnplcm8gLmQzLAojY2xvY2sgLmRpZ2l0cyBkaXYuemVybyAuZDQsCiNjbG9jayAuZGlnaXRzIGRpdi56ZXJvIC5kNSwKI2Nsb2NrIC5kaWdpdHMgZGl2Lnplcm8gLmQ2LAojY2xvY2sgLmRpZ2l0cyBkaXYuemVybyAuZDd7CglvcGFjaXR5OjE7Cn0KCiNjbG9jayAuZGlnaXRzIGRpdi5kb3RzewoJd2lkdGg6Mi41cHg7Cn0KCiNjbG9jayAuZGlnaXRzIGRpdi5kb3RzOmJlZm9yZSwKI2Nsb2NrIC5kaWdpdHMgZGl2LmRvdHM6YWZ0ZXJ7Cgl3aWR0aDoyLjVweDsKCWhlaWdodDoyLjVweDsKCWNvbnRlbnQ6Jyc7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MDsKCXRvcDo3cHg7Cn0KCiNjbG9jayAuZGlnaXRzIGRpdi5kb3RzOmFmdGVyewoJdG9wOjE3cHg7Cn0K
JChmdW5jdGlvbigpIHsKICAgIC8vIENhY2hlIHNvbWUgc2VsZWN0b3JzCiAgICB2YXIgY2xvY2sgPSAkKCcjY2xvY2snKTsKCiAgICAvLyByZXR1cm5zIChjZWlsLSlyb3VuZGVkIG1pbnV0ZXMKICAgIGZ1bmN0aW9uIHJvdW5kKG51bWJlcikgewogICAgICAgIHJldHVybiBNYXRoLmNlaWwobnVtYmVyIC8gNjApOwogICAgfQoKICAgIHZhciBTdGFydFRpbWUgPSBuZXcgRGF0ZSgpOwogICAgdmFyIFRpbWVyQmFzZUxpbmsgPSAnJzsKCiAgICAvLyBPbiBjbGljayBzZW5kIHRoZSBjdXJyZW50IHRpbWUgYXMgcGFyYW0gdG8gdGhlIG5vdGUgc2NyZWVuCiAgICAkKCcjY2xvY2snKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAvLyBBZGQgVGlja2V0SUQgYW5kIHRpbWVyIHVuaXRzIHRvIGxpbmsKICAgICAgICAvLyBmaXJzdCBnZXQgYmFzZWxpbmsKICAgICAgICBpZiAoVGltZXJCYXNlTGluayA9PSAnJykgewogICAgICAgICAgICBUaW1lckJhc2VMaW5rID0gJCgnI1RpbWVyTGluaycpLmF0dHIoJ2hyZWYnKTsKICAgICAgICB9CgogICAgICAgIC8vIEdldCB0aGUgSUQgb2YgdGhlIGN1cnJlbnQgdGlja2V0CiAgICAgICAgdmFyIGJhc2VVUkwgPSBsb2NhdGlvbi5ocmVmLnNwbGl0KCdpbmRleC5wbD8nKTsKICAgICAgICB2YXIgcGFyYW1zID0gYmFzZVVSTFsxXS5zcGxpdCgnOycpOwogICAgICAgIHZhciBUaWNrZXRJRCA9ICcnOwogICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHBhcmFtcy5sZW5ndGg7ICsraW5kZXgpIHsKICAgICAgICAgICAgdmFyIGN1clBhcmFtID0gcGFyYW1zW2luZGV4XS5zcGxpdCgnPScpOwogICAgICAgICAgICBpZiAoY3VyUGFyYW1bMF0gPT0gIlRpY2tldElEIikgewogICAgICAgICAgICAgICAgVGlja2V0SUQgPSBjdXJQYXJhbVsxXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gVGhlbiBjcmVhdGUgdGhlIGxpbmsgb2YgdGhlIGRpdgogICAgICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpOwogICAgICAgIHZhciB0b3RhbF90aW1lID0gcm91bmQoTWF0aC5mbG9vciggKG5vdy5nZXRUaW1lKCkgLSBTdGFydFRpbWUuZ2V0VGltZSgpICkgLzEwMDAgKSk7CgogICAgICAgIHZhciBOZXdMaW5rID0gVGltZXJCYXNlTGluayArICJUaWNrZXRJRD0iICsgVGlja2V0SUQ7CiAgICAgICAgTmV3TGluayArPSAiO1RpbWVyVGltZVVuaXRzPSIgKyB0b3RhbF90aW1lOwoKICAgICAgICAvLyBBbmQgY2hhbmdlIGl0IGJlZm9yZSB0aGUgcmVxdWVzdCBpcyBzZW50CiAgICAgICAgJCgnI1RpbWVyTGluaycpLmF0dHIoJ2hyZWYnLCBOZXdMaW5rKTsKCiAgICB9KTsKCiAgICB2YXIgdG90YWxfdGltZSA9IDA7CgogICAgLy8gTWFwIGRpZ2l0cyB0byB0aGVpciBuYW1lcyAodGhpcyB3aWxsIGJlIGFuIGFycmF5KQogICAgdmFyIGRpZ2l0X3RvX25hbWUgPSAnemVybyBvbmUgdHdvIHRocmVlIGZvdXIgZml2ZSBzaXggc2V2ZW4gZWlnaHQgbmluZScuc3BsaXQoJyAnKTsKCiAgICAvLyBUaGlzIG9iamVjdCB3aWxsIGhvbGQgdGhlIGRpZ2l0IGVsZW1lbnRzCiAgICB2YXIgZGlnaXRzID0ge307CgogICAgLy8gUG9zaXRpb25zIGZvciB0aGUgaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzCiAgICB2YXIgcG9zaXRpb25zID0gWwogICAgICAgICdoMScsICdoMicsICc6JywgJ20xJywgJ20yJywgJzonLCAnczEnLCAnczInCiAgICBdOwoKICAgIC8vIEdlbmVyYXRlIHRoZSBkaWdpdHMgd2l0aCB0aGUgbmVlZGVkIG1hcmt1cCwKICAgIC8vIGFuZCBhZGQgdGhlbSB0byB0aGUgY2xvY2sKCiAgICB2YXIgZGlnaXRfaG9sZGVyID0gY2xvY2suZmluZCgnLmRpZ2l0cycpOwoKICAgICQuZWFjaChwb3NpdGlvbnMsIGZ1bmN0aW9uKCkgewoKICAgICAgICBpZiAodGhpcyA9PSAnOicpIHsKICAgICAgICAgICAgZGlnaXRfaG9sZGVyLmFwcGVuZCgnPGRpdiBjbGFzcz0iZG90cyI+Jyk7CiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgIHZhciBwb3MgPSAkKCc8ZGl2PicpOwoKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCA4OyBpKyspIHsKICAgICAgICAgICAgICAgIHBvcy5hcHBlbmQoJzxzcGFuIGNsYXNzPSJkJyArIGkgKyAnIj4nKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU2V0IHRoZSBkaWdpdHMgYXMga2V5OnZhbHVlIHBhaXJzIGluIHRoZSBkaWdpdHMgb2JqZWN0CiAgICAgICAgICAgIGRpZ2l0c1t0aGlzXSA9IHBvczsKCiAgICAgICAgICAgIC8vIEFkZCB0aGUgZGlnaXQgZWxlbWVudHMgdG8gdGhlIHBhZ2UKICAgICAgICAgICAgZGlnaXRfaG9sZGVyLmFwcGVuZChwb3MpOwogICAgICAgIH0KCiAgICB9KTsKCiAgICBmdW5jdGlvbiByZXR1cm5fdGltZShzZWNvbmRzKSB7CiAgICAgICAgLy8gcmV0dXJucyBhbiBhcnJheSBpbiBmb3JtYXQ6CiAgICAgICAgLy8gSEhNTVNTCiAgICAgICAgdmFyIGhvdXJzID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gMzYwMCk7CiAgICAgICAgdmFyIG1pbnV0ZXMgPSBNYXRoLmZsb29yKChzZWNvbmRzIC0gKGhvdXJzICogMzYwMCkpIC8gNjApOwogICAgICAgIHZhciBzZWNvbmRzID0gc2Vjb25kcyAtIChob3VycyAqIDM2MDApIC0gKG1pbnV0ZXMgKiA2MCk7CiAgICAgICAgaWYgKGhvdXJzIDwgMTApIHsKICAgICAgICAgICAgaG91cnMgPSAiMCIgKyBob3VyczsKICAgICAgICB9CiAgICAgICAgaWYgKG1pbnV0ZXMgPCAxMCkgewogICAgICAgICAgICBtaW51dGVzID0gIjAiICsgbWludXRlczsKICAgICAgICB9CiAgICAgICAgaWYgKHNlY29uZHMgPCAxMCkgewogICAgICAgICAgICBzZWNvbmRzID0gIjAiICsgc2Vjb25kczsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIChob3VycyArIG1pbnV0ZXMgKyBzZWNvbmRzKS5zcGxpdCgiIik7CiAgICB9CgogICAgLy8gUnVuIGEgdGltZXIgZXZlcnkgc2Vjb25kIGFuZCB1cGRhdGUgdGhlIGNsb2NrCiAgICAoZnVuY3Rpb24gdXBkYXRlX3RpbWUoKSB7CgogICAgICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpOwogICAgICAgIHZhciBzZWNvbmRzRGlmZiA9IE1hdGguZmxvb3IoKG5vdy5nZXRUaW1lKCkgLSBTdGFydFRpbWUuZ2V0VGltZSgpKSAvIDEwMDApOwogICAgICAgIHZhciBkaWZmID0gcmV0dXJuX3RpbWUgKHNlY29uZHNEaWZmKTsgCgogICAgICAgIGRpZ2l0cy5oMS5hdHRyKCdjbGFzcycsIGRpZ2l0X3RvX25hbWVbZGlmZlswXV0pOwogICAgICAgIGRpZ2l0cy5oMi5hdHRyKCdjbGFzcycsIGRpZ2l0X3RvX25hbWVbZGlmZlsxXV0pOwogICAgICAgIGRpZ2l0cy5tMS5hdHRyKCdjbGFzcycsIGRpZ2l0X3RvX25hbWVbZGlmZlsyXV0pOwogICAgICAgIGRpZ2l0cy5tMi5hdHRyKCdjbGFzcycsIGRpZ2l0X3RvX25hbWVbZGlmZlszXV0pOwogICAgICAgIGRpZ2l0cy5zMS5hdHRyKCdjbGFzcycsIGRpZ2l0X3RvX25hbWVbZGlmZls0XV0pOwogICAgICAgIGRpZ2l0cy5zMi5hdHRyKCdjbGFzcycsIGRpZ2l0X3RvX25hbWVbZGlmZls1XV0pOwoKICAgICAgICAvLyBTY2hlZHVsZSB0aGlzIGZ1bmN0aW9uIHRvIGJlIHJ1biBhZ2FpbiBpbiAxIHNlYwogICAgICAgIGlmIChzZWNvbmRzRGlmZiA8IDI4ODAwKSB7IC8vIDggaG91cnMgc2hvdWxkIHN1ZmZpY2UKICAgICAgICAgICAgc2V0VGltZW91dCh1cGRhdGVfdGltZSwgMTAwMCk7CiAgICAgICAgfQogICAgfSkoKTsKfSk7Cg==
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkNvbmZpZyI+CiAgICA8U2V0dGluZyBOYW1lPSJUaWNrZXQ6OkZyb250ZW5kOjpBZ2VudFRpY2tldFpvb20jIyNXaWRnZXRzIyMjMDA3NS1UaW1lciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BZ2VudFRpY2tldFpvb20gd2lkZ2V0IHRoYXQgZGlzcGxheXMgYSB0aW1lciBjb3VudGluZyBob3cgbG9uZyBhbiBhZ2VudCBzcGVudCBpbiB0aGUgdGlja2V0em9vbS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6Vmlldzo6VGlja2V0Wm9vbTwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpUaWNrZXRab29tOjpUVE9UaW1lcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTG9jYXRpb24iPlNpZGViYXI8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iVFRPOjpPdXRwdXRGaWx0ZXI6OkNvbmZpZzo6RGVmYXVsdFRpbWVVbml0c1ZhbHVlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgdGhhdCBzaG91bGQgYmUgaW5zZXJ0ZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db25maWc6OlRpbWVBY2NvdW50aW5nPC9OYXZpZ2F0aW9uPgogICAgICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+PC9JdGVtPgogICAgICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok91dHB1dDo6RmlsdGVyRWxlbWVudFBvc3QjIyNEZWZhdWx0VGltZVVuaXRzRmlsdGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgYW4gT3V0cHV0RmlsdGVyIG1vZHVsZSB0aGF0IGluc2VydHMgYSBkZWZhdWx0IHRpbWUgdW5pdCBpbnRvIHRoZSBhY2NvdW50ZWQgdGltZSBmaWVsZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZ2VudDo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6OlRUTzo6RGVmYXVsdFRpbWVVbml0c0ZpbHRlcjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRlbXBsYXRlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2VudFRpY2tldFBob25lIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2VudFRpY2tldEVtYWlsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2VudFRpY2tldENvbXBvc2UiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFnZW50VGlja2V0Tm90ZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWdlbnRUaWNrZXRQZW5kaW5nIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBZ2VudFRpY2tldEZyZWVUZXh0Ij4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgo8L290cnNfY29uZmlnPgo=
cGFja2FnZSBLZXJuZWw6Okxhbmd1YWdlOjpkZV9UVE9fVGltZXI7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4OwoKc3ViIERhdGEgewogICAgbXkgJFNlbGYgPSBzaGlmdDsKCiAgICAjQ3VzdG9tL0tlcm5lbC9PdXRwdXQvSFRNTC9UZW1wbGF0ZXMvU3RhbmRhcmQvVFRPVGltZXIudHQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgc3BlbnQgem9vbWVkIG9uIHRpY2tldCd9ID0gJ1plaXQgaW0gWm9vbSB2ZXJicmFjaHQnOwoKICAgICNLZXJuZWwvQ29uZmlnL0ZpbGVzL1RUT1RpbWVyLnhtbAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGhpcyBjb25maWd1cmF0aW9uIHJlZ2lzdGVycyBhbiBPdXRwdXRGaWx0ZXIgbW9kdWxlIHRoYXQgaW5zZXJ0cyBhIGRlZmF1bHQgdGltZSB1bml0IGludG8gdGhlIGFjY291bnRlZCB0aW1lIGZpZWxkLid9ID0gJ1JlZ2lzdHJpZXJ0IGVpbmVuIE91dHB1dEZpbHRlciBkZXIgZWluZW4gU3RhbmRhcmR3ZXJ0IGluIGRhcyBaZWl0ZmVsZCBlaW5mw7xndC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnRGVmaW5lcyB0aGUgZGVmYXVsdCB2YWx1ZSB0aGF0IHNob3VsZCBiZSBpbnNlcnRlZC4nfSA9ICdLb25maWd1cmllcmJhcmVyIFN0YW5kYXJkd2VydCwgZGVyIGVpbmdlZsO8Z3Qgd2VyZGVuIHNvbGwuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyYXRlIEhUTUwgY29tbWVudCBob29rcyBmb3IgdGhlIHNwZWNpZmllZCBibG9ja3Mgc28gdGhhdCBmaWx0ZXJzIGNhbiB1c2UgdGhlbS4nfSA9ICdFcnN0ZWxsdCBIVE1MIEtvbW1lbnRhcmUgaW0gUXVlbGx0ZXh0LCBzbyBkYXNzIGRpZSBGaWx0ZXIgZGllc2UgbnV0emVuIGvDtm5uZW4uJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0luamVjdCBIVE1MIGFuZCBKYXZhU2NyaXB0IHRvIHNob3cgYSB0aW1lciBpbiBBZ2VudFRpY2tldFpvb20uJ30gPSAnRsO8Z3QgSFRNTCB1bmQgSmF2YVNjcmlwdCBkZW0gUXVlbGx0ZXh0IGhpbnp1LCBzbyBkYXNzIGVpbiBUaW1lciBhbmdlemVpZ3Qgd2lyZC4nOwp9CgoxOwo=
IyAtLQojIEtlcm5lbC9MYW5ndWFnZS9odV9UVE9fVGltZXIucG0gLSBIdW5nYXJpYW4gdHJhbnNsYXRpb25zIGZvciBUVE8tVGltZXIKIyBDb3B5cmlnaHQgKEMpIDIwMTYgQmFsw6F6cyDDmnIsIGh0dHA6Ly93d3cub3Rycy1tZWdvbGRhc29rLmh1CiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6Omh1X1RUT19UaW1lcjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICNDdXN0b20vS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9UVE9UaW1lci50dAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnU2hvdyBvciBoaWRlIHRoZSBjb250ZW50J30gPSAnQSB0YXJ0YWxvbSBtZWdqZWxlbsOtdMOpc2UgdmFneSBlbHJlanTDqXNlJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RpbWUgc3BlbnQgem9vbWVkIG9uIHRpY2tldCd9ID0gJ05hZ3nDrXR2YSBlbHTDtmx0w7Z0dCBpZMWRIGEgamVneWVuJzsKCiAgICAjS2VybmVsL0NvbmZpZy9GaWxlcy9UVE9UaW1lci54bWwKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1RoaXMgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgYW4gT3V0cHV0RmlsdGVyIG1vZHVsZSB0aGF0IGluc2VydHMgYSBkZWZhdWx0IHRpbWUgdW5pdCBpbnRvIHRoZSBhY2NvdW50ZWQgdGltZSBmaWVsZC4nfSA9CiAgICAgICAgJ0V6IGEgYmXDoWxsw610w6FzIGVneSBvbHlhbiBraW1lbmV0c3rFsXLFkSBtb2R1bHQgcmVnaXN6dHLDoWwsIGFtZWx5IGVneSBhbGFww6lydGVsbWV6ZXR0IGlkxZFlZ3lzw6lnZXQgc3rDunIgYmUgYXogZWxzesOhbW9sdCBpZMWRIG1lesWRYmUuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0RlZmluZXMgdGhlIGRlZmF1bHQgdmFsdWUgdGhhdCBzaG91bGQgYmUgaW5zZXJ0ZWQuJ30gPQogICAgICAgICdBenQgYXogYWxhcMOpcnRlbG1lemV0dCDDqXJ0w6lrZXQgaGF0w6Fyb3p6YSBtZWcsIGFtZWx5ZXQgYmUga2VsbCBzesO6cm5pLic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmF0ZSBIVE1MIGNvbW1lbnQgaG9va3MgZm9yIHRoZSBzcGVjaWZpZWQgYmxvY2tzIHNvIHRoYXQgZmlsdGVycyBjYW4gdXNlIHRoZW0uJ30gPQogICAgICAgICdIVE1MIG1lZ2plZ3l6w6lzaG9yZ29rIGVsxZHDoWxsw610w6FzYSBhIG1lZ2Fkb3R0IGJsb2trb2tob3ogYXrDqXJ0LCBob2d5IGEgc3rFsXLFkWsgaGFzem7DoWxoYXNzw6FrIGF6b2thdC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSW5qZWN0IEhUTUwgYW5kIEphdmFTY3JpcHQgdG8gc2hvdyBhIHRpbWVyIGluIEFnZW50VGlja2V0Wm9vbS4nfSA9CiAgICAgICAgJ0hUTUwgw6lzIEphdmFTY3JpcHQgYmVmZWNza2VuZGV6w6lzZSBlZ3kgaWTFkXrDrXTFkSBtZWdqZWxlbsOtdMOpc8OpaGV6IGF6IMO8Z3lpbnTDqXrFkWkgamVneW5hZ3nDrXTDoXNvbi4nOwp9CgoxOwo=