f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAADMCQAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHN5bmM7CnBrZ3BhdGggc3luYzsKcHJpb3JpdHkgMjsKaW1wb3J0IHJ1bnRpbWUgcnVudGltZSAicnVudGltZSI7CmltcG9ydCBhdG9taWMgc3luYy9hdG9taWMgInN5bmMvYXRvbWljIjsKaW1wb3J0IHVuc2FmZSB1bnNhZmUgInVuc2FmZSI7CmluaXQgc3luYyBzeW5jLi5pbXBvcnQgMiBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxOwp0eXBlIDx0eXBlIDEgIkNvbmQiIDx0eXBlIDIgc3RydWN0IHsgTCA8dHlwZSAzICJMb2NrZXIiIDx0eXBlIDQgaW50ZXJmYWNlIHsgTG9jayAoKTsgVW5sb2NrICgpOyB9Pj47IC5zeW5jLnNlbWEgPHR5cGUgNSAiLnN5bmMuc3luY1NlbWEiIDx0eXBlIDYgc3RydWN0IHsgLnN5bmMubG9jayA8dHlwZSAtMTM+OyAuc3luYy5oZWFkIDx0eXBlIDcgInVuc2FmZS5Qb2ludGVyIiA8dHlwZSA4ICphbnk+PjsgLnN5bmMudGFpbCA8dHlwZSA3PjsgfT4+OyAuc3luYy53YWl0ZXJzIDx0eXBlIC03PjsgLnN5bmMuY2hlY2tlciA8dHlwZSA5ICIuc3luYy5jb3B5Q2hlY2tlciIgPHR5cGUgLTEzPgogZnVuYyAoYyA8dHlwZSAxMCAqPHR5cGUgOT4+KSAuc3luYy5jaGVjayAoKTsKPjsgfT4KIGZ1bmMgKGMgPHR5cGUgMTEgKjx0eXBlIDE+PikgV2FpdCAoKTsKIGZ1bmMgKGMgPHR5cGUgMTE+KSBTaWduYWwgKCk7CiBmdW5jIChjIDx0eXBlIDExPikgQnJvYWRjYXN0ICgpOwogZnVuYyAoYyA8dHlwZSAxMT4pIC5zeW5jLnNpZ25hbEltcGwgKGFsbCA8dHlwZSAtMTU+KTsKPjsKdHlwZSA8dHlwZSAzPjsKdHlwZSA8dHlwZSAxMiAiTXV0ZXgiIDx0eXBlIDEzIHN0cnVjdCB7IC5zeW5jLnN0YXRlIDx0eXBlIC0zPjsgLnN5bmMuc2VtYSA8dHlwZSAtNz47IH0+CiBmdW5jIChtIDx0eXBlIDE0ICo8dHlwZSAxMj4+KSBMb2NrICgpOwogZnVuYyAobSA8dHlwZSAxND4pIFVubG9jayAoKTsKPjsKZnVuYyBOZXdDb25kIChsIDx0eXBlIDM+KSA8dHlwZSAxMT47CnR5cGUgPHR5cGUgMTUgIk9uY2UiIDx0eXBlIDE2IHN0cnVjdCB7IC5zeW5jLm0gPHR5cGUgMTI+OyAuc3luYy5kb25lIDx0eXBlIC03PjsgfT4KIGZ1bmMgKG8gPHR5cGUgMTcgKjx0eXBlIDE1Pj4pIERvIChmIDx0eXBlIDE4ICgpPik7Cj47CnR5cGUgPHR5cGUgMTkgIlBvb2wiIDx0eXBlIDIwIHN0cnVjdCB7IC5zeW5jLmxvY2FsIDx0eXBlIDc+OyAuc3luYy5sb2NhbFNpemUgPHR5cGUgLTEzPjsgTmV3IDx0eXBlIDIxICgpIDx0eXBlIDIyIGludGVyZmFjZSB7IH0+PjsgfT4KIGZ1bmMgKHAgPHR5cGUgMjMgKjx0eXBlIDE5Pj4pIFB1dCAoeCA8dHlwZSAyNCBpbnRlcmZhY2UgeyB9Pik7CiBmdW5jIChwIDx0eXBlIDIzPikgR2V0ICgpIDx0eXBlIDI1IGludGVyZmFjZSB7IH0+OwogZnVuYyAocCA8dHlwZSAyMz4pIC5zeW5jLmdldFNsb3cgKCkgKHggPHR5cGUgMjYgaW50ZXJmYWNlIHsgfT4pOwogZnVuYyAocCA8dHlwZSAyMz4pIC5zeW5jLnBpbiAoKSA8dHlwZSAyNyAqPHR5cGUgMjggIi5zeW5jLnBvb2xMb2NhbCIgPHR5cGUgMjkgc3RydWN0IHsgLnN5bmMucHJpdmF0ZSA8dHlwZSAzMCBpbnRlcmZhY2UgeyB9PjsgLnN5bmMuc2hhcmVkIDx0eXBlIDMxIFtdIDx0eXBlIDMyIGludGVyZmFjZSB7IH0+PjsgPyA8dHlwZSAxMj47IC5zeW5jLnBhZCA8dHlwZSAzMyBbMTI4IF0gPHR5cGUgLTIwPj47IH0+Pj47CiBmdW5jIChwIDx0eXBlIDIzPikgLnN5bmMucGluU2xvdyAoKSA8dHlwZSAyNz47Cj47CnR5cGUgPHR5cGUgMzQgIlJXTXV0ZXgiIDx0eXBlIDM1IHN0cnVjdCB7IC5zeW5jLncgPHR5cGUgMTI+OyAuc3luYy53cml0ZXJTZW0gPHR5cGUgLTc+OyAuc3luYy5yZWFkZXJTZW0gPHR5cGUgLTc+OyAuc3luYy5yZWFkZXJDb3VudCA8dHlwZSAtMz47IC5zeW5jLnJlYWRlcldhaXQgPHR5cGUgLTM+OyB9PgogZnVuYyAocncgPHR5cGUgMzYgKjx0eXBlIDM0Pj4pIFJMb2NrICgpOwogZnVuYyAocncgPHR5cGUgMzY+KSBSVW5sb2NrICgpOwogZnVuYyAocncgPHR5cGUgMzY+KSBMb2NrICgpOwogZnVuYyAocncgPHR5cGUgMzY+KSBVbmxvY2sgKCk7CiBmdW5jIChydyA8dHlwZSAzNj4pIFJMb2NrZXIgKCkgPHR5cGUgMz47Cj47CnR5cGUgPHR5cGUgMzcgIldhaXRHcm91cCIgPHR5cGUgMzggc3RydWN0IHsgLnN5bmMubSA8dHlwZSAxMj47IC5zeW5jLmNvdW50ZXIgPHR5cGUgLTM+OyAuc3luYy53YWl0ZXJzIDx0eXBlIC0zPjsgLnN5bmMuc2VtYSA8dHlwZSAzOSAqPHR5cGUgLTc+PjsgfT4KIGZ1bmMgKHdnIDx0eXBlIDQwICo8dHlwZSAzNz4+KSBBZGQgKGRlbHRhIDx0eXBlIC0xMT4pOwogZnVuYyAod2cgPHR5cGUgNDA+KSBEb25lICgpOwogZnVuYyAod2cgPHR5cGUgNDA+KSBXYWl0ICgpOwo+OwpjaGVja3N1bSBDNEMzMTA4MTYyQ0Q3RjIzMjlBQTNEM0MwMDAzNkMyM0Y5RDc0NkE2OwoALnN5bXRhYgAuc3RydGFiAC5zaHN0cnRhYgAuZ29fZXhwb3J0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAATAkAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAgAkAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAKgJAAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAADICQAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=