f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAAwHAAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGJ5dGVzOwpwa2dwYXRoIGJ5dGVzOwpwcmlvcml0eSA0OwppbXBvcnQgZXJyb3JzIGVycm9ycyAiZXJyb3JzIjsKaW1wb3J0IGlvIGlvICJpbyI7CmltcG9ydCB1bmljb2RlIHVuaWNvZGUgInVuaWNvZGUiOwppbXBvcnQgdXRmOCB1bmljb2RlL3V0ZjggInVuaWNvZGUvdXRmOCI7CmluaXQgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0IHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgdW5pY29kZSB1bmljb2RlLi5pbXBvcnQgMSBzeW5jIHN5bmMuLmltcG9ydCAyIGlvIGlvLi5pbXBvcnQgMzsKdHlwZSA8dHlwZSAxICJCdWZmZXIiIDx0eXBlIDIgc3RydWN0IHsgLmJ5dGVzLmJ1ZiA8dHlwZSAzIFtdIDx0eXBlIC0yMD4+OyAuYnl0ZXMub2ZmIDx0eXBlIC0xMT47IC5ieXRlcy5ydW5lQnl0ZXMgPHR5cGUgNCBbNCBdIDx0eXBlIC0yMD4+OyAuYnl0ZXMuYm9vdHN0cmFwIDx0eXBlIDUgWzY0IF0gPHR5cGUgLTIwPj47IC5ieXRlcy5sYXN0UmVhZCA8dHlwZSA2ICIuYnl0ZXMucmVhZE9wIiA8dHlwZSAtMTE+PjsgfT4KIGZ1bmMgKGIgPHR5cGUgNyAqPHR5cGUgMT4+KSBCeXRlcyAoKSA8dHlwZSA4IFtdIDx0eXBlIC0yMD4+OwogZnVuYyAoYiA8dHlwZSA3PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChiIDx0eXBlIDc+KSBMZW4gKCkgPHR5cGUgLTExPjsKIGZ1bmMgKGIgPHR5cGUgNz4pIFRydW5jYXRlIChuIDx0eXBlIC0xMT4pOwogZnVuYyAoYiA8dHlwZSA3PikgUmVzZXQgKCk7CiBmdW5jIChiIDx0eXBlIDc+KSAuYnl0ZXMuZ3JvdyAobiA8dHlwZSAtMTE+KSA8dHlwZSAtMTE+OwogZnVuYyAoYiA8dHlwZSA3PikgR3JvdyAobiA8dHlwZSAtMTE+KTsKIGZ1bmMgKGIgPHR5cGUgNz4pIFdyaXRlIChwIDx0eXBlIDkgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNz4pIFdyaXRlU3RyaW5nIChzIDx0eXBlIC0xNj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNz4pIFJlYWRGcm9tIChyIDx0eXBlIDEwICJpby5SZWFkZXIiIDx0eXBlIDExIGludGVyZmFjZSB7IFJlYWQgKHAgPHR5cGUgMTIgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+KSAobiA8dHlwZSAtND4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNz4pIFdyaXRlVG8gKHcgPHR5cGUgMTMgImlvLldyaXRlciIgPHR5cGUgMTQgaW50ZXJmYWNlIHsgV3JpdGUgKHAgPHR5cGUgMTUgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+KSAobiA8dHlwZSAtND4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNz4pIFdyaXRlQnl0ZSAoYyA8dHlwZSAtMjA+KSA8dHlwZSAtMTk+OwogZnVuYyAoYiA8dHlwZSA3PikgV3JpdGVSdW5lIChyIDx0eXBlIC0yMT4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNz4pIFJlYWQgKHAgPHR5cGUgMTYgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNz4pIE5leHQgKG4gPHR5cGUgLTExPikgPHR5cGUgMTcgW10gPHR5cGUgLTIwPj47CiBmdW5jIChiIDx0eXBlIDc+KSBSZWFkQnl0ZSAoKSAoYyA8dHlwZSAtMjA+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDc+KSBSZWFkUnVuZSAoKSAociA8dHlwZSAtMjE+LCBzaXplIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNz4pIFVucmVhZFJ1bmUgKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKGIgPHR5cGUgNz4pIFVucmVhZEJ5dGUgKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKGIgPHR5cGUgNz4pIFJlYWRCeXRlcyAoZGVsaW0gPHR5cGUgLTIwPikgKGxpbmUgPHR5cGUgMTggW10gPHR5cGUgLTIwPj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNz4pIC5ieXRlcy5yZWFkU2xpY2UgKGRlbGltIDx0eXBlIC0yMD4pIChsaW5lIDx0eXBlIDE5IFtdIDx0eXBlIC0yMD4+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDc+KSBSZWFkU3RyaW5nIChkZWxpbSA8dHlwZSAtMjA+KSAobGluZSA8dHlwZSAtMTY+LCBlcnIgPHR5cGUgLTE5Pik7Cj47CmZ1bmMgQ29tcGFyZSAoYSA8dHlwZSAyMCBbXSA8dHlwZSAtMjA+PiwgYiA8dHlwZSAyMD4pIDx0eXBlIC0xMT47CmZ1bmMgQ29udGFpbnMgKGIgPHR5cGUgMjEgW10gPHR5cGUgLTIwPj4sIHN1YnNsaWNlIDx0eXBlIDIxPikgPHR5cGUgLTE1PjsKZnVuYyBDb3VudCAocyA8dHlwZSAyMiBbXSA8dHlwZSAtMjA+Piwgc2VwIDx0eXBlIDIyPikgPHR5cGUgLTExPjsKZnVuYyBFcXVhbCAoYSA8dHlwZSAyMyBbXSA8dHlwZSAtMjA+PiwgYiA8dHlwZSAyMz4pIDx0eXBlIC0xNT47CmZ1bmMgRXF1YWxGb2xkIChzIDx0eXBlIDI0IFtdIDx0eXBlIC0yMD4+LCB0IDx0eXBlIDI0PikgPHR5cGUgLTE1PjsKdmFyIEVyclRvb0xhcmdlIDx0eXBlIC0xOT47CmZ1bmMgRmllbGRzIChzIDx0eXBlIDI1IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAyNiBbXSA8dHlwZSAyNyBbXSA8dHlwZSAtMjA+Pj47CmZ1bmMgRmllbGRzRnVuYyAocyA8dHlwZSAyOCBbXSA8dHlwZSAtMjA+PiwgZiA8dHlwZSAyOSAoPyA8dHlwZSAtMjE+KSA8dHlwZSAtMTU+PikgPHR5cGUgMzAgW10gPHR5cGUgMzEgW10gPHR5cGUgLTIwPj4+OwpmdW5jIEhhc1ByZWZpeCAocyA8dHlwZSAzMiBbXSA8dHlwZSAtMjA+PiwgcHJlZml4IDx0eXBlIDMyPikgPHR5cGUgLTE1PjsKZnVuYyBIYXNTdWZmaXggKHMgPHR5cGUgMzMgW10gPHR5cGUgLTIwPj4sIHN1ZmZpeCA8dHlwZSAzMz4pIDx0eXBlIC0xNT47CmZ1bmMgSW5kZXggKHMgPHR5cGUgMzQgW10gPHR5cGUgLTIwPj4sIHNlcCA8dHlwZSAzND4pIDx0eXBlIC0xMT47CmZ1bmMgSW5kZXhBbnkgKHMgPHR5cGUgMzUgW10gPHR5cGUgLTIwPj4sIGNoYXJzIDx0eXBlIC0xNj4pIDx0eXBlIC0xMT47CmZ1bmMgSW5kZXhCeXRlIChzIDx0eXBlIDM2IFtdIDx0eXBlIC0yMD4+LCBjIDx0eXBlIC0yMD4pIDx0eXBlIC0xMT47CmZ1bmMgSW5kZXhGdW5jIChzIDx0eXBlIDM3IFtdIDx0eXBlIC0yMD4+LCBmIDx0eXBlIDM4IChyIDx0eXBlIC0yMT4pIDx0eXBlIC0xNT4+KSA8dHlwZSAtMTE+OwpmdW5jIEluZGV4UnVuZSAocyA8dHlwZSAzOSBbXSA8dHlwZSAtMjA+PiwgciA8dHlwZSAtMjE+KSA8dHlwZSAtMTE+OwpmdW5jIEpvaW4gKHMgPHR5cGUgNDAgW10gPHR5cGUgNDEgW10gPHR5cGUgLTIwPj4+LCBzZXAgPHR5cGUgNDIgW10gPHR5cGUgLTIwPj4pIDx0eXBlIDQzIFtdIDx0eXBlIC0yMD4+OwpmdW5jIExhc3RJbmRleCAocyA8dHlwZSA0NCBbXSA8dHlwZSAtMjA+Piwgc2VwIDx0eXBlIDQ0PikgPHR5cGUgLTExPjsKZnVuYyBMYXN0SW5kZXhBbnkgKHMgPHR5cGUgNDUgW10gPHR5cGUgLTIwPj4sIGNoYXJzIDx0eXBlIC0xNj4pIDx0eXBlIC0xMT47CmZ1bmMgTGFzdEluZGV4RnVuYyAocyA8dHlwZSA0NiBbXSA8dHlwZSAtMjA+PiwgZiA8dHlwZSA0NyAociA8dHlwZSAtMjE+KSA8dHlwZSAtMTU+PikgPHR5cGUgLTExPjsKZnVuYyBNYXAgKG1hcHBpbmcgPHR5cGUgNDggKHIgPHR5cGUgLTIxPikgPHR5cGUgLTIxPj4sIHMgPHR5cGUgNDkgW10gPHR5cGUgLTIwPj4pIDx0eXBlIDUwIFtdIDx0eXBlIC0yMD4+Owpjb25zdCBNaW5SZWFkID0gNTEyIDsKZnVuYyBOZXdCdWZmZXIgKGJ1ZiA8dHlwZSA1MSBbXSA8dHlwZSAtMjA+PikgPHR5cGUgNz47CmZ1bmMgTmV3QnVmZmVyU3RyaW5nIChzIDx0eXBlIC0xNj4pIDx0eXBlIDc+OwpmdW5jIE5ld1JlYWRlciAoYiA8dHlwZSA1MiBbXSA8dHlwZSAtMjA+PikgPHR5cGUgNTMgKjx0eXBlIDU0ICJSZWFkZXIiIDx0eXBlIDU1IHN0cnVjdCB7IC5ieXRlcy5zIDx0eXBlIDU2IFtdIDx0eXBlIC0yMD4+OyAuYnl0ZXMuaSA8dHlwZSAtND47IC5ieXRlcy5wcmV2UnVuZSA8dHlwZSAtMTE+OyB9PgogZnVuYyAociA8dHlwZSA1NyAqPHR5cGUgNTQ+PikgTGVuICgpIDx0eXBlIC0xMT47CiBmdW5jIChyIDx0eXBlIDU3PikgUmVhZCAoYiA8dHlwZSA1OCBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSA1Nz4pIFJlYWRBdCAoYiA8dHlwZSA1OSBbXSA8dHlwZSAtMjA+Piwgb2ZmIDx0eXBlIC00PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSA1Nz4pIFJlYWRCeXRlICgpIChiIDx0eXBlIC0yMD4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHIgPHR5cGUgNTc+KSBVbnJlYWRCeXRlICgpIDx0eXBlIC0xOT47CiBmdW5jIChyIDx0eXBlIDU3PikgUmVhZFJ1bmUgKCkgKGNoIDx0eXBlIC0yMT4sIHNpemUgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSA1Nz4pIFVucmVhZFJ1bmUgKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKHIgPHR5cGUgNTc+KSBTZWVrIChvZmZzZXQgPHR5cGUgLTQ+LCB3aGVuY2UgPHR5cGUgLTExPikgKD8gPHR5cGUgLTQ+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSA1Nz4pIFdyaXRlVG8gKHcgPHR5cGUgMTM+KSAobiA8dHlwZSAtND4sIGVyciA8dHlwZSAtMTk+KTsKPj47CnR5cGUgPHR5cGUgNTQ+OwpmdW5jIFJlcGVhdCAoYiA8dHlwZSA2MCBbXSA8dHlwZSAtMjA+PiwgY291bnQgPHR5cGUgLTExPikgPHR5cGUgNjEgW10gPHR5cGUgLTIwPj47CmZ1bmMgUmVwbGFjZSAocyA8dHlwZSA2MiBbXSA8dHlwZSAtMjA+Piwgb2xkIDx0eXBlIDYyPiwgbmV3IDx0eXBlIDYyPiwgbiA8dHlwZSAtMTE+KSA8dHlwZSA2MyBbXSA8dHlwZSAtMjA+PjsKZnVuYyBSdW5lcyAocyA8dHlwZSA2NCBbXSA8dHlwZSAtMjA+PikgPHR5cGUgNjUgW10gPHR5cGUgLTIxPj47CmZ1bmMgU3BsaXQgKHMgPHR5cGUgNjYgW10gPHR5cGUgLTIwPj4sIHNlcCA8dHlwZSA2Nj4pIDx0eXBlIDY3IFtdIDx0eXBlIDY4IFtdIDx0eXBlIC0yMD4+PjsKZnVuYyBTcGxpdEFmdGVyIChzIDx0eXBlIDY5IFtdIDx0eXBlIC0yMD4+LCBzZXAgPHR5cGUgNjk+KSA8dHlwZSA3MCBbXSA8dHlwZSA3MSBbXSA8dHlwZSAtMjA+Pj47CmZ1bmMgU3BsaXRBZnRlck4gKHMgPHR5cGUgNzIgW10gPHR5cGUgLTIwPj4sIHNlcCA8dHlwZSA3Mj4sIG4gPHR5cGUgLTExPikgPHR5cGUgNzMgW10gPHR5cGUgNzQgW10gPHR5cGUgLTIwPj4+OwpmdW5jIFNwbGl0TiAocyA8dHlwZSA3NSBbXSA8dHlwZSAtMjA+Piwgc2VwIDx0eXBlIDc1PiwgbiA8dHlwZSAtMTE+KSA8dHlwZSA3NiBbXSA8dHlwZSA3NyBbXSA8dHlwZSAtMjA+Pj47CmZ1bmMgVGl0bGUgKHMgPHR5cGUgNzggW10gPHR5cGUgLTIwPj4pIDx0eXBlIDc5IFtdIDx0eXBlIC0yMD4+OwpmdW5jIFRvTG93ZXIgKHMgPHR5cGUgODAgW10gPHR5cGUgLTIwPj4pIDx0eXBlIDgxIFtdIDx0eXBlIC0yMD4+OwpmdW5jIFRvTG93ZXJTcGVjaWFsIChfY2FzZSA8dHlwZSA4MiAidW5pY29kZS5TcGVjaWFsQ2FzZSIgPHR5cGUgODMgW10gPHR5cGUgODQgInVuaWNvZGUuQ2FzZVJhbmdlIiA8dHlwZSA4NSBzdHJ1Y3QgeyBMbyA8dHlwZSAtNz47IEhpIDx0eXBlIC03PjsgRGVsdGEgPHR5cGUgODYgIi51bmljb2RlLmQiIDx0eXBlIDg3IFszIF0gPHR5cGUgLTIxPj4+OyB9Pj4+CiBmdW5jIChzcGVjaWFsIDx0eXBlIDgyPikgVG9Mb3dlciAociA8dHlwZSAtMjE+KSA8dHlwZSAtMjE+OwogZnVuYyAoc3BlY2lhbCA8dHlwZSA4Mj4pIFRvVGl0bGUgKHIgPHR5cGUgLTIxPikgPHR5cGUgLTIxPjsKIGZ1bmMgKHNwZWNpYWwgPHR5cGUgODI+KSBUb1VwcGVyIChyIDx0eXBlIC0yMT4pIDx0eXBlIC0yMT47Cj4sIHMgPHR5cGUgODggW10gPHR5cGUgLTIwPj4pIDx0eXBlIDg5IFtdIDx0eXBlIC0yMD4+OwpmdW5jIFRvVGl0bGUgKHMgPHR5cGUgOTAgW10gPHR5cGUgLTIwPj4pIDx0eXBlIDkxIFtdIDx0eXBlIC0yMD4+OwpmdW5jIFRvVGl0bGVTcGVjaWFsIChfY2FzZSA8dHlwZSA4Mj4sIHMgPHR5cGUgOTIgW10gPHR5cGUgLTIwPj4pIDx0eXBlIDkzIFtdIDx0eXBlIC0yMD4+OwpmdW5jIFRvVXBwZXIgKHMgPHR5cGUgOTQgW10gPHR5cGUgLTIwPj4pIDx0eXBlIDk1IFtdIDx0eXBlIC0yMD4+OwpmdW5jIFRvVXBwZXJTcGVjaWFsIChfY2FzZSA8dHlwZSA4Mj4sIHMgPHR5cGUgOTYgW10gPHR5cGUgLTIwPj4pIDx0eXBlIDk3IFtdIDx0eXBlIC0yMD4+OwpmdW5jIFRyaW0gKHMgPHR5cGUgOTggW10gPHR5cGUgLTIwPj4sIGN1dHNldCA8dHlwZSAtMTY+KSA8dHlwZSA5OSBbXSA8dHlwZSAtMjA+PjsKZnVuYyBUcmltRnVuYyAocyA8dHlwZSAxMDAgW10gPHR5cGUgLTIwPj4sIGYgPHR5cGUgMTAxIChyIDx0eXBlIC0yMT4pIDx0eXBlIC0xNT4+KSA8dHlwZSAxMDIgW10gPHR5cGUgLTIwPj47CmZ1bmMgVHJpbUxlZnQgKHMgPHR5cGUgMTAzIFtdIDx0eXBlIC0yMD4+LCBjdXRzZXQgPHR5cGUgLTE2PikgPHR5cGUgMTA0IFtdIDx0eXBlIC0yMD4+OwpmdW5jIFRyaW1MZWZ0RnVuYyAocyA8dHlwZSAxMDUgW10gPHR5cGUgLTIwPj4sIGYgPHR5cGUgMTA2IChyIDx0eXBlIC0yMT4pIDx0eXBlIC0xNT4+KSA8dHlwZSAxMDcgW10gPHR5cGUgLTIwPj47CmZ1bmMgVHJpbVByZWZpeCAocyA8dHlwZSAxMDggW10gPHR5cGUgLTIwPj4sIHByZWZpeCA8dHlwZSAxMDg+KSA8dHlwZSAxMDkgW10gPHR5cGUgLTIwPj47CmZ1bmMgVHJpbVJpZ2h0IChzIDx0eXBlIDExMCBbXSA8dHlwZSAtMjA+PiwgY3V0c2V0IDx0eXBlIC0xNj4pIDx0eXBlIDExMSBbXSA8dHlwZSAtMjA+PjsKZnVuYyBUcmltUmlnaHRGdW5jIChzIDx0eXBlIDExMiBbXSA8dHlwZSAtMjA+PiwgZiA8dHlwZSAxMTMgKHIgPHR5cGUgLTIxPikgPHR5cGUgLTE1Pj4pIDx0eXBlIDExNCBbXSA8dHlwZSAtMjA+PjsKZnVuYyBUcmltU3BhY2UgKHMgPHR5cGUgMTE1IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAxMTYgW10gPHR5cGUgLTIwPj47CmZ1bmMgVHJpbVN1ZmZpeCAocyA8dHlwZSAxMTcgW10gPHR5cGUgLTIwPj4sIHN1ZmZpeCA8dHlwZSAxMTc+KSA8dHlwZSAxMTggW10gPHR5cGUgLTIwPj47CmNoZWNrc3VtIDc3RDREQkQ4NEE5MDdCNjBFRTdEREYwNEEyRkY1RkE5NEUzNjRFNzI7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAALEbAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAAOUbAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAAMHAAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAALBwAAAEAAAAAAAAAAAAAAAEAAAAAAAAA