f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAADoEgAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGJ1ZmlvOwpwa2dwYXRoIGJ1ZmlvOwpwcmlvcml0eSA1OwppbXBvcnQgYnl0ZXMgYnl0ZXMgImJ5dGVzIjsKaW1wb3J0IGVycm9ycyBlcnJvcnMgImVycm9ycyI7CmltcG9ydCBpbyBpbyAiaW8iOwppbXBvcnQgdXRmOCB1bmljb2RlL3V0ZjggInVuaWNvZGUvdXRmOCI7CmluaXQgYnVmaW8gYnVmaW8uLmltcG9ydCA1IHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgdW5pY29kZSB1bmljb2RlLi5pbXBvcnQgMSBzeW5jIHN5bmMuLmltcG9ydCAyIGlvIGlvLi5pbXBvcnQgMyBieXRlcyBieXRlcy4uaW1wb3J0IDQ7CnZhciBFcnJBZHZhbmNlVG9vRmFyIDx0eXBlIC0xOT47CnZhciBFcnJCdWZmZXJGdWxsIDx0eXBlIC0xOT47CnZhciBFcnJJbnZhbGlkVW5yZWFkQnl0ZSA8dHlwZSAtMTk+Owp2YXIgRXJySW52YWxpZFVucmVhZFJ1bmUgPHR5cGUgLTE5PjsKdmFyIEVyck5lZ2F0aXZlQWR2YW5jZSA8dHlwZSAtMTk+Owp2YXIgRXJyTmVnYXRpdmVDb3VudCA8dHlwZSAtMTk+Owp2YXIgRXJyVG9vTG9uZyA8dHlwZSAtMTk+Owpjb25zdCBNYXhTY2FuVG9rZW5TaXplID0gNjU1MzYgOwpmdW5jIE5ld1JlYWRXcml0ZXIgKHIgPHR5cGUgMSAqPHR5cGUgMiAiUmVhZGVyIiA8dHlwZSAzIHN0cnVjdCB7IC5idWZpby5idWYgPHR5cGUgNCBbXSA8dHlwZSAtMjA+PjsgLmJ1ZmlvLnJkIDx0eXBlIDUgImlvLlJlYWRlciIgPHR5cGUgNiBpbnRlcmZhY2UgeyBSZWFkIChwIDx0eXBlIDcgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+OyAuYnVmaW8uciA8dHlwZSAtMTE+OyAuYnVmaW8udyA8dHlwZSAtMTE+OyAuYnVmaW8uZXJyIDx0eXBlIC0xOT47IC5idWZpby5sYXN0Qnl0ZSA8dHlwZSAtMTE+OyAuYnVmaW8ubGFzdFJ1bmVTaXplIDx0eXBlIC0xMT47IH0+CiBmdW5jIChiIDx0eXBlIDggKjx0eXBlIDI+PikgUmVzZXQgKHIgPHR5cGUgNT4pOwogZnVuYyAoYiA8dHlwZSA4PikgLmJ1ZmlvLnJlc2V0IChidWYgPHR5cGUgOSBbXSA8dHlwZSAtMjA+PiwgciA8dHlwZSA1Pik7CiBmdW5jIChiIDx0eXBlIDg+KSAuYnVmaW8uZmlsbCAoKTsKIGZ1bmMgKGIgPHR5cGUgOD4pIC5idWZpby5yZWFkRXJyICgpIDx0eXBlIC0xOT47CiBmdW5jIChiIDx0eXBlIDg+KSBQZWVrIChuIDx0eXBlIC0xMT4pICg/IDx0eXBlIDEwIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSA4PikgUmVhZCAocCA8dHlwZSAxMSBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSA4PikgUmVhZEJ5dGUgKCkgKGMgPHR5cGUgLTIwPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSA4PikgVW5yZWFkQnl0ZSAoKSA8dHlwZSAtMTk+OwogZnVuYyAoYiA8dHlwZSA4PikgUmVhZFJ1bmUgKCkgKHIgPHR5cGUgLTIxPiwgc2l6ZSA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDg+KSBVbnJlYWRSdW5lICgpIDx0eXBlIC0xOT47CiBmdW5jIChiIDx0eXBlIDg+KSBCdWZmZXJlZCAoKSA8dHlwZSAtMTE+OwogZnVuYyAoYiA8dHlwZSA4PikgUmVhZFNsaWNlIChkZWxpbSA8dHlwZSAtMjA+KSAobGluZSA8dHlwZSAxMiBbXSA8dHlwZSAtMjA+PiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSA4PikgUmVhZExpbmUgKCkgKGxpbmUgPHR5cGUgMTMgW10gPHR5cGUgLTIwPj4sIGlzUHJlZml4IDx0eXBlIC0xNT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgOD4pIFJlYWRCeXRlcyAoZGVsaW0gPHR5cGUgLTIwPikgKGxpbmUgPHR5cGUgMTQgW10gPHR5cGUgLTIwPj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgOD4pIFJlYWRTdHJpbmcgKGRlbGltIDx0eXBlIC0yMD4pIChsaW5lIDx0eXBlIC0xNj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgOD4pIFdyaXRlVG8gKHcgPHR5cGUgMTUgImlvLldyaXRlciIgPHR5cGUgMTYgaW50ZXJmYWNlIHsgV3JpdGUgKHAgPHR5cGUgMTcgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+KSAobiA8dHlwZSAtND4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgOD4pIC5idWZpby53cml0ZUJ1ZiAodyA8dHlwZSAxNT4pICg/IDx0eXBlIC00PiwgPyA8dHlwZSAtMTk+KTsKPj4sIHcgPHR5cGUgMTggKjx0eXBlIDE5ICJXcml0ZXIiIDx0eXBlIDIwIHN0cnVjdCB7IC5idWZpby5lcnIgPHR5cGUgLTE5PjsgLmJ1ZmlvLmJ1ZiA8dHlwZSAyMSBbXSA8dHlwZSAtMjA+PjsgLmJ1ZmlvLm4gPHR5cGUgLTExPjsgLmJ1ZmlvLndyIDx0eXBlIDE1PjsgfT4KIGZ1bmMgKGIgPHR5cGUgMjIgKjx0eXBlIDE5Pj4pIFJlc2V0ICh3IDx0eXBlIDE1Pik7CiBmdW5jIChiIDx0eXBlIDIyPikgRmx1c2ggKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKGIgPHR5cGUgMjI+KSAuYnVmaW8uZmx1c2ggKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKGIgPHR5cGUgMjI+KSBBdmFpbGFibGUgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKGIgPHR5cGUgMjI+KSBCdWZmZXJlZCAoKSA8dHlwZSAtMTE+OwogZnVuYyAoYiA8dHlwZSAyMj4pIFdyaXRlIChwIDx0eXBlIDIzIFtdIDx0eXBlIC0yMD4+KSAobm4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSAyMj4pIFdyaXRlQnl0ZSAoYyA8dHlwZSAtMjA+KSA8dHlwZSAtMTk+OwogZnVuYyAoYiA8dHlwZSAyMj4pIFdyaXRlUnVuZSAociA8dHlwZSAtMjE+KSAoc2l6ZSA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDIyPikgV3JpdGVTdHJpbmcgKHMgPHR5cGUgLTE2PikgKD8gPHR5cGUgLTExPiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgMjI+KSBSZWFkRnJvbSAociA8dHlwZSA1PikgKG4gPHR5cGUgLTQ+LCBlcnIgPHR5cGUgLTE5Pik7Cj4+KSA8dHlwZSAyNCAqPHR5cGUgMjUgIlJlYWRXcml0ZXIiIDx0eXBlIDI2IHN0cnVjdCB7ID8gPHR5cGUgMT47ID8gPHR5cGUgMTg+OyB9Pj4+OwpmdW5jIE5ld1JlYWRlciAocmQgPHR5cGUgNT4pIDx0eXBlIDE+OwpmdW5jIE5ld1JlYWRlclNpemUgKHJkIDx0eXBlIDU+LCBzaXplIDx0eXBlIC0xMT4pIDx0eXBlIDE+OwpmdW5jIE5ld1NjYW5uZXIgKHIgPHR5cGUgNT4pIDx0eXBlIDI3ICo8dHlwZSAyOCAiU2Nhbm5lciIgPHR5cGUgMjkgc3RydWN0IHsgLmJ1ZmlvLnIgPHR5cGUgNT47IC5idWZpby5zcGxpdCA8dHlwZSAzMCAiU3BsaXRGdW5jIiA8dHlwZSAzMSAoZGF0YSA8dHlwZSAzMiBbXSA8dHlwZSAtMjA+PiwgYXRFT0YgPHR5cGUgLTE1PikgKGFkdmFuY2UgPHR5cGUgLTExPiwgdG9rZW4gPHR5cGUgMzMgW10gPHR5cGUgLTIwPj4sIGVyciA8dHlwZSAtMTk+KT4+OyAuYnVmaW8ubWF4VG9rZW5TaXplIDx0eXBlIC0xMT47IC5idWZpby50b2tlbiA8dHlwZSAzNCBbXSA8dHlwZSAtMjA+PjsgLmJ1ZmlvLmJ1ZiA8dHlwZSAzNSBbXSA8dHlwZSAtMjA+PjsgLmJ1ZmlvLnN0YXJ0IDx0eXBlIC0xMT47IC5idWZpby5lbmQgPHR5cGUgLTExPjsgLmJ1ZmlvLmVyciA8dHlwZSAtMTk+OyAuYnVmaW8uZW1wdGllcyA8dHlwZSAtMTE+OyB9PgogZnVuYyAocyA8dHlwZSAzNiAqPHR5cGUgMjg+PikgRXJyICgpIDx0eXBlIC0xOT47CiBmdW5jIChzIDx0eXBlIDM2PikgQnl0ZXMgKCkgPHR5cGUgMzcgW10gPHR5cGUgLTIwPj47CiBmdW5jIChzIDx0eXBlIDM2PikgVGV4dCAoKSA8dHlwZSAtMTY+OwogZnVuYyAocyA8dHlwZSAzNj4pIFNjYW4gKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKHMgPHR5cGUgMzY+KSAuYnVmaW8uYWR2YW5jZSAobiA8dHlwZSAtMTE+KSA8dHlwZSAtMTU+OwogZnVuYyAocyA8dHlwZSAzNj4pIC5idWZpby5zZXRFcnIgKGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHMgPHR5cGUgMzY+KSBTcGxpdCAoc3BsaXQgPHR5cGUgMzA+KTsKPj47CmZ1bmMgTmV3V3JpdGVyICh3IDx0eXBlIDE1PikgPHR5cGUgMTg+OwpmdW5jIE5ld1dyaXRlclNpemUgKHcgPHR5cGUgMTU+LCBzaXplIDx0eXBlIC0xMT4pIDx0eXBlIDE4PjsKdHlwZSA8dHlwZSAyNT47CnR5cGUgPHR5cGUgMj47CmZ1bmMgU2NhbkJ5dGVzIChkYXRhIDx0eXBlIDM4IFtdIDx0eXBlIC0yMD4+LCBhdEVPRiA8dHlwZSAtMTU+KSAoYWR2YW5jZSA8dHlwZSAtMTE+LCB0b2tlbiA8dHlwZSAzOSBbXSA8dHlwZSAtMjA+PiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNjYW5MaW5lcyAoZGF0YSA8dHlwZSA0MCBbXSA8dHlwZSAtMjA+PiwgYXRFT0YgPHR5cGUgLTE1PikgKGFkdmFuY2UgPHR5cGUgLTExPiwgdG9rZW4gPHR5cGUgNDEgW10gPHR5cGUgLTIwPj4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTY2FuUnVuZXMgKGRhdGEgPHR5cGUgNDIgW10gPHR5cGUgLTIwPj4sIGF0RU9GIDx0eXBlIC0xNT4pIChhZHZhbmNlIDx0eXBlIC0xMT4sIHRva2VuIDx0eXBlIDQzIFtdIDx0eXBlIC0yMD4+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU2NhbldvcmRzIChkYXRhIDx0eXBlIDQ0IFtdIDx0eXBlIC0yMD4+LCBhdEVPRiA8dHlwZSAtMTU+KSAoYWR2YW5jZSA8dHlwZSAtMTE+LCB0b2tlbiA8dHlwZSA0NSBbXSA8dHlwZSAtMjA+PiwgZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDI4PjsKdHlwZSA8dHlwZSAzMD47CnR5cGUgPHR5cGUgMTk+OwpjaGVja3N1bSA1QUJFNDUzN0UyMzFFNzYyNDYwNDRCNzUwRDMzNDVBMDk2MTQ1RDhEOwoALnN5bXRhYgAuc3RydGFiAC5zaHN0cnRhYgAuZ29fZXhwb3J0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAAGcSAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAAJsSAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAADEEgAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAA5BIAAAEAAAAAAAAAAAAAAAEAAAAAAAAA