f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAADIIgAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHRhcjsKcGtncGF0aCBhcmNoaXZlL3RhcjsKcHJpb3JpdHkgODsKaW1wb3J0IGJ5dGVzIGJ5dGVzICJieXRlcyI7CmltcG9ydCBlcnJvcnMgZXJyb3JzICJlcnJvcnMiOwppbXBvcnQgZm10IGZtdCAiZm10IjsKaW1wb3J0IGlvIGlvICJpbyI7CmltcG9ydCBpb3V0aWwgaW8vaW91dGlsICJpby9pb3V0aWwiOwppbXBvcnQgb3Mgb3MgIm9zIjsKaW1wb3J0IHBhdGggcGF0aCAicGF0aCI7CmltcG9ydCBzdHJjb252IHN0cmNvbnYgInN0cmNvbnYiOwppbXBvcnQgc3RyaW5ncyBzdHJpbmdzICJzdHJpbmdzIjsKaW1wb3J0IHN5c2NhbGwgc3lzY2FsbCAic3lzY2FsbCI7CmltcG9ydCB0aW1lIHRpbWUgInRpbWUiOwppbml0IHRhciBhcmNoaXZlX3Rhci4uaW1wb3J0IDggbWF0aCBtYXRoLi5pbXBvcnQgMSBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxIHVuaWNvZGUgdW5pY29kZS4uaW1wb3J0IDEgc3RyY29udiBzdHJjb252Li5pbXBvcnQgMiBzeW5jIHN5bmMuLmltcG9ydCAyIGlvIGlvLi5pbXBvcnQgMyByZWZsZWN0IHJlZmxlY3QuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0IHRpbWUgdGltZS4uaW1wb3J0IDQgb3Mgb3MuLmltcG9ydCA1IHBhdGggcGF0aC4uaW1wb3J0IDUgZmlsZXBhdGggcGF0aF9maWxlcGF0aC4uaW1wb3J0IDYgZm10IGZtdC4uaW1wb3J0IDYgaW91dGlsIGlvX2lvdXRpbC4uaW1wb3J0IDc7CnZhciBFcnJGaWVsZFRvb0xvbmcgPHR5cGUgLTE5PjsKdmFyIEVyckhlYWRlciA8dHlwZSAtMTk+Owp2YXIgRXJyV3JpdGVBZnRlckNsb3NlIDx0eXBlIC0xOT47CnZhciBFcnJXcml0ZVRvb0xvbmcgPHR5cGUgLTE5PjsKZnVuYyBGaWxlSW5mb0hlYWRlciAoZmkgPHR5cGUgMSAib3MuRmlsZUluZm8iIDx0eXBlIDIgaW50ZXJmYWNlIHsgTmFtZSAoKSA8dHlwZSAtMTY+OyBTaXplICgpIDx0eXBlIC00PjsgTW9kZSAoKSA8dHlwZSAzICJvcy5GaWxlTW9kZSIgPHR5cGUgLTc+CiBmdW5jIChtIDx0eXBlIDM+KSBQZXJtICgpIDx0eXBlIDM+OwogZnVuYyAobSA8dHlwZSAzPikgSXNSZWd1bGFyICgpIDx0eXBlIC0xNT47CiBmdW5jIChtIDx0eXBlIDM+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKG0gPHR5cGUgMz4pIElzRGlyICgpIDx0eXBlIC0xNT47Cj47IE1vZFRpbWUgKCkgPHR5cGUgNCAidGltZS5UaW1lIiA8dHlwZSA1IHN0cnVjdCB7IC50aW1lLnNlYyA8dHlwZSAtND47IC50aW1lLm5zZWMgPHR5cGUgLTM+OyAudGltZS5sb2MgPHR5cGUgNiAqPHR5cGUgNyAidGltZS5Mb2NhdGlvbiIgPHR5cGUgOCBzdHJ1Y3QgeyAudGltZS5uYW1lIDx0eXBlIC0xNj47IC50aW1lLnpvbmUgPHR5cGUgOSBbXSA8dHlwZSAxMCAiLnRpbWUuem9uZSIgPHR5cGUgMTEgc3RydWN0IHsgLnRpbWUubmFtZSA8dHlwZSAtMTY+OyAudGltZS5vZmZzZXQgPHR5cGUgLTExPjsgLnRpbWUuaXNEU1QgPHR5cGUgLTE1PjsgfT4+PjsgLnRpbWUudHggPHR5cGUgMTIgW10gPHR5cGUgMTMgIi50aW1lLnpvbmVUcmFucyIgPHR5cGUgMTQgc3RydWN0IHsgLnRpbWUud2hlbiA8dHlwZSAtND47IC50aW1lLmluZGV4IDx0eXBlIC01PjsgLnRpbWUuaXNzdGQgPHR5cGUgLTE1PjsgLnRpbWUuaXN1dGMgPHR5cGUgLTE1PjsgfT4+PjsgLnRpbWUuY2FjaGVTdGFydCA8dHlwZSAtND47IC50aW1lLmNhY2hlRW5kIDx0eXBlIC00PjsgLnRpbWUuY2FjaGVab25lIDx0eXBlIDE1ICo8dHlwZSAxMD4+OyB9PgogZnVuYyAobCA8dHlwZSAxNiAqPHR5cGUgNz4+KSAudGltZS5maXJzdFpvbmVVc2VkICgpIDx0eXBlIC0xNT47CiBmdW5jIChsIDx0eXBlIDE2PikgLnRpbWUubG9va3VwIChzZWMgPHR5cGUgLTQ+KSAobmFtZSA8dHlwZSAtMTY+LCBvZmZzZXQgPHR5cGUgLTExPiwgaXNEU1QgPHR5cGUgLTE1Piwgc3RhcnQgPHR5cGUgLTQ+LCBlbmQgPHR5cGUgLTQ+KTsKIGZ1bmMgKGwgPHR5cGUgMTY+KSAudGltZS5sb29rdXBOYW1lIChuYW1lIDx0eXBlIC0xNj4sIHVuaXggPHR5cGUgLTQ+KSAob2Zmc2V0IDx0eXBlIC0xMT4sIGlzRFNUIDx0eXBlIC0xNT4sIG9rIDx0eXBlIC0xNT4pOwogZnVuYyAobCA8dHlwZSAxNj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAobCA8dHlwZSAxNj4pIC50aW1lLmdldCAoKSA8dHlwZSAxNj47CiBmdW5jIChsIDx0eXBlIDE2PikgLnRpbWUubG9va3VwRmlyc3Rab25lICgpIDx0eXBlIC0xMT47Cj4+OyB9PgogZnVuYyAodCA8dHlwZSA0PikgQWZ0ZXIgKHUgPHR5cGUgND4pIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDQ+KSBNYXJzaGFsVGV4dCAoKSAoPyA8dHlwZSAxNyBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgND4pIERhdGUgKCkgKHllYXIgPHR5cGUgLTExPiwgbW9udGggPHR5cGUgMTggInRpbWUuTW9udGgiIDx0eXBlIC0xMT4KIGZ1bmMgKG0gPHR5cGUgMTg+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKPiwgZGF5IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSA0PikgLnRpbWUuYWJzICgpIDx0eXBlIC04PjsKIGZ1bmMgKHQgPHR5cGUgND4pIFdlZWtkYXkgKCkgPHR5cGUgMTkgInRpbWUuV2Vla2RheSIgPHR5cGUgLTExPgogZnVuYyAoZCA8dHlwZSAxOT4pIFN0cmluZyAoKSA8dHlwZSAtMTY+Owo+OwogZnVuYyAodCA8dHlwZSA0PikgTmFub3NlY29uZCAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAyMCAqPHR5cGUgND4+KSBHb2JEZWNvZGUgKGRhdGEgPHR5cGUgMjEgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jICh0IDx0eXBlIDQ+KSBJbiAobG9jIDx0eXBlIDY+KSA8dHlwZSA0PjsKIGZ1bmMgKHQgPHR5cGUgND4pIExvY2FsICgpIDx0eXBlIDQ+OwogZnVuYyAodCA8dHlwZSA0PikgTW9udGggKCkgPHR5cGUgMTg+OwogZnVuYyAodCA8dHlwZSA0PikgSG91ciAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSA0PikgTWFyc2hhbEJpbmFyeSAoKSAoPyA8dHlwZSAyMiBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgND4pIFVuaXhOYW5vICgpIDx0eXBlIC00PjsKIGZ1bmMgKHQgPHR5cGUgND4pIEVxdWFsICh1IDx0eXBlIDQ+KSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSA0PikgRm9ybWF0IChsYXlvdXQgPHR5cGUgLTE2PikgPHR5cGUgLTE2PjsKIGZ1bmMgKHQgPHR5cGUgND4pIEFkZERhdGUgKHllYXJzIDx0eXBlIC0xMT4sIG1vbnRocyA8dHlwZSAtMTE+LCBkYXlzIDx0eXBlIC0xMT4pIDx0eXBlIDQ+OwogZnVuYyAodCA8dHlwZSA0PikgWm9uZSAoKSAobmFtZSA8dHlwZSAtMTY+LCBvZmZzZXQgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDQ+KSBEYXkgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgND4pIENsb2NrICgpIChob3VyIDx0eXBlIC0xMT4sIG1pbiA8dHlwZSAtMTE+LCBzZWMgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDQ+KSBNYXJzaGFsSlNPTiAoKSAoPyA8dHlwZSAyMyBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgND4pIFVUQyAoKSA8dHlwZSA0PjsKIGZ1bmMgKHQgPHR5cGUgND4pIC50aW1lLmRhdGUgKGZ1bGwgPHR5cGUgLTE1PikgKHllYXIgPHR5cGUgLTExPiwgbW9udGggPHR5cGUgMTg+LCBkYXkgPHR5cGUgLTExPiwgeWRheSA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgND4pIElzWmVybyAoKSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSA0PikgQmVmb3JlICh1IDx0eXBlIDQ+KSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSA0PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jICh0IDx0eXBlIDQ+KSBTZWNvbmQgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgND4pIE1pbnV0ZSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSA0PikgU3ViICh1IDx0eXBlIDQ+KSA8dHlwZSAyNCAidGltZS5EdXJhdGlvbiIgPHR5cGUgLTQ+CiBmdW5jIChkIDx0eXBlIDI0PikgU2Vjb25kcyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSAyND4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAoZCA8dHlwZSAyND4pIE1pbnV0ZXMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgMjQ+KSBIb3VycyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSAyND4pIE5hbm9zZWNvbmRzICgpIDx0eXBlIC00PjsKPjsKIGZ1bmMgKHQgPHR5cGUgND4pIFJvdW5kIChkIDx0eXBlIDI0PikgPHR5cGUgND47CiBmdW5jICh0IDx0eXBlIDQ+KSBVbml4ICgpIDx0eXBlIC00PjsKIGZ1bmMgKHQgPHR5cGUgMjA+KSBVbm1hcnNoYWxUZXh0IChkYXRhIDx0eXBlIDI1IFtdIDx0eXBlIC0yMD4+KSAoZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSA0PikgQWRkIChkIDx0eXBlIDI0PikgPHR5cGUgND47CiBmdW5jICh0IDx0eXBlIDQ+KSBUcnVuY2F0ZSAoZCA8dHlwZSAyND4pIDx0eXBlIDQ+OwogZnVuYyAodCA8dHlwZSA0PikgTG9jYXRpb24gKCkgPHR5cGUgNj47CiBmdW5jICh0IDx0eXBlIDQ+KSBHb2JFbmNvZGUgKCkgKD8gPHR5cGUgMjYgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDIwPikgVW5tYXJzaGFsQmluYXJ5IChkYXRhIDx0eXBlIDI3IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAodCA8dHlwZSA0PikgSVNPV2VlayAoKSAoeWVhciA8dHlwZSAtMTE+LCB3ZWVrIDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSA0PikgLnRpbWUubG9jYWJzICgpIChuYW1lIDx0eXBlIC0xNj4sIG9mZnNldCA8dHlwZSAtMTE+LCBhYnMgPHR5cGUgLTg+KTsKIGZ1bmMgKHQgPHR5cGUgND4pIFllYXJEYXkgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgND4pIFllYXIgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMjA+KSBVbm1hcnNoYWxKU09OIChkYXRhIDx0eXBlIDI4IFtdIDx0eXBlIC0yMD4+KSAoZXJyIDx0eXBlIC0xOT4pOwo+OyBJc0RpciAoKSA8dHlwZSAtMTU+OyBTeXMgKCkgPHR5cGUgMjkgaW50ZXJmYWNlIHsgfT47IH0+PiwgbGluayA8dHlwZSAtMTY+KSAoPyA8dHlwZSAzMCAqPHR5cGUgMzEgIkhlYWRlciIgPHR5cGUgMzIgc3RydWN0IHsgTmFtZSA8dHlwZSAtMTY+OyBNb2RlIDx0eXBlIC00PjsgVWlkIDx0eXBlIC0xMT47IEdpZCA8dHlwZSAtMTE+OyBTaXplIDx0eXBlIC00PjsgTW9kVGltZSA8dHlwZSA0PjsgVHlwZWZsYWcgPHR5cGUgLTIwPjsgTGlua25hbWUgPHR5cGUgLTE2PjsgVW5hbWUgPHR5cGUgLTE2PjsgR25hbWUgPHR5cGUgLTE2PjsgRGV2bWFqb3IgPHR5cGUgLTQ+OyBEZXZtaW5vciA8dHlwZSAtND47IEFjY2Vzc1RpbWUgPHR5cGUgND47IENoYW5nZVRpbWUgPHR5cGUgND47IFhhdHRycyA8dHlwZSAzMyBtYXAgWzx0eXBlIC0xNj5dIDx0eXBlIC0xNj4+OyB9PgogZnVuYyAoaCA8dHlwZSAzNCAqPHR5cGUgMzE+PikgRmlsZUluZm8gKCkgPHR5cGUgMT47Cj4+LCA/IDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDMxPjsKZnVuYyBOZXdSZWFkZXIgKHIgPHR5cGUgMzUgImlvLlJlYWRlciIgPHR5cGUgMzYgaW50ZXJmYWNlIHsgUmVhZCAocCA8dHlwZSAzNyBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj4pIDx0eXBlIDM4ICo8dHlwZSAzOSAiUmVhZGVyIiA8dHlwZSA0MCBzdHJ1Y3QgeyAuYXJjaGl2ZS90YXIuciA8dHlwZSAzNT47IC5hcmNoaXZlL3Rhci5lcnIgPHR5cGUgLTE5PjsgLmFyY2hpdmUvdGFyLnBhZCA8dHlwZSAtND47IC5hcmNoaXZlL3Rhci5jdXJyIDx0eXBlIDQxICIuYXJjaGl2ZS90YXIubnVtQnl0ZXNSZWFkZXIiIDx0eXBlIDQyIGludGVyZmFjZSB7ID8gPHR5cGUgMzU+OyAuYXJjaGl2ZS90YXIubnVtQnl0ZXMgKCkgPHR5cGUgLTQ+OyB9Pj47IC5hcmNoaXZlL3Rhci5oZHJCdWZmIDx0eXBlIDQzIFs1MTIgXSA8dHlwZSAtMjA+PjsgfT4KIGZ1bmMgKHRyIDx0eXBlIDQ0ICo8dHlwZSAzOT4+KSBOZXh0ICgpICg/IDx0eXBlIDMwPiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHRyIDx0eXBlIDQ0PikgLmFyY2hpdmUvdGFyLmNoZWNrRm9yR05VU3BhcnNlUEFYSGVhZGVycyAoaGRyIDx0eXBlIDMwPiwgaGVhZGVycyA8dHlwZSA0NSBtYXAgWzx0eXBlIC0xNj5dIDx0eXBlIC0xNj4+KSAoPyA8dHlwZSA0NiBbXSA8dHlwZSA0NyAiLmFyY2hpdmUvdGFyLnNwYXJzZUVudHJ5IiA8dHlwZSA0OCBzdHJ1Y3QgeyAuYXJjaGl2ZS90YXIub2Zmc2V0IDx0eXBlIC00PjsgLmFyY2hpdmUvdGFyLm51bUJ5dGVzIDx0eXBlIC00PjsgfT4+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHRyIDx0eXBlIDQ0PikgLmFyY2hpdmUvdGFyLm9jdGFsIChiIDx0eXBlIDQ5IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtND47CiBmdW5jICh0ciA8dHlwZSA0ND4pIC5hcmNoaXZlL3Rhci5za2lwVW5yZWFkICgpOwogZnVuYyAodHIgPHR5cGUgNDQ+KSAuYXJjaGl2ZS90YXIudmVyaWZ5Q2hlY2tzdW0gKGhlYWRlciA8dHlwZSA1MCBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE1PjsKIGZ1bmMgKHRyIDx0eXBlIDQ0PikgLmFyY2hpdmUvdGFyLnJlYWRIZWFkZXIgKCkgPHR5cGUgMzA+OwogZnVuYyAodHIgPHR5cGUgNDQ+KSAuYXJjaGl2ZS90YXIucmVhZE9sZEdOVVNwYXJzZU1hcCAoaGVhZGVyIDx0eXBlIDUxIFtdIDx0eXBlIC0yMD4+KSA8dHlwZSA1MiBbXSA8dHlwZSA0Nz4+OwogZnVuYyAodHIgPHR5cGUgNDQ+KSAuYXJjaGl2ZS90YXIubnVtQnl0ZXMgKCkgPHR5cGUgLTQ+OwogZnVuYyAodHIgPHR5cGUgNDQ+KSBSZWFkIChiIDx0eXBlIDUzIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7Cj4+OwpmdW5jIE5ld1dyaXRlciAodyA8dHlwZSA1NCAiaW8uV3JpdGVyIiA8dHlwZSA1NSBpbnRlcmZhY2UgeyBXcml0ZSAocCA8dHlwZSA1NiBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj4pIDx0eXBlIDU3ICo8dHlwZSA1OCAiV3JpdGVyIiA8dHlwZSA1OSBzdHJ1Y3QgeyAuYXJjaGl2ZS90YXIudyA8dHlwZSA1ND47IC5hcmNoaXZlL3Rhci5lcnIgPHR5cGUgLTE5PjsgLmFyY2hpdmUvdGFyLm5iIDx0eXBlIC00PjsgLmFyY2hpdmUvdGFyLnBhZCA8dHlwZSAtND47IC5hcmNoaXZlL3Rhci5jbG9zZWQgPHR5cGUgLTE1PjsgLmFyY2hpdmUvdGFyLnVzZWRCaW5hcnkgPHR5cGUgLTE1PjsgLmFyY2hpdmUvdGFyLnByZWZlclBheCA8dHlwZSAtMTU+OyAuYXJjaGl2ZS90YXIuaGRyQnVmZiA8dHlwZSA2MCBbNTEyIF0gPHR5cGUgLTIwPj47IC5hcmNoaXZlL3Rhci5wYXhIZHJCdWZmIDx0eXBlIDYxIFs1MTIgXSA8dHlwZSAtMjA+PjsgfT4KIGZ1bmMgKHR3IDx0eXBlIDYyICo8dHlwZSA1OD4+KSBGbHVzaCAoKSA8dHlwZSAtMTk+OwogZnVuYyAodHcgPHR5cGUgNjI+KSAuYXJjaGl2ZS90YXIuY1N0cmluZyAoYiA8dHlwZSA2MyBbXSA8dHlwZSAtMjA+PiwgcyA8dHlwZSAtMTY+LCBhbGxvd1BheCA8dHlwZSAtMTU+LCBwYXhLZXl3b3JkIDx0eXBlIC0xNj4sIHBheEhlYWRlcnMgPHR5cGUgNjQgbWFwIFs8dHlwZSAtMTY+XSA8dHlwZSAtMTY+Pik7CiBmdW5jICh0dyA8dHlwZSA2Mj4pIC5hcmNoaXZlL3Rhci5vY3RhbCAoYiA8dHlwZSA2NSBbXSA8dHlwZSAtMjA+PiwgeCA8dHlwZSAtND4pOwogZnVuYyAodHcgPHR5cGUgNjI+KSAuYXJjaGl2ZS90YXIubnVtZXJpYyAoYiA8dHlwZSA2NiBbXSA8dHlwZSAtMjA+PiwgeCA8dHlwZSAtND4sIGFsbG93UGF4IDx0eXBlIC0xNT4sIHBheEtleXdvcmQgPHR5cGUgLTE2PiwgcGF4SGVhZGVycyA8dHlwZSA2NyBtYXAgWzx0eXBlIC0xNj5dIDx0eXBlIC0xNj4+KTsKIGZ1bmMgKHR3IDx0eXBlIDYyPikgV3JpdGVIZWFkZXIgKGhkciA8dHlwZSAzMD4pIDx0eXBlIC0xOT47CiBmdW5jICh0dyA8dHlwZSA2Mj4pIC5hcmNoaXZlL3Rhci53cml0ZUhlYWRlciAoaGRyIDx0eXBlIDMwPiwgYWxsb3dQYXggPHR5cGUgLTE1PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHR3IDx0eXBlIDYyPikgLmFyY2hpdmUvdGFyLnNwbGl0VVNUQVJMb25nTmFtZSAobmFtZSA8dHlwZSAtMTY+KSAocHJlZml4IDx0eXBlIC0xNj4sIHN1ZmZpeCA8dHlwZSAtMTY+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jICh0dyA8dHlwZSA2Mj4pIC5hcmNoaXZlL3Rhci53cml0ZVBBWEhlYWRlciAoaGRyIDx0eXBlIDMwPiwgcGF4SGVhZGVycyA8dHlwZSA2OCBtYXAgWzx0eXBlIC0xNj5dIDx0eXBlIC0xNj4+KSA8dHlwZSAtMTk+OwogZnVuYyAodHcgPHR5cGUgNjI+KSBXcml0ZSAoYiA8dHlwZSA2OSBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAodHcgPHR5cGUgNjI+KSBDbG9zZSAoKSA8dHlwZSAtMTk+Owo+PjsKdHlwZSA8dHlwZSAzOT47CmNvbnN0IFR5cGVCbG9jayA9IDUyJyA7CmNvbnN0IFR5cGVDaGFyID0gNTEnIDsKY29uc3QgVHlwZUNvbnQgPSA1NScgOwpjb25zdCBUeXBlRGlyID0gNTMnIDsKY29uc3QgVHlwZUZpZm8gPSA1NCcgOwpjb25zdCBUeXBlR05VTG9uZ0xpbmsgPSA3NScgOwpjb25zdCBUeXBlR05VTG9uZ05hbWUgPSA3NicgOwpjb25zdCBUeXBlR05VU3BhcnNlID0gODMnIDsKY29uc3QgVHlwZUxpbmsgPSA0OScgOwpjb25zdCBUeXBlUmVnID0gNDgnIDsKY29uc3QgVHlwZVJlZ0EgPSAwJyA7CmNvbnN0IFR5cGVTeW1saW5rID0gNTAnIDsKY29uc3QgVHlwZVhHbG9iYWxIZWFkZXIgPSAxMDMnIDsKY29uc3QgVHlwZVhIZWFkZXIgPSAxMjAnIDsKdHlwZSA8dHlwZSA1OD47CmNoZWNrc3VtIEJDQjk2NERCRjQ2QzgzNTMwNUUwQjQxQTNDNzgyRDVBRUVBQkNCQzA7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAASiIAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAfiIAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAKQiAAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAADEIgAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=