f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAAgCwAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGRyYXc7CnBrZ3BhdGggaW1hZ2UvZHJhdzsKcHJpb3JpdHkgNzsKaW1wb3J0IGltYWdlIGltYWdlICJpbWFnZSI7CmltcG9ydCBjb2xvciBpbWFnZS9jb2xvciAiaW1hZ2UvY29sb3IiOwppbml0IGRyYXcgaW1hZ2VfZHJhdy4uaW1wb3J0IDcgY29sb3IgaW1hZ2VfY29sb3IuLmltcG9ydCAxIG1hdGggbWF0aC4uaW1wb3J0IDEgcnVudGltZSBydW50aW1lLi5pbXBvcnQgMSB1bmljb2RlIHVuaWNvZGUuLmltcG9ydCAxIHN0cmNvbnYgc3RyY29udi4uaW1wb3J0IDIgc3luYyBzeW5jLi5pbXBvcnQgMiBpbyBpby4uaW1wb3J0IDMgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0IGJ1ZmlvIGJ1ZmlvLi5pbXBvcnQgNSBpbWFnZSBpbWFnZS4uaW1wb3J0IDY7CmZ1bmMgRHJhdyAoZHN0IDx0eXBlIDEgIkltYWdlIiA8dHlwZSAyIGludGVyZmFjZSB7ID8gPHR5cGUgMyAiaW1hZ2UuSW1hZ2UiIDx0eXBlIDQgaW50ZXJmYWNlIHsgQ29sb3JNb2RlbCAoKSA8dHlwZSA1ICJpbWFnZS9jb2xvci5Nb2RlbCIgPHR5cGUgNiBpbnRlcmZhY2UgeyBDb252ZXJ0IChjIDx0eXBlIDcgImltYWdlL2NvbG9yLkNvbG9yIiA8dHlwZSA4IGludGVyZmFjZSB7IFJHQkEgKCkgKHIgPHR5cGUgLTc+LCBnIDx0eXBlIC03PiwgYiA8dHlwZSAtNz4sIGEgPHR5cGUgLTc+KTsgfT4+KSA8dHlwZSA3PjsgfT4+OyBCb3VuZHMgKCkgPHR5cGUgOSAiaW1hZ2UuUmVjdGFuZ2xlIiA8dHlwZSAxMCBzdHJ1Y3QgeyBNaW4gPHR5cGUgMTEgImltYWdlLlBvaW50IiA8dHlwZSAxMiBzdHJ1Y3QgeyBYIDx0eXBlIC0xMT47IFkgPHR5cGUgLTExPjsgfT4KIGZ1bmMgKHAgPHR5cGUgMTE+KSBNb2QgKHIgPHR5cGUgOT4pIDx0eXBlIDExPjsKIGZ1bmMgKHAgPHR5cGUgMTE+KSBTdWIgKHEgPHR5cGUgMTE+KSA8dHlwZSAxMT47CiBmdW5jIChwIDx0eXBlIDExPikgRGl2IChrIDx0eXBlIC0xMT4pIDx0eXBlIDExPjsKIGZ1bmMgKHAgPHR5cGUgMTE+KSBFcSAocSA8dHlwZSAxMT4pIDx0eXBlIC0xNT47CiBmdW5jIChwIDx0eXBlIDExPikgTXVsIChrIDx0eXBlIC0xMT4pIDx0eXBlIDExPjsKIGZ1bmMgKHAgPHR5cGUgMTE+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHAgPHR5cGUgMTE+KSBJbiAociA8dHlwZSA5PikgPHR5cGUgLTE1PjsKIGZ1bmMgKHAgPHR5cGUgMTE+KSBBZGQgKHEgPHR5cGUgMTE+KSA8dHlwZSAxMT47Cj47IE1heCA8dHlwZSAxMT47IH0+CiBmdW5jIChyIDx0eXBlIDk+KSBJbnNldCAobiA8dHlwZSAtMTE+KSA8dHlwZSA5PjsKIGZ1bmMgKHIgPHR5cGUgOT4pIE92ZXJsYXBzIChzIDx0eXBlIDk+KSA8dHlwZSAtMTU+OwogZnVuYyAociA8dHlwZSA5PikgRHkgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHIgPHR5cGUgOT4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAociA8dHlwZSA5PikgQWRkIChwIDx0eXBlIDExPikgPHR5cGUgOT47CiBmdW5jIChyIDx0eXBlIDk+KSBDYW5vbiAoKSA8dHlwZSA5PjsKIGZ1bmMgKHIgPHR5cGUgOT4pIEVxIChzIDx0eXBlIDk+KSA8dHlwZSAtMTU+OwogZnVuYyAociA8dHlwZSA5PikgU3ViIChwIDx0eXBlIDExPikgPHR5cGUgOT47CiBmdW5jIChyIDx0eXBlIDk+KSBJbnRlcnNlY3QgKHMgPHR5cGUgOT4pIDx0eXBlIDk+OwogZnVuYyAociA8dHlwZSA5PikgU2l6ZSAoKSA8dHlwZSAxMT47CiBmdW5jIChyIDx0eXBlIDk+KSBJbiAocyA8dHlwZSA5PikgPHR5cGUgLTE1PjsKIGZ1bmMgKHIgPHR5cGUgOT4pIER4ICgpIDx0eXBlIC0xMT47CiBmdW5jIChyIDx0eXBlIDk+KSBFbXB0eSAoKSA8dHlwZSAtMTU+OwogZnVuYyAociA8dHlwZSA5PikgVW5pb24gKHMgPHR5cGUgOT4pIDx0eXBlIDk+Owo+OyBBdCAoeCA8dHlwZSAtMTE+LCB5IDx0eXBlIC0xMT4pIDx0eXBlIDc+OyB9Pj47IFNldCAoeCA8dHlwZSAtMTE+LCB5IDx0eXBlIC0xMT4sIGMgPHR5cGUgNz4pOyB9Pj4sIHIgPHR5cGUgOT4sIHNyYyA8dHlwZSAzPiwgc3AgPHR5cGUgMTE+LCBvcCA8dHlwZSAxMyAiT3AiIDx0eXBlIC0xMT4KIGZ1bmMgKG9wIDx0eXBlIDEzPikgRHJhdyAoZHN0IDx0eXBlIDE+LCByIDx0eXBlIDk+LCBzcmMgPHR5cGUgMz4sIHNwIDx0eXBlIDExPik7Cj4pOwpmdW5jIERyYXdNYXNrIChkc3QgPHR5cGUgMT4sIHIgPHR5cGUgOT4sIHNyYyA8dHlwZSAzPiwgc3AgPHR5cGUgMTE+LCBtYXNrIDx0eXBlIDM+LCBtcCA8dHlwZSAxMT4sIG9wIDx0eXBlIDEzPik7CnR5cGUgPHR5cGUgMTQgIkRyYXdlciIgPHR5cGUgMTUgaW50ZXJmYWNlIHsgRHJhdyAoZHN0IDx0eXBlIDE+LCByIDx0eXBlIDk+LCBzcmMgPHR5cGUgMz4sIHNwIDx0eXBlIDExPik7IH0+PjsKdmFyIEZsb3lkU3RlaW5iZXJnIDx0eXBlIDE0PjsKdHlwZSA8dHlwZSAxPjsKdHlwZSA8dHlwZSAxMz47CmNvbnN0IE92ZXIgPHR5cGUgMTM+ID0gMCA7CnR5cGUgPHR5cGUgMTYgIlF1YW50aXplciIgPHR5cGUgMTcgaW50ZXJmYWNlIHsgUXVhbnRpemUgKHAgPHR5cGUgMTggImltYWdlL2NvbG9yLlBhbGV0dGUiIDx0eXBlIDE5IFtdIDx0eXBlIDc+PgogZnVuYyAocCA8dHlwZSAxOD4pIEluZGV4IChjIDx0eXBlIDc+KSA8dHlwZSAtMTE+OwogZnVuYyAocCA8dHlwZSAxOD4pIENvbnZlcnQgKGMgPHR5cGUgNz4pIDx0eXBlIDc+Owo+LCBtIDx0eXBlIDM+KSA8dHlwZSAxOD47IH0+PjsKY29uc3QgU3JjIDx0eXBlIDEzPiA9IDEgOwpjaGVja3N1bSBFNzQ5RjIwMjJDNTM1NDNBMkJCNzE4QTFDNDUyNkM0RTg5NkZCNUUzOwoALnN5bXRhYgAuc3RydGFiAC5zaHN0cnRhYgAuZ29fZXhwb3J0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAAKIKAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAANYKAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAD8CgAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAHAsAAAEAAAAAAAAAAAAAAAEAAAAAAAAA