f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAD4fAAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHNtdHA7CnBrZ3BhdGggbmV0L3NtdHA7CnByaW9yaXR5IDEyOwppbXBvcnQgaG1hYyBjcnlwdG8vaG1hYyAiY3J5cHRvL2htYWMiOwppbXBvcnQgbWQ1IGNyeXB0by9tZDUgImNyeXB0by9tZDUiOwppbXBvcnQgdGxzIGNyeXB0by90bHMgImNyeXB0by90bHMiOwppbXBvcnQgYmFzZTY0IGVuY29kaW5nL2Jhc2U2NCAiZW5jb2RpbmcvYmFzZTY0IjsKaW1wb3J0IGVycm9ycyBlcnJvcnMgImVycm9ycyI7CmltcG9ydCBmbXQgZm10ICJmbXQiOwppbXBvcnQgaW8gaW8gImlvIjsKaW1wb3J0IG5ldCBuZXQgIm5ldCI7CmltcG9ydCB0ZXh0cHJvdG8gbmV0L3RleHRwcm90byAibmV0L3RleHRwcm90byI7CmltcG9ydCBzdHJpbmdzIHN0cmluZ3MgInN0cmluZ3MiOwppbml0IHNtdHAgbmV0X3NtdHAuLmltcG9ydCAxMiBtYXRoIG1hdGguLmltcG9ydCAxIHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgdW5pY29kZSB1bmljb2RlLi5pbXBvcnQgMSBzdHJjb252IHN0cmNvbnYuLmltcG9ydCAyIHN5bmMgc3luYy4uaW1wb3J0IDIgaW8gaW8uLmltcG9ydCAzIHJhbmQgbWF0aF9yYW5kLi5pbXBvcnQgMyByZWZsZWN0IHJlZmxlY3QuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgYmluYXJ5IGVuY29kaW5nX2JpbmFyeS4uaW1wb3J0IDQgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0IGNpcGhlciBjcnlwdG9fY2lwaGVyLi5pbXBvcnQgNCBzeXNjYWxsIGludGVybmFsX3N5c2NhbGwuLmltcG9ydCA0IHRpbWUgdGltZS4uaW1wb3J0IDQgYmFzZTY0IGVuY29kaW5nX2Jhc2U2NC4uaW1wb3J0IDUgYnVmaW8gYnVmaW8uLmltcG9ydCA1IGNyeXB0byBjcnlwdG8uLmltcG9ydCA1IGRlcyBjcnlwdG9fZGVzLi5pbXBvcnQgNSBvcyBvcy4uaW1wb3J0IDUgZmlsZXBhdGggcGF0aF9maWxlcGF0aC4uaW1wb3J0IDYgZm10IGZtdC4uaW1wb3J0IDYgbWQ1IGNyeXB0b19tZDUuLmltcG9ydCA2IG5ldCBuZXQuLmltcG9ydCA2IHBlbSBlbmNvZGluZ19wZW0uLmltcG9ydCA2IHNoYTEgY3J5cHRvX3NoYTEuLmltcG9ydCA2IHNoYTI1NiBjcnlwdG9fc2hhMjU2Li5pbXBvcnQgNiBzaGE1MTIgY3J5cHRvX3NoYTUxMi4uaW1wb3J0IDYgYmlnIG1hdGhfYmlnLi5pbXBvcnQgNyBoZXggZW5jb2RpbmdfaGV4Li5pbXBvcnQgNyBpb3V0aWwgaW9faW91dGlsLi5pbXBvcnQgNyBhc24xIGVuY29kaW5nX2FzbjEuLmltcG9ydCA4IGRzYSBjcnlwdG9fZHNhLi5pbXBvcnQgOCBlbGxpcHRpYyBjcnlwdG9fZWxsaXB0aWMuLmltcG9ydCA4IHJhbmQgY3J5cHRvX3JhbmQuLmltcG9ydCA4IHRleHRwcm90byBuZXRfdGV4dHByb3RvLi5pbXBvcnQgOCBlY2RzYSBjcnlwdG9fZWNkc2EuLmltcG9ydCA5IHBraXggY3J5cHRvX3g1MDlfcGtpeC4uaW1wb3J0IDkgcnNhIGNyeXB0b19yc2EuLmltcG9ydCA5IHg1MDkgY3J5cHRvX3g1MDkuLmltcG9ydCAxMCB0bHMgY3J5cHRvX3Rscy4uaW1wb3J0IDExOwp0eXBlIDx0eXBlIDEgIkF1dGgiIDx0eXBlIDIgaW50ZXJmYWNlIHsgU3RhcnQgKHNlcnZlciA8dHlwZSAzICo8dHlwZSA0ICJTZXJ2ZXJJbmZvIiA8dHlwZSA1IHN0cnVjdCB7IE5hbWUgPHR5cGUgLTE2PjsgVExTIDx0eXBlIC0xNT47IEF1dGggPHR5cGUgNiBbXSA8dHlwZSAtMTY+PjsgfT4+PikgKHByb3RvIDx0eXBlIC0xNj4sIHRvU2VydmVyIDx0eXBlIDcgW10gPHR5cGUgLTIwPj4sIGVyciA8dHlwZSAtMTk+KTsgTmV4dCAoZnJvbVNlcnZlciA8dHlwZSA4IFtdIDx0eXBlIC0yMD4+LCBtb3JlIDx0eXBlIC0xNT4pICh0b1NlcnZlciA8dHlwZSA5IFtdIDx0eXBlIC0yMD4+LCBlcnIgPHR5cGUgLTE5Pik7IH0+PjsKZnVuYyBDUkFNTUQ1QXV0aCAodXNlcm5hbWUgPHR5cGUgLTE2Piwgc2VjcmV0IDx0eXBlIC0xNj4pIDx0eXBlIDE+Owp0eXBlIDx0eXBlIDEwICJDbGllbnQiIDx0eXBlIDExIHN0cnVjdCB7IFRleHQgPHR5cGUgMTIgKjx0eXBlIDEzICJuZXQvdGV4dHByb3RvLkNvbm4iIDx0eXBlIDE0IHN0cnVjdCB7ID8gPHR5cGUgMTUgIm5ldC90ZXh0cHJvdG8uUmVhZGVyIiA8dHlwZSAxNiBzdHJ1Y3QgeyBSIDx0eXBlIDE3ICo8dHlwZSAxOCAiYnVmaW8uUmVhZGVyIiAiYnVmaW8iIDx0eXBlIDE5IHN0cnVjdCB7IC5idWZpby5idWYgPHR5cGUgMjAgW10gPHR5cGUgLTIwPj47IC5idWZpby5yZCA8dHlwZSAyMSAiaW8uUmVhZGVyIiA8dHlwZSAyMiBpbnRlcmZhY2UgeyBSZWFkIChwIDx0eXBlIDIzIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IH0+PjsgLmJ1ZmlvLnIgPHR5cGUgLTExPjsgLmJ1ZmlvLncgPHR5cGUgLTExPjsgLmJ1ZmlvLmVyciA8dHlwZSAtMTk+OyAuYnVmaW8ubGFzdEJ5dGUgPHR5cGUgLTExPjsgLmJ1ZmlvLmxhc3RSdW5lU2l6ZSA8dHlwZSAtMTE+OyB9PgogZnVuYyAoYiA8dHlwZSAyNCAqPHR5cGUgMTg+PikgVW5yZWFkQnl0ZSAoKSA8dHlwZSAtMTk+OwogZnVuYyAoYiA8dHlwZSAyND4pIFJlYWRTdHJpbmcgKGRlbGltIDx0eXBlIC0yMD4pIChsaW5lIDx0eXBlIC0xNj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgMjQ+KSBSZWFkQnl0ZSAoKSAoYyA8dHlwZSAtMjA+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDI0PikgV3JpdGVUbyAodyA8dHlwZSAyNSAiaW8uV3JpdGVyIiA8dHlwZSAyNiBpbnRlcmZhY2UgeyBXcml0ZSAocCA8dHlwZSAyNyBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj4pIChuIDx0eXBlIC00PiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSAyND4pIFJlYWRCeXRlcyAoZGVsaW0gPHR5cGUgLTIwPikgKGxpbmUgPHR5cGUgMjggW10gPHR5cGUgLTIwPj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgMjQ+KSBSZWFkTGluZSAoKSAobGluZSA8dHlwZSAyOSBbXSA8dHlwZSAtMjA+PiwgaXNQcmVmaXggPHR5cGUgLTE1PiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSAyND4pIFJlYWRSdW5lICgpIChyIDx0eXBlIC0yMT4sIHNpemUgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSAyND4pIC5idWZpby53cml0ZUJ1ZiAodyA8dHlwZSAyNT4pICg/IDx0eXBlIC00PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgMjQ+KSBVbnJlYWRSdW5lICgpIDx0eXBlIC0xOT47CiBmdW5jIChiIDx0eXBlIDI0PikgLmJ1ZmlvLmZpbGwgKCk7CiBmdW5jIChiIDx0eXBlIDI0PikgUmVzZXQgKHIgPHR5cGUgMjE+KTsKIGZ1bmMgKGIgPHR5cGUgMjQ+KSBSZWFkU2xpY2UgKGRlbGltIDx0eXBlIC0yMD4pIChsaW5lIDx0eXBlIDMwIFtdIDx0eXBlIC0yMD4+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDI0PikgUmVhZCAocCA8dHlwZSAzMSBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSAyND4pIEJ1ZmZlcmVkICgpIDx0eXBlIC0xMT47CiBmdW5jIChiIDx0eXBlIDI0PikgLmJ1ZmlvLnJlc2V0IChidWYgPHR5cGUgMzIgW10gPHR5cGUgLTIwPj4sIHIgPHR5cGUgMjE+KTsKIGZ1bmMgKGIgPHR5cGUgMjQ+KSBQZWVrIChuIDx0eXBlIC0xMT4pICg/IDx0eXBlIDMzIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSAyND4pIC5idWZpby5yZWFkRXJyICgpIDx0eXBlIC0xOT47Cj4+OyAubmV0L3RleHRwcm90by5kb3QgPHR5cGUgMzQgKjx0eXBlIDM1ICIubmV0L3RleHRwcm90by5kb3RSZWFkZXIiIDx0eXBlIDM2IHN0cnVjdCB7IC5uZXQvdGV4dHByb3RvLnIgPHR5cGUgMzcgKjx0eXBlIDE1Pj47IC5uZXQvdGV4dHByb3RvLnN0YXRlIDx0eXBlIC0xMT47IH0+CiBmdW5jIChkIDx0eXBlIDM4ICo8dHlwZSAzNT4+KSBSZWFkIChiIDx0eXBlIDM5IFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7Cj4+OyAubmV0L3RleHRwcm90by5idWYgPHR5cGUgNDAgW10gPHR5cGUgLTIwPj47IH0+CiBmdW5jIChyIDx0eXBlIDM3PikgLm5ldC90ZXh0cHJvdG8udXBjb21pbmdIZWFkZXJOZXdsaW5lcyAoKSAobiA8dHlwZSAtMTE+KTsKIGZ1bmMgKHIgPHR5cGUgMzc+KSBSZWFkQ29udGludWVkTGluZSAoKSAoPyA8dHlwZSAtMTY+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSAzNz4pIC5uZXQvdGV4dHByb3RvLnNraXBTcGFjZSAoKSA8dHlwZSAtMTE+OwogZnVuYyAociA8dHlwZSAzNz4pIFJlYWRNSU1FSGVhZGVyICgpICg/IDx0eXBlIDQxICJuZXQvdGV4dHByb3RvLk1JTUVIZWFkZXIiIDx0eXBlIDQyIG1hcCBbPHR5cGUgLTE2Pl0gPHR5cGUgNDMgW10gPHR5cGUgLTE2Pj4+CiBmdW5jIChoIDx0eXBlIDQxPikgR2V0IChrZXkgPHR5cGUgLTE2PikgPHR5cGUgLTE2PjsKIGZ1bmMgKGggPHR5cGUgNDE+KSBTZXQgKGtleSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTY+KTsKIGZ1bmMgKGggPHR5cGUgNDE+KSBBZGQgKGtleSA8dHlwZSAtMTY+LCB2YWx1ZSA8dHlwZSAtMTY+KTsKIGZ1bmMgKGggPHR5cGUgNDE+KSBEZWwgKGtleSA8dHlwZSAtMTY+KTsKPiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHIgPHR5cGUgMzc+KSBSZWFkTGluZUJ5dGVzICgpICg/IDx0eXBlIDQ0IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSAzNz4pIC5uZXQvdGV4dHByb3RvLnJlYWRMaW5lU2xpY2UgKCkgKD8gPHR5cGUgNDUgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChyIDx0eXBlIDM3PikgLm5ldC90ZXh0cHJvdG8ucmVhZENvZGVMaW5lIChleHBlY3RDb2RlIDx0eXBlIC0xMT4pIChjb2RlIDx0eXBlIC0xMT4sIGNvbnRpbnVlZCA8dHlwZSAtMTU+LCBtZXNzYWdlIDx0eXBlIC0xNj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHIgPHR5cGUgMzc+KSBSZWFkTGluZSAoKSAoPyA8dHlwZSAtMTY+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSAzNz4pIFJlYWRDb250aW51ZWRMaW5lQnl0ZXMgKCkgKD8gPHR5cGUgNDYgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChyIDx0eXBlIDM3PikgUmVhZERvdEJ5dGVzICgpICg/IDx0eXBlIDQ3IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSAzNz4pIFJlYWREb3RMaW5lcyAoKSAoPyA8dHlwZSA0OCBbXSA8dHlwZSAtMTY+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHIgPHR5cGUgMzc+KSAubmV0L3RleHRwcm90by5yZWFkQ29udGludWVkTGluZVNsaWNlICgpICg/IDx0eXBlIDQ5IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSAzNz4pIFJlYWRSZXNwb25zZSAoZXhwZWN0Q29kZSA8dHlwZSAtMTE+KSAoY29kZSA8dHlwZSAtMTE+LCBtZXNzYWdlIDx0eXBlIC0xNj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHIgPHR5cGUgMzc+KSAubmV0L3RleHRwcm90by5jbG9zZURvdCAoKTsKIGZ1bmMgKHIgPHR5cGUgMzc+KSBSZWFkQ29kZUxpbmUgKGV4cGVjdENvZGUgPHR5cGUgLTExPikgKGNvZGUgPHR5cGUgLTExPiwgbWVzc2FnZSA8dHlwZSAtMTY+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChyIDx0eXBlIDM3PikgRG90UmVhZGVyICgpIDx0eXBlIDIxPjsKPjsgPyA8dHlwZSA1MCAibmV0L3RleHRwcm90by5Xcml0ZXIiIDx0eXBlIDUxIHN0cnVjdCB7IFcgPHR5cGUgNTIgKjx0eXBlIDUzICJidWZpby5Xcml0ZXIiIDx0eXBlIDU0IHN0cnVjdCB7IC5idWZpby5lcnIgPHR5cGUgLTE5PjsgLmJ1ZmlvLmJ1ZiA8dHlwZSA1NSBbXSA8dHlwZSAtMjA+PjsgLmJ1ZmlvLm4gPHR5cGUgLTExPjsgLmJ1ZmlvLndyIDx0eXBlIDI1PjsgfT4KIGZ1bmMgKGIgPHR5cGUgNTYgKjx0eXBlIDUzPj4pIFdyaXRlU3RyaW5nIChzIDx0eXBlIC0xNj4pICg/IDx0eXBlIC0xMT4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChiIDx0eXBlIDU2PikgUmVhZEZyb20gKHIgPHR5cGUgMjE+KSAobiA8dHlwZSAtND4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNTY+KSBXcml0ZSAocCA8dHlwZSA1NyBbXSA8dHlwZSAtMjA+PikgKG5uIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGIgPHR5cGUgNTY+KSBXcml0ZUJ5dGUgKGMgPHR5cGUgLTIwPikgPHR5cGUgLTE5PjsKIGZ1bmMgKGIgPHR5cGUgNTY+KSBXcml0ZVJ1bmUgKHIgPHR5cGUgLTIxPikgKHNpemUgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoYiA8dHlwZSA1Nj4pIEZsdXNoICgpIDx0eXBlIC0xOT47CiBmdW5jIChiIDx0eXBlIDU2PikgQXZhaWxhYmxlICgpIDx0eXBlIC0xMT47CiBmdW5jIChiIDx0eXBlIDU2PikgLmJ1ZmlvLmZsdXNoICgpIDx0eXBlIC0xOT47CiBmdW5jIChiIDx0eXBlIDU2PikgQnVmZmVyZWQgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKGIgPHR5cGUgNTY+KSBSZXNldCAodyA8dHlwZSAyNT4pOwo+PjsgLm5ldC90ZXh0cHJvdG8uZG90IDx0eXBlIDU4ICo8dHlwZSA1OSAiLm5ldC90ZXh0cHJvdG8uZG90V3JpdGVyIiA8dHlwZSA2MCBzdHJ1Y3QgeyAubmV0L3RleHRwcm90by53IDx0eXBlIDYxICo8dHlwZSA1MD4+OyAubmV0L3RleHRwcm90by5zdGF0ZSA8dHlwZSAtMTE+OyB9PgogZnVuYyAoZCA8dHlwZSA2MiAqPHR5cGUgNTk+PikgV3JpdGUgKGIgPHR5cGUgNjMgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGQgPHR5cGUgNjI+KSBDbG9zZSAoKSA8dHlwZSAtMTk+Owo+PjsgfT4KIGZ1bmMgKHcgPHR5cGUgNjE+KSBQcmludGZMaW5lIChmb3JtYXQgPHR5cGUgLTE2PiwgYXJncyAuLi48dHlwZSA2NCBpbnRlcmZhY2UgeyB9PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHcgPHR5cGUgNjE+KSBEb3RXcml0ZXIgKCkgPHR5cGUgNjUgImlvLldyaXRlQ2xvc2VyIiA8dHlwZSA2NiBpbnRlcmZhY2UgeyA/IDx0eXBlIDI1PjsgPyA8dHlwZSA2NyAiaW8uQ2xvc2VyIiA8dHlwZSA2OCBpbnRlcmZhY2UgeyBDbG9zZSAoKSA8dHlwZSAtMTk+OyB9Pj47IH0+PjsKIGZ1bmMgKHcgPHR5cGUgNjE+KSAubmV0L3RleHRwcm90by5jbG9zZURvdCAoKTsKPjsgPyA8dHlwZSA2OSAibmV0L3RleHRwcm90by5QaXBlbGluZSIgPHR5cGUgNzAgc3RydWN0IHsgLm5ldC90ZXh0cHJvdG8ubXUgPHR5cGUgNzEgInN5bmMuTXV0ZXgiICJzeW5jIiA8dHlwZSA3MiBzdHJ1Y3QgeyAuc3luYy5zdGF0ZSA8dHlwZSAtMz47IC5zeW5jLnNlbWEgPHR5cGUgLTc+OyB9PgogZnVuYyAobSA8dHlwZSA3MyAqPHR5cGUgNzE+PikgVW5sb2NrICgpOwogZnVuYyAobSA8dHlwZSA3Mz4pIExvY2sgKCk7Cj47IC5uZXQvdGV4dHByb3RvLmlkIDx0eXBlIC0xMj47IC5uZXQvdGV4dHByb3RvLnJlcXVlc3QgPHR5cGUgNzQgIi5uZXQvdGV4dHByb3RvLnNlcXVlbmNlciIgPHR5cGUgNzUgc3RydWN0IHsgLm5ldC90ZXh0cHJvdG8ubXUgPHR5cGUgNzE+OyAubmV0L3RleHRwcm90by5pZCA8dHlwZSAtMTI+OyAubmV0L3RleHRwcm90by53YWl0IDx0eXBlIDc2IG1hcCBbPHR5cGUgLTEyPl0gPHR5cGUgNzcgY2hhbiA8dHlwZSAtMTI+Pj47IH0+CiBmdW5jIChzIDx0eXBlIDc4ICo8dHlwZSA3ND4+KSBFbmQgKGlkIDx0eXBlIC0xMj4pOwogZnVuYyAocyA8dHlwZSA3OD4pIFN0YXJ0IChpZCA8dHlwZSAtMTI+KTsKPjsgLm5ldC90ZXh0cHJvdG8ucmVzcG9uc2UgPHR5cGUgNzQ+OyB9PgogZnVuYyAocCA8dHlwZSA3OSAqPHR5cGUgNjk+PikgTmV4dCAoKSA8dHlwZSAtMTI+OwogZnVuYyAocCA8dHlwZSA3OT4pIFN0YXJ0UmVzcG9uc2UgKGlkIDx0eXBlIC0xMj4pOwogZnVuYyAocCA8dHlwZSA3OT4pIFN0YXJ0UmVxdWVzdCAoaWQgPHR5cGUgLTEyPik7CiBmdW5jIChwIDx0eXBlIDc5PikgRW5kUmVzcG9uc2UgKGlkIDx0eXBlIC0xMj4pOwogZnVuYyAocCA8dHlwZSA3OT4pIEVuZFJlcXVlc3QgKGlkIDx0eXBlIC0xMj4pOwo+OyAubmV0L3RleHRwcm90by5jb25uIDx0eXBlIDgwICJpby5SZWFkV3JpdGVDbG9zZXIiIDx0eXBlIDgxIGludGVyZmFjZSB7ID8gPHR5cGUgMjE+OyA/IDx0eXBlIDI1PjsgPyA8dHlwZSA2Nz47IH0+PjsgfT4KIGZ1bmMgKGMgPHR5cGUgODIgKjx0eXBlIDEzPj4pIENsb3NlICgpIDx0eXBlIC0xOT47CiBmdW5jIChjIDx0eXBlIDgyPikgQ21kIChmb3JtYXQgPHR5cGUgLTE2PiwgYXJncyAuLi48dHlwZSA4MyBpbnRlcmZhY2UgeyB9PikgKGlkIDx0eXBlIC0xMj4sIGVyciA8dHlwZSAtMTk+KTsKPj47IC5uZXQvc210cC5jb25uIDx0eXBlIDg0ICJuZXQuQ29ubiIgPHR5cGUgODUgaW50ZXJmYWNlIHsgUmVhZCAoYiA8dHlwZSA4NiBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyBXcml0ZSAoYiA8dHlwZSA4NyBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyBDbG9zZSAoKSA8dHlwZSAtMTk+OyBMb2NhbEFkZHIgKCkgPHR5cGUgODggIm5ldC5BZGRyIiA8dHlwZSA4OSBpbnRlcmZhY2UgeyBOZXR3b3JrICgpIDx0eXBlIC0xNj47IFN0cmluZyAoKSA8dHlwZSAtMTY+OyB9Pj47IFJlbW90ZUFkZHIgKCkgPHR5cGUgODg+OyBTZXREZWFkbGluZSAodCA8dHlwZSA5MCAidGltZS5UaW1lIiAidGltZSIgPHR5cGUgOTEgc3RydWN0IHsgLnRpbWUuc2VjIDx0eXBlIC00PjsgLnRpbWUubnNlYyA8dHlwZSAtMz47IC50aW1lLmxvYyA8dHlwZSA5MiAqPHR5cGUgOTMgInRpbWUuTG9jYXRpb24iIDx0eXBlIDk0IHN0cnVjdCB7IC50aW1lLm5hbWUgPHR5cGUgLTE2PjsgLnRpbWUuem9uZSA8dHlwZSA5NSBbXSA8dHlwZSA5NiAiLnRpbWUuem9uZSIgPHR5cGUgOTcgc3RydWN0IHsgLnRpbWUubmFtZSA8dHlwZSAtMTY+OyAudGltZS5vZmZzZXQgPHR5cGUgLTExPjsgLnRpbWUuaXNEU1QgPHR5cGUgLTE1PjsgfT4+PjsgLnRpbWUudHggPHR5cGUgOTggW10gPHR5cGUgOTkgIi50aW1lLnpvbmVUcmFucyIgPHR5cGUgMTAwIHN0cnVjdCB7IC50aW1lLndoZW4gPHR5cGUgLTQ+OyAudGltZS5pbmRleCA8dHlwZSAtNT47IC50aW1lLmlzc3RkIDx0eXBlIC0xNT47IC50aW1lLmlzdXRjIDx0eXBlIC0xNT47IH0+Pj47IC50aW1lLmNhY2hlU3RhcnQgPHR5cGUgLTQ+OyAudGltZS5jYWNoZUVuZCA8dHlwZSAtND47IC50aW1lLmNhY2hlWm9uZSA8dHlwZSAxMDEgKjx0eXBlIDk2Pj47IH0+CiBmdW5jIChsIDx0eXBlIDEwMiAqPHR5cGUgOTM+PikgLnRpbWUuZmlyc3Rab25lVXNlZCAoKSA8dHlwZSAtMTU+OwogZnVuYyAobCA8dHlwZSAxMDI+KSAudGltZS5sb29rdXAgKHNlYyA8dHlwZSAtND4pIChuYW1lIDx0eXBlIC0xNj4sIG9mZnNldCA8dHlwZSAtMTE+LCBpc0RTVCA8dHlwZSAtMTU+LCBzdGFydCA8dHlwZSAtND4sIGVuZCA8dHlwZSAtND4pOwogZnVuYyAobCA8dHlwZSAxMDI+KSAudGltZS5sb29rdXBOYW1lIChuYW1lIDx0eXBlIC0xNj4sIHVuaXggPHR5cGUgLTQ+KSAob2Zmc2V0IDx0eXBlIC0xMT4sIGlzRFNUIDx0eXBlIC0xNT4sIG9rIDx0eXBlIC0xNT4pOwogZnVuYyAobCA8dHlwZSAxMDI+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGwgPHR5cGUgMTAyPikgLnRpbWUuZ2V0ICgpIDx0eXBlIDEwMj47CiBmdW5jIChsIDx0eXBlIDEwMj4pIC50aW1lLmxvb2t1cEZpcnN0Wm9uZSAoKSA8dHlwZSAtMTE+Owo+PjsgfT4KIGZ1bmMgKHQgPHR5cGUgOTA+KSBBZnRlciAodSA8dHlwZSA5MD4pIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDkwPikgTWFyc2hhbFRleHQgKCkgKD8gPHR5cGUgMTAzIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSA5MD4pIERhdGUgKCkgKHllYXIgPHR5cGUgLTExPiwgbW9udGggPHR5cGUgMTA0ICJ0aW1lLk1vbnRoIiA8dHlwZSAtMTE+CiBmdW5jIChtIDx0eXBlIDEwND4pIFN0cmluZyAoKSA8dHlwZSAtMTY+Owo+LCBkYXkgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDkwPikgLnRpbWUuYWJzICgpIDx0eXBlIC04PjsKIGZ1bmMgKHQgPHR5cGUgOTA+KSBXZWVrZGF5ICgpIDx0eXBlIDEwNSAidGltZS5XZWVrZGF5IiA8dHlwZSAtMTE+CiBmdW5jIChkIDx0eXBlIDEwNT4pIFN0cmluZyAoKSA8dHlwZSAtMTY+Owo+OwogZnVuYyAodCA8dHlwZSA5MD4pIE5hbm9zZWNvbmQgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMTA2ICo8dHlwZSA5MD4+KSBHb2JEZWNvZGUgKGRhdGEgPHR5cGUgMTA3IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAodCA8dHlwZSA5MD4pIEluIChsb2MgPHR5cGUgOTI+KSA8dHlwZSA5MD47CiBmdW5jICh0IDx0eXBlIDkwPikgTG9jYWwgKCkgPHR5cGUgOTA+OwogZnVuYyAodCA8dHlwZSA5MD4pIE1vbnRoICgpIDx0eXBlIDEwND47CiBmdW5jICh0IDx0eXBlIDkwPikgSG91ciAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSA5MD4pIE1hcnNoYWxCaW5hcnkgKCkgKD8gPHR5cGUgMTA4IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSA5MD4pIFVuaXhOYW5vICgpIDx0eXBlIC00PjsKIGZ1bmMgKHQgPHR5cGUgOTA+KSBFcXVhbCAodSA8dHlwZSA5MD4pIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDkwPikgRm9ybWF0IChsYXlvdXQgPHR5cGUgLTE2PikgPHR5cGUgLTE2PjsKIGZ1bmMgKHQgPHR5cGUgOTA+KSBBZGREYXRlICh5ZWFycyA8dHlwZSAtMTE+LCBtb250aHMgPHR5cGUgLTExPiwgZGF5cyA8dHlwZSAtMTE+KSA8dHlwZSA5MD47CiBmdW5jICh0IDx0eXBlIDkwPikgWm9uZSAoKSAobmFtZSA8dHlwZSAtMTY+LCBvZmZzZXQgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDkwPikgRGF5ICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDkwPikgQ2xvY2sgKCkgKGhvdXIgPHR5cGUgLTExPiwgbWluIDx0eXBlIC0xMT4sIHNlYyA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgOTA+KSBNYXJzaGFsSlNPTiAoKSAoPyA8dHlwZSAxMDkgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDkwPikgVVRDICgpIDx0eXBlIDkwPjsKIGZ1bmMgKHQgPHR5cGUgOTA+KSAudGltZS5kYXRlIChmdWxsIDx0eXBlIC0xNT4pICh5ZWFyIDx0eXBlIC0xMT4sIG1vbnRoIDx0eXBlIDEwND4sIGRheSA8dHlwZSAtMTE+LCB5ZGF5IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSA5MD4pIElzWmVybyAoKSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSA5MD4pIEJlZm9yZSAodSA8dHlwZSA5MD4pIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDkwPikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jICh0IDx0eXBlIDkwPikgU2Vjb25kICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDkwPikgTWludXRlICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDkwPikgU3ViICh1IDx0eXBlIDkwPikgPHR5cGUgMTEwICJ0aW1lLkR1cmF0aW9uIiA8dHlwZSAtND4KIGZ1bmMgKGQgPHR5cGUgMTEwPikgU2Vjb25kcyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSAxMTA+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGQgPHR5cGUgMTEwPikgTWludXRlcyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSAxMTA+KSBIb3VycyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSAxMTA+KSBOYW5vc2Vjb25kcyAoKSA8dHlwZSAtND47Cj47CiBmdW5jICh0IDx0eXBlIDkwPikgUm91bmQgKGQgPHR5cGUgMTEwPikgPHR5cGUgOTA+OwogZnVuYyAodCA8dHlwZSA5MD4pIFVuaXggKCkgPHR5cGUgLTQ+OwogZnVuYyAodCA8dHlwZSAxMDY+KSBVbm1hcnNoYWxUZXh0IChkYXRhIDx0eXBlIDExMSBbXSA8dHlwZSAtMjA+PikgKGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgOTA+KSBBZGQgKGQgPHR5cGUgMTEwPikgPHR5cGUgOTA+OwogZnVuYyAodCA8dHlwZSA5MD4pIFRydW5jYXRlIChkIDx0eXBlIDExMD4pIDx0eXBlIDkwPjsKIGZ1bmMgKHQgPHR5cGUgOTA+KSBMb2NhdGlvbiAoKSA8dHlwZSA5Mj47CiBmdW5jICh0IDx0eXBlIDkwPikgR29iRW5jb2RlICgpICg/IDx0eXBlIDExMiBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgMTA2PikgVW5tYXJzaGFsQmluYXJ5IChkYXRhIDx0eXBlIDExMyBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHQgPHR5cGUgOTA+KSBJU09XZWVrICgpICh5ZWFyIDx0eXBlIC0xMT4sIHdlZWsgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDkwPikgLnRpbWUubG9jYWJzICgpIChuYW1lIDx0eXBlIC0xNj4sIG9mZnNldCA8dHlwZSAtMTE+LCBhYnMgPHR5cGUgLTg+KTsKIGZ1bmMgKHQgPHR5cGUgOTA+KSBZZWFyRGF5ICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDkwPikgWWVhciAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAxMDY+KSBVbm1hcnNoYWxKU09OIChkYXRhIDx0eXBlIDExNCBbXSA8dHlwZSAtMjA+PikgKGVyciA8dHlwZSAtMTk+KTsKPikgPHR5cGUgLTE5PjsgU2V0UmVhZERlYWRsaW5lICh0IDx0eXBlIDkwPikgPHR5cGUgLTE5PjsgU2V0V3JpdGVEZWFkbGluZSAodCA8dHlwZSA5MD4pIDx0eXBlIC0xOT47IH0+PjsgLm5ldC9zbXRwLnRscyA8dHlwZSAtMTU+OyAubmV0L3NtdHAuc2VydmVyTmFtZSA8dHlwZSAtMTY+OyAubmV0L3NtdHAuZXh0IDx0eXBlIDExNSBtYXAgWzx0eXBlIC0xNj5dIDx0eXBlIC0xNj4+OyAubmV0L3NtdHAuYXV0aCA8dHlwZSAxMTYgW10gPHR5cGUgLTE2Pj47IC5uZXQvc210cC5sb2NhbE5hbWUgPHR5cGUgLTE2PjsgLm5ldC9zbXRwLmRpZEhlbGxvIDx0eXBlIC0xNT47IC5uZXQvc210cC5oZWxsb0Vycm9yIDx0eXBlIC0xOT47IH0+CiBmdW5jIChjIDx0eXBlIDExNyAqPHR5cGUgMTA+PikgQ2xvc2UgKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKGMgPHR5cGUgMTE3PikgLm5ldC9zbXRwLmhlbGxvICgpIDx0eXBlIC0xOT47CiBmdW5jIChjIDx0eXBlIDExNz4pIEhlbGxvIChsb2NhbE5hbWUgPHR5cGUgLTE2PikgPHR5cGUgLTE5PjsKIGZ1bmMgKGMgPHR5cGUgMTE3PikgLm5ldC9zbXRwLmNtZCAoZXhwZWN0Q29kZSA8dHlwZSAtMTE+LCBmb3JtYXQgPHR5cGUgLTE2PiwgYXJncyAuLi48dHlwZSAxMTggaW50ZXJmYWNlIHsgfT4pICg/IDx0eXBlIC0xMT4sID8gPHR5cGUgLTE2PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGMgPHR5cGUgMTE3PikgLm5ldC9zbXRwLmhlbG8gKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKGMgPHR5cGUgMTE3PikgLm5ldC9zbXRwLmVobG8gKCkgPHR5cGUgLTE5PjsKIGZ1bmMgKGMgPHR5cGUgMTE3PikgU3RhcnRUTFMgKGNvbmZpZyA8dHlwZSAxMTkgKjx0eXBlIDEyMCAiY3J5cHRvL3Rscy5Db25maWciIDx0eXBlIDEyMSBzdHJ1Y3QgeyBSYW5kIDx0eXBlIDIxPjsgVGltZSA8dHlwZSAxMjIgKCkgPHR5cGUgOTA+PjsgQ2VydGlmaWNhdGVzIDx0eXBlIDEyMyBbXSA8dHlwZSAxMjQgImNyeXB0by90bHMuQ2VydGlmaWNhdGUiIDx0eXBlIDEyNSBzdHJ1Y3QgeyBDZXJ0aWZpY2F0ZSA8dHlwZSAxMjYgW10gPHR5cGUgMTI3IFtdIDx0eXBlIC0yMD4+PjsgUHJpdmF0ZUtleSA8dHlwZSAxMjggImNyeXB0by5Qcml2YXRlS2V5IiAiY3J5cHRvIiA8dHlwZSAxMjkgaW50ZXJmYWNlIHsgfT4+OyBPQ1NQU3RhcGxlIDx0eXBlIDEzMCBbXSA8dHlwZSAtMjA+PjsgTGVhZiA8dHlwZSAxMzEgKjx0eXBlIDEzMiAiY3J5cHRvL3g1MDkuQ2VydGlmaWNhdGUiICJ4NTA5IiA8dHlwZSAxMzMgc3RydWN0IHsgUmF3IDx0eXBlIDEzNCBbXSA8dHlwZSAtMjA+PjsgUmF3VEJTQ2VydGlmaWNhdGUgPHR5cGUgMTM1IFtdIDx0eXBlIC0yMD4+OyBSYXdTdWJqZWN0UHVibGljS2V5SW5mbyA8dHlwZSAxMzYgW10gPHR5cGUgLTIwPj47IFJhd1N1YmplY3QgPHR5cGUgMTM3IFtdIDx0eXBlIC0yMD4+OyBSYXdJc3N1ZXIgPHR5cGUgMTM4IFtdIDx0eXBlIC0yMD4+OyBTaWduYXR1cmUgPHR5cGUgMTM5IFtdIDx0eXBlIC0yMD4+OyBTaWduYXR1cmVBbGdvcml0aG0gPHR5cGUgMTQwICJjcnlwdG8veDUwOS5TaWduYXR1cmVBbGdvcml0aG0iIDx0eXBlIC0xMT4+OyBQdWJsaWNLZXlBbGdvcml0aG0gPHR5cGUgMTQxICJjcnlwdG8veDUwOS5QdWJsaWNLZXlBbGdvcml0aG0iIDx0eXBlIC0xMT4+OyBQdWJsaWNLZXkgPHR5cGUgMTQyIGludGVyZmFjZSB7IH0+OyBWZXJzaW9uIDx0eXBlIC0xMT47IFNlcmlhbE51bWJlciA8dHlwZSAxNDMgKjx0eXBlIDE0NCAibWF0aC9iaWcuSW50IiAiYmlnIiA8dHlwZSAxNDUgc3RydWN0IHsgLm1hdGgvYmlnLm5lZyA8dHlwZSAtMTU+OyAubWF0aC9iaWcuYWJzIDx0eXBlIDE0NiAiLm1hdGgvYmlnLm5hdCIgPHR5cGUgMTQ3IFtdIDx0eXBlIDE0OCAibWF0aC9iaWcuV29yZCIgPHR5cGUgLTEzPj4+CiBmdW5jICh6IDx0eXBlIDE0Nj4pIC5tYXRoL2JpZy5tdWwgKHggPHR5cGUgMTQ2PiwgeSA8dHlwZSAxNDY+KSA8dHlwZSAxNDY+OwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcuc2NhbiAociA8dHlwZSAxNDkgImlvLlJ1bmVTY2FubmVyIiA8dHlwZSAxNTAgaW50ZXJmYWNlIHsgPyA8dHlwZSAxNTEgImlvLlJ1bmVSZWFkZXIiIDx0eXBlIDE1MiBpbnRlcmZhY2UgeyBSZWFkUnVuZSAoKSAociA8dHlwZSAtMjE+LCBzaXplIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+OyBVbnJlYWRSdW5lICgpIDx0eXBlIC0xOT47IH0+PiwgYmFzZSA8dHlwZSAtMTE+KSAoPyA8dHlwZSAxNDY+LCA/IDx0eXBlIC0xMT4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh6IDx0eXBlIDE0Nj4pIC5tYXRoL2JpZy5hZGQgKHggPHR5cGUgMTQ2PiwgeSA8dHlwZSAxNDY+KSA8dHlwZSAxNDY+OwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcuYW5kTm90ICh4IDx0eXBlIDE0Nj4sIHkgPHR5cGUgMTQ2PikgPHR5cGUgMTQ2PjsKIGZ1bmMgKHogPHR5cGUgMTQ2PikgLm1hdGgvYmlnLnNldEJpdCAoeCA8dHlwZSAxNDY+LCBpIDx0eXBlIC0xMj4sIGIgPHR5cGUgLTEyPikgPHR5cGUgMTQ2PjsKIGZ1bmMgKHogPHR5cGUgMTQ2PikgLm1hdGgvYmlnLnN1YiAoeCA8dHlwZSAxNDY+LCB5IDx0eXBlIDE0Nj4pIDx0eXBlIDE0Nj47CiBmdW5jICh4IDx0eXBlIDE0Nj4pIC5tYXRoL2JpZy5tb2RXIChkIDx0eXBlIDE0OD4pIChyIDx0eXBlIDE0OD4pOwogZnVuYyAobiA8dHlwZSAxNDY+KSAubWF0aC9iaWcucHJvYmFibHlQcmltZSAocmVwcyA8dHlwZSAtMTE+KSA8dHlwZSAtMTU+OwogZnVuYyAocSA8dHlwZSAxNDY+KSAubWF0aC9iaWcuY29udmVydFdvcmRzIChzIDx0eXBlIDE1MyBbXSA8dHlwZSAtMjA+PiwgY2hhcnNldCA8dHlwZSAtMTY+LCBiIDx0eXBlIDE0OD4sIG5kaWdpdHMgPHR5cGUgLTExPiwgYmIgPHR5cGUgMTQ4PiwgdGFibGUgPHR5cGUgMTU0IFtdIDx0eXBlIDE1NSAiLm1hdGgvYmlnLmRpdmlzb3IiIDx0eXBlIDE1NiBzdHJ1Y3QgeyAubWF0aC9iaWcuYmJiIDx0eXBlIDE0Nj47IC5tYXRoL2JpZy5uYml0cyA8dHlwZSAtMTE+OyAubWF0aC9iaWcubmRpZ2l0cyA8dHlwZSAtMTE+OyB9Pj4+KTsKIGZ1bmMgKHggPHR5cGUgMTQ2PikgLm1hdGgvYmlnLnN0cmluZyAoY2hhcnNldCA8dHlwZSAtMTY+KSA8dHlwZSAtMTY+OwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcuZGl2VyAoeCA8dHlwZSAxNDY+LCB5IDx0eXBlIDE0OD4pIChxIDx0eXBlIDE0Nj4sIHIgPHR5cGUgMTQ4Pik7CiBmdW5jICh6IDx0eXBlIDE0Nj4pIC5tYXRoL2JpZy5zaHIgKHggPHR5cGUgMTQ2PiwgcyA8dHlwZSAtMTI+KSA8dHlwZSAxNDY+OwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcubXVsUmFuZ2UgKGEgPHR5cGUgLTg+LCBiIDx0eXBlIC04PikgPHR5cGUgMTQ2PjsKIGZ1bmMgKHogPHR5cGUgMTQ2PikgLm1hdGgvYmlnLm11bEFkZFdXICh4IDx0eXBlIDE0Nj4sIHkgPHR5cGUgMTQ4PiwgciA8dHlwZSAxNDg+KSA8dHlwZSAxNDY+OwogZnVuYyAoeCA8dHlwZSAxNDY+KSAubWF0aC9iaWcuZGVjaW1hbFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcuYW5kICh4IDx0eXBlIDE0Nj4sIHkgPHR5cGUgMTQ2PikgPHR5cGUgMTQ2PjsKIGZ1bmMgKHogPHR5cGUgMTQ2PikgLm1hdGgvYmlnLmJpdCAoaSA8dHlwZSAtMTI+KSA8dHlwZSAtMTI+OwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcueG9yICh4IDx0eXBlIDE0Nj4sIHkgPHR5cGUgMTQ2PikgPHR5cGUgMTQ2PjsKIGZ1bmMgKHogPHR5cGUgMTQ2PikgLm1hdGgvYmlnLnNldCAoeCA8dHlwZSAxNDY+KSA8dHlwZSAxNDY+OwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcucmFuZG9tIChyYW5kIDx0eXBlIDE1NyAqPHR5cGUgMTU4ICJtYXRoL3JhbmQuUmFuZCIgInJhbmQiIDx0eXBlIDE1OSBzdHJ1Y3QgeyAubWF0aC9yYW5kLnNyYyA8dHlwZSAxNjAgIm1hdGgvcmFuZC5Tb3VyY2UiIDx0eXBlIDE2MSBpbnRlcmZhY2UgeyBJbnQ2MyAoKSA8dHlwZSAtND47IFNlZWQgKHNlZWQgPHR5cGUgLTQ+KTsgfT4+OyB9PgogZnVuYyAociA8dHlwZSAxNjIgKjx0eXBlIDE1OD4+KSBFeHBGbG9hdDY0ICgpIDx0eXBlIC0xMD47CiBmdW5jIChyIDx0eXBlIDE2Mj4pIEludDMxbiAobiA8dHlwZSAtMz4pIDx0eXBlIC0zPjsKIGZ1bmMgKHIgPHR5cGUgMTYyPikgVWludDMyICgpIDx0eXBlIC03PjsKIGZ1bmMgKHIgPHR5cGUgMTYyPikgSW50biAobiA8dHlwZSAtMTE+KSA8dHlwZSAtMTE+OwogZnVuYyAociA8dHlwZSAxNjI+KSBQZXJtIChuIDx0eXBlIC0xMT4pIDx0eXBlIDE2MyBbXSA8dHlwZSAtMTE+PjsKIGZ1bmMgKHIgPHR5cGUgMTYyPikgTm9ybUZsb2F0NjQgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKHIgPHR5cGUgMTYyPikgSW50MzEgKCkgPHR5cGUgLTM+OwogZnVuYyAociA8dHlwZSAxNjI+KSBGbG9hdDY0ICgpIDx0eXBlIC0xMD47CiBmdW5jIChyIDx0eXBlIDE2Mj4pIFNlZWQgKHNlZWQgPHR5cGUgLTQ+KTsKIGZ1bmMgKHIgPHR5cGUgMTYyPikgSW50ICgpIDx0eXBlIC0xMT47CiBmdW5jIChyIDx0eXBlIDE2Mj4pIEludDYzICgpIDx0eXBlIC00PjsKIGZ1bmMgKHIgPHR5cGUgMTYyPikgSW50NjNuIChuIDx0eXBlIC00PikgPHR5cGUgLTQ+OwogZnVuYyAociA8dHlwZSAxNjI+KSBGbG9hdDMyICgpIDx0eXBlIC05PjsKPj4sIGxpbWl0IDx0eXBlIDE0Nj4sIG4gPHR5cGUgLTExPikgPHR5cGUgMTQ2PjsKIGZ1bmMgKHggPHR5cGUgMTQ2PikgLm1hdGgvYmlnLmNtcCAoeSA8dHlwZSAxNDY+KSAociA8dHlwZSAtMTE+KTsKIGZ1bmMgKHogPHR5cGUgMTQ2PikgLm1hdGgvYmlnLm9yICh4IDx0eXBlIDE0Nj4sIHkgPHR5cGUgMTQ2PikgPHR5cGUgMTQ2PjsKIGZ1bmMgKHggPHR5cGUgMTQ2PikgLm1hdGgvYmlnLmJpdExlbiAoKSA8dHlwZSAtMTE+OwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcuc2V0V29yZCAoeCA8dHlwZSAxNDg+KSA8dHlwZSAxNDY+OwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcuZGl2ICh6MiA8dHlwZSAxNDY+LCB1IDx0eXBlIDE0Nj4sIHYgPHR5cGUgMTQ2PikgKHEgPHR5cGUgMTQ2PiwgciA8dHlwZSAxNDY+KTsKIGZ1bmMgKHogPHR5cGUgMTQ2PikgLm1hdGgvYmlnLnNldFVpbnQ2NCAoeCA8dHlwZSAtOD4pIDx0eXBlIDE0Nj47CiBmdW5jICh4IDx0eXBlIDE0Nj4pIC5tYXRoL2JpZy50cmFpbGluZ1plcm9CaXRzICgpIDx0eXBlIC0xMj47CiBmdW5jICh6IDx0eXBlIDE0Nj4pIC5tYXRoL2JpZy5kaXZMYXJnZSAodSA8dHlwZSAxNDY+LCB1SW4gPHR5cGUgMTQ2PiwgdiA8dHlwZSAxNDY+KSAocSA8dHlwZSAxNDY+LCByIDx0eXBlIDE0Nj4pOwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcuZXhwTk5XaW5kb3dlZCAoeCA8dHlwZSAxNDY+LCB5IDx0eXBlIDE0Nj4sIG0gPHR5cGUgMTQ2PikgPHR5cGUgMTQ2PjsKIGZ1bmMgKHogPHR5cGUgMTQ2PikgLm1hdGgvYmlnLm5vcm0gKCkgPHR5cGUgMTQ2PjsKIGZ1bmMgKHogPHR5cGUgMTQ2PikgLm1hdGgvYmlnLnNldEJ5dGVzIChidWYgPHR5cGUgMTY0IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAxNDY+OwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcuc2hsICh4IDx0eXBlIDE0Nj4sIHMgPHR5cGUgLTEyPikgPHR5cGUgMTQ2PjsKIGZ1bmMgKHogPHR5cGUgMTQ2PikgLm1hdGgvYmlnLm1ha2UgKG4gPHR5cGUgLTExPikgPHR5cGUgMTQ2PjsKIGZ1bmMgKHogPHR5cGUgMTQ2PikgLm1hdGgvYmlnLmNsZWFyICgpOwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcuYnl0ZXMgKGJ1ZiA8dHlwZSAxNjUgW10gPHR5cGUgLTIwPj4pIChpIDx0eXBlIC0xMT4pOwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcuZXhwV1cgKHggPHR5cGUgMTQ4PiwgeSA8dHlwZSAxNDg+KSA8dHlwZSAxNDY+OwogZnVuYyAoeiA8dHlwZSAxNDY+KSAubWF0aC9iaWcuZXhwTk4gKHggPHR5cGUgMTQ2PiwgeSA8dHlwZSAxNDY+LCBtIDx0eXBlIDE0Nj4pIDx0eXBlIDE0Nj47Cj47IH0+CiBmdW5jICh6IDx0eXBlIDE2NiAqPHR5cGUgMTQ0Pj4pIE5lZyAoeCA8dHlwZSAxNjY+KSA8dHlwZSAxNjY+OwogZnVuYyAoeiA8dHlwZSAxNjY+KSBRdW9SZW0gKHggPHR5cGUgMTY2PiwgeSA8dHlwZSAxNjY+LCByIDx0eXBlIDE2Nj4pICg/IDx0eXBlIDE2Nj4sID8gPHR5cGUgMTY2Pik7CiBmdW5jICh4IDx0eXBlIDE2Nj4pIEJ5dGVzICgpIDx0eXBlIDE2NyBbXSA8dHlwZSAtMjA+PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgU2V0Qml0cyAoYWJzIDx0eXBlIDE2OCBbXSA8dHlwZSAxNDg+PikgPHR5cGUgMTY2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgU2V0Qml0ICh4IDx0eXBlIDE2Nj4sIGkgPHR5cGUgLTExPiwgYiA8dHlwZSAtMTI+KSA8dHlwZSAxNjY+OwogZnVuYyAoeiA8dHlwZSAxNjY+KSBYb3IgKHggPHR5cGUgMTY2PiwgeSA8dHlwZSAxNjY+KSA8dHlwZSAxNjY+OwogZnVuYyAoeiA8dHlwZSAxNjY+KSBTZXRJbnQ2NCAoeCA8dHlwZSAtND4pIDx0eXBlIDE2Nj47CiBmdW5jICh6IDx0eXBlIDE2Nj4pIE5vdCAoeCA8dHlwZSAxNjY+KSA8dHlwZSAxNjY+OwogZnVuYyAoeiA8dHlwZSAxNjY+KSBVbm1hcnNoYWxKU09OICh0ZXh0IDx0eXBlIDE2OSBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgT3IgKHggPHR5cGUgMTY2PiwgeSA8dHlwZSAxNjY+KSA8dHlwZSAxNjY+OwogZnVuYyAoeiA8dHlwZSAxNjY+KSBTZXRVaW50NjQgKHggPHR5cGUgLTg+KSA8dHlwZSAxNjY+OwogZnVuYyAoeCA8dHlwZSAxNjY+KSBJbnQ2NCAoKSA8dHlwZSAtND47CiBmdW5jICh6IDx0eXBlIDE2Nj4pIC5tYXRoL2JpZy5zY2FuIChyIDx0eXBlIDE0OT4sIGJhc2UgPHR5cGUgLTExPikgKD8gPHR5cGUgMTY2PiwgPyA8dHlwZSAtMTE+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoeiA8dHlwZSAxNjY+KSBHQ0QgKHggPHR5cGUgMTY2PiwgeSA8dHlwZSAxNjY+LCBhIDx0eXBlIDE2Nj4sIGIgPHR5cGUgMTY2PikgPHR5cGUgMTY2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgUmVtICh4IDx0eXBlIDE2Nj4sIHkgPHR5cGUgMTY2PikgPHR5cGUgMTY2PjsKIGZ1bmMgKHggPHR5cGUgMTY2PikgQml0IChpIDx0eXBlIC0xMT4pIDx0eXBlIC0xMj47CiBmdW5jICh4IDx0eXBlIDE2Nj4pIEJpdHMgKCkgPHR5cGUgMTcwIFtdIDx0eXBlIDE0OD4+OwogZnVuYyAoeiA8dHlwZSAxNjY+KSBTZXRCeXRlcyAoYnVmIDx0eXBlIDE3MSBbXSA8dHlwZSAtMjA+PikgPHR5cGUgMTY2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgRGl2TW9kICh4IDx0eXBlIDE2Nj4sIHkgPHR5cGUgMTY2PiwgbSA8dHlwZSAxNjY+KSAoPyA8dHlwZSAxNjY+LCA/IDx0eXBlIDE2Nj4pOwogZnVuYyAoeiA8dHlwZSAxNjY+KSBSc2ggKHggPHR5cGUgMTY2PiwgbiA8dHlwZSAtMTI+KSA8dHlwZSAxNjY+OwogZnVuYyAoeCA8dHlwZSAxNjY+KSBDbXAgKHkgPHR5cGUgMTY2PikgKHIgPHR5cGUgLTExPik7CiBmdW5jICh6IDx0eXBlIDE2Nj4pIFNjYW4gKHMgPHR5cGUgMTcyICJmbXQuU2NhblN0YXRlIiA8dHlwZSAxNzMgaW50ZXJmYWNlIHsgUmVhZFJ1bmUgKCkgKHIgPHR5cGUgLTIxPiwgc2l6ZSA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IFVucmVhZFJ1bmUgKCkgPHR5cGUgLTE5PjsgU2tpcFNwYWNlICgpOyBUb2tlbiAoc2tpcFNwYWNlIDx0eXBlIC0xNT4sIGYgPHR5cGUgMTc0ICg/IDx0eXBlIC0yMT4pIDx0eXBlIC0xNT4+KSAodG9rZW4gPHR5cGUgMTc1IFtdIDx0eXBlIC0yMD4+LCBlcnIgPHR5cGUgLTE5Pik7IFdpZHRoICgpICh3aWQgPHR5cGUgLTExPiwgb2sgPHR5cGUgLTE1Pik7IFJlYWQgKGJ1ZiA8dHlwZSAxNzYgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+LCBjaCA8dHlwZSAtMjE+KSA8dHlwZSAtMTk+OwogZnVuYyAoeCA8dHlwZSAxNjY+KSBHb2JFbmNvZGUgKCkgKD8gPHR5cGUgMTc3IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoeCA8dHlwZSAxNjY+KSBQcm9iYWJseVByaW1lIChuIDx0eXBlIC0xMT4pIDx0eXBlIC0xNT47CiBmdW5jICh4IDx0eXBlIDE2Nj4pIFNpZ24gKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgTW9kICh4IDx0eXBlIDE2Nj4sIHkgPHR5cGUgMTY2PikgPHR5cGUgMTY2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgRXhwICh4IDx0eXBlIDE2Nj4sIHkgPHR5cGUgMTY2PiwgbSA8dHlwZSAxNjY+KSA8dHlwZSAxNjY+OwogZnVuYyAoeCA8dHlwZSAxNjY+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgQWJzICh4IDx0eXBlIDE2Nj4pIDx0eXBlIDE2Nj47CiBmdW5jICh6IDx0eXBlIDE2Nj4pIFVubWFyc2hhbFRleHQgKHRleHQgPHR5cGUgMTc4IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAoeiA8dHlwZSAxNjY+KSBSYW5kIChybmQgPHR5cGUgMTU3PiwgbiA8dHlwZSAxNjY+KSA8dHlwZSAxNjY+OwogZnVuYyAoeiA8dHlwZSAxNjY+KSBBbmQgKHggPHR5cGUgMTY2PiwgeSA8dHlwZSAxNjY+KSA8dHlwZSAxNjY+OwogZnVuYyAoeiA8dHlwZSAxNjY+KSBNb2RJbnZlcnNlIChnIDx0eXBlIDE2Nj4sIG4gPHR5cGUgMTY2PikgPHR5cGUgMTY2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgUXVvICh4IDx0eXBlIDE2Nj4sIHkgPHR5cGUgMTY2PikgPHR5cGUgMTY2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgQWRkICh4IDx0eXBlIDE2Nj4sIHkgPHR5cGUgMTY2PikgPHR5cGUgMTY2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgTHNoICh4IDx0eXBlIDE2Nj4sIG4gPHR5cGUgLTEyPikgPHR5cGUgMTY2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgQW5kTm90ICh4IDx0eXBlIDE2Nj4sIHkgPHR5cGUgMTY2PikgPHR5cGUgMTY2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgU2V0ICh4IDx0eXBlIDE2Nj4pIDx0eXBlIDE2Nj47CiBmdW5jICh6IDx0eXBlIDE2Nj4pIE11bCAoeCA8dHlwZSAxNjY+LCB5IDx0eXBlIDE2Nj4pIDx0eXBlIDE2Nj47CiBmdW5jICh6IDx0eXBlIDE2Nj4pIE1hcnNoYWxUZXh0ICgpICh0ZXh0IDx0eXBlIDE3OSBbXSA8dHlwZSAtMjA+PiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoeiA8dHlwZSAxNjY+KSBEaXYgKHggPHR5cGUgMTY2PiwgeSA8dHlwZSAxNjY+KSA8dHlwZSAxNjY+OwogZnVuYyAoeiA8dHlwZSAxNjY+KSBCaW5vbWlhbCAobiA8dHlwZSAtND4sIGsgPHR5cGUgLTQ+KSA8dHlwZSAxNjY+OwogZnVuYyAoeCA8dHlwZSAxNjY+KSBGb3JtYXQgKHMgPHR5cGUgMTgwICJmbXQuU3RhdGUiIDx0eXBlIDE4MSBpbnRlcmZhY2UgeyBXcml0ZSAoYiA8dHlwZSAxODIgW10gPHR5cGUgLTIwPj4pIChyZXQgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyBXaWR0aCAoKSAod2lkIDx0eXBlIC0xMT4sIG9rIDx0eXBlIC0xNT4pOyBQcmVjaXNpb24gKCkgKHByZWMgPHR5cGUgLTExPiwgb2sgPHR5cGUgLTE1Pik7IEZsYWcgKGMgPHR5cGUgLTExPikgPHR5cGUgLTE1PjsgfT4+LCBjaCA8dHlwZSAtMjE+KTsKIGZ1bmMgKHogPHR5cGUgMTY2PikgTXVsUmFuZ2UgKGEgPHR5cGUgLTQ+LCBiIDx0eXBlIC00PikgPHR5cGUgMTY2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgU2V0U3RyaW5nIChzIDx0eXBlIC0xNj4sIGJhc2UgPHR5cGUgLTExPikgKD8gPHR5cGUgMTY2PiwgPyA8dHlwZSAtMTU+KTsKIGZ1bmMgKHggPHR5cGUgMTY2PikgVWludDY0ICgpIDx0eXBlIC04PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgTWFyc2hhbEpTT04gKCkgKD8gPHR5cGUgMTgzIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoeiA8dHlwZSAxNjY+KSBHb2JEZWNvZGUgKGJ1ZiA8dHlwZSAxODQgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jICh4IDx0eXBlIDE2Nj4pIEJpdExlbiAoKSA8dHlwZSAtMTE+OwogZnVuYyAoeiA8dHlwZSAxNjY+KSAubWF0aC9iaWcuYmluYXJ5R0NEIChhIDx0eXBlIDE2Nj4sIGIgPHR5cGUgMTY2PikgPHR5cGUgMTY2PjsKIGZ1bmMgKHogPHR5cGUgMTY2PikgU3ViICh4IDx0eXBlIDE2Nj4sIHkgPHR5cGUgMTY2PikgPHR5cGUgMTY2PjsKPj47IElzc3VlciA8dHlwZSAxODUgImNyeXB0by94NTA5L3BraXguTmFtZSIgInBraXgiIDx0eXBlIDE4NiBzdHJ1Y3QgeyBDb3VudHJ5IDx0eXBlIDE4NyBbXSA8dHlwZSAtMTY+PjsgT3JnYW5pemF0aW9uIDx0eXBlIDE4Nz47IE9yZ2FuaXphdGlvbmFsVW5pdCA8dHlwZSAxODc+OyBMb2NhbGl0eSA8dHlwZSAxODggW10gPHR5cGUgLTE2Pj47IFByb3ZpbmNlIDx0eXBlIDE4OD47IFN0cmVldEFkZHJlc3MgPHR5cGUgMTg5IFtdIDx0eXBlIC0xNj4+OyBQb3N0YWxDb2RlIDx0eXBlIDE4OT47IFNlcmlhbE51bWJlciA8dHlwZSAtMTY+OyBDb21tb25OYW1lIDx0eXBlIC0xNj47IE5hbWVzIDx0eXBlIDE5MCBbXSA8dHlwZSAxOTEgImNyeXB0by94NTA5L3BraXguQXR0cmlidXRlVHlwZUFuZFZhbHVlIiA8dHlwZSAxOTIgc3RydWN0IHsgVHlwZSA8dHlwZSAxOTMgImVuY29kaW5nL2FzbjEuT2JqZWN0SWRlbnRpZmllciIgImFzbjEiIDx0eXBlIDE5NCBbXSA8dHlwZSAtMTE+PgogZnVuYyAob2kgPHR5cGUgMTkzPikgRXF1YWwgKG90aGVyIDx0eXBlIDE5Mz4pIDx0eXBlIC0xNT47CiBmdW5jIChvaSA8dHlwZSAxOTM+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKPjsgVmFsdWUgPHR5cGUgMTk1IGludGVyZmFjZSB7IH0+OyB9Pj4+OyB9PgogZnVuYyAobiA8dHlwZSAxODU+KSBUb1JETlNlcXVlbmNlICgpIChyZXQgPHR5cGUgMTk2ICJjcnlwdG8veDUwOS9wa2l4LlJETlNlcXVlbmNlIiA8dHlwZSAxOTcgW10gPHR5cGUgMTk4ICJjcnlwdG8veDUwOS9wa2l4LlJlbGF0aXZlRGlzdGluZ3Vpc2hlZE5hbWVTRVQiIDx0eXBlIDE5OSBbXSA8dHlwZSAxOTE+Pj4+Pik7CiBmdW5jIChuIDx0eXBlIDIwMCAqPHR5cGUgMTg1Pj4pIEZpbGxGcm9tUkROU2VxdWVuY2UgKHJkbnMgPHR5cGUgMjAxICo8dHlwZSAxOTY+Pik7Cj47IFN1YmplY3QgPHR5cGUgMTg1PjsgTm90QmVmb3JlIDx0eXBlIDkwPjsgTm90QWZ0ZXIgPHR5cGUgOTA+OyBLZXlVc2FnZSA8dHlwZSAyMDIgImNyeXB0by94NTA5LktleVVzYWdlIiA8dHlwZSAtMTE+PjsgRXh0ZW5zaW9ucyA8dHlwZSAyMDMgW10gPHR5cGUgMjA0ICJjcnlwdG8veDUwOS9wa2l4LkV4dGVuc2lvbiIgPHR5cGUgMjA1IHN0cnVjdCB7IElkIDx0eXBlIDE5Mz47IENyaXRpY2FsIDx0eXBlIC0xNT4gImFzbjE6XCJvcHRpb25hbFwiIjsgVmFsdWUgPHR5cGUgMjA2IFtdIDx0eXBlIC0yMD4+OyB9Pj4+OyBFeHRyYUV4dGVuc2lvbnMgPHR5cGUgMjA3IFtdIDx0eXBlIDIwND4+OyBFeHRLZXlVc2FnZSA8dHlwZSAyMDggW10gPHR5cGUgMjA5ICJjcnlwdG8veDUwOS5FeHRLZXlVc2FnZSIgPHR5cGUgLTExPj4+OyBVbmtub3duRXh0S2V5VXNhZ2UgPHR5cGUgMjEwIFtdIDx0eXBlIDE5Mz4+OyBCYXNpY0NvbnN0cmFpbnRzVmFsaWQgPHR5cGUgLTE1PjsgSXNDQSA8dHlwZSAtMTU+OyBNYXhQYXRoTGVuIDx0eXBlIC0xMT47IE1heFBhdGhMZW5aZXJvIDx0eXBlIC0xNT47IFN1YmplY3RLZXlJZCA8dHlwZSAyMTEgW10gPHR5cGUgLTIwPj47IEF1dGhvcml0eUtleUlkIDx0eXBlIDIxMiBbXSA8dHlwZSAtMjA+PjsgT0NTUFNlcnZlciA8dHlwZSAyMTMgW10gPHR5cGUgLTE2Pj47IElzc3VpbmdDZXJ0aWZpY2F0ZVVSTCA8dHlwZSAyMTQgW10gPHR5cGUgLTE2Pj47IEROU05hbWVzIDx0eXBlIDIxNSBbXSA8dHlwZSAtMTY+PjsgRW1haWxBZGRyZXNzZXMgPHR5cGUgMjE2IFtdIDx0eXBlIC0xNj4+OyBJUEFkZHJlc3NlcyA8dHlwZSAyMTcgW10gPHR5cGUgMjE4ICJuZXQuSVAiIDx0eXBlIDIxOSBbXSA8dHlwZSAtMjA+PgogZnVuYyAoaXAgPHR5cGUgMjE4PikgTWFyc2hhbFRleHQgKCkgKD8gPHR5cGUgMjIwIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoaXAgPHR5cGUgMjE4PikgSXNMaW5rTG9jYWxNdWx0aWNhc3QgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKGlwIDx0eXBlIDIxOD4pIElzTXVsdGljYXN0ICgpIDx0eXBlIC0xNT47CiBmdW5jIChpcCA8dHlwZSAyMTg+KSBUbzQgKCkgPHR5cGUgMjE4PjsKIGZ1bmMgKGlwIDx0eXBlIDIyMSAqPHR5cGUgMjE4Pj4pIFVubWFyc2hhbFRleHQgKHRleHQgPHR5cGUgMjIyIFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAoaXAgPHR5cGUgMjE4PikgVG8xNiAoKSA8dHlwZSAyMTg+OwogZnVuYyAoaXAgPHR5cGUgMjE4PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChpcCA8dHlwZSAyMTg+KSBJc0xpbmtMb2NhbFVuaWNhc3QgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKGlwIDx0eXBlIDIxOD4pIElzTG9vcGJhY2sgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKGlwIDx0eXBlIDIxOD4pIEVxdWFsICh4IDx0eXBlIDIxOD4pIDx0eXBlIC0xNT47CiBmdW5jIChpcCA8dHlwZSAyMTg+KSBEZWZhdWx0TWFzayAoKSA8dHlwZSAyMjMgIm5ldC5JUE1hc2siIDx0eXBlIDIyNCBbXSA8dHlwZSAtMjA+PgogZnVuYyAobSA8dHlwZSAyMjM+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKG0gPHR5cGUgMjIzPikgU2l6ZSAoKSAob25lcyA8dHlwZSAtMTE+LCBiaXRzIDx0eXBlIC0xMT4pOwo+OwogZnVuYyAoaXAgPHR5cGUgMjE4PikgTWFzayAobWFzayA8dHlwZSAyMjM+KSA8dHlwZSAyMTg+OwogZnVuYyAoaXAgPHR5cGUgMjE4PikgSXNVbnNwZWNpZmllZCAoKSA8dHlwZSAtMTU+OwogZnVuYyAoaXAgPHR5cGUgMjE4PikgSXNJbnRlcmZhY2VMb2NhbE11bHRpY2FzdCAoKSA8dHlwZSAtMTU+OwogZnVuYyAoaXAgPHR5cGUgMjE4PikgSXNHbG9iYWxVbmljYXN0ICgpIDx0eXBlIC0xNT47Cj4+OyBQZXJtaXR0ZWRETlNEb21haW5zQ3JpdGljYWwgPHR5cGUgLTE1PjsgUGVybWl0dGVkRE5TRG9tYWlucyA8dHlwZSAyMjUgW10gPHR5cGUgLTE2Pj47IENSTERpc3RyaWJ1dGlvblBvaW50cyA8dHlwZSAyMjYgW10gPHR5cGUgLTE2Pj47IFBvbGljeUlkZW50aWZpZXJzIDx0eXBlIDIyNyBbXSA8dHlwZSAxOTM+PjsgfT4KIGZ1bmMgKGMgPHR5cGUgMjI4ICo8dHlwZSAxMzI+PikgQ2hlY2tTaWduYXR1cmUgKGFsZ28gPHR5cGUgMTQwPiwgc2lnbmVkIDx0eXBlIDIyOSBbXSA8dHlwZSAtMjA+Piwgc2lnbmF0dXJlIDx0eXBlIDIyOT4pIChlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChjIDx0eXBlIDIyOD4pIC5jcnlwdG8veDUwOS5zeXN0ZW1WZXJpZnkgKG9wdHMgPHR5cGUgMjMwICo8dHlwZSAyMzEgImNyeXB0by94NTA5LlZlcmlmeU9wdGlvbnMiIDx0eXBlIDIzMiBzdHJ1Y3QgeyBETlNOYW1lIDx0eXBlIC0xNj47IEludGVybWVkaWF0ZXMgPHR5cGUgMjMzICo8dHlwZSAyMzQgImNyeXB0by94NTA5LkNlcnRQb29sIiA8dHlwZSAyMzUgc3RydWN0IHsgLmNyeXB0by94NTA5LmJ5U3ViamVjdEtleUlkIDx0eXBlIDIzNiBtYXAgWzx0eXBlIC0xNj5dIDx0eXBlIDIzNyBbXSA8dHlwZSAtMTE+Pj47IC5jcnlwdG8veDUwOS5ieU5hbWUgPHR5cGUgMjM4IG1hcCBbPHR5cGUgLTE2Pl0gPHR5cGUgMjM5IFtdIDx0eXBlIC0xMT4+PjsgLmNyeXB0by94NTA5LmNlcnRzIDx0eXBlIDI0MCBbXSA8dHlwZSAyMjg+PjsgfT4KIGZ1bmMgKHMgPHR5cGUgMjQxICo8dHlwZSAyMzQ+PikgQXBwZW5kQ2VydHNGcm9tUEVNIChwZW1DZXJ0cyA8dHlwZSAyNDIgW10gPHR5cGUgLTIwPj4pIChvayA8dHlwZSAtMTU+KTsKIGZ1bmMgKHMgPHR5cGUgMjQxPikgU3ViamVjdHMgKCkgKHJlcyA8dHlwZSAyNDMgW10gPHR5cGUgMjQ0IFtdIDx0eXBlIC0yMD4+Pik7CiBmdW5jIChzIDx0eXBlIDI0MT4pIEFkZENlcnQgKGNlcnQgPHR5cGUgMjI4Pik7CiBmdW5jIChzIDx0eXBlIDI0MT4pIC5jcnlwdG8veDUwOS5maW5kVmVyaWZpZWRQYXJlbnRzIChjZXJ0IDx0eXBlIDIyOD4pIChwYXJlbnRzIDx0eXBlIDI0NSBbXSA8dHlwZSAtMTE+PiwgZXJyQ2VydCA8dHlwZSAyMjg+LCBlcnIgPHR5cGUgLTE5Pik7Cj4+OyBSb290cyA8dHlwZSAyMzM+OyBDdXJyZW50VGltZSA8dHlwZSA5MD47IEtleVVzYWdlcyA8dHlwZSAyNDYgW10gPHR5cGUgMjA5Pj47IH0+Pj4pIChjaGFpbnMgPHR5cGUgMjQ3IFtdIDx0eXBlIDI0OCBbXSA8dHlwZSAyMjg+Pj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGMgPHR5cGUgMjI4PikgVmVyaWZ5IChvcHRzIDx0eXBlIDIzMT4pIChjaGFpbnMgPHR5cGUgMjQ5IFtdIDx0eXBlIDI1MCBbXSA8dHlwZSAyMjg+Pj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGMgPHR5cGUgMjI4PikgRXF1YWwgKG90aGVyIDx0eXBlIDIyOD4pIDx0eXBlIC0xNT47CiBmdW5jIChjIDx0eXBlIDIyOD4pIENoZWNrU2lnbmF0dXJlRnJvbSAocGFyZW50IDx0eXBlIDIyOD4pIChlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChjIDx0eXBlIDIyOD4pIC5jcnlwdG8veDUwOS5pc1ZhbGlkIChjZXJ0VHlwZSA8dHlwZSAtMTE+LCBjdXJyZW50Q2hhaW4gPHR5cGUgMjUxIFtdIDx0eXBlIDIyOD4+LCBvcHRzIDx0eXBlIDIzMD4pIDx0eXBlIC0xOT47CiBmdW5jIChjIDx0eXBlIDIyOD4pIFZlcmlmeUhvc3RuYW1lIChoIDx0eXBlIC0xNj4pIDx0eXBlIC0xOT47CiBmdW5jIChjIDx0eXBlIDIyOD4pIENoZWNrQ1JMU2lnbmF0dXJlIChjcmwgPHR5cGUgMjUyICo8dHlwZSAyNTMgImNyeXB0by94NTA5L3BraXguQ2VydGlmaWNhdGVMaXN0IiA8dHlwZSAyNTQgc3RydWN0IHsgVEJTQ2VydExpc3QgPHR5cGUgMjU1ICJjcnlwdG8veDUwOS9wa2l4LlRCU0NlcnRpZmljYXRlTGlzdCIgPHR5cGUgMjU2IHN0cnVjdCB7IFJhdyA8dHlwZSAyNTcgImVuY29kaW5nL2FzbjEuUmF3Q29udGVudCIgPHR5cGUgMjU4IFtdIDx0eXBlIC0yMD4+PjsgVmVyc2lvbiA8dHlwZSAtMTE+ICJhc24xOlwib3B0aW9uYWwsZGVmYXVsdDoyXCIiOyBTaWduYXR1cmUgPHR5cGUgMjU5ICJjcnlwdG8veDUwOS9wa2l4LkFsZ29yaXRobUlkZW50aWZpZXIiIDx0eXBlIDI2MCBzdHJ1Y3QgeyBBbGdvcml0aG0gPHR5cGUgMTkzPjsgUGFyYW1ldGVycyA8dHlwZSAyNjEgImVuY29kaW5nL2FzbjEuUmF3VmFsdWUiIDx0eXBlIDI2MiBzdHJ1Y3QgeyBDbGFzcyA8dHlwZSAtMTE+OyBUYWcgPHR5cGUgLTExPjsgSXNDb21wb3VuZCA8dHlwZSAtMTU+OyBCeXRlcyA8dHlwZSAyNjMgW10gPHR5cGUgLTIwPj47IEZ1bGxCeXRlcyA8dHlwZSAyNjQgW10gPHR5cGUgLTIwPj47IH0+PiAiYXNuMTpcIm9wdGlvbmFsXCIiOyB9Pj47IElzc3VlciA8dHlwZSAxOTY+OyBUaGlzVXBkYXRlIDx0eXBlIDkwPjsgTmV4dFVwZGF0ZSA8dHlwZSA5MD4gImFzbjE6XCJvcHRpb25hbFwiIjsgUmV2b2tlZENlcnRpZmljYXRlcyA8dHlwZSAyNjUgW10gPHR5cGUgMjY2ICJjcnlwdG8veDUwOS9wa2l4LlJldm9rZWRDZXJ0aWZpY2F0ZSIgPHR5cGUgMjY3IHN0cnVjdCB7IFNlcmlhbE51bWJlciA8dHlwZSAxNDM+OyBSZXZvY2F0aW9uVGltZSA8dHlwZSA5MD47IEV4dGVuc2lvbnMgPHR5cGUgMjY4IFtdIDx0eXBlIDIwND4+ICJhc24xOlwib3B0aW9uYWxcIiI7IH0+Pj4gImFzbjE6XCJvcHRpb25hbFwiIjsgRXh0ZW5zaW9ucyA8dHlwZSAyNjkgW10gPHR5cGUgMjA0Pj4gImFzbjE6XCJ0YWc6MCxvcHRpb25hbCxleHBsaWNpdFwiIjsgfT4+OyBTaWduYXR1cmVBbGdvcml0aG0gPHR5cGUgMjU5PjsgU2lnbmF0dXJlVmFsdWUgPHR5cGUgMjcwICJlbmNvZGluZy9hc24xLkJpdFN0cmluZyIgPHR5cGUgMjcxIHN0cnVjdCB7IEJ5dGVzIDx0eXBlIDI3MiBbXSA8dHlwZSAtMjA+PjsgQml0TGVuZ3RoIDx0eXBlIC0xMT47IH0+CiBmdW5jIChiIDx0eXBlIDI3MD4pIEF0IChpIDx0eXBlIC0xMT4pIDx0eXBlIC0xMT47CiBmdW5jIChiIDx0eXBlIDI3MD4pIFJpZ2h0QWxpZ24gKCkgPHR5cGUgMjczIFtdIDx0eXBlIC0yMD4+Owo+OyB9PgogZnVuYyAoY2VydExpc3QgPHR5cGUgMjc0ICo8dHlwZSAyNTM+PikgSGFzRXhwaXJlZCAobm93IDx0eXBlIDkwPikgPHR5cGUgLTE1PjsKPj4pIChlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChjIDx0eXBlIDIyOD4pIC5jcnlwdG8veDUwOS5idWlsZENoYWlucyAoY2FjaGUgPHR5cGUgMjc1IG1hcCBbPHR5cGUgLTExPl0gPHR5cGUgMjc2IFtdIDx0eXBlIDI3NyBbXSA8dHlwZSAyMjg+Pj4+LCBjdXJyZW50Q2hhaW4gPHR5cGUgMjc4IFtdIDx0eXBlIDIyOD4+LCBvcHRzIDx0eXBlIDIzMD4pIChjaGFpbnMgPHR5cGUgMjc5IFtdIDx0eXBlIDI4MCBbXSA8dHlwZSAyMjg+Pj4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKGMgPHR5cGUgMjI4PikgQ3JlYXRlQ1JMIChyYW5kIDx0eXBlIDIxPiwgcHJpdiA8dHlwZSAyODEgaW50ZXJmYWNlIHsgfT4sIHJldm9rZWRDZXJ0cyA8dHlwZSAyODIgW10gPHR5cGUgMjY2Pj4sIG5vdyA8dHlwZSA5MD4sIGV4cGlyeSA8dHlwZSA5MD4pIChjcmxCeXRlcyA8dHlwZSAyODMgW10gPHR5cGUgLTIwPj4sIGVyciA8dHlwZSAtMTk+KTsKPj47IH0+Pj47IE5hbWVUb0NlcnRpZmljYXRlIDx0eXBlIDI4NCBtYXAgWzx0eXBlIC0xNj5dIDx0eXBlIDI4NSAqPHR5cGUgMTI0Pj4+OyBHZXRDZXJ0aWZpY2F0ZSA8dHlwZSAyODYgKGNsaWVudEhlbGxvIDx0eXBlIDI4NyAqPHR5cGUgMjg4ICJjcnlwdG8vdGxzLkNsaWVudEhlbGxvSW5mbyIgPHR5cGUgMjg5IHN0cnVjdCB7IENpcGhlclN1aXRlcyA8dHlwZSAyOTAgW10gPHR5cGUgLTY+PjsgU2VydmVyTmFtZSA8dHlwZSAtMTY+OyBTdXBwb3J0ZWRDdXJ2ZXMgPHR5cGUgMjkxIFtdIDx0eXBlIDI5MiAiY3J5cHRvL3Rscy5DdXJ2ZUlEIiA8dHlwZSAtNj4+PjsgU3VwcG9ydGVkUG9pbnRzIDx0eXBlIDI5MyBbXSA8dHlwZSAtNT4+OyB9Pj4+KSAoPyA8dHlwZSAyODU+LCA/IDx0eXBlIC0xOT4pPjsgUm9vdENBcyA8dHlwZSAyMzM+OyBOZXh0UHJvdG9zIDx0eXBlIDI5NCBbXSA8dHlwZSAtMTY+PjsgU2VydmVyTmFtZSA8dHlwZSAtMTY+OyBDbGllbnRBdXRoIDx0eXBlIDI5NSAiY3J5cHRvL3Rscy5DbGllbnRBdXRoVHlwZSIgPHR5cGUgLTExPj47IENsaWVudENBcyA8dHlwZSAyMzM+OyBJbnNlY3VyZVNraXBWZXJpZnkgPHR5cGUgLTE1PjsgQ2lwaGVyU3VpdGVzIDx0eXBlIDI5NiBbXSA8dHlwZSAtNj4+OyBQcmVmZXJTZXJ2ZXJDaXBoZXJTdWl0ZXMgPHR5cGUgLTE1PjsgU2Vzc2lvblRpY2tldHNEaXNhYmxlZCA8dHlwZSAtMTU+OyBTZXNzaW9uVGlja2V0S2V5IDx0eXBlIDI5NyBbMzIgXSA8dHlwZSAtMjA+PjsgQ2xpZW50U2Vzc2lvbkNhY2hlIDx0eXBlIDI5OCAiY3J5cHRvL3Rscy5DbGllbnRTZXNzaW9uQ2FjaGUiIDx0eXBlIDI5OSBpbnRlcmZhY2UgeyBHZXQgKHNlc3Npb25LZXkgPHR5cGUgLTE2PikgKHNlc3Npb24gPHR5cGUgMzAwICo8dHlwZSAzMDEgImNyeXB0by90bHMuQ2xpZW50U2Vzc2lvblN0YXRlIiA8dHlwZSAzMDIgc3RydWN0IHsgLmNyeXB0by90bHMuc2Vzc2lvblRpY2tldCA8dHlwZSAzMDMgW10gPHR5cGUgLTU+PjsgLmNyeXB0by90bHMudmVycyA8dHlwZSAtNj47IC5jcnlwdG8vdGxzLmNpcGhlclN1aXRlIDx0eXBlIC02PjsgLmNyeXB0by90bHMubWFzdGVyU2VjcmV0IDx0eXBlIDMwNCBbXSA8dHlwZSAtMjA+PjsgLmNyeXB0by90bHMuc2VydmVyQ2VydGlmaWNhdGVzIDx0eXBlIDMwNSBbXSA8dHlwZSAxMzE+PjsgfT4+Piwgb2sgPHR5cGUgLTE1Pik7IFB1dCAoc2Vzc2lvbktleSA8dHlwZSAtMTY+LCBjcyA8dHlwZSAzMDA+KTsgfT4+OyBNaW5WZXJzaW9uIDx0eXBlIC02PjsgTWF4VmVyc2lvbiA8dHlwZSAtNj47IEN1cnZlUHJlZmVyZW5jZXMgPHR5cGUgMzA2IFtdIDx0eXBlIDI5Mj4+OyAuY3J5cHRvL3Rscy5zZXJ2ZXJJbml0T25jZSA8dHlwZSAzMDcgInN5bmMuT25jZSIgPHR5cGUgMzA4IHN0cnVjdCB7IC5zeW5jLm0gPHR5cGUgNzE+OyAuc3luYy5kb25lIDx0eXBlIC03PjsgfT4KIGZ1bmMgKG8gPHR5cGUgMzA5ICo8dHlwZSAzMDc+PikgRG8gKGYgPHR5cGUgMzEwICgpPik7Cj47IH0+CiBmdW5jIChjIDx0eXBlIDMxMSAqPHR5cGUgMTIwPj4pIC5jcnlwdG8vdGxzLmN1cnZlUHJlZmVyZW5jZXMgKCkgPHR5cGUgMzEyIFtdIDx0eXBlIDI5Mj4+OwogZnVuYyAoYyA8dHlwZSAzMTE+KSAuY3J5cHRvL3Rscy5yYW5kICgpIDx0eXBlIDIxPjsKIGZ1bmMgKGMgPHR5cGUgMzExPikgLmNyeXB0by90bHMuc2VydmVySW5pdCAoKTsKIGZ1bmMgKGMgPHR5cGUgMzExPikgLmNyeXB0by90bHMubWF4VmVyc2lvbiAoKSA8dHlwZSAtNj47CiBmdW5jIChjIDx0eXBlIDMxMT4pIC5jcnlwdG8vdGxzLm11dHVhbFZlcnNpb24gKHZlcnMgPHR5cGUgLTY+KSAoPyA8dHlwZSAtNj4sID8gPHR5cGUgLTE1Pik7CiBmdW5jIChjIDx0eXBlIDMxMT4pIC5jcnlwdG8vdGxzLmdldENlcnRpZmljYXRlIChjbGllbnRIZWxsbyA8dHlwZSAyODc+KSAoPyA8dHlwZSAyODU+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoYyA8dHlwZSAzMTE+KSAuY3J5cHRvL3Rscy5jaXBoZXJTdWl0ZXMgKCkgPHR5cGUgMzEzIFtdIDx0eXBlIC02Pj47CiBmdW5jIChjIDx0eXBlIDMxMT4pIC5jcnlwdG8vdGxzLnRpbWUgKCkgPHR5cGUgOTA+OwogZnVuYyAoYyA8dHlwZSAzMTE+KSBCdWlsZE5hbWVUb0NlcnRpZmljYXRlICgpOwogZnVuYyAoYyA8dHlwZSAzMTE+KSAuY3J5cHRvL3Rscy5taW5WZXJzaW9uICgpIDx0eXBlIC02PjsKPj4pIDx0eXBlIC0xOT47CiBmdW5jIChjIDx0eXBlIDExNz4pIFZlcmlmeSAoYWRkciA8dHlwZSAtMTY+KSA8dHlwZSAtMTk+OwogZnVuYyAoYyA8dHlwZSAxMTc+KSBBdXRoIChhIDx0eXBlIDE+KSA8dHlwZSAtMTk+OwogZnVuYyAoYyA8dHlwZSAxMTc+KSBNYWlsIChmcm9tIDx0eXBlIC0xNj4pIDx0eXBlIC0xOT47CiBmdW5jIChjIDx0eXBlIDExNz4pIFJjcHQgKHRvIDx0eXBlIC0xNj4pIDx0eXBlIC0xOT47CiBmdW5jIChjIDx0eXBlIDExNz4pIERhdGEgKCkgKD8gPHR5cGUgNjU+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoYyA8dHlwZSAxMTc+KSBFeHRlbnNpb24gKGV4dCA8dHlwZSAtMTY+KSAoPyA8dHlwZSAtMTU+LCA/IDx0eXBlIC0xNj4pOwogZnVuYyAoYyA8dHlwZSAxMTc+KSBSZXNldCAoKSA8dHlwZSAtMTk+OwogZnVuYyAoYyA8dHlwZSAxMTc+KSBRdWl0ICgpIDx0eXBlIC0xOT47Cj47CmZ1bmMgRGlhbCAoYWRkciA8dHlwZSAtMTY+KSAoPyA8dHlwZSAxMTc+LCA/IDx0eXBlIC0xOT4pOwpmdW5jIE5ld0NsaWVudCAoY29ubiA8dHlwZSA4ND4sIGhvc3QgPHR5cGUgLTE2PikgKD8gPHR5cGUgMTE3PiwgPyA8dHlwZSAtMTk+KTsKZnVuYyBQbGFpbkF1dGggKGlkZW50aXR5IDx0eXBlIC0xNj4sIHVzZXJuYW1lIDx0eXBlIC0xNj4sIHBhc3N3b3JkIDx0eXBlIC0xNj4sIGhvc3QgPHR5cGUgLTE2PikgPHR5cGUgMT47CmZ1bmMgU2VuZE1haWwgKGFkZHIgPHR5cGUgLTE2PiwgYSA8dHlwZSAxPiwgZnJvbSA8dHlwZSAtMTY+LCB0byA8dHlwZSAzMTQgW10gPHR5cGUgLTE2Pj4sIG1zZyA8dHlwZSAzMTUgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CnR5cGUgPHR5cGUgND47CmNoZWNrc3VtIDRDNjhBQ0RGQTNBOEY4NEI4MTRGMUE2QzEyRUQ1MjFGRDU3NjU2OTQ7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAAenwAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAArnwAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAANR8AAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAAD0fAAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=