f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAAoHQAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHRpbWU7CnBrZ3BhdGggdGltZTsKcHJpb3JpdHkgNDsKaW1wb3J0IGVycm9ycyBlcnJvcnMgImVycm9ycyI7CmltcG9ydCBydW50aW1lIHJ1bnRpbWUgInJ1bnRpbWUiOwppbXBvcnQgc3luYyBzeW5jICJzeW5jIjsKaW1wb3J0IHN5c2NhbGwgc3lzY2FsbCAic3lzY2FsbCI7CmluaXQgdGltZSB0aW1lLi5pbXBvcnQgNCBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxIHN5bmMgc3luYy4uaW1wb3J0IDIgc3lzY2FsbCBzeXNjYWxsLi5pbXBvcnQgMzsKY29uc3QgQU5TSUMgPSAiTW9uIEphbiBfMiAxNTowNDowNSAyMDA2IjsKZnVuYyBBZnRlciAoZCA8dHlwZSAxICJEdXJhdGlvbiIgPHR5cGUgLTQ+CiBmdW5jIChkIDx0eXBlIDE+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGQgPHR5cGUgMT4pIE5hbm9zZWNvbmRzICgpIDx0eXBlIC00PjsKIGZ1bmMgKGQgPHR5cGUgMT4pIFNlY29uZHMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgMT4pIE1pbnV0ZXMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgMT4pIEhvdXJzICgpIDx0eXBlIC0xMD47Cj4pIDx0eXBlIDIgY2hhbiA8LSA8dHlwZSAzICJUaW1lIiA8dHlwZSA0IHN0cnVjdCB7IC50aW1lLnNlYyA8dHlwZSAtND47IC50aW1lLm5zZWMgPHR5cGUgLTM+OyAudGltZS5sb2MgPHR5cGUgNSAqPHR5cGUgNiAiTG9jYXRpb24iIDx0eXBlIDcgc3RydWN0IHsgLnRpbWUubmFtZSA8dHlwZSAtMTY+OyAudGltZS56b25lIDx0eXBlIDggW10gPHR5cGUgOSAiLnRpbWUuem9uZSIgPHR5cGUgMTAgc3RydWN0IHsgLnRpbWUubmFtZSA8dHlwZSAtMTY+OyAudGltZS5vZmZzZXQgPHR5cGUgLTExPjsgLnRpbWUuaXNEU1QgPHR5cGUgLTE1PjsgfT4+PjsgLnRpbWUudHggPHR5cGUgMTEgW10gPHR5cGUgMTIgIi50aW1lLnpvbmVUcmFucyIgPHR5cGUgMTMgc3RydWN0IHsgLnRpbWUud2hlbiA8dHlwZSAtND47IC50aW1lLmluZGV4IDx0eXBlIC01PjsgLnRpbWUuaXNzdGQgPHR5cGUgLTE1PjsgLnRpbWUuaXN1dGMgPHR5cGUgLTE1PjsgfT4+PjsgLnRpbWUuY2FjaGVTdGFydCA8dHlwZSAtND47IC50aW1lLmNhY2hlRW5kIDx0eXBlIC00PjsgLnRpbWUuY2FjaGVab25lIDx0eXBlIDE0ICo8dHlwZSA5Pj47IH0+CiBmdW5jIChsIDx0eXBlIDE1ICo8dHlwZSA2Pj4pIC50aW1lLmdldCAoKSA8dHlwZSAxNT47CiBmdW5jIChsIDx0eXBlIDE1PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChsIDx0eXBlIDE1PikgLnRpbWUubG9va3VwIChzZWMgPHR5cGUgLTQ+KSAobmFtZSA8dHlwZSAtMTY+LCBvZmZzZXQgPHR5cGUgLTExPiwgaXNEU1QgPHR5cGUgLTE1Piwgc3RhcnQgPHR5cGUgLTQ+LCBlbmQgPHR5cGUgLTQ+KTsKIGZ1bmMgKGwgPHR5cGUgMTU+KSAudGltZS5sb29rdXBGaXJzdFpvbmUgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKGwgPHR5cGUgMTU+KSAudGltZS5maXJzdFpvbmVVc2VkICgpIDx0eXBlIC0xNT47CiBmdW5jIChsIDx0eXBlIDE1PikgLnRpbWUubG9va3VwTmFtZSAobmFtZSA8dHlwZSAtMTY+LCB1bml4IDx0eXBlIC00PikgKG9mZnNldCA8dHlwZSAtMTE+LCBpc0RTVCA8dHlwZSAtMTU+LCBvayA8dHlwZSAtMTU+KTsKPj47IH0+CiBmdW5jICh0IDx0eXBlIDM+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHQgPHR5cGUgMz4pIEZvcm1hdCAobGF5b3V0IDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CiBmdW5jICh0IDx0eXBlIDM+KSBBZnRlciAodSA8dHlwZSAzPikgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgMz4pIEJlZm9yZSAodSA8dHlwZSAzPikgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgMz4pIEVxdWFsICh1IDx0eXBlIDM+KSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSAzPikgSXNaZXJvICgpIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDM+KSAudGltZS5hYnMgKCkgPHR5cGUgLTg+OwogZnVuYyAodCA8dHlwZSAzPikgLnRpbWUubG9jYWJzICgpIChuYW1lIDx0eXBlIC0xNj4sIG9mZnNldCA8dHlwZSAtMTE+LCBhYnMgPHR5cGUgLTg+KTsKIGZ1bmMgKHQgPHR5cGUgMz4pIERhdGUgKCkgKHllYXIgPHR5cGUgLTExPiwgbW9udGggPHR5cGUgMTYgIk1vbnRoIiA8dHlwZSAtMTE+CiBmdW5jIChtIDx0eXBlIDE2PikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj4sIGRheSA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgMz4pIFllYXIgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMz4pIE1vbnRoICgpIDx0eXBlIDE2PjsKIGZ1bmMgKHQgPHR5cGUgMz4pIERheSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAzPikgV2Vla2RheSAoKSA8dHlwZSAxNyAiV2Vla2RheSIgPHR5cGUgLTExPgogZnVuYyAoZCA8dHlwZSAxNz4pIFN0cmluZyAoKSA8dHlwZSAtMTY+Owo+OwogZnVuYyAodCA8dHlwZSAzPikgSVNPV2VlayAoKSAoeWVhciA8dHlwZSAtMTE+LCB3ZWVrIDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSAzPikgQ2xvY2sgKCkgKGhvdXIgPHR5cGUgLTExPiwgbWluIDx0eXBlIC0xMT4sIHNlYyA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgMz4pIEhvdXIgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMz4pIE1pbnV0ZSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAzPikgU2Vjb25kICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDM+KSBOYW5vc2Vjb25kICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDM+KSBZZWFyRGF5ICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDM+KSBBZGQgKGQgPHR5cGUgMT4pIDx0eXBlIDM+OwogZnVuYyAodCA8dHlwZSAzPikgU3ViICh1IDx0eXBlIDM+KSA8dHlwZSAxPjsKIGZ1bmMgKHQgPHR5cGUgMz4pIEFkZERhdGUgKHllYXJzIDx0eXBlIC0xMT4sIG1vbnRocyA8dHlwZSAtMTE+LCBkYXlzIDx0eXBlIC0xMT4pIDx0eXBlIDM+OwogZnVuYyAodCA8dHlwZSAzPikgLnRpbWUuZGF0ZSAoZnVsbCA8dHlwZSAtMTU+KSAoeWVhciA8dHlwZSAtMTE+LCBtb250aCA8dHlwZSAxNj4sIGRheSA8dHlwZSAtMTE+LCB5ZGF5IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSAzPikgVVRDICgpIDx0eXBlIDM+OwogZnVuYyAodCA8dHlwZSAzPikgTG9jYWwgKCkgPHR5cGUgMz47CiBmdW5jICh0IDx0eXBlIDM+KSBJbiAobG9jIDx0eXBlIDE4ICo8dHlwZSA2Pj4pIDx0eXBlIDM+OwogZnVuYyAodCA8dHlwZSAzPikgTG9jYXRpb24gKCkgPHR5cGUgMTkgKjx0eXBlIDY+PjsKIGZ1bmMgKHQgPHR5cGUgMz4pIFpvbmUgKCkgKG5hbWUgPHR5cGUgLTE2Piwgb2Zmc2V0IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSAzPikgVW5peCAoKSA8dHlwZSAtND47CiBmdW5jICh0IDx0eXBlIDM+KSBVbml4TmFubyAoKSA8dHlwZSAtND47CiBmdW5jICh0IDx0eXBlIDM+KSBNYXJzaGFsQmluYXJ5ICgpICg/IDx0eXBlIDIwIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAyMSAqPHR5cGUgMz4+KSBVbm1hcnNoYWxCaW5hcnkgKGRhdGEgPHR5cGUgMjIgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jICh0IDx0eXBlIDM+KSBHb2JFbmNvZGUgKCkgKD8gPHR5cGUgMjMgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDIxPikgR29iRGVjb2RlIChkYXRhIDx0eXBlIDI0IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAodCA8dHlwZSAzPikgTWFyc2hhbEpTT04gKCkgKD8gPHR5cGUgMjUgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDIxPikgVW5tYXJzaGFsSlNPTiAoZGF0YSA8dHlwZSAyNiBbXSA8dHlwZSAtMjA+PikgKGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgMz4pIE1hcnNoYWxUZXh0ICgpICg/IDx0eXBlIDI3IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAyMT4pIFVubWFyc2hhbFRleHQgKGRhdGEgPHR5cGUgMjggW10gPHR5cGUgLTIwPj4pIChlcnIgPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDM+KSBUcnVuY2F0ZSAoZCA8dHlwZSAxPikgPHR5cGUgMz47CiBmdW5jICh0IDx0eXBlIDM+KSBSb3VuZCAoZCA8dHlwZSAxPikgPHR5cGUgMz47Cj4+OwpmdW5jIEFmdGVyRnVuYyAoZCA8dHlwZSAxPiwgZiA8dHlwZSAyOSAoKT4pIDx0eXBlIDMwICo8dHlwZSAzMSAiVGltZXIiIDx0eXBlIDMyIHN0cnVjdCB7IEMgPHR5cGUgMzMgY2hhbiA8LSA8dHlwZSAzPj47IC50aW1lLnIgPHR5cGUgMzQgIi50aW1lLnJ1bnRpbWVUaW1lciIgPHR5cGUgMzUgc3RydWN0IHsgLnRpbWUuaSA8dHlwZSAtMTE+OyAudGltZS53aGVuIDx0eXBlIC00PjsgLnRpbWUucGVyaW9kIDx0eXBlIC00PjsgLnRpbWUuZiA8dHlwZSAzNiAoPyA8dHlwZSAzNyBpbnRlcmZhY2UgeyB9PiwgPyA8dHlwZSAtMTM+KT47IC50aW1lLmFyZyA8dHlwZSAzOCBpbnRlcmZhY2UgeyB9PjsgLnRpbWUuc2VxIDx0eXBlIC0xMz47IH0+PjsgfT4KIGZ1bmMgKHQgPHR5cGUgMzkgKjx0eXBlIDMxPj4pIFN0b3AgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgMzk+KSBSZXNldCAoZCA8dHlwZSAxPikgPHR5cGUgLTE1PjsKPj47CmNvbnN0IEFwcmlsIDx0eXBlIDE2PiA9IDQgOwpjb25zdCBBdWd1c3QgPHR5cGUgMTY+ID0gOCA7CmZ1bmMgRGF0ZSAoeWVhciA8dHlwZSAtMTE+LCBtb250aCA8dHlwZSAxNj4sIGRheSA8dHlwZSAtMTE+LCBob3VyIDx0eXBlIC0xMT4sIG1pbiA8dHlwZSAtMTE+LCBzZWMgPHR5cGUgLTExPiwgbnNlYyA8dHlwZSAtMTE+LCBsb2MgPHR5cGUgNDAgKjx0eXBlIDY+PikgPHR5cGUgMz47CmNvbnN0IERlY2VtYmVyIDx0eXBlIDE2PiA9IDEyIDsKdHlwZSA8dHlwZSAxPjsKY29uc3QgRmVicnVhcnkgPHR5cGUgMTY+ID0gMiA7CmZ1bmMgRml4ZWRab25lIChuYW1lIDx0eXBlIC0xNj4sIG9mZnNldCA8dHlwZSAtMTE+KSA8dHlwZSAxNT47CmNvbnN0IEZyaWRheSA8dHlwZSAxNz4gPSA1IDsKY29uc3QgSG91ciA8dHlwZSAxPiA9IDM2MDAwMDAwMDAwMDAgOwpjb25zdCBKYW51YXJ5IDx0eXBlIDE2PiA9IDEgOwpjb25zdCBKdWx5IDx0eXBlIDE2PiA9IDcgOwpjb25zdCBKdW5lIDx0eXBlIDE2PiA9IDYgOwpjb25zdCBLaXRjaGVuID0gIjM6MDRQTSI7CmZ1bmMgTG9hZExvY2F0aW9uIChuYW1lIDx0eXBlIC0xNj4pICg/IDx0eXBlIDE1PiwgPyA8dHlwZSAtMTk+KTsKdmFyIExvY2FsIDx0eXBlIDE1PjsKdHlwZSA8dHlwZSA2PjsKY29uc3QgTWFyY2ggPHR5cGUgMTY+ID0gMyA7CmNvbnN0IE1heSA8dHlwZSAxNj4gPSA1IDsKY29uc3QgTWljcm9zZWNvbmQgPHR5cGUgMT4gPSAxMDAwIDsKY29uc3QgTWlsbGlzZWNvbmQgPHR5cGUgMT4gPSAxMDAwMDAwIDsKY29uc3QgTWludXRlIDx0eXBlIDE+ID0gNjAwMDAwMDAwMDAgOwpjb25zdCBNb25kYXkgPHR5cGUgMTc+ID0gMSA7CnR5cGUgPHR5cGUgMTY+Owpjb25zdCBOYW5vc2Vjb25kIDx0eXBlIDE+ID0gMSA7CmZ1bmMgTmV3VGlja2VyIChkIDx0eXBlIDE+KSA8dHlwZSA0MSAqPHR5cGUgNDIgIlRpY2tlciIgPHR5cGUgNDMgc3RydWN0IHsgQyA8dHlwZSA0NCBjaGFuIDwtIDx0eXBlIDM+PjsgLnRpbWUuciA8dHlwZSAzND47IH0+CiBmdW5jICh0IDx0eXBlIDQ1ICo8dHlwZSA0Mj4+KSBTdG9wICgpOwo+PjsKZnVuYyBOZXdUaW1lciAoZCA8dHlwZSAxPikgPHR5cGUgMzA+Owpjb25zdCBOb3ZlbWJlciA8dHlwZSAxNj4gPSAxMSA7CmZ1bmMgTm93ICgpIDx0eXBlIDM+Owpjb25zdCBPY3RvYmVyIDx0eXBlIDE2PiA9IDEwIDsKZnVuYyBQYXJzZSAobGF5b3V0IDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC0xNj4pICg/IDx0eXBlIDM+LCA/IDx0eXBlIC0xOT4pOwpmdW5jIFBhcnNlRHVyYXRpb24gKHMgPHR5cGUgLTE2PikgKD8gPHR5cGUgMT4sID8gPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgNDYgIlBhcnNlRXJyb3IiIDx0eXBlIDQ3IHN0cnVjdCB7IExheW91dCA8dHlwZSAtMTY+OyBWYWx1ZSA8dHlwZSAtMTY+OyBMYXlvdXRFbGVtIDx0eXBlIC0xNj47IFZhbHVlRWxlbSA8dHlwZSAtMTY+OyBNZXNzYWdlIDx0eXBlIC0xNj47IH0+CiBmdW5jIChlIDx0eXBlIDQ4ICo8dHlwZSA0Nj4+KSBFcnJvciAoKSA8dHlwZSAtMTY+Owo+OwpmdW5jIFBhcnNlSW5Mb2NhdGlvbiAobGF5b3V0IDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC0xNj4sIGxvYyA8dHlwZSA0OSAqPHR5cGUgNj4+KSAoPyA8dHlwZSAzPiwgPyA8dHlwZSAtMTk+KTsKY29uc3QgUkZDMTEyMyA9ICJNb24sIDAyIEphbiAyMDA2IDE1OjA0OjA1IE1TVCI7CmNvbnN0IFJGQzExMjNaID0gIk1vbiwgMDIgSmFuIDIwMDYgMTU6MDQ6MDUgLTA3MDAiOwpjb25zdCBSRkMzMzM5ID0gIjIwMDYtMDEtMDJUMTU6MDQ6MDVaMDc6MDAiOwpjb25zdCBSRkMzMzM5TmFubyA9ICIyMDA2LTAxLTAyVDE1OjA0OjA1Ljk5OTk5OTk5OVowNzowMCI7CmNvbnN0IFJGQzgyMiA9ICIwMiBKYW4gMDYgMTU6MDQgTVNUIjsKY29uc3QgUkZDODIyWiA9ICIwMiBKYW4gMDYgMTU6MDQgLTA3MDAiOwpjb25zdCBSRkM4NTAgPSAiTW9uZGF5LCAwMi1KYW4tMDYgMTU6MDQ6MDUgTVNUIjsKY29uc3QgUnVieURhdGUgPSAiTW9uIEphbiAwMiAxNTowNDowNSAtMDcwMCAyMDA2IjsKY29uc3QgU2F0dXJkYXkgPHR5cGUgMTc+ID0gNiA7CmNvbnN0IFNlY29uZCA8dHlwZSAxPiA9IDEwMDAwMDAwMDAgOwpjb25zdCBTZXB0ZW1iZXIgPHR5cGUgMTY+ID0gOSA7CmZ1bmMgU2luY2UgKHQgPHR5cGUgMz4pIDx0eXBlIDE+OwpmdW5jIFNsZWVwIChkIDx0eXBlIDE+KTsKY29uc3QgU3RhbXAgPSAiSmFuIF8yIDE1OjA0OjA1IjsKY29uc3QgU3RhbXBNaWNybyA9ICJKYW4gXzIgMTU6MDQ6MDUuMDAwMDAwIjsKY29uc3QgU3RhbXBNaWxsaSA9ICJKYW4gXzIgMTU6MDQ6MDUuMDAwIjsKY29uc3QgU3RhbXBOYW5vID0gIkphbiBfMiAxNTowNDowNS4wMDAwMDAwMDAiOwpjb25zdCBTdW5kYXkgPHR5cGUgMTc+ID0gMCA7CmNvbnN0IFRodXJzZGF5IDx0eXBlIDE3PiA9IDQgOwpmdW5jIFRpY2sgKGQgPHR5cGUgMT4pIDx0eXBlIDUwIGNoYW4gPC0gPHR5cGUgMz4+Owp0eXBlIDx0eXBlIDQyPjsKdHlwZSA8dHlwZSAzPjsKdHlwZSA8dHlwZSAzMT47CmNvbnN0IFR1ZXNkYXkgPHR5cGUgMTc+ID0gMiA7CnZhciBVVEMgPHR5cGUgMTU+OwpmdW5jIFVuaXggKHNlYyA8dHlwZSAtND4sIG5zZWMgPHR5cGUgLTQ+KSA8dHlwZSAzPjsKY29uc3QgVW5peERhdGUgPSAiTW9uIEphbiBfMiAxNTowNDowNSBNU1QgMjAwNiI7CmNvbnN0IFdlZG5lc2RheSA8dHlwZSAxNz4gPSAzIDsKdHlwZSA8dHlwZSAxNz47CmNoZWNrc3VtIEE1OTc3MENFMDMwNkFDMkJFQ0NGMDVEODNBNTZENEZDNjQ3ODQ0MzA7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAApxwAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAA2xwAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAQdAAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAAAkHQAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=